HI

I have tested my recovery routines in many different scenarios. My last step
was to test a asynchronous exit or an IRB. Since many people have told I
don't post my code I'll do so now.

I have tested the asynchronous exit or IRB and it has gotten control however
when I insert H'0' it abends with without the recovery getting control

I take the current TCB or PSATOLD (the same one that was active when I
established the estate and save it in IQETCB so since the IRB runs under the
same TCB that established the estate it (the recovery program) should get
control 

The local lock is held however I don't think the should stop the estate from
getting control

*+--------------------------------------------------------------------+ 
          MODULE CESTAE,BASE=12,LOC=BELOW,AMODE=31,RMODE=ANY,           X
                TEXT=' ESTABLISH AN ESTAEX ROUTINE'                      
 *        *---------------------------------------*                      
 *        *     LOAD THE ESTAE ROUTINE            *                      
 *        *---------------------------------------*                      
          MODESET KEY=ZERO,MODE=SUP                                      
          

          LOAD  EP=GRECOV,ERRET=EXIT0C LOAD THE ESTAEX ROUTINE           
          LR    R3,R0                 ADDRESS OF ESTAEX ROUTINE TO R3    
 *        *---------------------------------------*                      
 *        *     BUILD PARMLIST FOR ESTAEX ROUTINE *                      
 *        *---------------------------------------*                      
          LAE   R4,ESTPARAM           ADDRESS OF PARMS FOR ESTAE RTN     
          USING ESTPARM,R4            MAP ESTAE PARMLIST                 
          LAE   R15,RETRY             RETRY ADDRESS
         ST    R15,ESTRETRY          SAVE IN PARMS FOR ESTAE ROUTINE    
*        *---------------------------------------*                      
*        *     UNCOMMENT THE FOLLOWING 2 LINES   *                      
*        *     IF THIS MODULE EXECUTES IN        *                      
*        *     SUPERVISOR STATE.                 *                      
*        *---------------------------------------*                      
         ST    R12,ESTLOAD             ENTRY POINT TO ESTAE PARMLIST    
         MVC   ESTMOD(8),=CL8'CESTAE'  MODULE NAME TO ESTAE PARMLIST    
*        *---------------------------------------*                      
*        *     ISSUE THE ESTAEX MACRO            *                      
*        *---------------------------------------*                      
         ESTAEX (R3),PARAM=(R4),MF=(E,ESTAELST)                         
*        *---------------------------------------*                      
*        *     THE FOLLOWING 4 INSTRUCTIONS      *                      
*        *     REPRESENTS THE REST OF THE        *                      
*        *     PROCESSING IN THIS MODULE.        *                      
*        *     AN ERROR WILL CAUSE RTM TO INVOKE * 
*        *     AN ERROR WILL CAUSE RTM TO INVOKE *                      
*        *     THE ESTAEX ROUTINE.               *                      
*        *---------------------------------------*                      
*        DC    H'0'                                                     
          B     IRBERR
         ENDMOD                        RESTORE REGISTERS AND RETURN   
IRBERR   DS    0H                                                     
         LOAD  EP=IRBPTR                                              
         LR    R5,R0                                                  
*        O     R5,=X'80000000'                                        
         ST    R5,IRBADD                                              
                                              
*                                                                     
         USING PSA,0                                                  
         L     R4,PSATOLD


*                                                                       
*                                                                       
*                                                                       
         SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND,REGS=STDSAVE             
*                                                                       
         CIRB EP=(R5),                                                 X
               RETIQE=YES,                                             X
               STAB=DYN,                                               X
               MODE=SUPR,                                              X
               KEY=SUPR,                                               X
               WKAREA=255,                                             X
               BRANCH=YES,                                             X
               AMODE=DEFINED                                            


*                                                                       

          USING RBBASIC,R1                                               
          L     R5,RBNEXAV                Get IQE Pointer                
          USING IQESECT,R5                                               
          ST    R5,IQEADD                                                
          ST    R1,IQEIRB                                                
          LA    R15,PLIST                                                
          ST    R15,IQEPARAM                                             
          ST    R4,IQETCB                                                
 *                                                                       
 *                                                                       
 *                                                                       
          SCHEDIRB IQEPTR=IQEADD,                                       X
                MF=(E,IRBLST)                                            
 *                                                                       
          SETLOCK RELEASE,TYPE=LOCAL,REGS=STDSAVE                        
          B       EXIT                                                   

*          Here is my IRB rtn as you can see I inserted a H'0' upfront
*           When I take the H'0' out the IRB routine gets control and runs
till the end
*       
IRBPTR   CSECT                                                         
IRBPTR   AMODE 31                                                      
IRBPTR   RMODE ANY                                                     
         YREGS                                                         
*                                                                      
*        STM   R14,R12,12(R13)                                         
         LR    R5,R15                                                  
         LR    R11,R14                                                 
         DC    H'0'                                                    



Thanks
                                                 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to