hi Jaliya,

I agree with you that for a performance test there are a lot of paths to be
considered. Therefore we do not have to go to any conclusion with out
considering them all.

Some how both of us could bring this discussion to a point where every one
can participate by analysing this
situation.

So the best thing is to start a New thread to discuss this so that every one
can learn the pros and crons of
two architectures.


On Thu, Jun 5, 2008 at 10:07 PM, Jaliya Ekanayake <[EMAIL PROTECTED]>
wrote:

> 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.
>

I went through the service and sow that it is a direct OMElement sample. But
the Mercury service is a POJO service. This may or may not have an effect.
I'll check.

>
> Then again, to verify I ran the Mercury, client with SampleService for 100
> messages 2 sequences.
> The output is as follows:
>

Did you ran with the changed  jar or with the 0.91 jar? I did this with the
changed jar in my machine and it worked fine.  Of course but not for  0.91.

>
>  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.
>
One different is that Mercury uses an ADB client and a POJO service while
Sandeaha2 uses direct OM Elements. But I am also doubt whether it has to do
any thing here.



> 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.
>
+1
How you are going to measure this? As I told you for Mercury users 100
threads to send the messages. How many threads sandeah2 would use?

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.
>

+1


>
>
thanks,
Amila.


> 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>
>
>
>
>


-- 
Amila Suriarachchi,
WSO2 Inc.

Reply via email to