13 Replies Latest reply on Aug 4, 2020 7:47 AM by David Schipper

    exit routines or procedures for IMIWBMCC to create segment level files

    Santosh Narayanan
      Share This:

      Hi All,

       

      We have been using IMIWBMCC to take image copy for IMS Databases. Since Image Copy is copy for the entire DB, I am looking for a exit routine that can be coded with this so that it can create a segment level dataset or even one data set which has all segment level details in format that can be used for file processing.

      Please let me know if there are any documentation on the same.

                HI

        • 1. Re: exit routines or procedures for IMIWBMCC to create segment level files
          Wayne Staton

          Hi Santosh,

           

          You can’t do this on an image copy file because an image copy dataset is made at the block level by reading sequentially from the beginning of the db to the end. Segments for a particular database record are not necessarily located in sequential blocks. A child/sibling segment may be located many blocks away from its parent/twin. However you can do it via an unload exit which follows the pointers and retrieves all segments for a db record storing them in hierarchical sequence in the unload dataset. Attached is a sample Cobol program that you can modify to produce a sequential file containing whatever data you need. For reference please see the User Exit topic in the MAXM Reorg for IMS 5.1 manual.

           

          Please let me know if you have any further questions or concerns.

           

          Thanks

          Wayne

          1 of 1 people found this helpful
          • 2. Re: exit routines or procedures for IMIWBMCC to create segment level files
            Santosh Narayanan

            Thanks a lot for the useful information. I am not an expert on these products so could you please help me understand if IMIWBMCC can be used to code the exit routine which you have shared or it is tied to Reorg product.

            • 3. Re: exit routines or procedures for IMIWBMCC to create segment level files
              Santosh Narayanan

              Thanks a lot for the useful information. I am not an expert on these products so could you please help me understand if IMIWBMCC can be used to code the exit routine which you have shared or it is tied to Reorg product.

              • 4. Re: exit routines or procedures for IMIWBMCC to create segment level files
                Wayne Staton

                You are welcome. I don't know what IMIWBMCC is. Could you please explain?

                1 of 1 people found this helpful
                • 5. Re: exit routines or procedures for IMIWBMCC to create segment level files
                  Santosh Narayanan

                  Apologies for the confusion. I just realized that this is the name for the procedure that is specific to our mainframe shop. It is one of the packaged components. I was checking if the exit routine can be passed while taking the Image Copy for IMS DB or it has to be done during the reorg step. We are basically exploring for an option to create segment level files when the DB is being image copied daily. I am new to the IMS DB utilities so please bear with me if some questions are very basic.

                  • 6. Re: exit routines or procedures for IMIWBMCC to create segment level files
                    Santosh Narayanan

                    I was looking through the jobs and found out that we use ICPUMAIN Program to create the Image Copy Data. Can we code user exits on this.

                    • 7. Re: exit routines or procedures for IMIWBMCC to create segment level files
                      Gary Turner

                      Hi Santosh,

                       

                      There is no functionality within the ICPUMAIN program to create what you are looking for.  The MAXM Reorg product Wayne Staton suggested earlier is your best option to invoke a user exit during unload.

                       

                      Thanks,

                      Gary Turner

                      IMS Product Support

                      1 of 1 people found this helpful
                      • 8. Re: exit routines or procedures for IMIWBMCC to create segment level files
                        Wayne Staton

                        Hi Santosh,

                         

                        This is turning into an extended dialogue and I can better serve you by opening a case. Is that ok?

                         

                        Thanks

                        Wayne

                        • 9. Re: exit routines or procedures for IMIWBMCC to create segment level files
                          Santosh Narayanan

                          Thanks a Lot Gary for your response to this query. We have the Reorg product in our shop but it not scheduled everyday due to cost and infrastructure constraints . i guess its back to sequential DLI calls on DB again. Appreciate your help on this.

                          • 10. Re: exit routines or procedures for IMIWBMCC to create segment level files
                            Santosh Narayanan

                            Thanks Wayne. Gary replied to the query that the product does not have the functionality for exit routine coding. I guess we have to back code sequential DLI calls for accessing the IMS data. Thanks a lot for your prompt responses.

                            • 11. Re: exit routines or procedures for IMIWBMCC to create segment level files
                              David Schipper

                              Maybe a little late for what you were working on, but a couple of releases ago BMC added an Extract capability to the MAXM Reorg/EP product. It is an easy way to pull IMS data out into an unload file. More fully described in the EXTCMDS command language section of the MAXM Reorg/EP Users Manual, but here is a little example from Ronnie Parker, one of the BMC IMS Technical Software Consultants:

                               

                              Here’s a working example using EXTRACT commands to store extracted data in an HD unload format:

                              //DFSURG02  EXEC PGM=DFSRRC00,                            

                              //          COND=(4,LT),REGION=0M,                        

                              //          PARM='ULU,DFSURGU0,RXP01D,,,,,,,,,,,Y'        

                              //STEPLIB   DD DISP=SHR,DSN=IMS.Q159.OZI.RTE.BMCLIB       

                              //          DD DISP=SHR,DSN=DBU.QA.EMPTY.DYNAMLIB         

                              //          DD DISP=SHR,DSN=BNZ.V90T.PDF.LOAD             

                              //          DD DISP=SHR,DSN=IMSVS.R15.SDFSRESL            

                              //          DD DISP=SHR,DSN=IMSVS.R15M.SDFSRESL           

                              //          DD DISP=SHR,DSN=IMS.Q159.OZI.RTE.BMCPSWD      

                              //*                                                       

                              //DFSRESLB  DD DISP=SHR,DSN=IMSVS.R15M.SDFSRESL           

                              //CPC$HV15  DD DUMMY                                      

                              //BMCMSG    DD SYSOUT=*                                   

                              //BMCPRINT  DD SYSOUT=*                                   

                              //IMS       DD DISP=SHR,DSN=IMS.Q1510.DBDLIB              

                              //          DD DISP=SHR,DSN=IMS.V1510.DBDLIB              

                              //PLUSIN    DD *                                          

                              UNLOAD              -                                    

                                 DYNALLOC(Y)       -                                    

                                 EXTCMDS(IEXTCMD)                                       

                              //IEXTCMD   DD *                                          

                                EXTRACT (DBD(RXP01D)                                    

                                         OUTPUTFILE (DDNAME(DFSURG1))                   

                                         SAMPLE(LIMIT(10))                              

                                         FORMAT (DEFINED(HD))                           

                                         INCLUDE SEGMENTS(PROOT))                       

                              //RECON1    DD DISP=SHR,DSN=IMS.Q159.RECON1               

                              //RECON2    DD DISP=SHR,DSN=IMS.Q159.RECON2               

                              //RECON3    DD DISP=SHR,DSN=IMS.Q159.RECON3               

                              //DFSURGU1  DD DSN=DBU.HV15.ADV.UNLD.DBRCE40.DFSURGU2,    

                              //             DISP=(NEW,CATLG,DELETE),                   

                              //             SPACE=(CYL,(143,14),RLSE),                 

                              //             DATACLAS=DATACLAS,                         

                              //             MGMTCLAS=MGMTCLAS,                         

                              //             STORCLAS=WORK,                             

                              //             DCB=(BLKSIZE=23476,RECFM=VB)               

                               

                              Here is a list of the Extract Command statements with references to the page in the 5.1 manual that covers them:

                              2 of 2 people found this helpful
                              • 12. Re: exit routines or procedures for IMIWBMCC to create segment level files
                                Santosh Narayanan

                                Thanks for the reply. We are still exploring the different solutions for unload. Could you please let me know from a processing cost point of view, will replacing this solution with a sequential GU/ GN call will be cheaper? Thanks, Santosh.N

                                • 13. Re: exit routines or procedures for IMIWBMCC to create segment level files
                                  David Schipper

                                  The only way to know the processing cost in your environment of using the Extract capability in MAXM Reorg/EP verses your user extract program would be to test the different approaches side by side. Ronnie Parker is the IMS Technical Software Consultant who covers your account. He is very familiar with the Extract capability.  If you are doing a number of different extracts, you may find it easier to use a utility like Extract that is controlled with a few parameters than changing and testing an application for each extract scenario.