IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Global User Exits in InterTest


IBM Mainframe Forums -> CA Products
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Binop B

Active User


Joined: 18 Jun 2009
Posts: 407
Location: Nashville, TN

PostPosted: Tue Feb 09, 2010 7:11 pm
Reply with quote

Hi All,

Is it possible to debug a GLUE routine in CA InterTest ?

We have activated the XFCREQ global exit point. Currently we have tried giving a breakpoint at the start of the program assigned to the exit point but the control is not going to the breakpoint.

As of now I am not sure whether we have to do some setup so that InterTest can capture the Exit point routine also. I couldn't find any particular reference to active the exit routines in the manuals also.
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Tue Feb 09, 2010 8:22 pm
Reply with quote

Binop,

What is the problem with the exit program that you need a breakpoint?

Is this a CA-supplied exit program or an in-house written exit program?

XFCREQ is invoked prior to an API file command.

Can you supply more information?

Bill
Back to top
View user's profile Send private message
Binop B

Active User


Joined: 18 Jun 2009
Posts: 407
Location: Nashville, TN

PostPosted: Tue Feb 09, 2010 11:09 pm
Reply with quote

Hi Bill,

Thanks for the response.

This is an in-house exit program written recently by us and is in the process of testing the same. As you have mentioned, we want this to get executed during the file operations.

As mentioned before, we have set a breakpoint at the start of the new exit program. My expectation is while executing the CICS READ statement (this is the first file command in our transaction flow), the execution will stop at the breakpoint we have set. But the transaction is ABENDing. When i look into the CICS Job spool, there is log specifying the exit routine has ABENDed (am in home right now, dont remember the ABEND code.. icon_sad.gif ).

There is good chance that we might coded the program wrong, but as of now I am not worried about Why the program flow is not stopping at the exit routine as expected? Had a doubt like Can we debug exit routines using InterTest?
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Tue Feb 09, 2010 11:58 pm
Reply with quote

Binop,

Did you get a transaction dump?

Was the exit program written based upon samples?

Here's an IBM Web Site with a sample -

publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfha3/dfha3k0.htm

Although it's for TS 3.1, it should suffice for previous versions.

When the exit program is enabled initially, the API ENABLE syntax must include the START keyword.

Bill
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Wed Feb 10, 2010 2:06 am
Reply with quote

Beginning with CICS/TS 2.2, the address found at label UEPXSTOR points to a 320-byte area. Previous to TS 2.2, it was 260-bytes. If you need reentrant and threadsafe storage in your exit, you can use this area.

Try to stay away from GWA storage as it will not be Threadsafe unless you use an ENQ/DEQ API sequence or an Assembler "CS" (Compare and Swap).

Bill
Back to top
View user's profile Send private message
Binop B

Active User


Joined: 18 Jun 2009
Posts: 407
Location: Nashville, TN

PostPosted: Wed Feb 10, 2010 2:09 pm
Reply with quote

Hi Bill,

Quote:
Although it's for TS 3.1, it should suffice for previous versions.
Thanks Bill, we are using CICS/TS 3.2 here... icon_cool.gif

Quote:
Did you get a transaction dump?
Still understanding our way through InterTest. Giving below a small snapshot of the dump. Hope this is what you asked... icon_smile.gif
Code:
Prog: FREQ       Code: FREQ    Tran: BMTP   Appl: A01CIC43   Date: 02/08/2010
User: P343       Task: 02518   Term:        Node: ________   Time: 05:36:21 
                                                                             
Data Type             Location   Value                                       
Abended by                       Application program                         
Abend type                       EXEC CICS ABEND or DUMP request             
Abend in CSECT                   $IS$FREQ + 00000360                         
AMODE, EXECKEY                   31, CICS                                   
PSW at time of abend             00000000 9CE1B388 00000000 00000000         
Abending instruction  1CE1B388   0DEF                                       
                                 BASR  R14,R15                               
                                 Branch and save instruction                 
Operand 1 storage     Register   9CE1B38A                                   
                                 General purpose register                   
Operand 2 storage     Register   00000000                                   
                                 General purpose register                   


Quote:
Was the exit program written based upon samples?
We did have a small sample but verifying with the link you had provided, looks like we will need to add some more instructions. Will let you know what progress we made later in day... icon_wink.gif

Quote:
When the exit program is enabled initially, the API ENABLE syntax must include the START keyword.
Where should we give the ENABLE command? I had used the same command with the START option, but used the CECI instruction to do the enabling. Should this command be part of the application program having the file command ?
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Wed Feb 10, 2010 4:55 pm
Reply with quote

Binop,

For test, using CECI to ENABLE the EXIT and EXITPROGRAM will work for now.

But, when you move to Production, you should be performing this via a PLT-PI program (last entry in 3rd stage would be best).

The PLT program can either perform the ENABLE outright or you can define a transid to this and the program can issue a START of itself and will initiate as soon as control is received by CICS.

The latter might be a better alternative because if there's a problem with the ENABLE it will occur in the STARTED task after CICS has come up. Otherwise, if there was a failure, CICS may not come up at all.

Programmatically, you can check the status of CICS in the program via the INQUIRE SYSTEM(CICSSTATUS) API, which is a fullword. The CVDA/DFHVALUE mnemonic is STARTUP, which translates to a value of 180.

Bill
Back to top
View user's profile Send private message
Binop B

Active User


Joined: 18 Jun 2009
Posts: 407
Location: Nashville, TN

PostPosted: Wed Feb 10, 2010 9:21 pm
Reply with quote

Hi Bill,

Thanks for the suggestions... Will certainly keep these in mind while implementing in production... icon_biggrin.gif
Back to top
View user's profile Send private message
Binop B

Active User


Joined: 18 Jun 2009
Posts: 407
Location: Nashville, TN

PostPosted: Thu Feb 11, 2010 6:16 pm
Reply with quote

Hi,

Having a little weird situation here... icon_confused.gif

Whenever we CICS ENABLE the user exit routine (XFCREQ) which I am doing using the CECI command, the CICS job spool is showing an ABEND in the program while the return code displayed on the screen is shown as 0.

It looks like the associated program has started executing when we did the CICS ENABLE itself. It resulted in the session to not respond, probably because we didn't have any logic in the program for this situation. The session had to be restarted.
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Thu Feb 11, 2010 11:49 pm
Reply with quote

Binop,

Add the following Macro (before CSECT) and code to your Glue Exit Program and see of this helps -

Code:

         DFHUEXIT TYPE=EP,ID=XFCREQ    VALID GLUE IS 'XFCREQ'
*
         L     R15,UEPEXN              EXIT-ID ADDRESS
         CLI   0(R15),XFCREQ           XFCREQ EXIT?
         BNE   RTN2CLLR                NO, RETURN TO CALLER

Bill
Back to top
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Thu Feb 11, 2010 11:50 pm
Reply with quote

Binop,

Add the following Macro (before the CSECT) and code to your Glue Exit Program and see if this helps -

Code:

         DFHUEXIT TYPE=EP,ID=XFCREQ    VALID GLUE IS 'XFCREQ'
*
         L     R15,UEPEXN              EXIT-ID ADDRESS
         CLI   0(R15),XFCREQ           XFCREQ EXIT?
         BNE   RTN2CLLR                NO, RETURN TO CALLER

Bill
Back to top
View user's profile Send private message
Binop B

Active User


Joined: 18 Jun 2009
Posts: 407
Location: Nashville, TN

PostPosted: Tue Feb 23, 2010 2:57 pm
Reply with quote

Hi All,

Apologies for not posting the solution/current scenario immediately.

@Bill,
Thanks again for the suggestion and we have coded the same. But issue still remained.

We escalated the issue to the system guys, and it looks like there is no problem when they do the ENABLEing. When we (programmers) are trying to do the ENABLE, the issue is occuring. As of now we are moving forward with this setup of only the system guys doing the ENABLEing...
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CA Products

 


Similar Topics
Topic Forum Replies
No new posts PuTTY - "User is not a surrogate... IBM Tools 5
No new posts How to delete a user's alias from the... JCL & VSAM 11
No new posts user exit in IBM Infosphere Optim DB2 8
No new posts Running a Job with the Default User ID JCL & VSAM 2
No new posts the system or user abend SF0F R=NULL COBOL Programming 0
Search our Forums:

Back to Top