This posting is a journey through StreamInsight 1.0 APIs, undertaking by porting the CTP3 samples. Part 3.
In the StreamInsight CTPs, there existed three methods to code applications. My original post describes the current state of Observable. That leaves us with "Explicit Server" and "Implicit Server". Coding using the "Implicit Server" method, you'd make (basically) two main calls. You'd create a CepStream with input provider information. Then use stream.ToQuery(…) specifying output provider information. This call would not only bind the query, but create a Server and Application object under the covers. Since (I'm not sure this is the reasoning) your Server object must specify the correct StreamInsight instance you named at install time, this would be more difficult to abstract.
So….even using the CepStream.Create() and ToQuery method for binding a query to a query template, you still must instanciate your own Server and Application instance. That's what the error message was telling me, unless I missed something obvious. So,
1. Added these lines at the beginning. Remember "default" is my StreamInsight instance name from installation. Use your own instance name.
Server server = Server.Create("default");
Application application = server.CreateApplication("ImplicitServer");
2. Pass the application instance into the ConsumeQuery method.
3. In ConsumeQuery, use the overload of ToQuery(…) that specifies the application as the first parameter. Just like the error message said to.
And voila, ImplicitServer works too! To conclude this series, I need to also address the SQLApp example, the one that uses the StreamInsight sample input and output providers over SQL Server. This example (in SQLApp.cs) uses the "implicit server" method of coding query binding, so you'll need to make analogous changes like you did to ImplicitServer.cs (above).
And you have working example code with StreamInsight 1.0 RTM. Now I'm "caught up", time to look at the new stuff. And (maybe) determine how to use Reactive Framework for Observable providers and how this all fits together. Maybe starting with my good friend Bart De Smet's blog for that.