CICS

CICS

CICS

The world's leading application server software for IBM Z

 View Only
  • 1.  Sockets application

    Posted Wed September 25, 2024 12:33 PM

    I had a CICS Sockets application that ran 20 years ago. I tried bringing it up to date, and ran into many complications. Here is my current issue.

    I use the supplied IBM Listener with a child task. When it tries to start the child task, I get an error because the listener task runs with TASKDATAKEY=CICS, and the child task has TASKDATAKEY=User. I changed the child task to match, and the program it starts gets an error because the EXECKey is User. I changed that to EXECKey=CICS, then it get an error whenever it tries to link to a program because the EXECKey for those is User and not CICS. The programs it links to are used by terminal transactions and should not have to have an EXECKey of CICS. How can I get this to switch between TASKDATAKEY=CICS which is required by the sockets listener and its child and get into a User mode. 



    ------------------------------
    Michael Lusicic
    ------------------------------


  • 2.  RE: Sockets application

    Posted Wed October 16, 2024 05:10 PM
    Edited by Leigh Compton Wed October 16, 2024 05:11 PM

    There is no requirement that the started task (the child server task) run with TASKDATAKEY(CICS).

    Examining a current implementation, the listener task is running with TASKDATAKEY(CICS) and all the child server tasks are running with TASKDATAKEY(USER).

    So, it appears that there may be something unusual in this sockets implementation that is causing the child server task to need to run in CICS key.

    Note that the TRANSACTION resource and the PROGRAM resources used within that transaction (the child server task) should agree on TASKDATAKEY and EXECKEY.  But there's no CICS requirement that two separate tasks (the STARTing task and the STARTed task) have the same key assignment.



    ------------------------------
    Leigh Compton
    Consulting IT Specialist - CICS and Enterprise Integration
    IBM
    ------------------------------



  • 3.  RE: Sockets application

    Posted Thu October 17, 2024 11:29 AM

    I have documented the process I used here to see if this will help in narrowing the issue. Here is the socket configuration for the CICS Region I am using:

    Here is the Listener:

    Here is the Listener task with TASKDATAKey = User

    Here is the Listener child task with TASKDATAKey = User

    Here Is the program (OPPBSOCK) associated with PMCS with the EXECKey = User

    I have code in OPPBSOCK to write to the MSGUSR queue along with the other output from CICS including the sockets information. Here is the output after starting the listener.

    It shows that it is listening on the proper port. When I send a message to that port, this is what I get:

    Here is the code in OPPBSOCK that is producing the output you see above that I am using to debug this problem:

    You can see the "Taking Socket" message, then it abends with a protection exception. It never gets to the "Ret Take Socket" message.

    I change the two transactions to have TASKDATAKey = CICS as shown below for PMTC:

    I also change the program (OPPBSOCK) to have EXECKey=CICS as shown below:

    Now when I send a message to that port, here is what I get:

    As you can see, this time the take socket is successful and you can see the "RET TAKE SOCKET" message that is after the call to take the socket. The rest shows that it is processing the message that was sent.

    I hope the scree shots made it.



    ------------------------------
    Michael Lusicic
    VP IS
    Computrol LLC
    Saint Louis MO
    314-378-9805
    ------------------------------



  • 4.  RE: Sockets application

    Posted Thu October 17, 2024 11:32 AM

    OK, the screen shots did not come through. I will try again with a different method.



    ------------------------------
    Michael Lusicic
    VP IS
    Computrol LLC
    Saint Louis MO
    314-378-9805
    ------------------------------



  • 5.  RE: Sockets application

    Posted Fri October 18, 2024 03:30 PM

    Let me try this from the top with text rather than pictures.

    Here is the TCP Config definitions. I have 3 CICS regions defined, but I am only using one, so the following is for that region:

    CICS region: CICSC2

    Listener Transaction: PMTC

    Port: 22741

    Child Transaction: PMCS

       EZACICD TYPE=INITIAL,               START OF MACRO ASSEMBLY INPUR   X

                   FILENAME=EZACICDF,      DD NAME FOR CONFIGURATION FILE  X

                   PROGRAM=EZACICDF        NAME OF BATCH PROGRAM TO RUN    

       EZACICD TYPE=CICS,                  CICS RECORD DEFINITION          X

                   APPLID=CICSC2,          APPLID OF CICS REGION NOT USING X

                   TCPADDR=TCPIP,          JOB/STEP NAME FOR TCP/IP        X

                   NTASKS=20,              NUMBER OF SUBTASKS              X

                   DPRTY=0,                SUBTASK DISPATCH PRIORITY DIF   X

                   CACHMIN=15,             MINIMUM REFRESH TIME FOR CACHE  X

                   CACHMAX=30,             MAXIMUM REFRESH TIME FOR CACHE  X

                   CACHRES=10,             MAXIMUM NUMBER OF RES RESOLVERS X

                   ERRORTD=CSMT,           TD QUEUE FOR ERROR MSGS         X

                   TCBLIM=0,               OPEN API TCB LIMIT              X

                   OTE=YES,                OPEN TRANSACTION ENVIRONMENT    X

                   TRACE=NO,               NO CICS TRACE RECORDS           X

                   SMSGSUP=NO              STARTED MESSAGES SUPPRESSED?    

    EZACICD TYPE=LISTENER,              LISTENER RECORD DEFINITION      X

                   FORMAT=ENHANCED,        ENHANCED LISTENER               X

                   APPLID=CICSC2,          APPLID OF CICS REGION           X

                   LAPPLD=NO ,             REGISTER APPLICATION DATA       X

                   TRANID=PMTC,            TRANSACTION NAME FOR LISTENER   X

                   PORT=22741,             PORT NUMBER FOR LISTENER        X

                   AF=INET,                LISTENER ADDRESS FAMILY         X

                   IMMED=YES,              LISTENER STARTS UP AT INIT?     X

                   BACKLOG=20,             BACKLOG VALUE FOR LISTENER      X

                   NUMSOCK=50,             # OF SOCKETS SUPPORTED BY LSTNR X

                   ACCTIME=30,             TIMEOUT VALUE FOR ACCEPT        X

                   GIVTIME=30,             TIMEOUT VALUE FOR GIVESOCKET    X

                   REATIME=30,             TIMEOUT VALUE FOR READ          X

                   CSTRAN=PMCS,            NAME OF CHILD IPV4 SERVER TRANN X

                   CSSTTYP=KC,             CHILD SERVER STARTUP TYPE       X

                   CSDELAY=000000,         CHILD SERVER DELAY INTERVAL     X

                   MSGLEN=0,               LENGTH OF INPUT MESSAGE         X

                   PEEKDAT=NO,             PEEK OPTION                     X

                   MSGFORM=ASCII           OUTPUT MESSAGE FORMAT          

    •               SECEXIT=OPPBSECX        NAME OF SECURITY EXIT PROGRAM   

    NOTE: I have tried OTE= YES and OT=NO and get the same results. I have also used LAPPLD=YES and left it out altogether. No change.

    Transaction definitions for the LISTENER and Child:

    CEDA  View TRANSaction( PMTC )                               

      TRANSaction    : PMTC                                       

      Group          : BAS300TR                                   

      DEScription    : TCPIP LISTENER TASK FOR EBASE              

      PROGram        : EZACIC02                                   

      TWasize        : 00000              0-32767                 

      PROFile        : DFHCICST                                   

      PArtitionset   :                                            

      STAtus         : Enabled            Enabled | Disabled      

      PRIMedsize     : 00000              0-65520                 

      TASKDATALoc    : Any                Below | Any             

      TASKDATAKey    : User               User | Cics             

      STOrageclear   : No                 No | Yes                

      RUnaway        : System             System | 0 | 250-2700000

      SHutdown       : Disabled           Disabled | Enabled      

      ISolate        : Yes                Yes | No                

      Brexit         :                                            

    CEDA  View TRANSaction( PMCS )                              

      TRANSaction    : PMCS                                      

      Group          : BAS300TR                                  

      DEScription    : EBASE SOCKETS COMMUNICATION MODULE        

      PROGram        : OPPBSOCK                                  

      TWasize        : 00000              0-32767                

      PROFile        : DFHCICST                                  

      PArtitionset   :                                           

      STAtus         : Enabled            Enabled | Disabled     

      PRIMedsize     : 00000              0-65520                

      TASKDATALoc    : Any                Below | Any            

      TASKDATAKey    : User               User | Cics            

      STOrageclear   : No                 No | Yes               

      RUnaway        : System             System | 0 | 250-2700000

      SHutdown       : Disabled           Disabled | Enabled     

      ISolate        : Yes                Yes | No               

      Brexit         :                                           

    Here is the program definition:

    CEDA  View PROGram( OPPBSOCK )                                         

      PROGram        : OPPBSOCK                                             

      Group          : BAS300PP                                             

      DEScription    : EBASE SOCKETS SERVER CHILD                           

      Language       : CObol              CObol | Assembler | Le370 | C | Pli

      RELoad         : No                 No | Yes                          

      RESident       : No                 No | Yes                          

      USAge          : Normal             Normal | Transient                

      USElpacopy     : No                 No | Yes                          

      Status         : Enabled            Enabled | Disabled                

      RSl            : 00                 0-24 | Public                     

      CEdf           : Yes                Yes | No                          

      DAtalocation   : Any                Below | Any                       

      EXECKey        : User               User | Cics                       

      COncurrency    : Quasirent          Quasirent | Threadsafe | Required 

      Api            : Cicsapi            Cicsapi | Openapi                 

    I wrote message to the message queue to track down where the error occurs. Here is the code in the program:

         MOVE TSP-LSTN-NAME TO CIDL-NAME.              

         MOVE TSP-LSTN-SUBTASKNAME TO CIDL-SUBTASKNAME.

         MOVE TSP-GIVE-TAKE-SOCKET TO SOC-SOCKET-ID.   

    *-->                                               

    *                                                  

         MOVE 'TAKING SOCKET' TO MSG-MESSAGE.          

         PERFORM S000-LOG-ERROR THRU S000-EXIT         

    *<--                                               

         CALL 'EZASOKET' USING TCPL-TAKE-SOCKET        

                 SOC-SOCKET-ID                         

                 CLIENTID-LISTENER                     

                 SIP-ERROR-NO                          

                 SIP-RETURN-CODE.                      

                                                       

    *-->                                               

    *                                                  

         MOVE 'RET TAKE SOCKET' TO MSG-MESSAGE.        

         PERFORM S000-LOG-ERROR THRU S000-EXIT         

    *<--                                               

    Here is the output to the message queue after starting the listener and sending a message to the listener:

    EZY1258I 10/18/24 11:11:43 EZACIC01 ENTRY POINT IS 1CFE84A0                                                                       

    EZY1258I 10/18/24 11:11:43 TRU00000 ENTRY POINT IS 1CFE3FF0                                                                       

    EZY1291I 10/18/24 11:11:43 LISTENER TRANSACTION= PMTC TASKID= 0000056L ACCEPTING REQUESTS VIA PORT 22741                          

    EZY1325I 10/18/24 11:15:43 START SUCCESSFUL TRANID= PMCS PARTNER INET ADDR=172.28.255.46 PORT=   61078                            

    111543   OPPBSOCK TASK # 0000058 ENTERING OPPBSOCK                                                                                

    111543   OPPBSOCK TASK # 0000058 ENTERING A100-INITIALIZE                                                                         

    111543   OPPBSOCK TASK # 0000058 TCPSOCKET-PARM                                                                                   

    111543   OPPBSOCK TASK # 0000058     CICSC2    00056L                                                                             

    111543   OPPBSOCK TASK # 0000058 0000CCCECF4400FFFFFD444444444444444444444444444444                                               

    111543   OPPBSOCK TASK # 0000058 00013932320011000563000000000000000000000000000000                                               

    111543   OPPBSOCK TASK # 0000058 TAKING SOCKET                                                                                    

    DFHDU0203I 10/18/2024 11:15:43 CICSC2 A transaction dump was taken for dumpcode: ASRA, Dumpid: 1/0002, Tranid: PMCS, Tranum:      

               00000058, Program: OPPBSOCK.                                                                                           

    DFHAC2236 10/18/2024 11:15:43 CICSC2 Transaction PMCS transaction number 00058 abend ASRA in program OPPBSOCK term ????. Updates to

               local recoverable resources will be backed out.

    Note that it runs, but only until it tries to do a TAKESOCKET.

    Now I go in and make changes to the transactions and program to go from User to CICS as follows:

    CEDA  ALter TRANSaction( PMTC )                              

       TRANSaction    : PMTC                                       

       Group          : BAS300TR                                   

       DEScription  ==> TCPIP LISTENER TASK FOR EBASE              

       PROGram      ==> EZACIC02                                   

       TWasize      ==> 00000              0-32767                 

       PROFile      ==> DFHCICST                                   

       PArtitionset ==>                                            

       STAtus       ==> Enabled            Enabled | Disabled      

       PRIMedsize     : 00000              0-65520                 

       TASKDATALoc  ==> Any                Below | Any             

       TASKDATAKey  ==> Cics               User | Cics             

       STOrageclear ==> No                 No | Yes                

       RUnaway      ==> System             System | 0 | 250-2700000

       SHutdown     ==> Disabled           Disabled | Enabled      

       ISolate      ==> Yes                Yes | No                

       Brexit       ==>                                            

      CEDA  ALter TRANSaction( PMCS )                             

       TRANSaction    : PMCS                                      

       Group          : BAS300TR                                  

       DEScription  ==> EBASE SOCKETS COMMUNICATION MODULE        

       PROGram      ==> OPPBSOCK                                  

       TWasize      ==> 00000              0-32767                

       PROFile      ==> DFHCICST                                  

       PArtitionset ==>                                           

       STAtus       ==> Enabled            Enabled | Disabled     

       PRIMedsize     : 00000              0-65520                

       TASKDATALoc  ==> Any                Below | Any            

       TASKDATAKey  ==> Cics               User | Cics            

       STOrageclear ==> No                 No | Yes               

       RUnaway      ==> System             System | 0 | 250-2700000

       SHutdown     ==> Disabled           Disabled | Enabled     

       ISolate      ==> Yes                Yes | No               

       Brexit       ==>                                           

      CEDA  ALter PROGram( OPPBSOCK )                                        

       PROGram        : OPPBSOCK                                             

       Group          : BAS300PP                                             

       DEScription  ==> EBASE SOCKETS SERVER CHILD                           

       Language     ==> CObol              CObol | Assembler | Le370 | C | Pli

       RELoad       ==> No                 No | Yes                          

       RESident     ==> No                 No | Yes                          

       USAge        ==> Normal             Normal | Transient                

       USElpacopy   ==> No                 No | Yes                          

       Status       ==> Enabled            Enabled | Disabled                

       RSl            : 00                 0-24 | Public                     

       CEdf         ==> Yes                Yes | No                          

       DAtalocation ==> Any                Below | Any                       

       EXECKey      ==> Cics               User | Cics                       

       COncurrency  ==> Quasirent          Quasirent | Threadsafe | Required 

       Api          ==> Cicsapi            Cicsapi | Openapi                 

      REMOTE ATTRIBUTES                                                      

    I now try sending to the listener the exact same thing as last time, and get this in the message queue:

    EZY1258I 10/18/24 11:29:41 EZACIC01 ENTRY POINT IS 1CFE84A0                                            

    EZY1258I 10/18/24 11:29:41 TRU00000 ENTRY POINT IS 1CFE3FF0                                            

    EZY1291I 10/18/24 11:29:41 LISTENER TRANSACTION= PMTC TASKID= 0000069L ACCEPTING REQUESTS VIA PORT 22741

    EZY1325I 10/18/24 11:30:03 START SUCCESSFUL TRANID= PMCS PARTNER INET ADDR=172.28.255.46 PORT=   61634 

    113003   OPPBSOCK TASK # 0000070 ENTERING OPPBSOCK                                                     

    113003   OPPBSOCK TASK # 0000070 ENTERING A100-INITIALIZE                                              

    113003   OPPBSOCK TASK # 0000070 TCPSOCKET-PARM                                                        

    113003   OPPBSOCK TASK # 0000070     CICSC2    00069L                                                  

    113003   OPPBSOCK TASK # 0000070 0000CCCECF4400FFFFFD444444444444444444444444444444                    

    113003   OPPBSOCK TASK # 0000070 00013932320011000693000000000000000000000000000000                    

    113003   OPPBSOCK TASK # 0000070 TAKING SOCKET                                                         

    113004   OPPBSOCK TASK # 0000070 RET TAKE SOCKET                                                       

    113004   OPPBSOCK TASK # 0000070 SET SO_LINGER                                                         

    113004   OPPBSOCK TASK # 0000070 ENTERING B000-PROCESS-SESSION                                         

    113004   OPPBSOCK TASK # 0000070 ENTERING B100-PROCESS-STREAM                                          

    113004   OPPBSOCK TASK # 0000070 PACKET TARGET0000000013                                               

    113004   OPPBSOCK TASK # 0000070 READING PACKE0000000013                                               

    113004   OPPBSOCK TASK # 0000070 PACKET HEADER                                                         

    113004   OPPBSOCK TASK # 0000070 EBCHDR  00025                                                         

    113004   OPPBSOCK TASK # 0000070 CCCCCD44FFFFF                                                         

    113004   OPPBSOCK TASK # 0000070 5238490000025                                                         

    You can see that now it gets to the RET TAKE SOCKET message. It continues to run as expected.

    Something is happening in the call to EZASOKET. The ASRA is somewhere outside the program OPPBSOCK. 



    ------------------------------
    Michael Lusicic
    VP IS
    Computrol LLC
    Saint Louis MO
    314-378-9805
    ------------------------------



  • 6.  RE: Sockets application

    Posted Sat October 19, 2024 10:20 PM

    Hi Michael,

    What are your EXECKEY attributes on the CICS definitions for the EZACIC00/01/02 programs? They must all be EXECKEY(CICS):

    https://www.ibm.com/docs/en/zos/2.5.0?topic=SSLTBW_2.5.0/com.ibm.zos.v2r5.halc001/ipciccfg_strg_protect.html

    Set PMTC to TASKDATAKEY(CICS) - this is your equivalent of the CSKL transaction: https://www.ibm.com/docs/en/zos/2.5.0?topic=dctr-using-storage-protection-when-running-cics-330-later

    You should then be able to set PMCS to TASKDATAKEY(USER) and OPPBSOCK to EXECKEY(USER).

    Regards,

    Ian



    ------------------------------
    Ian Burnett
    ------------------------------



  • 7.  RE: Sockets application

    Posted Mon October 21, 2024 10:58 AM

    CEDA  View PROGram( EZACIC00 )                                             
     PROGram        : EZACIC00                                                 
     Group          : SOCKETS                                                  
     DEScription    : PRIMARY PROGRAM FOR TRANSACTION EZAO                     
     Language       : Assembler          CObol | Assembler | Le370 | C | Pli   
     RELoad         : No                 No | Yes                              
     RESident       : No                 No | Yes                              
     USAge          : Transient          Normal | Transient                    
     USElpacopy     : No                 No | Yes                              
     Status         : Enabled            Enabled | Disabled                    
     RSl            : 00                 0-24 | Public                         
     CEdf           : Yes                Yes | No                              
     DAtalocation   : Any                Below | Any                           
     EXECKey        : Cics               User | Cics                           
     COncurrency    : Quasirent          Quasirent | Threadsafe | Required     
     Api            : Cicsapi            Cicsapi | Openapi                     
    REMOTE ATTRIBUTES                                                          
     DYnamic        : No                 No | Yes                              

     CEDA  View PROGram( EZACIC01 )                                          
      PROGram        : EZACIC01                                              
      Group          : SOCKETS                                               
      DEScription    : TASK RELATED USER EXIT <TRUE>                         
      Language       : Assembler          CObol | Assembler | Le370 | C | Pli
      RELoad         : No                 No | Yes                           
      RESident       : Yes                No | Yes                           
      USAge          : Normal             Normal | Transient                 
      USElpacopy     : No                 No | Yes                           
      Status         : Enabled            Enabled | Disabled                 
      RSl            : 00                 0-24 | Public                      
      CEdf           : Yes                Yes | No                           
      DAtalocation   : Any                Below | Any                        
      EXECKey        : Cics               User | Cics                        
      COncurrency    : Quasirent          Quasirent | Threadsafe | Required  
      Api            : Cicsapi            Cicsapi | Openapi                  
     REMOTE ATTRIBUTES                                                       
      DYnamic        : No                 No | Yes                           
                                                                             

    CEDA  View PROGram( EZACIC02 )                                           
     PROGram        : EZACIC02                                               
     Group          : SOCKETS                                                
     DEScription    : IBM LISTENER                                           
     Language       : Assembler          CObol | Assembler | Le370 | C | Pli 
     RELoad         : No                 No | Yes                            
     RESident       : Yes                No | Yes                            
     USAge          : Normal             Normal | Transient                  
     USElpacopy     : No                 No | Yes                            
     Status         : Enabled            Enabled | Disabled                  
     RSl            : 00                 0-24 | Public                       
     CEdf           : Yes                Yes | No                            
     DAtalocation   : Any                Below | Any                         
     EXECKey        : Cics               User | Cics                         
     COncurrency    : Threadsafe         Quasirent | Threadsafe | Required   
     Api            : Cicsapi            Cicsapi | Openapi                   
    REMOTE ATTRIBUTES                                                        
     DYnamic        : No                 No | Yes                            

     CEDA  View TRANSaction( PMTC )                               
      TRANSaction    : PMTC                                       
      Group          : BAS300TR                                   
      DEScription    : TCPIP LISTENER TASK FOR EBASE              
      PROGram        : EZACIC02                                   
      TWasize        : 00000              0-32767                 
      PROFile        : DFHCICST                                   
      PArtitionset   :                                            
      STAtus         : Enabled            Enabled | Disabled      
      PRIMedsize     : 00000              0-65520                 
      TASKDATALoc    : Any                Below | Any             
      TASKDATAKey    : Cics               User | Cics             
      STOrageclear   : No                 No | Yes                
      RUnaway        : System             System | 0 | 250-2700000
      SHutdown       : Disabled           Disabled | Enabled      
      ISolate        : Yes                Yes | No                
      Brexit         :                                            

     CEDA  View TRANSaction( PMCS )                               
      TRANSaction    : PMCS                                       
      Group          : BAS300TR                                   
      DEScription    : EBASE SOCKETS COMMUNICATION MODULE         
      PROGram        : OPPBSOCK                                   
      TWasize        : 00000              0-32767                 
      PROFile        : DFHCICST                                   
      PArtitionset   :                                            
      STAtus         : Enabled            Enabled | Disabled      
      PRIMedsize     : 00000              0-65520                 
      TASKDATALoc    : Any                Below | Any             
      TASKDATAKey    : User               User | Cics             
      STOrageclear   : No                 No | Yes                
      RUnaway        : System             System | 0 | 250-2700000
      SHutdown       : Disabled           Disabled | Enabled      
      ISolate        : Yes                Yes | No                
      Brexit         :                                            

     CEDA  View PROGram( OPPBSOCK )                                          
      PROGram        : OPPBSOCK                                              
      Group          : BAS300PP                                              
      DEScription    : EBASE SOCKETS SERVER CHILD                            
      Language       : CObol              CObol | Assembler | Le370 | C | Pli
      RELoad         : No                 No | Yes                           
      RESident       : No                 No | Yes                           
      USAge          : Normal             Normal | Transient                 
      USElpacopy     : No                 No | Yes                           
      Status         : Enabled            Enabled | Disabled                 
      RSl            : 00                 0-24 | Public                      
      CEdf           : Yes                Yes | No                           
      DAtalocation   : Any                Below | Any                        
      EXECKey        : User               User | Cics                        
      COncurrency    : Quasirent          Quasirent | Threadsafe | Required  
      Api            : Cicsapi            Cicsapi | Openapi                  
     REMOTE ATTRIBUTES                                                       
      DYnamic        : No                 No | Yes                           

    Same results:

    EZY1325I 10/21/24 09:49:29 START SUCCESSFUL TRANID= PMCS PARTNER INET ADDR=172.28.255.171 PORT=   55921                      
    094929   OPPBSOCK TASK # 0000055 ENTERING OPPBSOCK                                                                           
    094929   OPPBSOCK TASK # 0000055 ENTERING A100-INITIALIZE                                                                    
    094929   OPPBSOCK TASK # 0000055 TCPSOCKET-PARM                                                                              
    094929   OPPBSOCK TASK # 0000055     CICSC2    00052L                                                                        
    094929   OPPBSOCK TASK # 0000055 0000CCCECF4400FFFFFD444444444444444444444444444444                                          
    094929   OPPBSOCK TASK # 0000055 00033932320013000523000000000000000000000000000000                                          
    094929   OPPBSOCK TASK # 0000055 TAKING SOCKET                                                                               
    DFHDU0203I 10/21/2024 09:49:29 CICSC2 A transaction dump was taken for dumpcode: ASRA, Dumpid: 1/0006, Tranid: PMCS, Tranum: 
               00000055, Program: OPPBSOCK.                                                                                      



    ------------------------------
    Michael Lusicic
    VP IS
    Computrol LLC
    Saint Louis MO
    314-378-9805
    ------------------------------



  • 8.  RE: Sockets application

    Posted Mon October 21, 2024 01:43 PM

    @Michael Lusicic -- this last set of definitions is what I would expect to work for your application.  The definitions for the IBM-supplied programs match those provided in the CSD updates in hlq.SEZAINST(EZACICCT).  Your listener transaction definition (PMTC) matches the default listener transaction of CSKL.  And the program (OPPBSOCK) and transaction (PMCS) for your child server task match the recommended attributes -- and more importantly, they match what is successfully running in both internal IBM systems and in one customer system that I checked.

    At this point, I can't explain why you are getting the ASRA abend. I would guess that there's invalid data in a pointer field, but this is simply a guess.  The best thing to do at this point is to make sure that the internal trace table in CICS is fairly large and that a system dump is captured when the ASRA abend occurs.  Opening a support case and submitting the system dump will allow our IBM support team to diagnose the cause of the program check.



    ------------------------------
    Leigh Compton
    Consulting IT Specialist - CICS and Enterprise Integration
    IBM
    ------------------------------



  • 9.  RE: Sockets application

    Posted Thu October 31, 2024 02:29 PM

    OK, I have a resolution. This was a VERY old application, and the original compile JCL went missing. I put together new JCL and it appeared to work, but had this issue. It turns out that during the link edit phase, it actually found a module named EZASOKET and linked that module in. However, the proper way is to have an INCLUDE SYSLIB(EZACICAL) in the link edit which has the entry point required. Seems a bit awkward to have to do it that way, but I did find and old copy of the JCL afterward and that is what was used over 25 years ago.

    Linking the program this way got everything working.



    ------------------------------
    Michael Lusicic
    VP IS
    Computrol LLC
    Saint Louis MO
    314-378-9805
    ------------------------------