On Mon, Oct 6, 2008 at 8:11 PM, David Parsons1 <[EMAIL PROTECTED]> wrote:
> > 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 is my scenario. I have an in Only operation and I want to invoke that using WS-RM or Sandesha2. Since my operation is in only I can not use the sendReceive(). So it should be fireAndForget(). As I understood WS-RM 1.0 [1] describes a two channel protocol. So the CreateSequenceResponse and Acknowledgments should come in separate channels. Here it assumes a addressable client and server sends responds to that end point. The way now it operates is the way it describes in the Replay Model [2]. So my question is how can I make this invocation compatible with WS-RM 1.0 spec. IMHO if isUseSeperateListneris set Sandesha2 should set those reply to address correctly. [1] http://specs.xmlsoap.org/ws/2005/02/rm/ws-reliablemessaging.pdf [2] http://wso2.org/files/ws-rm-replay-model-1.0.3.pdf 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(). yes this is correct. Even in this case I believe the operation at the server side should be in out. > > > > *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? This is what I did. 1. Start the client. so that initial create sequence fails. 2. After some time Start the server. Further I noticed if I start the server with a little gap still Sandesha2 client can send the sequence correctly. So this may be an issue with Retransmission count. I'll have another look. > > > *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. Nope. Even I remove this line it does not change any thing. As I saw for fireAndForget Operations this variable is not relavent in Sansesha2. thanks, Amila. > > > > > 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*<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/*<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 > * > > > > > > > -- Amila Suriarachchi WSO2 Inc. blog: http://amilachinthaka.blogspot.com/
