Source

esbperformance / servicemix / README.TXT

Use Maven 2.x to build the artifacts as:

    $ cd ~/resources/esbperformance/servicemix
    $ mvn install

Increase heap memory by editing bin/servicemix to read as follows

    JAVA_MIN_MEM=2048M
    ...
    JAVA_MAX_MEM=2048M

Start ServiceMix as

    $ cd bin
    $ ./servicemix

First copy the DirectProxy deployable artifacts into the ServiceMix deploy directory - this step is extemely important. ServiceMix
should be started before executing this step, and this should be the FIRST service deployed to ServiceMix

    $ cd ~/resources/esbperformance/servicemix
    $ cp ./proxy/proxy-sa/target/proxy-sa-1.0.zip /home/ubuntu/esbs/apache-servicemix-4.3.0/deploy

Next copy the other deployable artifacts into the ServiceMix deploy directory

    $ cp ./cbr/cbr-sa/target/cbr-sa-1.0.zip /home/ubuntu/esbs/apache-servicemix-4.3.0/deploy
    $ cp ./hbr-soap/hbr-soap-sa/target/hbr-soap-sa-1.0.zip /home/ubuntu/esbs/apache-servicemix-4.3.0/deploy
    $ cp ./hbr-transport/hbr-transport-sa/target/hbr-transport-sa-1.0.zip /home/ubuntu/esbs/apache-servicemix-4.3.0/deploy
    $ cp ./transform-xslt/transform-xslt-sa/target/transform-xslt-sa-1.0.zip /home/ubuntu/esbs/apache-servicemix-4.3.0/deploy
    $ cp ./secure-proxy/secure-proxy-sa/target/secure-proxy-sa-1.0.zip /home/ubuntu/esbs/apache-servicemix-4.3.0/deploy

Before executing the performance test, re-generate the WS-Security related requests as ServiceMix is particular about the timestamps used
    $ cd client-scripts
    $ ./recreate-secure-requests.sh

Execute the performance test as follows

    $ cd ~/client-scripts
    $ ./loadtest.sh http://localhost:8192/service > servicemix-4.3.0.txt

Notes:
======

During our testing sometimes we found that the ServiceMix ESB did not start as expected. If this happens, delete the ESB completely from the ~/esbs directory and re-extract it as as follows from within the ~/esbs directory. You will also need to re-deploy the services in the order mentioned above.

    $ tar xvfz ../resources/software/apache-servicemix-4.3.0.tar.gz

When we tested the WS-Security scenario, for a single request everything was successful. However, running the smoke performance test itself started
filling up the log file with the following error, and hence we abandoned the performance tests for the WS-Security scenarios

16:57:48,056 | WARN  | qtp339044420-242 | PhaseInterceptorChain            |  -  -  | Interceptor for {http://services.samples/xsd}SecureProxy#{http://services.samples/xsd}buyStocksOperation1K has thrown exception, unwinding now
java.util.EmptyStackException
	at org.apache.cxf.staxutils.FastStack.pop(FastStack.java:31)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.staxutils.AbstractDOMStreamReader.next(AbstractDOMStreamReader.java:132)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor.handleMessage(StartBodyInterceptor.java:59)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor.handleMessage(StartBodyInterceptor.java:37)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.servicemix.cxfbc.CxfBcConsumer$JbiChainInitiationObserver.onMessage(CxfBcConsumer.java:735)[156:servicemix-cxf-bc:2011.01.0]
	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:311)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:280)[116:org.apache.cxf.bundle:2.3.2]
	at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)[116:org.apache.cxf.bundle:2.3.2]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:931)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:868)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:185)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.Server.handleAsync(Server.java:397)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:601)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:410)[149:org.eclipse.jetty.server:7.2.2.v20101205]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:508)[144:org.eclipse.jetty.io:7.2.2.v20101205]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)[144:org.eclipse.jetty.io:7.2.2.v20101205]
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)[144:org.eclipse.jetty.io:7.2.2.v20101205]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:451)[143:org.eclipse.jetty.util:7.2.2.v20101205]
	at java.lang.Thread.run(Thread.java:662)[:1.6.0_26]

To execute the load test, use the custom script which excludes the WS-Security test cases as follows

    $ cd ~/client-scripts
    $ ./loadtest-fuse.sh http://localhost:8192/service > servicemix-4.3.0.txt

Again the load test iteration with 20 concurrent users to the XSLTProxy rendered the ServiceMix ESB almost unusable, this was at the time the pre-load test warmup phase was executing. It was not really servicing requests, but had become extremely slow (as per a tcpdump) but the log files did not report any faults.


Service URLs
============

Direct Proxy
    url             : http://localhost:8192/service/DirectProxy
    wsdl-url        : http://localhost:8192/service/DirectProxy?wsdl

SOAP Body CBR Proxy
    url             : http://localhost:8192/service/CBRProxy
    wsdl-url        : http://localhost:8192/service/CBRProxy?wsdl

SOAP Header CBR Proxy
    url             : http://localhost:8192/service/CBRSOAPHeaderProxy
    wsdl-url        : http://localhost:8192/service/CBRSOAPHeaderProxy?wsdl

Transport Header CBR Proxy
    url             : http://localhost:8192/service/CBRTransportHeaderProxy
    wsdl-url        : http://localhost:8192/service/CBRTransportHeaderProxy?wsdl

XSLT Transformation Proxy
    url             : http://localhost:8192/service/XSLTProxy
    wsdl-url        : http://localhost:8192/service/XSLTProxy?wsdl

WS-Security Proxy
    url             : http://localhost:8192/service/SecureProxy
    wsdl-url        : http://localhost:8192/service/SecureProxy?wsdl