Hi !
my client application put a xml string into the pipeline and invokes a service on the server. All this is done in a loop as I need to send thousands of requests. Everything seems to be okay and fast enough except the invoking the service. It takes a lot of time to invoke the service. Are there any tips and tricks to make the whole process faster ??
Thanks in advance
ramesh thota
Just to be clear I understand the application:
-
A Java client application that formats a pipeline and does a doInvoke using client.jar.
-
The client application gets an XML file from somewhere and sends it as part of the doInvoke. This operation loops many times.
-
The service invoked does a parse and processing of one XML file.
There are a few quick and easy things to look at:
-
Make sure you are re-using the client Context. This will keep from creating new session on each invoke.
-
Turn auditing off for any sub-service that you don’t need audited. Auditing can be 50% of the service invoke time for very simple services. Releases 4.6 and earlier shipped with brief auditing on for all services.
-
If you are talking to a IS cluster setting your services to “stateless” will avoid the writting of the session object to the repository each time it is changed (this supports sessions/state being picked up by other servers in the cluster if the one that is executing the statefull service goes down).
-
Depending on the load on IS, you may want to do do batches of threadInvokes, so multiple files can be processed at the same time. Being able to do this depends on if there are dependencies between transactions defined in the XML files.