Add SUMDUMP yo your dump options - that will get you all the register areas.

I would expect IPCS option 2.2 would give you the error information.

The trace table should have a *RCVY entry, and the abend PGM entry before it.

You may wish to make a SLIP for the SRB abend instead of your FRR to make sure
that you get the standard information.

On Thu, 15 Nov 2012 07:54:10 -0600 Donald Likens <[email protected]>
wrote:

:>What I don't understand fills volumes and when I think I understand something 
I am often wrong. One of the things I don't understand is SRBs. I know this 
because what I am doing is not working! Note: When I use the option to turn off 
SRB processing and call (BALR) the SRB routine, instead of scheduling it, it 
works great.
:>
:>I schedule my SRB with the following macro:
:>
:>         IEAMSCHD EPADDR=SRBRTN,PRIORITY=ENCLAVE,ENCLAVETOKEN=WKETKN,  X
:>               PARM=ISELPARM,SYNCH=YES,                                X
:>               PURGESTOKEN=WKTKN,PTCBADDR=WKTOLD, (SAME AS PSATOLD)    X
:>               SYNCHCOMPADDR=ISELCOMP,SYNCHCODEADDR=ISELCODE,          X
:>               SYNCHRSNADDR=ISELRSN                                     
:>
:>In all my reading SRBs are work that runs in parallel to the scheduling 
program but the SYNCH documentation states:
:>
:>SYNCH=YES The SRB is to be scheduled and synchronized with the caller’s work 
unit; the caller’s work unit is suspended until the SRB completes, is purged, 
or ends abnormally. 
:>
:>My interpretation of SYNCH=YES is that the scheduling program waits for the 
SRB to complete. It my reading it also says that I need to use wait and post. I 
reason that wait and post is an alternate way to do what SYNCH does. My SRB 
terminates by branching to register 14. When it terminates I expect my code to 
resume. Correct?
:>
:>I read somewhere that storage reference by an SRB had to be in common 
storage. I reasoned that storage referenced by the SRB had to be in common 
storage if the SRB runs in another address space. The parm I pass points to 
storage in my address space, I believe this should work because this SRB runs 
in my address space (ENV=HOME). Am I correct? 
:>
:>I also read that storage obtained by an SRB had to be in SQA. The Authorized 
Assembler Services Guide does not say this, so I do not believe it. Am I 
correct?
:>
:>When I first started testing everything looked great. My jobs were scheduling 
the SRB and running to completion. But as it turned out the SRB was abending 
and disappearing so I added the following options:
:>
:>               PURGESTOKEN=WKTKN,PTCBADDR=WKTOLD, (SAME AS PSATOLD)    X
:>               SYNCHCOMPADDR=ISELCOMP,SYNCHCODEADDR=ISELCODE,          X
:>               SYNCHRSNADDR=ISELRSN                                     
:>Now when my SRB fails I know it because I display a message like the 
following:
:>
:>SRB SCHEDULING RC=28 COMP=08 CODE=000C4000
:>
:>I am not sure why but I still did not get a dump (I thought the task recovery 
routines would create a dump but they didn’t) so I added the following code to 
my SRB:
:>
:>SETFRR A,FRRAD=FRRA,EUT=YES,MODE=FULLXM,WRKREGS=(R1,R2)
:>
:>FRR      DS    0H                                       
:>         USING FRR,R15                                  
:>         ST    R14,FRRSAVE                              
:>         LR    R3,R15                                   
:>         DROP  R15                                      
:>         LR    R4,R1                                    
:>*C TAKE A DUMP                                          
:>         USING FRR,R3                                   
:>         SDUMPX HDR='SRB ERROR',BRANCH=YES,        
:>               SDATA=(NOSQA,RGN,CSA)                    
:>*C RETURN TO FRRRETRY                                   
:>         L     R2,FRRRETRY                              
:>         SETRP RC=4,REMREC=YES,RETREGS=YES,FRESDWA=YES, 
:>               DUMP=YES,WKAREA=(R4),RETADDR=(R2)        
:>         L     R14,FRRSAVE                              
:>         BR    R14                                      
:>                
:>Now I get a dump but I don’t know how to read it. I do not see any RMT2 
information or any control blocks that give me the registers and PSW at the 
time of error. I looked in the Diagnostic reference manual but I did not see 
what I needed. Can anyone direct me to the proper documentation or at least 
tell me where to look in the dump for the registers and PSW at time of error in 
a SRB?
:>
:>----------------------------------------------------------------------
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to [email protected] with the message: INFO IBM-MAIN

--
Binyamin Dissen <[email protected]>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.

I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.

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

Reply via email to