IBM Support

Connecting API through z/OS Connect EE on Liberty Server to CICS TS and accessing correct DB2Plan using CMSI

Question & Answer


Question

I am using z/OS Connect EE on a Liberty Server connected to CICS Transaction Server for z/OS (CICS TS) V5.3. I am creating APIs and when I test the APIs I get an ABEND in our application due to DB2Plan names being incorrect.

Typically, I log onto CICS and enter a valid CICS transaction to access our DB2 application and that identifies our DB2PLAN. But now I am trying to go directly to our application program through z/OS Connect EE running on a Liberty Server to CICS and this uses a CSMI transaction identifier instead of of our normal transaction identifier. There is no DB2Plan associated with this CSMI transactions because it is used for multiple uses and applications.

How can I get my application or API changed to either use no transaction identifier or to pass a transaction identifier in the API from Liberty?

Answer

The following are 2 different options that will enable you to connect the API through z/OS Connect EE on a Liberty Server to CICS TS and access the correct DB2Plan:

Option 1:

The easiest way to make this work would be to use the zosconnect_cicsIpicConnection configuration element in your server.xml file to configure z/OS Connect EE to pass transid and transidUsage to CICS. The default for transid is CSMI (currently being used) so you will have to set transid to the valid CICS transaction you use to access the DB2 application that identifies your DB2PLAN. You will also need to code transidUsage=EIB_ONLY option (default is EIB_AND_MIRROR).

You can read more about this in topic Configuration elements of the z/OS Connect EE documentation.

Option 2:

If you make NO changes to the z/OS Connect configuration element definitions (server.xml), then the application program is going to have to deal with the transid being CSMI. You can do that by using a Dynamic Plan Exit. The Dynamic Plan Exit will need to return the PlanName for whatever program is making the SQL call. CICS supplies sample Dynamic Plan Exits. They are DSNCUEXT and DFHD2PXT.

DSNCUEXT and DFHD2PXT are the same except DFHD2PXT is defined as threadsafe. These exits simply take the program name and use it for the Plan name. If the correct PlanName is not the program name, then you will have to write a Dynamic Plan Exit program to return the correct PlanName. See Dynamic plan exits in the CICS TS documentation

Also, continuing with making the changes in CICS, there will need to be a DB2ENTRY for CSMI that specifies the name of the Dynamic Plan Exit program, or, the Pool attributes in the DB2CONN will need to specify the name of the Dynamic Plan Exit.

I hope this information will help you with your configuration.

Chris Carlin
CICS & zCEE L2 Support

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Component":"DB2","Version":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSNPJM","label":"IBM z\/OS Connect"},"Platform":[{"code":"PF035","label":"z\/OS"}],"Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Product Synonym

CICS/TS CICSTS CICS TS CICS Transaction Server;zCEE

Document Information

Modified date:
14 February 2023

UID

dwa1479839