Using IFI to read IFCID 306 records from the DB2 log

Melanie Bowen

Using IFI to read IFCID 306 records from the DB2 log
I've written a batch assembler program to read IFCID 306 records from the DB2 log. I've linkedited DSNALI. My program contains no SQL statements. When calling DSNWLI with the READS function with 'F' in WQALLMOD and an RBA address in WQALLRBA, I'm receiving a return code of 8 in IFCARC1 and a reason code of 00E60830 in IFCARC2.

I've done some research on reason code 00E60830 and it indicates that there is no thread to DB2, but I can see in Omegamon that there was a thread with PLAN=-COMMAND, CONNID=DB2CALL, and ATTACH=CALLATCH. Because I have no SQL in my program and no package, I'm not indicating any plan. The manual states that DSNWLI can use the default plan. It seems my DSNWLI call is picking up plan '-COMMAND'. Is that my problem?

I tried adding an SQL statement to my program and run it under TSO using DSN, but because IFI requires ECSA storage in key 7, to read the 306 records, and the program has to be in supervisor mode to acquire that storage, I got errors. When running under TSO using DSN in batch, it seems to make my assembler program run unauthorized, because I got errors when it tried to switch to supervisor state to obtain the ECSA key 7 storage. I also wanted to add, that I do have my IFI program specified as an authorized program in IKJTSOxx parm member.

I also used a REXX program to call my IFI program with an 'ADDRESS TSO CALL' statement. When I add DSNREXX to my REXX program and use a EXECSQL SET CURRENT PACKAGESET statement, the 00E60830 error goes away, but I don't get anything back. There is 0 in IFCARC1, IFCARC2, and IFCABM. In looking at this thread in Omegamon the PLAN=DSNREXX, CONNID=RRSAF, and ATTACH=RRSAF. I get these results when my assembler IFI program is linkedited with DSNALI. If I linkedit my IFI program with DSNRLI, and call it from the REXX program, I then receive the 00E60830 error again, even though DSNREXX was added to the REXX program.

Also wanted to mention that I've started a monitor class 30 trace for ifcid 306.

I would appreciate any help that can be provided.

Thanks.

Robert Yoder

Using IFI to read IFCID 306 records from the DB2 log
(in response to Melanie Bowen)
Hi Melanie
In SDSNMACS in member DSNDIFCC which has the return codes for IFI.

X'00E60830' STORAGE NOT AVAILABLE FROM WWFR POOL

Have you included the following copy books and initialized all of the necessary control blocks?

DSNDIFCA DSNDWQAL DSNDWBUF




Bob Yoder
Archer Daniels Midland Co.
IBM Tech Support(GTC)
217.451.3787

From: Melanie Bowen [mailto:[login to unmask email]
Sent: Tuesday, April 24, 2012 1:07 PM
To: [login to unmask email]
Subject: [DB2-L] - Using IFI to read IFCID 306 records from the DB2 log

I've written a batch assembler program to read IFCID 306 records from the DB2 log. I've linkedited DSNALI. My program contains no SQL statements. When calling DSNWLI with the READS function with 'F' in WQALLMOD and an RBA address in WQALLRBA, I'm receiving a return code of 8 in IFCARC1 and a reason code of 00E60830 in IFCARC2.

I've done some research on reason code 00E60830 and it indicates that there is no thread to DB2, but I can see in Omegamon that there was a thread with PLAN=-COMMAND, CONNID=DB2CALL, and ATTACH=CALLATCH. Because I have no SQL in my program and no package, I'm not indicating any plan. The manual states that DSNWLI can use the default plan. It seems my DSNWLI call is picking up plan '-COMMAND'. Is that my problem?

I tried adding an SQL statement to my program and run it under TSO using DSN, but because IFI requires ECSA storage in key 7, to read the 306 records, and the program has to be in supervisor mode to acquire that storage, I got errors. When running under TSO using DSN in batch, it seems to make my assembler program run unauthorized, because I got errors when it tried to switch to supervisor state to obtain the ECSA key 7 storage. I also wanted to add, that I do have my IFI program specified as an authorized program in IKJTSOxx parm member.

I also used a REXX program to call my IFI program with an 'ADDRESS TSO CALL' statement. When I add DSNREXX to my REXX program and use a EXECSQL SET CURRENT PACKAGESET statement, the 00E60830 error goes away, but I don't get anything back. There is 0 in IFCARC1, IFCARC2, and IFCABM. In looking at this thread in Omegamon the PLAN=DSNREXX, CONNID=RRSAF, and ATTACH=RRSAF. I get these results when my assembler IFI program is linkedited with DSNALI. If I linkedit my IFI program with DSNRLI, and call it from the REXX program, I then receive the 00E60830 error again, even though DSNREXX was added to the REXX program.

Also wanted to mention that I've started a monitor class 30 trace for ifcid 306.

I would appreciate any help that can be provided.

Thanks.


-----End Original Message-----

CONFIDENTIALITY NOTICE:
This message is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by email reply.


Melanie Bowen

Using IFI to read IFCID 306 records from the DB2 log
(in response to Robert Yoder)
Robert, thanks for the response.

I do have DSNDFICA and DSNDWQAL included in my program. I do not have DSNDWBUF included because I'm using the READS function rather than READA function, and I don't think DSNDWBUF is needed for a READS.

I wasn't aware of member DSNDIFCC, thanks for pointing me to that as well.

I was wondering if the error might have something to do with the ECSA key 7 storage that is required for a READS request. I'm requesting 66 KB in subpool 241. The DB2 Performance Monitoring and Tuning Guide states the following:

Important: The recommended size of the ECSA return area for IFCID 306
requests is between 66 KB and 200 KB.

I can't seem to find much on WWFR POOL. Do you know what this is referring to?

From: Yoder, Robert [mailto:[login to unmask email]
Sent: Tuesday, April 24, 2012 2:33 PM
To: [login to unmask email]
Subject: [DB2-L] - RE: Using IFI to read IFCID 306 records from the DB2 log

Hi Melanie

In SDSNMACS in member DSNDIFCC which has the return codes for IFI.

X'00E60830' STORAGE NOT AVAILABLE FROM WWFR POOL

Have you included the following copy books and initialized all of the necessary control blocks?

DSNDIFCA DSNDWQAL DSNDWBUF




Bob Yoder
Archer Daniels Midland Co.
IBM Tech Support(GTC)
217.451.3787

From: Melanie Bowen [mailto:[login to unmask email]<mailto:[mailto:[login to unmask email]>
Sent: Tuesday, April 24, 2012 1:07 PM
To: [login to unmask email]<mailto:[login to unmask email]>
Subject: [DB2-L] - Using IFI to read IFCID 306 records from the DB2 log

I've written a batch assembler program to read IFCID 306 records from the DB2 log. I've linkedited DSNALI. My program contains no SQL statements. When calling DSNWLI with the READS function with 'F' in WQALLMOD and an RBA address in WQALLRBA, I'm receiving a return code of 8 in IFCARC1 and a reason code of 00E60830 in IFCARC2.

I've done some research on reason code 00E60830 and it indicates that there is no thread to DB2, but I can see in Omegamon that there was a thread with PLAN=-COMMAND, CONNID=DB2CALL, and ATTACH=CALLATCH. Because I have no SQL in my program and no package, I'm not indicating any plan. The manual states that DSNWLI can use the default plan. It seems my DSNWLI call is picking up plan '-COMMAND'. Is that my problem?

I tried adding an SQL statement to my program and run it under TSO using DSN, but because IFI requires ECSA storage in key 7, to read the 306 records, and the program has to be in supervisor mode to acquire that storage, I got errors. When running under TSO using DSN in batch, it seems to make my assembler program run unauthorized, because I got errors when it tried to switch to supervisor state to obtain the ECSA key 7 storage. I also wanted to add, that I do have my IFI program specified as an authorized program in IKJTSOxx parm member.

I also used a REXX program to call my IFI program with an 'ADDRESS TSO CALL' statement. When I add DSNREXX to my REXX program and use a EXECSQL SET CURRENT PACKAGESET statement, the 00E60830 error goes away, but I don't get anything back. There is 0 in IFCARC1, IFCARC2, and IFCABM. In looking at this thread in Omegamon the PLAN=DSNREXX, CONNID=RRSAF, and ATTACH=RRSAF. I get these results when my assembler IFI program is linkedited with DSNALI. If I linkedit my IFI program with DSNRLI, and call it from the REXX program, I then receive the 00E60830 error again, even though DSNREXX was added to the REXX program.

Also wanted to mention that I've started a monitor class 30 trace for ifcid 306.

I would appreciate any help that can be provided.

Thanks.


-----End Original Message-----

CONFIDENTIALITY NOTICE:
This message is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by email reply.


-----End Original Message-----

Robert Yoder

Using IFI to read IFCID 306 records from the DB2 log
(in response to Melanie Bowen)
Hi Melanie

Did you issue the start trace out of your program?

START TRACE(MONITOR) CLASS(30) DEST(OPX) or START TRACE(MONITOR) CLASS(30) DEST(OP1)?


If you issued the start trace prior to running your program then the area containing the trace data would not be available to your program.

If I remember from writing previous IFI trace programs that the buffers used by IFI are stored in ECSA and needed to be started from the program.

If you need assistance you can e-mail me offline and I will help you.

I hope that helps

Bob



Bob Yoder
Archer Daniels Midland Co.
IBM Tech Support(GTC)
217.451.3787

From: Melanie Bowen [mailto:[login to unmask email]
Sent: Tuesday, April 24, 2012 3:28 PM
To: '[login to unmask email]'
Subject: [DB2-L] - RE: Using IFI to read IFCID 306 records from the DB2 log

Robert, thanks for the response.

I do have DSNDFICA and DSNDWQAL included in my program. I do not have DSNDWBUF included because I'm using the READS function rather than READA function, and I don't think DSNDWBUF is needed for a READS.

I wasn't aware of member DSNDIFCC, thanks for pointing me to that as well.

I was wondering if the error might have something to do with the ECSA key 7 storage that is required for a READS request. I'm requesting 66 KB in subpool 241. The DB2 Performance Monitoring and Tuning Guide states the following:

Important: The recommended size of the ECSA return area for IFCID 306
requests is between 66 KB and 200 KB.

I can't seem to find much on WWFR POOL. Do you know what this is referring to?

From: Yoder, Robert [mailto:[login to unmask email]<mailto:[mailto:[login to unmask email]>
Sent: Tuesday, April 24, 2012 2:33 PM
To: [login to unmask email]<mailto:[login to unmask email]>
Subject: [DB2-L] - RE: Using IFI to read IFCID 306 records from the DB2 log

Hi Melanie

In SDSNMACS in member DSNDIFCC which has the return codes for IFI.

X'00E60830' STORAGE NOT AVAILABLE FROM WWFR POOL

Have you included the following copy books and initialized all of the necessary control blocks?

DSNDIFCA DSNDWQAL DSNDWBUF




Bob Yoder
Archer Daniels Midland Co.
IBM Tech Support(GTC)
217.451.3787

From: Melanie Bowen [mailto:[login to unmask email]<mailto:[mailto:[login to unmask email]>
Sent: Tuesday, April 24, 2012 1:07 PM
To: [login to unmask email]<mailto:[login to unmask email]>
Subject: [DB2-L] - Using IFI to read IFCID 306 records from the DB2 log

I've written a batch assembler program to read IFCID 306 records from the DB2 log. I've linkedited DSNALI. My program contains no SQL statements. When calling DSNWLI with the READS function with 'F' in WQALLMOD and an RBA address in WQALLRBA, I'm receiving a return code of 8 in IFCARC1 and a reason code of 00E60830 in IFCARC2.

I've done some research on reason code 00E60830 and it indicates that there is no thread to DB2, but I can see in Omegamon that there was a thread with PLAN=-COMMAND, CONNID=DB2CALL, and ATTACH=CALLATCH. Because I have no SQL in my program and no package, I'm not indicating any plan. The manual states that DSNWLI can use the default plan. It seems my DSNWLI call is picking up plan '-COMMAND'. Is that my problem?

I tried adding an SQL statement to my program and run it under TSO using DSN, but because IFI requires ECSA storage in key 7, to read the 306 records, and the program has to be in supervisor mode to acquire that storage, I got errors. When running under TSO using DSN in batch, it seems to make my assembler program run unauthorized, because I got errors when it tried to switch to supervisor state to obtain the ECSA key 7 storage. I also wanted to add, that I do have my IFI program specified as an authorized program in IKJTSOxx parm member.

I also used a REXX program to call my IFI program with an 'ADDRESS TSO CALL' statement. When I add DSNREXX to my REXX program and use a EXECSQL SET CURRENT PACKAGESET statement, the 00E60830 error goes away, but I don't get anything back. There is 0 in IFCARC1, IFCARC2, and IFCABM. In looking at this thread in Omegamon the PLAN=DSNREXX, CONNID=RRSAF, and ATTACH=RRSAF. I get these results when my assembler IFI program is linkedited with DSNALI. If I linkedit my IFI program with DSNRLI, and call it from the REXX program, I then receive the 00E60830 error again, even though DSNREXX was added to the REXX program.

Also wanted to mention that I've started a monitor class 30 trace for ifcid 306.

I would appreciate any help that can be provided.

Thanks.


-----End Original Message-----

CONFIDENTIALITY NOTICE:
This message is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by email reply.

-----End Original Message-----

-----End Original Message-----

CONFIDENTIALITY NOTICE:
This message is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient or the employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by email reply.


Basivi Inaganti

Using IFI to read IFCID 306 records from the DB2 log
(in response to Melanie Bowen)
Melanie,

As per the following link "IFI ensures the calling task is at CREATETHREAD level with a
valid CT on all IFCID306 requests. If an aberrant thread is
detected, the call will be rejected with an IFCARC1 = 8 and
IFCARC2 = 00E60830"

http://www-01.ibm.com/support/docview.wss?uid=swg1PK57502



Thanks,
Basivi Inaganti | Lead DB2 DBA, EDM | Vantiv
P: 513.900.4153 | F: 513.900.4153 | [login to unmask email]<mailto:[login to unmask email]>


From: Melanie Bowen [mailto:[login to unmask email]
Sent: Tuesday, April 24, 2012 2:07 PM
To: [login to unmask email]
Subject: [DB2-L] - Using IFI to read IFCID 306 records from the DB2 log

I've written a batch assembler program to read IFCID 306 records from the DB2 log. I've linkedited DSNALI. My program contains no SQL statements. When calling DSNWLI with the READS function with 'F' in WQALLMOD and an RBA address in WQALLRBA, I'm receiving a return code of 8 in IFCARC1 and a reason code of 00E60830 in IFCARC2.

I've done some research on reason code 00E60830 and it indicates that there is no thread to DB2, but I can see in Omegamon that there was a thread with PLAN=-COMMAND, CONNID=DB2CALL, and ATTACH=CALLATCH. Because I have no SQL in my program and no package, I'm not indicating any plan. The manual states that DSNWLI can use the default plan. It seems my DSNWLI call is picking up plan '-COMMAND'. Is that my problem?

I tried adding an SQL statement to my program and run it under TSO using DSN, but because IFI requires ECSA storage in key 7, to read the 306 records, and the program has to be in supervisor mode to acquire that storage, I got errors. When running under TSO using DSN in batch, it seems to make my assembler program run unauthorized, because I got errors when it tried to switch to supervisor state to obtain the ECSA key 7 storage. I also wanted to add, that I do have my IFI program specified as an authorized program in IKJTSOxx parm member.

I also used a REXX program to call my IFI program with an 'ADDRESS TSO CALL' statement. When I add DSNREXX to my REXX program and use a EXECSQL SET CURRENT PACKAGESET statement, the 00E60830 error goes away, but I don't get anything back. There is 0 in IFCARC1, IFCARC2, and IFCABM. In looking at this thread in Omegamon the PLAN=DSNREXX, CONNID=RRSAF, and ATTACH=RRSAF. I get these results when my assembler IFI program is linkedited with DSNALI. If I linkedit my IFI program with DSNRLI, and call it from the REXX program, I then receive the 00E60830 error again, even though DSNREXX was added to the REXX program.

Also wanted to mention that I've started a monitor class 30 trace for ifcid 306.

I would appreciate any help that can be provided.

Thanks.


-----End Original Message-----
This e-mail transmission contains information that is confidential and may be privileged. It is intended only for the addressee(s) named above. If you receive this e-mail in error, please do not read, copy or disseminate it in any manner. If you are not the intended recipient, any disclosure, copying, distribution or use of the contents of this information is prohibited. Please reply to the message immediately by informing the sender that the message was misdirected. After replying, please erase it from your computer system. Your assistance in correcting this error is appreciated.

Dip Saha

RE: Using IFI to read IFCID 306 records from the DB2 log
(in response to Basivi Inaganti)

Hi Folks,

I know this is an old post, but we are also thinking of building a custom solution to extract data from logs via IFI 306 calls.

To avoid installing agents on z/os database any chance of making IFI 306 calls from a remote linux machine ? 

Say from a remote linux machine if I log in to the database via CLI then I can run Oracle logminer utility or db2ReadLog API to fetch data.
Let me know your thoughts!
Thanks
Dip

Venkat Srinivasan

RE: Using IFI to read IFCID 306 records from the DB2 log
(in response to Dip Saha)

No. You will need some sort of a STC type agent. Technically A POC can be done using a special sproc but it may not be viable in the long term.

Venkat

In Reply to Dip Saha:

Hi Folks,

I know this is an old post, but we are also thinking of building a custom solution to extract data from logs via IFI 306 calls.

To avoid installing agents on z/os database any chance of making IFI 306 calls from a remote linux machine ? 

Say from a remote linux machine if I log in to the database via CLI then I can run Oracle logminer utility or db2ReadLog API to fetch data.
Let me know your thoughts!
Thanks
Dip