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

Reply via email to