Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Example: distributed dialog via LU6.1

The following simple example shows the sequence of calls in distributed dialogs via LU6.1. In each case there are indications as to which fields can or have to be set or evaluated. The field names are specified using COBOL notation.

In this example the job-submitting program consists of two program units: in the first unit, the subjob is submitted to the job-receiving service; in the second unit, the response of the job-receiving service is read and the response is output to the terminal, if necessary.

As explained in section "Error handling by the program unit" a job-submitting program unit which follows after a synchronization point is started not only in a normal run, but also after rolling back a distributed transaction with service restart. This is why a check is made in the first unit of the job-submitting program whether status information is available. Such a service restart only occurs, however, if the job-submitting service has set a synchronization point prior to the start of this program unit (with or without participation of a job-receiving service).

1. Job-submitting program, first unit
INIT
       Evaluate:
       KCKNZVG     -->   R  service restart,
                            status information might be available.
MGET   Input message from terminal. If the job-submitting
       service has already reached a synchronization point,
       status information may be present as well.
       Evaluate:
       KCRPI       -->  Return information from the job receiver
                 blanks    there is no status information present
                 >svid     there is status information from the
                           job-receiving service with the specified service ID. In this case
                           the status information is to be read with a 2nd MGET.
2. MGET
       Read the status information after which error handling is necessary.
       Set:
       KCOM        <--  with NT
       KCLA        <--  with the length 0
       KCRN        <--  with the service ID (>svid)
       KCMF        <--  with blanks
       Evaluate:
       KCVGST      -->  service status:
                 I         job-receiving service inactive
                 E         job-receiving service terminated with PEND ER/FR
                 Z         job-receiving service terminated by openUTM with PEND ER
                 R         job-receiving service terminated with PEND RS
                 T         time has expired (timer)
       KCTAST      -->  transaction status:
                 I         transaction in job-receiving service inactive
                 R         transaction in job-receiving service rolled back
                 M         mismatch
If there is no status information present:
APRO   Address the job-receiving service (if not already done)
       Set:
       KCOM        <--  with DM for dialog service
       KCRN        <--  with the LTAC of the job-receiving service
       KCPA        <--  with double-step addressing:
                        with the name of the partner application
       KCPI        <--  with a self-selected service ID (>svid)
       KCLM        ,    0
MPUT   to job-receiving service
       Set:
       KCOM        <--  NT or NE
       KCRN        <--  with the service ID (>svid)
       KCMF        <--  possible format ID for job-receiver
       KCDF        <--  binary 0
       KCLM        <--  length
PEND   (end of first unit)
       Set:
       KCOM        <--  PEND call variant:
                 KP        normally recommended in the job-submitting
                           service
                 RE        end of transaction is requested
                 FI        not allowed because job-receiver still open
                 ER/FR     also aborts job-receiving service
                 PA        prohibited after MPUT to job-receiving service
                 PR        prohibited after MPUT to job-receiving service
                 SP        prohibited after MPUT to job-receiving service
                 FC        prohibited after MPUT to job-receiving service
       KCRN        <-- name of follow-up program unit of job submitter
                       (second unit of the job-submitting program)
2. Job-receiving program
INIT
       Evaluate:
       KCBENID     -->  name of the session
       KCLOGTER    -->  name of the partner application
       KCTERMN     -->  ID of the partner application
       KCCP        -->  ID of the protocol used, '1' is entered for LU6.1
       KCRMF       -->  format ID from first MPUT of the job submitter
MGET   Read message from job-submitting service
       Evaluate:
       KCRCCC      -->  KDCS error code 19Z through 39Z cannot occur
       KCRLM       -->  length from MPUT of the job submitter (KCLM)
       KCRST Byte1 -->  service status of job-submitting service:
                        O   job-submitting service is open
       KCRST Byte2 -->  transaction status of job-submitting service
                        O   transaction is open (PEND KP for job submitter)
                        P   end of transaction initiated (PEND RE)
                        C   transaction with job submitter terminated
       KCRMF            if more message segments still present:
                        format ID of the next segment, otherwise:
                        format ID of segment read.
MPUT   unchanged
       Set:
       KCOM        <--  with NT or NE
       KCMF        <--  format ID or blanks
       KCLM        <--  length of the message
       KCRN        <--  with blanks to send the message to the job submitter
       KCDF        <--  any value which the job submitter receives
                           with MGET
PEND   End of job-receiving program unit
       Set:
       KCOM        <--     depending on the transaction status:
                 KP        only allowed with KCTAST=O or C
                 RE        terminates the transaction with KCTAST=P or initiates end of
                           transaction with KCTAST=O or C
                 FI        end of the job-receiving service, otherwise as PEND RE
                 ER/FR     end of the job-receiving service, transaction is rolled back, job
                           submitter is informed
                 PA/PR     no special points, cannot be used to send a message to the job
                           submitter
       KCRN        <--  if necessary (with PEND KP or PEND RE), name of the follow-up 
                        program unit of job-receiving service
3. Follow-up program unit of the job-submitting program (second unit)
INIT
       Evaluate:
       KCRPI       <--  service ID of the job-receiving service
       KCRMF       <--  format ID from 1st MPUT of the job receiver
MGET   Read message from the job receiver
       Set:
       KCOM        <--  NT
       KCLA        <--  length of the message area
       KCRN        <--  service ID from KCRPI of the INIT call
       KCMF        <--  format ID from KCRMF of the INIT call
       Evaluate:
       KCRLM       -->  actual length of the input message
       KCRMF       -->  if more message segments present:
                        format ID of next segment, otherwise:
                        format ID of segment read.
       KCRDF       -->  value from the relevant MPUT of the
                        job-receiving service.
       KCRPI       -->  service ID if further message
                        segments present
       KCRST Byte1 -->  service status of job-receiving service:
                        O   job-receiving service is open
                        C   job-receiving service is terminated (PEND FI)
       KCRST Byte2 -->  transaction status of job-receiving service:
                        O   transaction is open (PEND KP)
                        P   job receiver has requested end of transaction (with PEND RE or 
                            FI, PTC status)
                        C   transaction is terminated (PEND RE or FI)
MPUT   to the terminal
       Set:
       KCRN        <--  with blanks
       KCOM        <--  with NT or NE
       KCLM        <--  with the length of the message
       KCMF        <--  with the format ID or blanks
       KCDF        <--  if necessary, with a screen function
PEND   end of the follow-up program unit of the job-receiving service
       Set:
       KCOM        <--  depending on status indicators in KCRST
                 FI        only allowed with KCVGST=C, terminates service and transaction
                 RE        terminates the transaction with KCTAST=P, not allowed with 
                           KCTAST=O (because message directed to terminal)
                 ER/FR     rolls back transaction, job-receiving service is also rolled back
                           and terminated;
                           only exception: KCTAST=C and KCVGST=C.
                 KP        not recommended if KCTAST=P
                 PA/PR     prohibited since message was sent to terminal.
       KCRN        <--  if necessary (with PEND KP or PEND RE), name of the follow-up 
                        program unit of the job-submitting service