TPF : Support : Maintenance TPF : Support : Maintenance
SUBJECT: APAR NUMBER: PJ27925 (HIPER)
REFERENCE: AREA: MQS SUPPORT
SEGMENT: C$MQRM40 - RELEASE: TPF4 (C-Header)
SEGMENT: CL1340 - RELEASE: TPF4 (C)
SEGMENT: CL1440 - RELEASE: TPF4 (C)
SEGMENT: CL3140 - RELEASE: TPF4 (Assembler)
SEGMENT: CMQCKP40 - RELEASE: TPF4 (C++)
SEGMENT: CMQFRM40 - RELEASE: TPF4 (C++)
SEGMENT: CMQMRM40 - RELEASE: TPF4 (C++)
SEGMENT: CMQRCV40 - RELEASE: TPF4 (C++)
SEGMENT: CMQRM40 - RELEASE: TPF4 (C++)
SEGMENT: CMQXLR40 - RELEASE: TPF4 (C++)
SEGMENT: CMQXRM40 - RELEASE: TPF4 (C++)
SEGMENT: CXQPRP40 - RELEASE: TPF4 (Assembler)
SEGMENT: I$MQRT40 - RELEASE: TPF4 (C-Header)
SEGMENT: I$TMCR40 - RELEASE: TPF4 (C-Header)
SEGMENT: ICRCR40 - RELEASE: TPF4 (Dsect)
SEGMENT: ICRCT40 - RELEASE: TPF4 (Dsect)
SEGMENT: IMQRM40 - RELEASE: TPF4 (Dsect)
SEGMENT: SPPGML40 - RELEASE: TPF4 (Macro)
Pre-requisite APARs are:
FOR SEGMENT C$MQRM40 (C-Header) - REL TPF4
PJ27023
FOR SEGMENT CL1340 (C) - REL TPF4
PJ25094
FOR SEGMENT CL1440 (C) - REL TPF4
PJ25094
FOR SEGMENT CL3140 (Assembler) - REL TPF4
PJ25094
FOR SEGMENT CMQCKP40 (C++) - REL TPF4
PJ27023PJ27384PJ27892
FOR SEGMENT CMQFRM40 (C++) - REL TPF4
PJ27023PJ27332
FOR SEGMENT CMQMRM40 (C++) - REL TPF4
PJ27023PJ27698PJ27674
FOR SEGMENT CMQRCV40 (C++) - REL TPF4
PJ27023PJ27221PJ27351PJ27991PJ27779
FOR SEGMENT CMQRM40 (C++) - REL TPF4
PJ27023PJ27536
FOR SEGMENT CMQXLR40 (C++) - REL TPF4
PJ27023PJ27050PJ27221PJ27351PJ27431PJ27991
FOR SEGMENT CMQXRM40 (C++) - REL TPF4
PJ27023
FOR SEGMENT CXQPRP40 (Assembler) - REL TPF4
PJ27023PJ27351PJ27708
FOR SEGMENT I$MQRT40 (C-Header) - REL TPF4
PJ27023
FOR SEGMENT I$TMCR40 (C-Header) - REL TPF4
PJ25094PJ25182PJ25258PJ26439PJ26687PJ27023PJ27460PJ27446
FOR SEGMENT ICRCR40 (Dsect) - REL TPF4
PJ25094PJ25258PJ27023
FOR SEGMENT ICRCT40 (Dsect) - REL TPF4
PJ25094PJ25182PJ25258PJ26439PJ26687PJ27023PJ27460PJ27446
FOR SEGMENT IMQRM40 (Dsect) - REL TPF4
PJ27023
FOR SEGMENT SPPGML40 (Macro) - REL TPF4
PJ13509 PJ13579 PJ14357 PJ14282
PJ14858 PJ14605 PJ14437
PJ16213 PJ15454 PJ14737 PJ14947
PJ17852 PJ17912 PJ15728
PJ19734 PJ19949 PJ19966 PJ19938
PJ19866 PJ21121 PJ21044
PJ20777 PJ21167 PJ21596 PJ21584
PJ21592 PJ21791 PJ20388
PJ21953 PJ22079 PJ22088 PJ22098
PJ21706 PJ22170 PJ21709
PJ22389 PJ21452 PJ21906 PJ21701
PJ21705 PJ23148 PJ23128
PJ22434 PJ23178 PJ23180 PJ23318
PJ22937 PJ23312 PJ22843
PJ23430 PJ23434 PJ23338 PJ21693
PJ23297 PJ21694 PJ21708
PJ24035 PJ23931 PJ23923 PJ23922
PJ24344 PJ24025 PJ24472
PJ23620 PJ23526 PJ24525PJ24530PJ24563PJ24548PJ24622
PJ24468 PJ23984 PJ24771PJ24845PJ25084PJ25094PJ25098PJ25089PJ25158PJ25240PJ25277PJ25266PJ25207PJ25174
PJ23981 PJ25075PJ25375PJ25379PJ25491PJ25199PJ25425PJ25632PJ25614PJ25589PJ25703PJ25720PJ25332PJ25760PJ25763PJ25781PJ25780PJ25817PJ25982PJ25983PJ25981PJ26125PJ25880PJ26150PJ26187PJ26008PJ26156PJ26161PJ26188PJ26174PJ26270PJ26337PJ26374PJ26366PJ26283PJ25761PJ26515PJ26575PJ26577PJ26534PJ26683PJ26522PJ26713PJ26600PJ26581PJ26666PJ26693PJ26686PJ26809PJ26707PJ26864PJ26892PJ26746PJ26793PJ26841PJ26887PJ26967PJ27023PJ27028 PJ21337
PJ26904PJ26890PJ27079PJ26895PJ27156PJ27095PJ27197PJ27246PJ27305PJ27345PJ27231PJ27277PJ27351PJ27387PJ27328PJ27383PJ27083PJ27299PJ27302PJ27268PJ27333PJ27214PJ27393PJ27422PJ27180PJ27469PJ27094PJ27430PJ27636PJ27380PJ27491PJ27647PJ27714PJ27484PJ27530PJ27627PJ27650PJ27617PJ27686PJ27634PJ27804PJ27746PJ27784PJ27865PJ27894PJ27786PJ27847PJ27951PJ27863PJ27905PJ27954PJ27848
To be applied in the order listed for each segment.
ABSTRACT OF PROBLEM
___________________
With turbo enhancements for TPF support of MQSeries Local Queue
Manager (PJ27023) applied, a CTL-C system error may occur during
TPF system restart because of an excessive use of SWBs and
system heap.
COMMENTS ON PROBLEM
___________________
Turbo enhancements for TPF support of MQSeries Local Queue
Manager (PJ27023) provides a high performance local queue
manager on the TPF system. In order to achieve this high per-
formance, the operations of the MQSeries local queue manager are
closely tied to the TPF transaction services recovery log. The
MQSeries local queue manager writes information about all recov-
erable transactions to the TPF recovery log. In the event of a
system outage, all local queues will then be rebuilt to their
state before the system outage occurred.
During system restart, the MQSeries restart and recovery process
saves all relevant information for indoubt MQSeries transactions
in the MQSeries recovery table (MQRT) and MQSeries transaction
table (MQTXT). These recovery tables are built dynamically and
stored in system heap frames. If there are a large number of
MQSeries transaction events (for example, MQPUT, MQGET, queue
sweep, queue unsweep, and so on) present on the TPF recovery
log, this can cause an excessive amount of data to be saved in
the MQTXT. If the MQTXT becomes too large, the TPF system can
run out of system heap frames, causing a catastrophic CTL-C
system error.
In addition, the TPF transaction manager (TM) must maintain a
record of all committed transactions found on the TPF recovery
log during the recovery process. For each committed transaction
found, a TM control record (TMCR) is created in the transaction
1
anchor table (TANC). Each TMCR resides in a single system work
block (SWB). If there are a large number of committed trans-
actions on the TPF recovery log, the TPF system may run out of
SWBs, causing a catastrophic CTL-C system error.
In each of these instances, a prolonged system outage will occur
because of the looping catastrophic dumps during the restart
process.
SOLUTION
________
In order to minimize the number of system heap frames used
during MQSeries restart and recovery, the phase 1 processing has
been modified to save MQGET or queue sweep transaction events
only if there is a possibility that the specified message is
present in the checkpointed version of the queue. In order to
due this, two new MQSeries log records are being written to the
TPF recovery log. The first indicates that the checkpoint
process has begun for a particular subsystem. The second indi-
cates that the checkpoint process has successfully completed for
a particular subsystem. By referencing these new MQSeries log
records, the MQSeries restart and recovery process will not save
MQGET or queue sweep log records if the corresponding addition
of the message to the queue (with MQPUT or queue unsweep)
occurred in the same checkpoint scope as the removal of the
message from the queue. A message is said to be added and
removed to and from the queue in the same checkpoint scope if
both events occurred before the most recent checkpointing
process began or if both events occurred after the most recent
checkpointing process completed. In each of these instances,
the message is guaranteed to not be present in the checkpointed
version of the queue and it is not necessary to save any infor-
mation about the message. This will reduce the number of system
heap frames used during processing of the TPF recovery log.
In addition, the TPF transaction manager (TM) has been updated
to save a list of all committed transaction IDs (TIDs) in a
dynamically created hash table. A TM control record (TMCR) is
only created in the event that it is needed during the recovery
process by one of the resource managers (RMs) of the system,
which reduces the number of SWBs used during processing of the
TPF recovery log.
DEPENDENCIES
____________
Related Segments Affected By This APAR.
_______________________________________
Segments to be assembled or compiled:
None.
Segments to be link edited:
CL13BS
CL14BS
CMQFBS
CMQMBS
CMQSBS
CMQXBS
CTALBS
CUIUBS
Load Modules to be loaded:
None.
Migration Considerations
========================
o If running in a loosely coupled complex, PJ27991 must be applied
to all processors that are not updated with PJ27925.
In the event of a log takeover situation, without PJ27991 applied,
a processor not updated with PJ27925 may encounter a CTL-D4 or
CTL-3 system error because of the unrecognized checkpoint begin and
checkpoint end log records added by PJ27925.
o A stub must be built for CL13.
-- END APAR PJ27925