MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

AIBTDLI

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> IMS
View previous topic :: View next topic  
Author Message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Tue Feb 21, 2012 11:54 pm    Post subject: AIBTDLI Reply with quote

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
View user's profile Send private message
Anuj Dhawan
Intermediate


Joined: 19 Jul 2007
Posts: 298
Topics: 7
Location: Mumbai,India

PostPosted: Wed Feb 22, 2012 4:01 am    Post subject: Reply with quote

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
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Wed Feb 22, 2012 4:38 am    Post subject: Reply with quote

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
View user's profile Send private message
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Thu Feb 23, 2012 8:40 am    Post subject: Reply with quote

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
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12354
Topics: 75
Location: San Jose

PostPosted: Thu Feb 23, 2012 7:45 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
sairamr
Beginner


Joined: 08 Jun 2010
Posts: 38
Topics: 6

PostPosted: Mon May 07, 2012 7:20 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> IMS All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group