Using Correlation ID

This section describes the different usages of the Correlation ID in Substation ES for recipes and trigger services.

Recipes

  • Go to selected recipe service Recipe Details definition panel
  • Use the command EMS go to the EMS Recipe Details Extension panel
    • Set the input field Copy JMSCorrelation to Y
------------------------- EMS Recipe Details Extension -----------------
 Command ===>                                                                   
                                                                                
  Recipe Identifier    ===> SXC-RR-EXTRN-PROCESS                                
  Input Dest Type      ===> Q  Name: tibss.CICS.RR.trigger.Request              
  Output Dest Type     ===> Q  Name: tibss.CICS.RR.Reply                        
  Error Dest Type      ===> Q  Name: tibss.error.out                            
                                                                                
  Shared Subscriber    ===> N (N/Y)   Durable Subscriber   ===> N (N/Y)         
  Subscriber Id        ===>                                                     
                                (Service Levels G=Guaranteed,  R=Reliable)      
  SMSL Mode            ===> RA  (RA Auto-Ack, RN No-Ack,  GA All, GS SS Recv)   
  Delivery Mode        ===> N   (P Persistent,  N Non-Persistent,  R Reliable)  
                                                                                
  Output Message properties:                                                    
   Priority            ===> N   (N/Y) Value  ===> 4     (0 - 9)                 
   Expiration          ===> N   (N/Y) Value  ===> 0     Unit ===> S (S,M,H,D)   
   Compression         ===> N   (N/Y)                                           
   Preserve            ===> N   (N/Y, undelivered messages)                     
   Body Trace          ===> N   (N/Y)                                           
   Message Type        ===> M   M(ap)/S(tream)/T(ext)/B(ytes)                   
   Copy JMSCorrelation ===> Y   N(o)/Y(es)/E(nvelope)/M(sgId)/W(CorId or MsgId) 

Triggers

There are two ways to set up a Correlation Id for a trigger service
  • Add tibss-CorrelationId property to the Trigger service definition with properties type V and value $$SYSTEM
    ------------------------------- Trigger Details -------------------------
    Command ===> PROP                                    (EMS,PROP)                
                                                                                   
     Trigger Identifier    => CICS-RR-REQUEST                                      
     Publish To            => tibss.CICS.RR.trigger.Request                        
     Publish To, Sec       =>                                                      
     Reply To              =>                                                      
     Error Subject         => tibss.error.out                                      
     Error Threshold       => 0     (0 - 99999) Error Percent  => 0   (0 - 99)     
     Publish To Len (Dyn)  => 0     Start => 0                                     
     Output Conversion(?)  => CVR-O-TSRR-01     Msg Field Name =>                  
     ESB Endpoint     (?)  => EMS-SERVER                                           
     Trace Level           => 3  0-5                                               
     Output Method         => 2  1 Status  2 Message                               
                                 3 Both Status and Message                         
     Compare Text Contain in Buffer                                                
       Start  => 0                                                                 
       Length => 6                                                                 
       Value  => SXCIRR                                                            
     Undelivered Requeue   => N   (Y Requeue, N Discard - Reliable Only)         
    
    
     -------------------------- EMS Properties (Trigger) -------- Row 1 to 11 of 15 
     Command ===>                                                   Scroll ==> CSR  
                                                                                    
             Output Buffer Id: BUF-IO-BF01                                          
                                                                                    
     Property Name        B/V Value                                                 
     --------------------  -  ------------------------------------------------------
    ----------------------------------------------                                  
                                                                                    
     tibss-CorrelationId   V  $$SYSTEM                                              
                                                                                    
                                                                                    
     ____________________  _  ______________________________________________________
    
  • Add tibss-CorrelationId to output message definition and change in all output conversion rules to reflect one of the following
    • For CICS EXCI and IMS BES systems that generate the trigger
      • The data area must provide the value to set tibss-CorrelationId
      • Add tibss-CorrelationId to message definition.
        ------------ Define Fields in a Message --------------
        Row 1 to 35 of 38
        Command ===>                                     Scroll ==> CSR
        (Types: DAT, OPA, MSG, STR, BOL, I8, U8, I16, U16, I32, U32, I64,
         U64, F32, F64, POR, IPA)                                        
        Message Id   ===> MSG-IO-RR-01                                  
                                                                        
        Sel Type Dec Id Seq Name                                        
        -   ---  --  -- --- ----------------------------------
            STR  0   0  17  IVP-REPLY-DATE-CHAR                       
            STR  0   0  18  IVP-REPLY-TIME-CHAR                      
            OPA  0   0  99  tibss-envelope                           
            STR  0   0  99  tibss-password                           
            STR  0   0  99  tibss-userid                              
            STR  0   0  99  tibss-CorrelationId                        
                 0   0  0     
        
        • In the conversion rule, tell Substation ES how to populate the field
          ----- Define Msg-Field / Buffer-Field Conversion -----
          Row 15 to 19 of 19 
          Command ===>                                    Scroll ==> CSR
                                                                        
            Conversion Id   ===> CVR-O-TSRR-01                          
            Using Message   ...: MSG-IO-RR-01                           
            Using Buffer    ...: BUF-IO-BF01                             
            Max Buffer Size ===> 0                                       
                                                                      
          Trunc Reqd BfFld Msg Field              | Num  Buffer Field     
            -    -   ----- ---------------------- | ---- -------------------
            Y    Y   0     IVP-REPLY-TIME-CHAR    | 15   IVP-REPLY-DATE-CHAR
            Y    Y   0     tibss-envelope         | 16   IVP-REPLY-TIME-CHAR
            Y    Y   0     tibss-password         | 0                      
            Y    Y   0     tibss-userid           | 0                      
            Y    Y   16    tibss-CorrelationId    | 0
          
    • For RED CICS, there is a field to specify your own value or if not filled in, Substaton ES will generate one. In the Trigger definition
      • Add tibss-CorrelationId to message definition
        ----------------- Define Fields in a Message ---------------
        Row 1 to 35 of 38
        Command ===>                                           Scroll ==> CSR
        (Types: DAT, OPA, MSG, STR, BOL, I8, U8, I16, U16, I32, U32, I64, U64,
                F32, F64, POR, IPA)                                          
          Message Id   ===> MSG-IO-RR-01                                     
                                                                             
        Sel Type Dec Id Seq Name                                             
        --- ---  --- -- --- -------------------------------------------
            STR  0   0  17  IVP-REPLY-DATE-CHAR                         
            STR  0   0  18  IVP-REPLY-TIME-CHAR                       
            OPA  0   0  99  tibss-envelope                             
            STR  0   0  99  tibss-password                             
            STR  0   0  99  tibss-userid                               
            STR  0   0  99  tibss-CorrelationId                         
                 0   0  0
        
        • In the output conversion rule, use the S indicator in the Trunc column to tell Substation ES to use the internal correlation id
          ------------ Define Msg-Field / Buffer-Field Conversion -------
           Row 15 to 19 of 19
           Command ===>                                    Scroll ==> CSR
                                                                         
            Conversion Id   ===> CVR-O-TSRR-01               
            Using Message   ...: MSG-IO-RR-01 
            Using Buffer    ...: BUF-IO-BF01                   
            Max Buffer Size ===> 0                                
                                                                     
          Trunc Reqd BfFld Msg Field          | Num Buffer Field     
          ----- ---- ----- -------------------| --- -------------------
            Y    Y     0  IVP-REPLY-TIME-CHAR | 15 IVP-REPLY-DATE-CHAR
            Y    Y     0  tibss-envelope      | 16 IVP-REPLY-TIME-CHAR
            Y    Y     0  tibss-password      | 0                     
            Y    Y     0  tibss-userid        | 0                      
            S    Y     0  tibss-CorrelationId | 0