Change Journal (CHGJRN)
The Change Journal (CHGJRN) command changes the journal receiver, the journal message queue, the manage receiver attribute, the delete receiver attribute, the receiver size options, the journal state, allowing minimized entry specific data, journal caching, the journal receivers threshold, the journal object limit, the journal recovery count, or the text associated with the specified journal. The command allows one journal receiver to be attached to the specified journal. This replaces the previously attached journal receiver. The newly-attached journal receiver begins receiving journal entries for the journal immediately.
The sequence numbering of journal entries can be reset when the receiver is changed. If the sequencing is not reset, an informational message is sent indicating the first sequence number in the newly attached receiver. If RCVSIZOPT(*MAXOPT1 or *MAXOPT2) is in effect for the journal, an informational message (CPF7019) is sent to the system operator recommending that the sequence numbers be reset when the first sequence number is greater than 9,500,000,000. If RCVSIZOPT(*MAXOPT3) is in effect for the journal, an informational message (CPF7019) is sent to the system operator recommending that the sequence numbers be reset when the first sequence number is greater than 18,446,600,000,000,000,000. Otherwise, CPF7019 is sent when the first sequence number is greater than 2,000,000,000.
If *SAME is specified on the JRNRCV parameter, the currently attached journal receiver remains attached.
The journal receiver can be changed when these journal functions are in progress: comparing images, displaying journals, receiving or retrieving journal entries, applying or removing journal changes, working with journal attributes, restoring journal receivers, or displaying journal receiver attributes.
Restrictions:
- To use this command, the user must be signed on as QPGMR, QSYSOPR, or QSRV, or have *ALLOBJ authority.
- The receiver specified must be created before issuing this command, and it must be empty (that is, the receiver must not have been previously attached to a journal or have been in the process of being attached to a journal).
- No more than one journal receiver can be attached to the journal at any specific time.
- Resetting of sequence numbers is not valid if JRNRCV(*SAME) is specified, if any objects being journaled contain changes that have not yet been forced to auxiliary storage, or if any commit control changes associated with the journal are pending. When the maximum sequence number is reached, an error message is sent (entry not journaled) and all subsequent operations that require journaling fail.
- If one of the *MAXOPT values from the RCVSIZOPT parameter is not to be in effect for the journal, the maximum threshold value that can be specified for any journal receiver being attached is 1,919,999 kilobytes.
- SEQOPT(*RESET) must be specified if the journal currently has one of the *MAXOPT values for the RCVSIZOPT parameter in effect, and no *MAXOPT value is being specified as part of the CHGJRN request.
- If the library containing the journal is on an independent ASP then the journal receiver specified must be located on an independent ASP that is in the same ASP group as the journal's library. Likewise, if the library containing the journal is not on an independent ASP, then the journal receiver specified cannot be located on an independent ASP.
- RCVSIZOPT(*MINFIXLEN) and FIXLENDTA cannot be used for the system security audit journal QSYS/QAUDJRN. Journal entries in the security audit journal are required to contain all possible data that could be used for auditing purposes.
- SEQOPT(*RESET) must be specified if the journal currently has RCVSIZOPT(*MAXOPT3) in effect, and *MAXOPT3 is not being specified as part of the CHGJRN request.
- JRNOBJLMT(*MAX10M) is only valid if one of the *MAXOPT values was specified for the RCVSIZOPT parameter.
- JRNOBJLMT(*MAX10M), once specified for a journal, cannot be changed.
Keyword |
Description |
Choices |
Notes |
JRN |
Journal |
Qualified object name |
Required, Key, Positional 1 |
Qualifier 1: Journal |
Name |
Qualifier 2: Library |
Name, *LIBL, *CURLIB |
JRNRCV |
Journal receiver |
Single values: *SAME Other values: Element list |
Optional, Positional 2 |
Element 1: Journal receiver |
Single values: *GEN Other values: Qualified object name |
Qualifier 1: Journal receiver |
Name |
Qualifier 2: Library |
Name, *LIBL, *CURLIB |
Element 2: Journal receiver |
Single values: *GEN Other values: Qualified object name |
Qualifier 1: Journal receiver |
Name |
Qualifier 2: Library |
Name, *LIBL, *CURLIB |
SEQOPT |
Sequence option |
*CONT, *RESET |
Optional |
MSGQ |
Journal message queue |
Single values: *SAME Other values: Qualified object name |
Optional |
Qualifier 1: Journal message queue |
Name |
Qualifier 2: Library |
Name, *LIBL, *CURLIB |
MNGRCV |
Manage receivers |
*SAME, *SYSTEM, *USER |
Optional |
DLTRCV |
Delete receivers |
*SAME, *NO, *YES |
Optional |
RCVSIZOPT |
Receiver size options |
Single values: *SAME, *SYSDFT, *NONE Other values (up to 3 repetitions): *RMVINTENT, *MINFIXLEN, *MAXOPT1, *MAXOPT2, *MAXOPT3 |
Optional |
JRNSTATE |
Journal state |
*SAME, *ACTIVE, *INACTIVE, *STANDBY |
Optional |
MINENTDTA |
Minimize entry specific data |
Single values: *SAME, *NONE Other values (up to 2 repetitions): *FILE, *FLDBDY, *DTAARA |
Optional |
JRNCACHE |
Journal caching |
*SAME, *NO, *YES |
Optional |
MNGRCVDLY |
Manage receiver delay time |
1-1440, *SAME |
Optional |
DLTRCVDLY |
Delete receiver delay time |
1-1440, *SAME |
Optional |
FIXLENDTA |
Fixed length data |
Single values: *JOBUSRPGM Other values (up to 9 repetitions): *JOB, *USR, *PGM, *PGMLIB, *SYSSEQ, *RMTADR, *THD, *LUW, *XID |
Optional |
THRESHOLD |
Journal receiver threshold |
100000-1000000000, *SAME, *NONE |
Optional |
JRNOBJLMT |
Journal object limit |
*SAME, *MAX10M |
Optional |
JRNRCYCNT |
Journal recovery count |
10000-2000000000, *SAME, *SYSDFT |
Optional |
TEXT |
Text 'description' |
Character value, *BLANK, *SAME |
Optional |
Journal (JRN)
Specifies the name and library of the journal for which journal receivers or operational attributes are being changed.
This is a required parameter.
- journal-name
- Specify the journal having journal receivers or operational attributes changed.
- *LIBL
- All libraries in the library list for the current thread are searched until the first match is found.
- *CURLIB
- The current library for the job is searched. If no library is specified as the current library for the job, QGPL is used.
- library-name
- Specify the name of the library to be searched.
Journal receiver (JRNRCV)
Specifies which journal receiver to attach to the specified journal.
Note: This parameter cannot be specified for remote journals.
Single values
- *SAME
- The value does not change.
Element 1: Journal receiver
Single values
- *GEN
- The journal receiver is created by the system and then attached to the specified journal. The journal receiver is created with the same attributes, with the same owner, with the same authorities, with the same audit level, and in the same library as the currently attached journal receiver. The name of the new journal receiver is derived by appending a 4-digit number to a portion of the name of the current receiver, or by adding 1 to the number in the name of the current journal receiver. The name of the journal receiver that was created and attached is returned in an informational message. More information on generated journal receiver names is in the Journal Management information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter.
Qualifier 1: Journal receiver
- receiver-name
- Specify the name of the journal receiver being attached to the identified journal. The journal receiver must have been previously created in the specified library, and must not have been previously attached to a journal or have been in the process of being attached to a journal.
Qualifier 2: Library
- *LIBL
- All libraries in the library list for the current thread are searched until the first match is found.
- *CURLIB
- The current library for the job is searched. If no library is specified as the current library for the job, the QGPL library is used.
- library-name
- Specify the name of the library to be searched.
Element 2: Journal receiver
The second journal receiver, if specified, is ignored.
Sequence option (SEQOPT)
Specifies whether the journal sequence number is continued from the currently attached journal receiver or the journal sequence number is reset to 1 in the newly attached journal receiver.
Note: This parameter cannot be specified for remote journals.
- *CONT
- The journal sequence number of the next journal entry created is one greater than the sequence number of the last journal entry in the currently attached journal receiver.
- *RESET
- The journal sequence number of the first journal entry in the newly attached journal receiver is reset to 1. *RESET is not valid if *SAME is specified on the Journal receiver (JRNRCV) parameter, if any object being journaled contains changes that have not yet been forced to auxiliary storage, or if any commitment control changes associated with the journal are pending.
Journal message queue (MSGQ)
Specifies the qualified name of the message queue associated with the journal. A message is sent to this queue when one of the following occurs:
- When an attached journal receiver's threshold is surpassed, the message CPF7099 is sent if the journal has the MNGRCV(*USER) attribute.
- When an attached journal receiver's threshold is surpassed, the system attempts to create and attach a new receiver if the journal has the MNGRCV(*SYSTEM) attribute. When the old receiver is detached, the message CPF7020 is sent. If the attempt fails due to lock conflicts, the system sends the message CPI70E5 and then tries again every 10 minutes (or as often as requested via the MNGRCVDLY parameter) until the change journal operation is successful.
- If the journal receiver was attached while RCVSIZOPT(*MAXOPT1 or *MAXOPT2) was in effect for the journal, message CPI70E7 is sent when the sequence number exceeds 9,900,000,000. If the journal receiver was attached while RCVSIZOPT(*MAXOPT3) was in effect for the journal, message CPI70E7 is sent when the sequence number exceeds 18,446,644,000,000,000,000. Otherwise, message CPI70E7 is sent when a journal receiver's sequence number exceeds 2,147,000,000.
- When the system cannot determine if the journal has the MNGRCV(*SYSTEM) attribute, or if the attempt to create and attach a new journal receiver fails because of something other than a lock conflict, the message CPI70E3 is sent.
- When remote journal operations occur, see the Journal Management information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter for more details.
- When the system cannot delete a receiver due to a lock conflict, an exit program indicating that the receiver cannot be deleted, or the receiver is not yet fully replicated to all remote journals, CPI70E6 is sent and the operation will be retried every 10 minutes (or as often as requested via the DLTRCVDLY parameter). If a delete fails for any other reason, CPI70E1 is sent.
To set the threshold value, refer to the Journal receiver threshold (THRESHOLD) parameter or the Create Journal Receiver (CRTJRNRCV) command description.
Note: A message queue that is in library QTEMP cannot be specified on this parameter.
Single values
- *SAME
- The value does not change.
Qualifier 1: Journal message queue
- journal-message-queue-name
- Specify the name of the journal message queue that replaces the message queue previously specified and to which the journal messages are sent. If this message queue is not available when a message is to be sent, the message is sent to the QSYSOPR message queue.
Qualifier 2: Library
- *LIBL
- All libraries in the library list for the current thread are searched until the first match is found.
- *CURLIB
- The current library for the job is used to locate the journal message queue. If no library is specified as the current library for the job, QGPL is used.
- library-name
- Specify the library where the journal message queue is located.
Manage receivers (MNGRCV)
Specifies how the changing of journal receivers (detaching the currently attached journal receiver and attaching a new journal receiver) is managed.
Note: This parameter cannot be specified for remote journals.
- *SAME
- The value does not change.
- *SYSTEM
- The system manages the changing of journal receivers (this function is called system change-journal management). When an attached journal receiver reaches its size threshold, the system detaches the attached journal receiver and creates and attaches a new journal receiver. Message CPF7020 is sent to the journal message queue when the journal receiver is detached. If changing to *SYSTEM and *GEN is specified for the Journal receiver (JRNRCV) parameter, and the currently attached receiver has no threshold specified, the new receiver will be given a threshold of 1500000KB. *SYSTEM is not valid if *SAME is specified on the Journal receiver (JRNRCV) parameter.
Also, if the journal receiver was attached while RCVSIZOPT(*MAXOPT1 or *MAXOPT2) was in effect for the journal, the system attempts to perform a CHGJRN command to reset the sequence number when the journal receiver's sequence number exceeds 9,900,000,000. If the journal receiver was attached while RCVSIZOPT(*MAXOPT3) was in effect for the journal, the system attempts to perform a CHGJRN command to reset the sequence number when the journal receiver's sequence number exceeds 18,446,644,000,000,000,000. For all other journal receivers, the system attempts this CHGJRN when the sequence number exceeds 2,147,000,000.
Additionally, during an initial program load (IPL) or the vary on of an independent ASP, the system performs a CHGJRN command to create and attach a new journal receiver and to reset the journal sequence number of journals that are not needed for commitment control recovery for that IPL or vary on, unless the RCVSIZOPT is *MAXOPT3. The sequence number will not be reset and a new journal receiver will not be attached if the RCVSIZOPT is *MAXOPT3 unless the sequence number exceeds the sequence number threshold which is 18,446,600,000,000,000,000.
Notes:
- The journal receiver threshold value must be non-zero to specify MNGRCV(*SYSTEM). The journal receiver threshold value can be specified on the THRESHOLD parameter of this command or by specifying a threshold value on the Create Journal Receiver (CRTJRNRCV) command.
- Specifying MNGRCV(*SYSTEM) does not prevent you from using this command to manage journal receiver.
- *USER
- The user manages the changing of journal receivers by issuing the CHGJRN command to attach a new receiver and detach an old receiver.
Delete receivers (DLTRCV)
Specifies whether the system deletes journal receivers when they are no longer needed or leaves them on the system for the user to delete after they have been detached by system change-journal management or by a user-issued CHGJRN command.
Note: This parameter can be specified only if MNGRCV(*SYSTEM) is specified, or if the journal currently has the MNGRCV(*SYSTEM) attribute, or if the journal is a remote journal.
- *SAME
- The value does not change.
- *NO
- The journal receivers are not deleted by the system.
- *YES
- The journal receivers are deleted by the system. To specify this value, no receivers other than the currently attached receiver can be in the receiver directory.
Note: To find out which journal receivers are in the receiver directory, you can view the Work with Receiver Directory display, which can be accessed using the Work with Journal Attributes (WRKJRNA) command.
When the journal has the DLTRCV(*YES) attribute, the following conditions can prevent the system from deleting the receiver. When one of these conditions occurs, the system sends message CPI70E6 to the journal message queue, and then retries the delete operation every 10 minutes (or as often as requested via the DLTRCVDLY parameter) until the operation is successful.
- A lock conflict occurs for either the journal receiver or its journal.
- An exit program that was registered by way of the QIBM_QJO_DLT_JRNRCV exit point indicates that a receiver is not eligible for deletion.
- A journal has remote journals associated with it and one or more of the associated remote journals do not yet have full copies of this receiver.
Receiver size options (RCVSIZOPT)
Specifies the options that affect the size of the receiver attached to the journal.
Note: To remove a receiver size option, specify all the receiver size options you want to keep and do not specify the one you want to remove.
Note: *SYSDFT, *NONE, *RMVINTENT, *MINFIXLEN, *MAXOPT1, *MAXOPT2, and *MAXOPT3 are not valid if *SAME is specified on the Journal receiver (JRNRCV) parameter.
Note: This parameter cannot be specified for remote journals.
Note: You can specify only one of the three choices between *MAXOPT1, *MAXOPT2, and *MAXOPT3.
Single values
- *SAME
- The value does not change.
- *SYSDFT
- The system uses the current recommended values. Specifying this value is currently equivalent to specifying *MAXOPT2 and *RMVINTENT.
- *NONE
- No options affect the size of the journal entries attached to the receiver. All journal entries placed on the receiver are permanent. The fixed length data as defined by FIXLENDTA will be included in every journal entry deposited into the attached journal receiver.
Other values (up to 3 repititions)
- *RMVINTENT
- The size of the receiver attached to the journal is reduced by automatic removal of the internal entries required only for initial program load (IPL) or independent ASP vary on recovery when these entries are no longer required.
- *MINFIXLEN
- The size of the journal entries that are deposited into the attached journal receiver is reduced by the automatic removal of fixed-length data that is deemed not to be required for recovery purposes. This option is not valid when FIXLENDTA is also specified.
- *MAXOPT1
- If this is specified for the journal, the journal receiver attached to that journal can have a maximum receiver size of approximately one terabyte (1,099,511,627,776 bytes) and a maximum sequence number of 9,999,999,999. Additionally, the maximum size of the journal entry which can be deposited is 15,761,440 bytes. This value cannot be specified if *MAXOPT2 or *MAXOPT3 is specified.
- *MAXOPT2
- If this is specified for the journal, the journal receiver attached to that journal can have a maximum receiver size of approximately one terabyte (1,099,511,627,776 bytes) and a maximum sequence number of 9,999,999,999. Additionally, the maximum size of the journal entry which can be deposited is 4,000,000,000 bytes. This value cannot be specified if *MAXOPT1 or *MAXOPT3 is specified.
- *MAXOPT3
- If this is specified for the journal, the journal receiver attached to that journal can have a maximum receiver size of approximately one terabyte (1,099,511,627,776 bytes) and a maximum sequence number of 18,446,744,073,709,551,600. Additionally, the maximum size of the journal entry which can be deposited is 4,000,000,000 bytes. These journal receivers cannot be saved and restored to any releases prior to V5R3M0 nor can they be replicated to any remote journals on any systems at releases prior to V5R3M0. Also, during an initial program load (IPL) or the vary on of an independent ASP, when MNGRCV(*SYSTEM) is specified, the system will not automatically perform a CHGJRN command to create and attach a new journal receiver and reset the journal sequence number unless the sequence number exceeds the sequence number threshold which is 18,446,600,000,000,000,000. This value cannot be specified if *MAXOPT1 or *MAXOPT2 is specified.
Journal state (JRNSTATE)
Specifies whether journal entries are allowed to be deposited into the journal.
Note: Values *ACTIVE, *INACTIVE, and *STANDBY are only valid when JRNRCV(*SAME) is specified.
- *SAME
- The value does not change.
- *ACTIVE
- All journal entries are allowed to be deposited into the journal.
Note: This value cannot be specified for remote journals.
- *INACTIVE
- This state only applies to remote journals. When a remote journal is *INACTIVE, no entries are being received from the source system. When the journal state is changed to *ACTIVE, the outstanding entries will be sent from the source system.
Note: If this value is specified, the remaining parameters except for JRN, must specify *SAME.
- *STANDBY
- Most journal entries are not deposited into the journal. If an attempt is made to deposit an entry into the journal, there will be no errors indicating that the entry was not deposited. While in *STANDBY state, journaling can be started or stopped. However, using commitment control is not allowed while in *STANDBY state. Because commitment control is not allowed, functions where the system uses commitment control internally are also not allowed.
Note: This value cannot be specified for remote journals.
Note: See the Journal Management information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter for which journal entries are allowed to be deposited in these states.
Minimize entry specific data (MINENTDTA)
Specifies which object types allow journal entries to have minimized entry specific data.
Journal receivers using the *FLDBDY option to minimize the entry specific data cannot be saved and restored to any release prior to V5R4M0 nor can they be replicated to any remote journal on a system at a release prior to V5R4M0. See the Journal Management information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter for restrictions and usage of journal entries with minimized entry specific data.
Note: *NONE, *FILE, FLDBDY, and *DTAARA are not valid if *SAME is specified on the Journal receiver (JRNRCV) parameter.
Note: This parameter cannot be specified for remote journals.
- *SAME
- The value does not change.
- *NONE
- No object type allows a journal entry with minimized entry specific data. Journal entries for all journaled objects will be deposited in the journal with complete entry specific data.
- *FILE
- Journaled files may have journal entries deposited with minimized entry specific data. The minimizing will not occur on field boundaries. Therefore, the entry specific data may not be viewable and may not be used for auditing purposes. This value cannot be specified if *FLDBDY is specified.
- *FLDBDY
- Journaled files may have journal entries deposited with minimized entry specific data. The minimizing for journaled files will occur on field boundaries. Therefore, the entry specific data will be viewable and may be used for auditing purposes.
- *DTAARA
- Journaled data areas may have journal entries deposited with minimized entry specific data.
Journal caching (JRNCACHE)
Specifies whether journal entries will be cached before being written out to disk.
Note: This parameter cannot be specified for remote journals.
- *SAME
- The value does not change.
- *NO
- Journal entries are written to disk immediately if needed to assure single-system recovery.
- *YES
- Journal entries are written to main memory. When there are several journal entries in main memory then the journal entries are written from main memory to disk. If the application performs large numbers of changes, this may result in fewer synchronous disk writes resulting in improved performance. However, it is not recommended to use this option if it is unacceptable to lose even one recent change in the event of a system failure where the contents of main memory are not preserved. This type of journaling is directed primarily toward batch jobs and may not be suitable for interactive applications where single system recovery is the primary reason for journaling.
Note: Applications using commitment control will likely see less performance improvement because commitment control already performs some journal caching.
Note: Entries that are in the cache are not displayable using the Display Journal (DSPJRN) command, Receive Journal Entries (RCVJRNE) command, Retrieve Journal Entries (RTVJRNE) command, or the QjoRetrieveJournalEntries API. Also, entries that are in the cache are not sent to a target system with remote journal. However, these journal entries are included in the last journal sequence number for the journal receiver returned via the Display Journal Receiver Attributes (DSPJRNRCVA) command or QjoRtvJrneReceiverInformation API.
Note: This value cannot be specified if the journal-name starts with a Q and the journal-library starts with a Q, unless the library is QGPL.
Manage receiver delay time (MNGRCVDLY)
Specifies the time (in minutes) to be used to delay the next attempt to attach a new journal receiver to this journal if the journal is system managed (MNGRCV(*SYSTEM)).
Note: This parameter cannot be specified for remote journals.
- *SAME
- The value does not change.
- 1-1440
- When the system cannot allocate an object needed to attach a new journal receiver to this journal, it will wait the specified number of minutes before trying again.
Delete receiver delay time (DLTRCVDLY)
If the system cannot allocate an object needed to delete a journal receiver associated with this journal and the journal has DLTRCV(*YES) specified, this parameter specifies the time (in minutes) to be used to delay the next attempt to delete the journal receiver.
- *SAME
- The value does not change.
- 1-1440
- System waits the specified number of minutes before trying again.
Fixed length data (FIXLENDTA)
Specifies the data that is included in the fixed-length portion of the journal entries that are deposited into the attached journal receiver. This parameter is not valid when RCVSIZOPT(*MINFIXLEN) is also specified.
- *JOBUSRPGM
- The job name, user name and program name will be included in the journal entries deposited into the attached journal receiver.
- *JOB
- The job name will be included in the journal entries deposited into the attached journal receiver.
- *USR
- The effective user profile name will be included in the journal entries deposited into the attached journal receiver.
- *PGM
- The program name will be included in the journal entries deposited into the attached journal receiver.
- *PGMLIB
- The program library name and the auxiliary storage pool device name that contains the program library will be included in the journal entries deposited into the attached journal receiver.
- *SYSSEQ
- The system sequence number will be included in the journal entries deposited into the attached journal receiver. The system sequence number gives a relative sequence to all journal entries in all journal receivers on the system.
- *RMTADR
- If appropriate, the remote address, the address family and the remote port will be included in the journal entries deposited into the attached journal receiver.
- *THD
- The thread identifier will be included in the journal entries deposited into the attached journal receiver. The thread identifier helps distinguish between multiple threads running in the same job.
- *LUW
- If appropriate, the logical unit of work identifier will be included in the journal entries deposited into the attached journal receiver. The logical unit of work identifies work related to specific commit cycles.
- *XID
- If appropriate, the transaction identifier will be included in the journal entries deposited into the attached journal receiver. The transaction identifier identifies transactions related to specific commit cycles.
FIXLENDTA cannot be specified for remote journals and FIXLENDTA is not valid when JRNRCV(*SAME) is specified.
Journal receiver threshold (THRESHOLD)
Specifies a storage space threshold value (in KB) for the journal receiver.
Note: If RCVSIZOPT(*RMVINTENT) is specified for the journal, the internal space occupied by the internal entries applies toward the receiver threshold. Sometime after the journal receiver is detached, the space for the internal entries will be freed. At that time the size of the journal receiver will be less than the specified threshold value.
Note: You must also specify JRNRCV(*GEN) to specify a threshold value other than *SAME.
If the threshold value is exceeded during journaling, one of the following occurs:
- The message CPF7099 is sent to the journal message queue if the journal has the MNGRCV(*USER) attribute.
- The system attempts to create and attach a new receiver if the journal has the MNGRCV(*SYSTEM) attribute. When the old receiver is detached, the message CPF7020 is sent to the journal message queue. If the attempt fails due to lock conflicts, the system sends the message CPI70E5 and then tries again every ten minutes (or as often as requested via the MNGRCVDLY parm) until the change journal operation is successful.
- When the system cannot determine if the journal has the MNGRCV(*SYSTEM) attribute, or if the attempt to create and attach a new journal receiver fails because of something other than a lock conflict, the message CPI70E3 is sent.
The journal message queue is specified on MSGQ parameter of this command or on the CRTJRN (Create Journal) command.
Note: The value for the MNGRCV parameter is specified for the journal on the MNGRCV parameter of this command or on the CRTJRN command. If you have not specified MNGRCV(*SYSTEM), and the threshold value is exceeded, you may want to take some action, such as issuing a CHGJRN command.
- *SAME
- The value does not change.
- *NONE
- No threshold value is specified. This value cannot be specified when MNGRCV(*SYSTEM) has been specified.
- 100000-1000000000
- Specify the journal receiver threshold value in kilobytes (KB) of storage. Each 1000 KB specifies 1,024,000 bytes of storage space. When the size of the space for the journal receiver is larger than the size specified by this value, a message is sent to the identified message queue if appropriate, and journaling continues.
Notes:
- If you plan to generate a journal receiver for a journal that does not have one of the *MAXOPT values from the RCVSIZOPT parameter specified, the maximum threshold you should specify is 1,919,999 in kilobytes.
Journal object limit (JRNOBJLMT)
Specifies the option that affects the maximum number of objects that can be journaled to the journal.
- *SAME
- The value does not change.
- *MAX10M
- The maximum number of objects that can be journaled to the journal is 10,000,000. Any journal receivers associated with such a journal cannot be saved or restored to any releases prior to V5R4M0 nor can they be replicated via remote journaling to any releases prior to V5R4M0.
Once this value is specified for the journal, the JRNOBJLMT cannot be set to the lower limit.
A new receiver must be attached at the same time as this value is changed.
Runtime performance concerns should be considered when choosing this option. With this new attribute, there is an opportunity for a greater number of objects journaled to one journal. Thus there is a potential opportunity of more objects that can be actively changing at the same time which can affect journal runtime performance. Therefore if the frequency of journal entries being deposited to this one journal is causing runtime performance concerns, then a better alternative would be to split the journaled objects to more than one journal.
Be aware that increasing the quantity of objects associated with a single journal may increase your IPL time, independent ASP vary on time, or disaster recovery time. As a general rule-of-thumb, if the number of actively changing objects is likely to be greater than 5,000 consider journaling some of these objects to a separate journal. The larger the number of actively changing objects for a given journal at system termination, the longer it will take to recover the journal at IPL or vary on of an independent ASP.
Journal recovery count (JRNRCYCNT)
The journal recovery count allows a user to choose between faster abnormal IPL or independent ASP vary on recovery and decreased run time processing. The value specified influences the frequency with which journaled objects are forced to auxiliary storage as those objects are changed. The specified journal recovery count indicates the approximate number of journaled changes that would need to be recovered during journal synchronization for this journal in the event of an abnormal IPL or vary on. Specifying a smaller value decreases the number of changes that would need to be recovered from this journal during an abnormal IPL or vary on by increasing the frequency with which changed objects are forced. Specifying a larger value increases the number of changes that would need to be recovered for this journal during an abnormal IPL or vary on by decreasing the frequency with which changed objects are forced. Changing this value may affect overall system performance as it affects the utilization of auxiliary storage devices.
All journals are created with the system default journal recovery count. If a value other than the system default (*SYSDFT) is specified, the system default journal recovery count will no longer be in effect for this journal.
Note: The operating system is shipped with a system default journal recovery count of 250,000. If there is a need to change the system default journal recovery count for all newly created journals and all existing journals that have the system default (*SYSDFT) specified for their journal recovery count, please refer to the Change Journal Recovery Count (QJOCHRVC) API in the System API Reference information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter.
Note: Values *SYSDFT and 10000-2000000000 are only valid when JRNRCV(*SAME) is specified.
- *SAME
- The value does not change.
- *SYSDFT
- The value is set to the system default journal recovery count.
- 10000-2000000000
- Specify the number of journal entries that can be deposited before the changes are forced to auxiliary storage.
Text 'description' (TEXT)
Specifies the text that briefly describes the journal.
- *SAME
- The text does not change.
- *BLANK
- The text is replaced by blanks.
- 'description'
- Specify no more than 50 characters of text, enclosed in apostrophes. The variable specified becomes the new text associated with this journal.
Example 1: Detaching Journal Receiver and Resetting Sequence Numbers
CHGJRN JRN(JRNLA) JRNRCV(RCV10) SEQOPT(*RESET)
This command detaches the journal receiver currently attached to journal JRNLA (JRNLA is found by using the library search list *LIBL). Journal receiver RCV10 (found using the library search list *LIBL) is attached to journal JRNLA. Because SEQOPT(*RESET) is specified, the first journal entry in journal receiver RCV10 has a sequence number of one.
Example 2: Creating and Attaching a New Journal Receiver
CHGJRN JRN(JRNLA) JRNRCV(*GEN) THRESHOLD(1500000)
This command detaches the journal receiver currently attached to journal JRNLA. A new journal receiver is created and attached to journal JRNLA. The library, owner, authority, and auditing level of the new journal receiver is the same as that of the detached receiver. The name of the new receiver depends on the name of the detached receiver. (For example, if the receiver is named RCVJRNA, the new receiver is named RCVJRN0001. If the receiver is named RCVJRN0001, the new receiver is named RCVJRN0002.) The first journal entry in the new journal receiver has a sequence number one greater than the last sequence number in the detached receiver. The new receiver will have a receiver size threshold of approximately 1500000 kilobytes.
Example 3: Changing to Use System Receiver Management
CHGJRN JRN(LIBY/JRN) JRNRCV(LIBX/RCV0001)
MNGRCV(*SYSTEM) DLTRCV(*YES)
RCVSIZOPT(*MAXOPT2) MNGRCVDLY(10) DLTRCVDLY(30)
This command detaches the journal receiver currently attached to journal JRN. The user previously created the journal receiver RCV0001 in library LIBX. This specified journal receiver is attached to the journal JRN. This new journal receiver will have a maximum size of approximately one terabyte. It will allow the sequence number to reach 9,999,999,999 and the maximum size of a journal entry that can be deposited in the journal receiver is 4,000,000,000 bytes. The first journal entry in the new journal receiver has a sequence number one greater than the last sequence number in the detached receiver. From this point on the system will manage attaching and detaching journal receivers. If the system cannot allocate an object during this process, it will wait 10 minutes and try again. From this point on, the system will also manage deleting the detached receivers. If the system cannot allocate an object while trying to delete the journal receiver it will wait 30 minutes and try again.
Example 4: Changing to Allow a Larger Object Limit
CHGJRN JRN(QGPL/DBJRN) JRNRCV(*GEN)
JRNOBJLMT(*MAX10M)
This command changes the journal DBJRN in library QGPL to allow up to 10,000,000 objects to be journaled to it. A new receiver is attached to the journal. The first entry in the new journal receiver has a sequence number one greater than the last sequence number in the detached receiver. After this change, more than 250,000 objects can be journaled to this journal.
*ESCAPE Messages
- CPF69A9
- Internal error detected, error code &2.
- CPF70A0
- FIXLENDTA parameter not allowed.
- CPF70A1
- FIXLENDTA parameter not allowed with RCVSIZOPT(*MINFIXLEN).
- CPF70A2
- JRNRCV(*SAME) not allowed.
- CPF70A5
- RCVSIZOPT value specified not allowed.
- CPF70B4
- RCVSIZOPT(&1) can not be removed.
- CPF70B5
- JRNOBJLMT(&1) not allowed.
- CPF70B6
- Receiver &1 threshold is too small.
- CPF70B8
- MINENTDTA values specified not allowed.
- CPF70C9
- State of journal &1 in &2 not changed.
- CPF70CF
- Cannot inactivate remote journal with given parameters.
- CPF70DB
- Remote journal function failed.
- CPF70DD
- Cannot attach dual receivers to journal &1.
- CPF70DE
- State of journal &1 in &2 not changed.
- CPF70DF
- Cannot change attribute for a remote journal.
- CPF70D1
- Cannot activate remote journal through CHGJRN command.
- CPF70D2
- Cannot detach journal receiver &3.
- CPF70D9
- Changing journal state not allowed. Reason code &3.
- CPF70E0
- Operation on &1 not allowed.
- CPF70E2
- DLTRCV(*YES) not allowed.
- CPF70E3
- Only attached receivers allowed in receiver directory
- CPF70E4
- MNGRCV(*SYSTEM) not allowed.
- CPF70E5
- RCVSIZOPT values specified not allowed.
- CPF70E7
- MINENTDTA value not allowed with JRNRCV(*SAME).
- CPF70F1
- Journal receiver threshold too big for journal.
- CPF70F5
- Receiver threshold value is not valid.
- CPF70F6
- RCVSIZOPT value specified not allowed.
- CPF70F8
- RCVSIZOPT, FIXLENDTA, and JRNOBJLMT value not allowed with JRNRCV(*SAME).
- CPF7003
- Entry not journaled to journal &1. Reason code &3.
- CPF7004
- Maximum number of objects journaled to journal &1.
- CPF701A
- Journal receiver not eligible for operation.
- CPF701B
- Journal recovery of an interrupted operation failed.
- CPF7011
- Not enough storage or resources.
- CPF7013
- Journal receiver not created.
- CPF7015
- Error on JRNRCV specifications.
- CPF7017
- Library QTEMP not valid for message queue parameter.
- CPF7018
- Resetting sequence number not allowed. Reason code &3.
- CPF704E
- RCVSIZOPT(*MINFIXLEN) not allowed.
- CPF708D
- Journal receiver found logically damaged.
- CPF708E
- Journal receiver not allowed with *MAXOPT1 or *MAXOPT2 or *MAXOPT3.
- CPF708F
- Cannot place a remote journal in standby.
- CPF709F
- Start of journal caching not allowed. Reason code &3.
- CPF9801
- Object &2 in library &3 not found.
- CPF9802
- Not authorized to object &2 in &3.
- CPF9803
- Cannot allocate object &2 in library &3.
- CPF9804
- Object &2 in library &3 damaged.
- CPF9806
- Cannot perform function for object &2 in library &3.
- CPF9810
- Library &1 not found.
- CPF9820
- Not authorized to use library &1.
- CPF9825
- Not authorized to device &1.
- CPF9830
- Cannot assign library &1.
- CPF9873
- ASP status is preventing access to object.
- CPF9875
- Resources exceeded on ASP &1.