Skip to Main Content
IBM Z Software


This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Categories Runtime
Created by Guest
Created on Apr 17, 2013

Determine issuer of Call level DLI call from XRMIOUT exit program

We have a need to determine, at run-time, the invoking program of every EXEC CICS call and of every External Resource Manager call.
.
Our application programs are mostly Cobol programs.These Cobol programs often use a Cobol dynamic call to invoke other Cobol programs. So the invoking program of an EXEC CICS call or of an External Resource Manager call is sometimes a dynamically called Cobol program. Other times, the invoking program of an EXEC CICS call or of an External Resource Manager call is an application program that was invoked via EXEC CICS LINK or EXEC CICS XCTL or was the initial program of a transaction. No matter how the invoking program was itself invoked, we need to know the invoking program of every EXEC CICS call and of every External Resource Manager call.
.
Consider this scenario:
1) ProgramA is the initial program of a transaction.
2)ProgramA does a dynamic Cobol call to ProgramB.
3)ProgramB does an External Resource manager call.
.
In that scenario, the invoking program of the External Resource manager call is ProgramB. There is an XPI call that seems like it would give us exactly what we want. It is DFHPGISX Function(Inquire_Current_Program) Invoking_Program_Name(). But in this scenario, that XPI call done from an XRMIOUT exit program returns ProgramA as the Invoking_Program_Name even though ProgramA is not the program that issued the External Resource Manager call.
.
We currently successfully use an XEIOUT program to determine the invoking program of all EXEC CICS calls. The XEIOUT program is passed the address of the application RSA (UEPRSA). We can use the saved R14 in that RSA and figure out the invoking program from that.
.
Similarly, we currently successfully use an XRMIOUT program to determine the invoking program of most External Resource Manager calls. The XRMIOUT program is passed the address of the TRUEs parameter list. And then UEPHMSA in that parameter list is the address of the calling module's register save area. The R14 saved in there is usually a pointer into the application at the point where it made the External Resource Manager call. With that R14, we can figure out the program that made the External Resource Manager call.
.
But when the invoking application uses the DLI Call level interface (e.g Call CBLTDLI), the XRMIOUT method described above does not work. The RSA addressed by UEPHMSA from the TRUE's parameter list does not contain the registers of the invoking program. And there is no obvious way to chain from the RSA to the RSA of the invoking program.
.
There needs to be a supported method to determine the invoking program of a DL/I Call Level interface call when the invoking program might have been invoked via a dynamic Cobol Call.

Idea priority High
  • Guest
    Reply
    |
    Oct 5, 2015

    Due to processing by IBM, this request was reassigned to have the following updated attributes:
    Brand - Servers and Systems Software
    Product family - Transaction Processing
    Product - CICS Transaction Server

    For recording keeping, the previous attributes were:
    Brand - WebSphere
    Product family - Transaction Processing
    Product - CICS Transaction Server

  • Guest
    Reply
    |
    May 30, 2013

    We have no plans to upgrade XRMIOUT. As previously mentioned a  DFHAPIQX INQ_APPLICATION_DATA XPI call can be madeXDLOPOST which will provide the required information.

  • Guest
    Reply
    |
    May 30, 2013

    Adding dummy comment as last update did not get mirrored to RFE

  • Guest
    Reply
    |
    May 30, 2013

    Adding dummy comment as last update did not get mirrored to RFE

  • Guest
    Reply
    |
    May 10, 2013

    We've discussed using XDLIPOST with Dan. We are already using XEIIN, XEIOUT, and XRMIOUT. We would like to keep the number of system exits to a minimum.

  • Guest
    Reply
    |
    May 10, 2013

    Has the user considered using the XDLIPOST Exit ? A DFHAPIQX INQ_APPLICATION_DATA XPI call can be made specifying RSA which will return the applications's RSA. I have tried this with an assembler program issuing a Call level DLI request and it works ok. Using the XRMIOUT will not work because the environment is stacked, we have an RMI call made as part of processing a calldli statement and such an invocation at XRMIOUT will not return information about the original CALLDLI statement from the application.