Hi, In answer to your questions:
Why not sending ack back on new connection? If you want the Ack to come back on a separate connection you'll need to setUseSeparateListener(true) and call sendRecieve() and not fireAndForget(). This will make WSAddressing add a replyTo header and from this sandesha will know to set the acksTo to the same address. If you want to set the replyTo to a specific predetermined endpoint you need to explicitly set the replyTo on the ServiceClient and then cal fireAndForget(). Sandesha2 not recovering 'Then I start the client without starting the sequence and the server started after some time. In this case it could not recover messages.' I'm not sure what you mean by this. Are you restarting the server hosting your client? What do you mean by restarting your sequence? Two storage Managers in Sandesha2 module.xml I believe this is fine. Only one storage manager will ever get used. Nevertheless i'm not sure why they both exist like that in the module.xml. Why offering for one way request? Sandesha2 will offer if RM 1.0 is requested and it finds the operation being called is twoway or axis has defined that an outIn MEP is being used. I'd have thought that by calling fireAndForget() axis wouldn't set the MEP constant to outIn and therefore you wouldn't see the offer. I wonder if because you have setUseSeparateListener(true) it has set this. Regards, Dave Dave Parsons Web Services Test INTERNAL: David Parsons1/UK/[EMAIL PROTECTED] :: DE3F20 :: 246930 EXTERNAL: [EMAIL PROTECTED] :: (01962) 816930 Mail Point 211, IBM Hursley Park, Winchester. SO21 2JN From: "Amila Suriarachchi" <[EMAIL PROTECTED]> To: "[email protected]" <[email protected]> Date: 06/10/2008 10:31 Subject: Sandesha2 In Only services. hi, I wrote an InOnly service and tried to invoke it using the following client. ConfigurationContext configurationContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem( AXIS2_REPOSITORY_LOCATION, AXIS2_CLIENT_CONFIG_FILE); 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.getOptions().setUseSeparateListener(true); serviceClient.getOptions().setProperty(SandeshaClientConstants.INTERNAL_SEQUENCE_ID, "key1"); System.out.println("Invoke client using thread ==> " + Thread.currentThread().getName()); for (int i = 1; i < 100; i++) { serviceClient.fireAndForget(getTestOMElement(i)); try { Thread.sleep(1000); } catch (InterruptedException e) { } } serviceClient.getOptions().setProperty(SandeshaClientConstants.LAST_MESSAGE, Constants.VALUE_TRUE); serviceClient.fireAndForget(getTestOMElement(11)); The sequence went fine. But although I have set serviceClient.getOptions().setUseSeparateListener(true); Sandesha2 send and receive messages in same channel. So how can I set it to work in dual channel (i.e with addressing reply to)? Then I do the above test randomly starting and stopping the tcp channel using the Tcp mon. Sandesha2 could recover messages and every thing worked fine. Then I start the client without starting the sequence and the server started after some time. In this case it could not recover messages. I did not make any changes to module.xml so I believe it uses default value. Has any one face this problem? Finally I saw this in sandesha2 module.xml this, <sandesha2:StorageManagers> <sandesha2:InMemoryStorageManager> org.apache.sandesha2.storage.inmemory.InMemoryStorageManager </sandesha2:InMemoryStorageManager> <sandesha2:PermanentStorageManager> org.apache.sandesha2.storage.inmemory.InMemoryStorageManager </sandesha2:PermanentStorageManager> </sandesha2:StorageManagers> What is the purpose of having two storage managers? Isn't this cause problems in handling transactions? Can someone please help me figuring out these issues? thanks, Amila. -- Amila Suriarachchi WSO2 Inc. blog: http://amilachinthaka.blogspot.com/ Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
