Hi Amila, I followed the steps that you have mentioned. The test is to use Mercury Client with Sandesha module for the Mercury SampleService.
As you have mentioned, the output at the Tomcat console is countable but it worked till the end. Then I ran the Sandesha test without changing any configuration except adding RMSampleService to Tomcat. Here, with 1000 messages 4 sequences, I can see the console output moving very fast. Please try this scenario as well. Then again, to verify I ran the Mercury, client with SampleService for 100 messages 2 sequences. The output is as follows: 2008 12:22:35 PM org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status Receive the param ==> 0 Receive the param ==> 0 Receive the param ==> 1 Receive the param ==> 1 Receive the param ==> 2 Receive the param ==> 2 Receive the param ==> 3 Receive the param ==> 3 Receive the param ==> 4 Receive the param ==> 4 Receive the param ==> 5 Receive the param ==> 5 Receive the param ==> 6 Receive the param ==> 6 Receive the param ==> 7 Receive the param ==> 8 So, my guess is something is blocking the invocation with Mercury module. Also, since Mercury client with Sandesha module also give slow performance, we need to check the client side as well. What I would do is this: Add a global handler in Axis2 which count the number of messages and measure the time for some number of messages. Say 100 messages. Then use Mercury client send 150 messages for 1 sequence. Then use Sandesha client to sent 150 messages for 1 sequence. If they both send the messages in considerable speeds, then the problem is definitely in the server side processing. What I would do for the server side check is this: Use the same global handler and set the current time as a property in the message context. Then at the Service, measure the time difference. This will give us a rough idea of the time spend for processing at the modules. HTH Thanks, Jaliya ----- Original Message ----- *From:* Amila Suriarachchi <[EMAIL PROTECTED]> *To:* Jaliya Ekanayake <[EMAIL PROTECTED]> *Cc:* [email protected] *Sent:* Thursday, June 05, 2008 11:11 AM *Subject:* Re: Mercury, a new WS-RM implementation hi jaliya, I could sucessfully do this test. MercuryClient --> Mercury sample Service using Mercury and Sandesha2 jars Here are the steps. First go to the mercury-0.91/samples/sample1 /server/conf and change the services.xml (replace the Mercury with the sandesha2) Run the build script. This generates the service with the Sandeshas2. Then copy the Sandesha2 1.3 jars and mars to tomcat (I used 5.5.20). That's it. you have the Mercury equivalent Sandesha2 service. I did not do any changes and did not copy any jars. So Sandesha2 should work on inmemory mode. Then I send 100 messages with two sequences for the two services using this code. Same as in the sample. public void testRMSequence(boolean isDuplex){ try { ConfigurationContext configurationContext = ConfigurationContextFactory .createConfigurationContextFromFileSystem( AXIS2_REPOSITORY_LOCATION, AXIS2_CLIENT_CONFIG_FILE); SampleServiceStub sampleServiceStub = new SampleServiceStub(configurationContext, " http://localhost:8080/axis2/services/SampleService", isDuplex); sampleServiceStub._getServiceClient().engageModule("addressing"); sampleServiceStub._getServiceClient().engageModule("Mercury"); for (int i = 0; i < 100; i++) { sampleServiceStub._getServiceClient().getOptions().setProperty(MercuryClientConstants.INTERNAL_KEY, "key1"); sampleServiceStub.receiveInt(i); sampleServiceStub._getServiceClient().getOptions().setProperty(MercuryClientConstants.INTERNAL_KEY, "key2"); sampleServiceStub.receiveInt(i); } MercuryClient mercuryClient = new MercuryClient(sampleServiceStub._getServiceClient()); mercuryClient.terminateSequence("key1"); mercuryClient.terminateSequence("key2"); try { Thread.sleep(40000); } catch (InterruptedException e) { e.printStackTrace(); } } catch (AxisFault e) { e.printStackTrace(); } catch (java.rmi.RemoteException e) { e.printStackTrace(); } } What I observed in the tomcat console was Mercury process the messages in Quick time. But with sandesha2 the numbers appear is almost countable. I did this in my local machine. Jaliya could you please do the same using the server you have used earlier. you can get the changed jar from here[1]. But if you test with 50 message sequences with 0.91 you should be able to observe this. thanks, Amila. [1] http://ww2.wso2.org/~amila/mercury-core-SNAPSHOT.jar<http://ww2.wso2.org/%7Eamila/mercury-core-SNAPSHOT.jar>
