Exit program to receive journal entries
Use the parameters in this topic to determine how the exit program will receive journal entries.
You use two parameters to communicate between your exit program and the system when you are receiving journal entries. The system uses the first parameter for the contents of one or more journal entries that it is passing to the exit program. The exit program uses the first parameter to indicate the block length if the exit program requests block mode.
The system and the exit program use the second parameter to communicate about status changes, such as requesting block mode or ending the RCVJRNE command. The second parameter is a character field that is three bytes long. Following are the possible values for the first byte of the second parameter:
Possible values for the first byte of the second parameter 0 This value is passed from the system to the exit program. It indicates that no journal entry is being passed on this call of the exit program. 1 This value is passed from the system to the exit program. It indicates that a single journal entry is being passed on this call of the exit program. If the specified entry format is not *TYPEPTR or *JRNENTFMT, then the figure, First parameter of RCVJRNE command: Single-entry mode shows the layout of the first parameter. Otherwise, the layout is the same as returned to the Retrieve Journal Entries (QjoRetrieveJournalEntries) API interface. 2 This value is passed from the system to the exit program. It indicates that block mode is in effect. One or more journal entries are being passed on this call of the exit program. If the specified entry format is not *TYPEPTR or *JRNENTFMT, then the figure, First parameter of RCVJRNE command: Block mode shows the layout of the first parameter. Otherwise, the layout is the same as returned to the QjoRetrieveJournalEntries API interface. 3 This value is passed from the system to the exit program. It indicates that no journal entry is being passed on this call of the exit program because the journal receiver that was attached when the Receive Journal Entry (RCVJRNE) command was started is no longer attached. The system ends the RCVJRNE command after returning this value to the exit program. 4 No journal entry is passed on this call to the exit program, and no more entries can be passed unless the local or remote journal is activated. This value can only be passed to the exit program when receiving journal entries from the attached receiver of a local or remote journal. The journal state for the journal must be *INACTIVE.
8 This value is passed from the exit program to the system. It indicates that the system must begin block mode and pass multiple entries to the exit program. You can also specify block mode by using the BLKLEN parameter of the RCVJRNE command. If you specify a BLKLEN value other than *NONE, then specifying 8 in the first byte of the second parameter will have no impact and the first 5 bytes of the first parameter bill be ignored. However even if BLKLEN(*NONE) is specified, the system will begin block mode if you specify 8 for the first byte of the second parameter.
9 This value is passed from the exit program to the system. It indicates that the RCVJRNE command will be ended.
Possible Values for the Second Byte of the Second Parameter: N This value is passed from the system to the exit program. Additional journal entries are not currently available to be passed after this call of the exit program, or the RCVJRNE command will end after this call of the exit program. Y This value is passed from the system to the exit program. Additional journal entries are currently available to be passed after this call of the exit program.
Possible values for the third byte of the second parameter: '00' x One or more journal entries are being passed to the exit program and the object names in the fixed-length portion of each journal entry do not necessarily reflect the name of the object at the time the journal entry was deposited into the journal. This value is only returned when receiving journal entries from a journal receiver that was attached to a journal prior to V4R2M0.
0 No journal entries are currently being passed, so the information that is normally returned in this byte is not applicable. 1 One or more journal entries are being passed to the exit program. The object names in the fixed-length portion of each journal entry reflect the name of the object at the time the journal entry was deposited into the journal. 2 One or more journal entries are being passed to the exit program. The object names in the fixed-length portion of each journal entry do not necessarily reflect the name of the object at the time the journal entry was deposited into the journal. The object name in the fixed-length portion of the journal entry may be returned as a known name for the object prior to the journal entry being deposited into the journal. The object name in the fixed-length portion of the journal entry may also be returned as *UNKNOWN. This value will only be returned when receiving journal entries from a remote journal and the remote journal is currently being caught up from its source journal. A remote journal is being caught up from its source journal when the Change Journal State (QjoChangeJournalState) API or Change Remote Journal (CHGRMTJRN) command is invoked and is currently replicating journal entries to the remote journal. After the call to the QjoChangeJournalState API or CHGRMTJRN command returns, the remote journal is maintained with a synchronous or asynchronous delivery mode, and the remote journal is no longer being caught up.
Refer to Retrieve journal entries from a remote journal during the catch-up phase for more information.
Any information that is passed from the exit program to the system in the second byte or third byte is ignored.
The second byte of the second exit program parameter is provided whether journal entries are being processed as a single journal entry per call of the exit program, or as a block of journal entries per call.
When an N is passed to the exit program in the second byte of the second parameter indicated that no additional journal entries are currently available, it does not necessarily mean that when the exit program returns, that the RCVJRNE command will have to wait for additional journal entries to be deposited into the journal. By the time the exit program returns, additional journal entries may already be available and depending upon what was specified on the DELAY parameter, may or may not be immediately passed to the exit program. If DELAY(N) was specified the system will wait N seconds before passing the journal entries to the exit program. If DELAY(*NEXTENT) was specified, the journal entries will immediately be passed to the exit program.
Parent topic:
Receiving journal entries in an exit programRelated concepts
Requesting block mode Retrieving journal entries from a remote journal during the catch-up phase