You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by Amila Suriarachchi <am...@gmail.com> on 2008/12/08 08:42:01 UTC

Sandesha2 Persistence recovery.

hi,

I tested a sample in only service with the following message receiver,

protected void invokeBusinessLogic(MessageContext messageContext)
            throws AxisFault {
        System.out.println("Got the soap message ==> " +
messageContext.getEnvelope().getBody().getFirstElement());
    }

and the client with the jdbc persistence storage.

ServiceClient serviceClient = new ServiceClient(configurationContext, null);
            serviceClient.setTargetEPR(new EndpointReference("
http://localhost:8088/axis2/services/TestInService"));
            serviceClient.getOptions().setAction("urn:TestInOperation");
            serviceClient.engageModule("sandesha2");
            serviceClient.engageModule("MessageDropModule");
            serviceClient.getOptions().setUseSeparateListener(true);

serviceClient.getOptions().setProperty(SandeshaClientConstants.INTERNAL_SEQUENCE_ID,
"key1");
            for (int i = 1; i < 10; i++) {
                serviceClient.fireAndForget(getTestOMElement(i));
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                }
            }
            serviceClient.fireAndForget(getTestOMElement(11));

Every thing works fine.
Then I stopped the server while message sequence is going and restarted. It
could resume the sequence from the stopped point. But sever does not
send the acknowledges to the client. As a result client resends the
messages.

Could any one work this scenario with any other persistence implementation?
I just stopped and started. is there any other parameters to set?

thanks,
Amila.

-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/