SonicConnect Service Tuning Parameters

Posted by cwiseman on 31-Oct-2012 12:31

What accessible tuning properties or parameters are available to manage the jetty connection that is established for a SonicConnect Service?  I'm specifically looking for properties or parameters that would better help receive the client message faster and more easily transfer it to the broker for consumption by an ESB Process/Service.

There are tuning parameters on the Broker to manipulate buffer sizes, etc., is there anything similar for the SonicConnect Services?

Thank you.

All Replies

Posted by wtam on 31-Oct-2012 16:41

If you open your project's properties (e.g. in WorkBench), you will see the following tuning properties.

http.maxConnections=5

http.minServerThreads=1

http.maxServerThreads=25

project.esbconfig.asyncExchange=true
project.esbconfig.timeoutInterval=30000

http.maxConnections is equivalent to Java system property http.maxConnections (http://docs.oracle.com/javase/1.4.2/docs/guide/net/properties.html).

http.minServerThreads and http.maxServerThreads control the min and max jetty thread pool sizes, respectively.

You can also edit spring.xml and use spring to configure Jetty server.

SC use Jetty thread to pass request to the expoed ESB process.  It waits for replies from ESB process (sitting on Jetty threads) and then sends SOAP response back to client.  Therefore, it is important to have the exposed ESB process returning reply quickly.  project.esbconfig.timeoutInterval is how long (in milliseconds) SC will wait for a reply from ESB process before giving up.  So, you want to make it equal to or less than the client timeout.  Otherwise, SC will unncessarily block on the Jetty thread when the client has already has timed out.

SC is the front end.  Increasing the number of threads may only help in situation when you have a burst of requests.  You may want to put the time consuming tasks in the queue and have the ESB process reply as soon as possible.  One other thing you can try if you are running 8.5.1, you can try setting project.esbconfig.asyncExchange to false.  By doing so, SC will bypass sending messages to Async Service and send requests to Process address directly.  I observed better performance that way.

Thanks.

This thread is closed