Supposing I have the following scenario:
#A client:
*public ClientImpl implements Client {
public void someClientMethod() {
service.someServiceMethod();
Thread.sleep(1000);
}
}*
#A server:
*...@conversational
public interface ServiceProvider {
@OneWay
public void someServiceMethod();
@EndsConversation
public void close();
}*
#The main program:
* public static void main(String... args) {
SCADomain scaDomain =
SCADomain.newInstance("conversational.composite");
Client client = scaDomain.getService(Client.class, "Consumer");
client.someClientMethod(); *
*}*
The main program just call the *someClientMethod* method. Suppose that the *
someServiceMethod* has an execution time greater than 1000 milliseconds
(time taken by the *someClientMethod* execution). Due to the @Conversational
annotation, the program will not finish even though the client method
finishes firstly. However, should the program finish when the *close* method
is invoked? I have tried this in some tests, but even when the *close* is
invoked, and no more computation are done, the program still running.
--
Douglas Siqueira Leite
Computer Science Master's degree student of University of Campinas
(Unicamp), Brazil