View previous topic :: View next topic |
Author |
Message |
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Tue Feb 21, 2012 11:54 pm Post subject: AIBTDLI |
|
|
Hi..Need some advice on AIBTDLI calls..
As I understand by AIBTDLI usage we can refer PCBs by name rather than address (provided the name is coded in PSB).
Does this additionally mean
1) ENTRY DLITCBL is not needed for these programs ?
2) No addresses need to be passed to subprograms and the subprograms can refer to the PCBs by the name ? Again in such cases, will the PCB retain the last position left by main program ?
Again my understanding is YES to all questions above.. |
|
Back to top |
|
|
Anuj Dhawan Intermediate
Joined: 19 Jul 2007 Posts: 298 Topics: 7 Location: Mumbai,India
|
Posted: Wed Feb 22, 2012 4:01 am Post subject: |
|
|
From the manuals:
When you use the AIBTDLI interface, you specify the PCB requested for the call by placing the PCB name (as defined by PSBGEN) in the resource name field of the AIB. You do not specify the PCB address. Because the AIB contains the PCB name, your application can refer to the PCB name rather than the PCB address. Your application does not need to know the relative PCB position in the PCB list. At completion of the call, the AIB returns the PCB address that corresponds to the PCB name passed by the application.
The names of DB PCBs and alternate PCBs are defined by the user during PSBGEN. All I/O PCBs are generated with the PCB name IOPCBbbb. For a generated program specification block (GPSB), the I/O PCB is generated with the PCB name IOPCBbbb, and the modifiable alternate PCB is generated with the PCB name TPPCB1b.
Also try this: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.ims11.doc.apg%2Fims_aibtdliinterface.htm _________________ Regards,
Anuj |
|
Back to top |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Wed Feb 22, 2012 4:38 am Post subject: |
|
|
Thanks Anuj..I have tried to look at those pages before posing the question...
I assume you agree that DLITCBL will not be required.
Unable to conclude on my query 2..I guess you are saying the address of the segment last read will be retained in by second GN call with same PCBname ?
The problem is I have not seen any examples of AIBTDLI usage and hence some confusion..
To quote the purpose - We are trying to use AIBTDLI to avoid PCB addresses being passed to different subprograms.. |
|
Back to top |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Thu Feb 23, 2012 8:40 am Post subject: |
|
|
hi..any help appreciated..some code snippets wud help me build a new program using it and I will attempt as a case study.. |
|
Back to top |
|
|
kolusu Site Admin
Joined: 26 Nov 2002 Posts: 12359 Topics: 75 Location: San Jose
|
Posted: Thu Feb 23, 2012 7:45 pm Post subject: |
|
|
sairamr,
Here is a sample to get you started. This is from "I-forgot-how-to-code-Ims-DB-programs-repository". so use it with caution.
Code: |
01 AIB-CNTL-BLOCK.
05 AIBRID PIC x(8).
05 AIBRLEN PIC 9(9) USAGE BINARY.
05 AIBRSFUNC PIC x(8).
05 AIBRSNM1 PIC x(8).
05 AIBRSNM2 PIC x(8).
05 AIBRESV1 PIC x(8).
05 AIBOALEN PIC 9(9) USAGE BINARY.
05 AIBOAUSE PIC 9(9) USAGE BINARY.
05 AIBRESV2 PIC x(12).
05 AIBRETRN PIC 9(9) USAGE BINARY.
05 AIBREASN PIC 9(9) USAGE BINARY.
05 AIBERRXT PIC 9(9) USAGE BINARY.
05 AIBRESA1 USAGE POINTER.
05 AIBRESA2 USAGE POINTER.
05 AIBRESA3 USAGE POINTER.
05 AIBRESV4 PIC x(40).
05 AIBRSAVE OCCURS 18 TIMES USAGE POINTER.
05 AIBRTOKN OCCURS 6 TIMES USAGE POINTER.
05 AIBRTOKC PIC x(16).
05 AIBRTOKV PIC x(16).
05 AIBRTOKA OCCURS 2 TIMES PIC 9(9) USAGE BINARY.
01 IMS-FUNC-CALLS.
05 FUNC-GU PIC X(04) VALUE 'GU '.
05 FUNC-GN PIC X(04) VALUE 'GN '.
05 FUNC-CHNG PIC X(04) VALUE 'CHNG'.
05 FUNC-ISRT PIC X(04) VALUE 'ISRT'.
05 FUNC-PURG PIC X(04) VALUE 'PURG'.
05 FUNC-INQY PIC X(4) VALUE 'INQY'.
01 IMS-IO-AREA PIC X(100).
PROCEDURE DIVISION.
MOVE DFSAIB TO AIBID.
MOVE YOUR-PSB-NAME TO AIBRSNM1.
MOVE 264 TO AIBLEN.
CALL 'AIBTDLI' USING FUNC-GN AIB-CNTL-BLOCK IMS-IO-AREA.
IF AIBRETRN = ZEROES
DISPLAY 'CALL SUCCESSFUL'
ELSE
DISPLAY 'AIBTDLI CALL FAILED WITH RC=' AIBRETRN
PERFORM ABEND
END-IF
|
Use this link as reference
http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/DFSAPGH0/CCONTENTS? |
|
Back to top |
|
|
sairamr Beginner
Joined: 08 Jun 2010 Posts: 38 Topics: 6
|
Posted: Mon May 07, 2012 7:20 am Post subject: |
|
|
Yes its been a while since the last post came in ..but only now I got some time to try things..
I have tried both the below with sample programs and the answer is YES to all
1) ENTRY DLITCBL is not needed for these programs ?
2) No addresses need to be passed to subprograms and the subprograms can refer to the PCBs by the name ? Again in such cases, will the PCB retain the last position left by main program ?
Thank you so much Kolusu..the code snippets definitely helped |
|
Back to top |
|
|
|
|