JSMDIRECT Transaction did not complete

Date:06 October 2006
Product/Release:LANSA Integrator
Abstract:Troubleshooting the "JSMDIRECT Transaction did not complete" error
Submitted By:LANSA Technical Support

Description:

Running a JSMDIRECT application produces the error:

"JSMDIRECT Transaction did not complete"

Troubleshooting Steps:

Listing below are some common reasons which generally cause this error.

  1. Has the JSM server been started along with the associated subsystem?
    Make sure the JSM server has fully started and not in the process of being started. Usually you might need to wait for about 60 seconds for the JSM server to be active and ready to listen to requests. This error can be generated if you have launched the start of JSM and straight away attempt to run requests.
     
  2. The JSM Server is started and it ends straight away – Most common cause of this is when the JSM tries to start TCP port which is already in use. Check the TCP port used in the manager.properties. In most cases the default port 4560 is already used by another JSM server on the same machine.
     
  3. Run the JSM About. Does it return the about information? To display the JSMDirect version number, invoke the program with no arguments. An HTML About page will be returned.
    http://mycompany/cgi-bin/jsmdirect? (iSeries)
    http://mycompany/cgi-bin/jsmdirect.exe? (Windows)
     
  4. Using JSMDirect, a LANSA function can be invoked as follows: http://mycompany/cgi-bin/jsmdirect?appname
    There needs to be an entry for “appname” in DC@W29.
    Try a dummy service call
    http://mycompany/cgi-bin/jsmdirect?dummy
    There should be a message produced in the QAHTTPSERVER job for the Instance used saying that the service does not exist.
    If you do not get any message then the most likely cause is that the required exit programs are not compiled. You will need to check and correct the libraries of the following source programs and then compile it
    JSMLSAEXT
    JSMDRTEXT

    If the JSMDIRECT is calling a 3GL then the JSMLSAEXT program must be compiled.
     
  5. Make sure the JOBD is correct. I.e. use a JOBD that has the required JSM library and the LANSA libraries. To check what libraries are used at runtime, check the HTTPSVR job that has just run (use option 5), then view the library list used (option 13).

    QHTTPSVR
    MYHTTPSVR QTMHHTTP BCI .0 PGM-QZSRCGI

    If the required libraries are not used then it is a library list issue.

    Make sure the JOBD specified in the STRJSM source file has the correct libraries. Also check the JSMDRTEXT source file to make sure the correct LANSA libraries are used. By default it is set to DC@PGMLIB. The latest versions of Integrator update this dynamically. But you may still need to compile this program.
     
  6. No Data returned from the Service "MYSERVICE"
    If you receive the above error in the HTTP Server Job, then this implies that JSMDIRECT has reached as far as the Integrator Service function/program and an error in the service function has occurred to cause no data to be returned to the client. You should enable JSM tracing (as outlined in the LANSA Integrator documentation) to see if some exception has occurred within the service function/program to cause no data to be returned to the client.