abhijeetgk
Hello
In the hello world example the subscribe method starts specific thread
public void subscribe(String itemName, Object itemHandle,
boolean needsIterator)
throws SubscriptionException, FailureException {
if (itemName.equals("greetings")) {
gt = new GreetingsThread(itemHandle);
gt.start();
}
}
we are trying to start the thread in init method so even if the subscribe method is not called the thread should run on server side processing the data
public void init(Map params, File configDir) throws DataProviderException {
}
The problem we are getting with the itemHandle Object
can anyone provide a snippet of code to call the thread in init method, as we tried in init method but giving error on server console for the itemHandle object in
listener.smartUpdate function
Dario Crivelli
I suppose that your thread communicates with an external feed to receive updates it will forward to Lightstreamer Server through "smartUpdate";
in this case, you can start it from "init", but you should take care of not calling "smartUpdate" (hence discarding the updates) until "subscribe" is invoked by the Server.
Only upon "subscribe" will you enable the thread to invoke "smartUpdate" and, while doing that, you will get the "itemHandle" needed by "smartUpdate" and pass it to your thread.
Eventually, upon "unsubscribe", you will prevent the thread from invoking "smartUpdate" again.
Alternatively, you could invoke "update" in place of "smartUpdate".
With "update", the "itemHandle" is not needed and the involved item is identified by the item name.
In this case, you could invoke "update" regardless that "subscribe" has been invoked, but note that in this case the Server will discard the update and will issue a warning message in the log.