Brief explanation of the layers of performance overheads in relation to JSMDirect

Date:29 September 2003
Product/Release:LANSA Integrator
Abstract:Various layers that exist that each have a bearing on performance
Submitted By:LANSA Support
Last Review:November 2010

Consider the following question: The first call to JSMDirect takes considerably longer to return the result than subsequent calls. Why?

The purpose for this tip is to create an awareness of the various layers that exist that may effect performance. This information may assist someone needing a starting point to identify where to look when considering performance for their LANSA Integrator system.

Areas to consider:

Following are a number of areas worth considering:

  1. IBM HTTP Server - If the HTTP server needs to create a new BCI Job to handle the CGI request this can add a few seconds and if an idle BCI job is available then its a few milliseconds.
  2. JSMDirect is a small C program which executes a LANSA function. We have seen a few hundred milliseconds to execute this.
  3. The LANSA function uses a JSM_OPEN call to connect to the JSMManager. The host name will be resolved to an IP address using a DNS lookup. If there is a DNS lookup performance issue then a few seconds may be lost here. It is best to have the host name in the local host table. Refer to current documentation.
  4. If the service and supporting classes have not been used before, then the JVM needs to load these classes into memory. This will have a large overhead. Are the .JAR file optimised?
  5. To pre-load the class files on JSM start up the JSM executes a class com.lansa.jsm.service. Startup this class loads the service classes using a Class.forName method and executes a dummy XML transformation to load as many Apache classes. You can add your own startup class by adding an entry to manager.properties.

    startup.class = com.acme.Startup

    com.acme.Startup being your own class, this class needs to implement the Runnable interface
     
  6. Check to see if the latest JAVA group PTF's have been applied. Improvements are continuously being made by in this area.
  7. Also the latest the HTTP server group PTF in addition the CUME.