View previous topic :: View next topic
|
Author |
Message |
Binop B
Active User
Joined: 18 Jun 2009 Posts: 407 Location: Nashville, TN
|
|
|
|
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 |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
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 |
|
|
Binop B
Active User
Joined: 18 Jun 2009 Posts: 407 Location: Nashville, TN
|
|
|
|
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.. ).
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 |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
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 |
|
|
Binop B
Active User
Joined: 18 Jun 2009 Posts: 407 Location: Nashville, TN
|
|
|
|
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...
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...
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...
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 |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
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 |
|
|
Binop B
Active User
Joined: 18 Jun 2009 Posts: 407 Location: Nashville, TN
|
|
|
|
Hi Bill,
Thanks for the suggestions... Will certainly keep these in mind while implementing in production... |
|
Back to top |
|
|
Binop B
Active User
Joined: 18 Jun 2009 Posts: 407 Location: Nashville, TN
|
|
|
|
Hi,
Having a little weird situation here...
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 |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
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 |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
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 |
|
|
Binop B
Active User
Joined: 18 Jun 2009 Posts: 407 Location: Nashville, TN
|
|
|
|
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 |
|
|
|