gtpm2m1k | Migration Guide: Program Update Tapes |
The following section discusses the migration considerations for TPF transaction services. Virtual file access (VFA) synchronization is also part of APAR PJ25094. See Virtual File Access (VFA) Synchronization (APAR PJ25094) for more information about VFA synchronization.
See the APEDIT for APAR PJ25094 for information about prerequisite APARs.
Transaction Processing Facility (TPF) transaction services includes support for a transaction manager (TM), resource managers (RMs), log manager, and recovery log to ensure a consistent view of your database.
Together, the previous components add up to significant savings for application developers.
Reducing the need for error recovery routines simplifies your design. Fewer error recovery routines also means that your coding and testing phases are shorter.
Knowing that you always have a consistent view of the database affects your application development cycle time. Either all of your file changes have been completed or none of them have; it is that simple. You no longer need to worry about a partially updated database so you can reduce the amount of error recovery code you have to write.
The combination of reduced application program complexity and development cycle time means that you can add more functions or you can get your application program to market that much sooner.
The order of updates is no longer of paramount importance. At any time, the application program could stop processing and request that the TPF 4.1 system ignore all of its previous updates.
TPF transaction services is based on the X/Open specification.
There are no changes.
The following section summarizes interface changes.
The following section summarizes C/C++ language changes. This information is presented in alphabetic order by the type of C/C++ language information. See the TPF C/C++ Language Support User's Guide and TPF Application Programming for more information about the C/C++ language.
Table 391 summarizes changes to the build scripts used by the build
tool. This information is presented in alphabetic order by the name of
the build script.
Table 391. Changes to Build Scripts for TPF Transaction Services
Build Script | Type | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|
CLUDBS | DLM | New | Build script for the deadlock user exit. |
CL12BS | DLM | New | Build script for the TM restart program. |
CL13BS | DLM | New | Build script for the TM recovery program. |
CL14BS | DLM | New | Build script for the TM restart program. |
CL15BS | DLM | New | Build script for the TM cleanup routine. |
CL16BS | DLM | New | Build script for the TM cleanup routine. |
CL40BS | DLM | New | Build script for deadlock detection. |
CL4BBS | DLM | New | Build script for building the deadlock detection global table. |
CL4RBS | DLM | New | Build script for receiving the deadlocked entry control block (ECB) and input/output block (IOB) address. |
CL42BS | DLM | New | Build script for the ZCORO command. |
CL44BS | DLM | New | Build script for the TXBGC macro. |
CL45BS | DLM | New | Build script for the TXCMC macro. |
CL46BS | DLM | New | Build script for the TXRBC macro. |
CL47BS | DLM | New | Build script for the TXSPC macro. |
CL48BS | DLM | New | Build script for the TXRSC macro. |
Table 392 summarizes changes to the dynamic load module (DLM)
stubs. This information is presented in alphabetic order by the name of
the DLM stub. See TPF Application Programming
for more information about the DLM stubs.
Table 392. Changes to Dynamic Load Module (DLM) Stubs for TPF Transaction Services
DLM Stub | New, Changed, or No Longer Supported? |
---|---|
CLUD | New |
CL41 | New |
CL43 | New |
Table 393 summarizes the general use C/C++ language header file changes. This information is presented in alphabetic order by the name of the general use C/C++ language header file.
General use means these header files are available for your
use.
Table 393. Changes to General Use C/C++ Language Header Files for TPF Transaction Services
C/C++ Language Header File | New, Changed, or No Longer Supported? | Do You Need to Recompile Segments? |
---|---|---|
c$cinfc.h | Changed | No |
c$ck1ke.h | Changed | No |
c$eb0eb.h | Changed | No |
c$fer0.h | Changed | No |
c$fva0.h | Changed | No |
c$miob.h | New | No |
c$rhtb.h | New | No |
c$stck.h | New | No |
c$syseq.h | Changed | No |
c$systc.h | Changed | No |
c$tmcr.h | New | No |
i$dlok.h | New | Yes |
i$tmcr.h | New | No |
There are no changes.
Table 394 summarizes changes to the library interface scripts used by
the library interface tool and the build tool. This information is
presented in alphabetic order by the name of the library interface
script.
Table 394. Changes to Library Interface Scripts for TPF Transaction Services
Library Interface Script | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|
CTALXV | Changed | Added tx API and addlc, enqc, deqc, and tancc C functions. |
CTBXXV | Changed | Added the tpf_STCK C function. |
Table 395 summarizes the library member (object file) changes.
This information is presented in alphabetic order by the name of the library
member (object file).
Table 395. Changes to Library Members (Object Files) for TPF Transaction Services
Library Member (Object File) | Library Module Name | New, Changed, or No Longer Supported? | Type | Description of Change |
---|---|---|---|---|
CADDLC | CTAL | New | Assembler | Process the addlc C function. |
CDEQC | CTAL | New | Assembler | Process the deqc C function. |
CENQC | CTAL | New | Assembler | Process the enqc C function. |
CSTCK | CTBX | New | Assembler | Process the tpf_STCK C function. |
CTANCC | CTAL | New | Assembler | Add, delete, or locate a transaction manager control record (TMCR) through the transaction manager anchor table (TANC). |
CTMEND | CTAL | New | Assembler | Process the xa_end C function. |
CTMSTR | CTAL | New | Assembler | Process the xa_start C function. |
There are no changes.
Table 396 summarizes changes to members (object files). This information is presented in alphabetic order by the name of the member (object file).
Notes:
Table 396. Changes to Members (Object Files) for TPF Transaction Services
Member (Object File) | DLM/DLL | New, Changed, or No Longer Supported? | Type | Description of Change |
---|---|---|---|---|
CLUD | CLUD | New | C Language | Deadlock detection user exit. |
CL12 | CL12 | New | C Language | TM restart program. |
CL13 | CL13 | New | C Language | TM recovery program. |
CL14 | CL14 | New | C Language | TM restart program. |
CL15 | CL15 | New | C Language | TM cleanup routine. |
CL16 | CL16 | New | C Language | TM restart cleanup routine. |
CL40 | CL40 | New | C Language | Root segment for deadlock detection processing. |
CL4A | CL4A | New | C Language | Builds the deadlock detection global table for a loosely coupled complex. |
CL4B | CL4B | New | C Language | Building the deadlock detection global table. |
CL4D | CL4D | New | C Language | Deadlock detection processing. |
CL4R | CL4R | New | C Language | Receives the deadlocked ECB and IOB address. |
CL42 | CL42 | New | C Language | ZCORO command. |
CL44 | CL44 | New | C Language | TXBGC macro service routine. |
CL45 | CL45 | New | C Language | TXCMC macro service routine. |
CL46 | CL46 | New | C Language | TXRBC macro service routine. |
CL47 | CL47 | New | C Language | TXSPC macro service routine. |
CL48 | CL48 | New | C Language | TXRSC macro service routine. |
There are no changes.
There are no changes.
Table 397 summarizes the control program interface (CINFC) tag
changes. The information in this table is ordered numerically by the
equate value.
Table 397. Changes to CINFC Tags for TPF Transaction Services
CINFC Tag | Equate Value | New, Changed, or No Longer Supported? |
---|---|---|
CMMCRT | 365 | New |
CMMGFA | 369 | New |
Table 398 summarizes copy member changes. This information is
presented in alphabetic order by the name of the copy member.
Table 398. Changes to Copy Members for TPF Transaction Services
Copy Member | Type | CSECT Where Copy Member Is Located | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|---|
CL10 | Control Program | CCTLOG | New | Adds support for the CPLKC service routine. |
CL20 | Control Program | CCTLOG | New | Adds support for the WLOGC service routine. |
CL30 | Control Program | CCTLOG | New | Adds support for the commit and rollback control record service routines. |
Table 399 summarizes fixed file record changes. This
information is presented in alphabetic order by the name of the fixed file
record.
Table 399. Changes to Fixed File Records for TPF Transaction Services
Fixed File Record | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|
#IBMM4 Ordinals 130, 141-147 | New | IBMM4 ordinal numbers. |
#RLOG1-#RLOG8 | New | Recovery log fixed file records. |
The following section summarizes the macro changes. This information is presented in alphabetic order by the type of macro.
There are no changes.
There are no changes.
Table 400 summarizes the data macro changes. This information
is presented in alphabetic order by the name of the data macro.
Table 400. Changes to Data Macros for TPF Transaction Services
Data Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs That Use This Data Macro? |
---|---|---|
CK1KE | Changed | No |
CZ1SE | Changed | No |
DCTMFS | Changed | No |
DCTMIO | Changed | No |
DCTRDF | Changed | No |
DCTRIT | Changed | No |
DCTSOI | Changed | No |
DCTUCL | Changed | No |
DC0DC | Changed | No |
EB0EB | Changed | No |
ICRCR | New | Not Applicable |
ICRCT | New | Not Applicable |
IDSCFW | Changed | No |
IDSFLV | Changed | No |
IDSRHT | Changed | No |
IDSSST | Changed | No |
IDSTTR | Changed | No |
IXAHD | New | No |
PI1DT | Changed | No |
Table 401 summarizes the general macro changes. This
information is presented in alphabetic order by the name of the general
macro. See TPF General Macros for a complete
description of all general macros.
Table 401. Changes to General Macros for TPF Transaction Services
General Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
DLTEC | Changed | Yes |
EXITC | Changed | No |
FILEC | Changed | No |
FILNC | Changed | No |
FILUC | Changed | No |
FINDC | Changed | No |
FINHC | Changed | No |
FINWC | Changed | No |
FIWHC | Changed | No |
GCFLC | Changed | No |
GCFSC | Changed | No |
GETFC | Changed | No |
GETLC | Changed | No |
GETSC | Changed | No |
RCRFC | Changed | No |
RCUNC | Changed | No |
RLCHA | Changed | No |
ROUTC | Changed | No |
TXBGC | New | No |
TXCMC | New | No |
TXRBC | New | No |
TXRSC | New | No |
TXSPC | New | No |
UNFRC | Changed | No |
Table 402 summarizes the selected equate macro changes. This
information is presented in alphabetic order by the name of the selected
equate macro.
Table 402. Changes to Selected Equate Macros for TPF Transaction Services
Selected Equate Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
ECBEQ | Changed | No |
IEQCE2 | Changed | No |
MRLNQ | Changed | No |
RITEQ | Changed | No |
There are no changes.
Table 403 summarizes the system initialization program (SIP) skeleton
and internal macro changes. This information is presented in alphabetic
order by the name of the SIP skeleton and internal macro. See TPF System Generation for a complete description of the
SIP skeleton and internal macros. If the SIP skeleton and internal
macro (inner macro) is changed, you must reassemble the SIP Stage I deck and
run the appropriate job control language (JCL) jobs from the SIP Stgae II
deck.
Table 403. Changes to SIP Skeleton and Internal Macros for TPF Transaction Services
SIP Skeleton and Internal Macro | New, Changed, or No Longer Supported? |
---|---|
SKCTKA | Changed |
SPPGML | Changed |
Table 404 summarizes system initialization program (SIP) Stage I macro and statement changes. This information is presented in alphabetic order by the name of the SIP Stage I macro. See TPF System Generation for a complete description of the SIP Stage I macros. If the SIP Stage I macro is changed, you must run the appropriate job control language (JCL) jobs from the SIP Stage II deck.
See System Initialization Program (SIP) and System Generation Changes for a description of other system generation changes you
must make.
Table 404. Changes to SIP Stage I Macros and Statements for TPF Transaction Services
SIP Stage I Macro | New, Changed, or No Longer Supported? |
---|---|
GENSIP | Changed |
RIATA | Changed |
Table 405 summarizes system initialization program (SIP) Stage II
macro changes. This information is presented in alphabetic order by the
name of the SIP Stage II macro. See TPF System
Generation for a complete description of the SIP Stage II macros.
If IBMPAL is changed, you must run the system allocator (SALO) and load the
new program allocation table (PAT) to the TPF 4.1
system.
Table 405. Changes to SIP Stage II Macros for TPF Transaction Services
SIP Stage II Macro | New, Changed, or No Longer Supported? |
---|---|
IBMPAL | Changed |
There are no changes.
Table 406 summarizes system macro changes. This information is
presented in alphabetic order by the name of the system macro. See TPF System Macros for a complete description of all
system macros.
Table 406. Changes to System Macros for TPF Transaction Services
System Macro | New, Changed, or No Longer Supported? | Do You Need to Reassemble Programs? |
---|---|---|
IDATB | Changed | No |
$GETRC | New | No |
$RELRC | New | No |
$RETRC | New | No |
CPLKC | New | No |
FLFAC | Changed | No |
FLVFC | Changed | No |
IBMSVC | Changed | Yes |
TANCC | New | No |
WLOGC | New | No |
There are no changes.
Table 407 summarizes segment changes. This information is
presented in alphabetic order by the name of the segment.
Table 407. Changes to Segments for TPF Transaction Services
Segment | Type | Link-Edit Module (Where Offline Segment Is Linked) | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|---|
CLM0 | Real-Time Assembler | Not Applicable | New | Reconnects to an IBM 3990 Model 3 or later models with multi-path lock facility (MPLF) installed and CTKI lock. |
CLUD | Real-Time C Language | Not Applicable | New | Deadlock detection user exit. |
CL10 | CSECT | Not Applicable | New | CPLKC service routine. |
CL11 | Real-Time Assembler | Not Applicable | New | Commit and rollback table initialization and restart. |
CL12 | Real-Time C Language | Not Applicable | New | TM restart program. |
CL13 | Real-Time C Language | Not Applicable | New | TM recovery program. |
CL14 | Real-Time C Language | Not Applicable | New | TM restart program. |
CL15 | Real-Time C Language | Not Applicable | New | TM cleanup program. |
CL16 | Real-Time C Language | Not Applicable | New | Failed log takeover cleanup transaction. |
CL20 | CSECT | Not Applicable | New | WLOGC service routine. |
CL21 | Real-Time Assembler | Not Applicable | New | Log manager restart and recovery. |
CL22 | Real-Time Assembler | Not Applicable | New | Write buffers to recovery log. |
CL23 | Real-Time Assembler | Not Applicable | New | Recovery log checkpoint routine. |
CL24 | Real-Time Assembler | Not Applicable | New | Read track from recovery log. |
CL30 | CSECT | Not Applicable | New | TPF transaction services restricted macro service routines. |
CL31 | Real-Time Assembler | Not Applicable | New | DASD RM recovery program. |
CL40 | Real-Time C Language | Not Applicable | New | Root segment for deadlock detection processing. |
CL41 | Real-Time Assembler | Not Applicable | New | Exit deadlocked ECB. |
CL42 | Real-Time C Language | Not Applicable | New | ZCORO command. |
CL43 | Real-Time Assembler | Not Applicable | New | Convert system time to floating point number. |
CL44 | Real-Time C Language | Not Applicable | New | TXBGC service routine. |
CL45 | Real-Time C Language | Not Applicable | New | TXCMC service routine. |
CL46 | Real-Time C Language | Not Applicable | New | TXRBC service routine. |
CL47 | Real-Time C Language | Not Applicable | New | TXSPC service routine. |
CL48 | Real-Time C Language | Not Applicable | New | TXRSC service routine. |
CL4B | Real-Time C Language | Not Applicable | New | Building the deadlock detection global table. |
CL4D | Real-Time C Language | Not Applicable | New | Deadlock detection processing. |
CL4R | Real-Time C Language | Not Applicable | New | Receives the deadlocked ECB and IOB address. |
CL99 | Real-Time Assembler | Not Applicable | New | Log recovery error user exit. |
CT09 | CSECT | Not Applicable | New | Allocate storage for TPF transaction services control tables. |
CVFX | Real-Time Assembler | Not Applicable | New | Created for VFA synchronization as a user exit for VFA restart. |
The following section summarizes system equate changes.
Table 408 summarizes changes to equates that are not configuration
dependent (in SYSEQ). This information is presented in alphabetic order
by the name of the SYSEQ tag.
Table 408. Changes to SYSEQ Tags for TPF Transaction Services
SYSEQ Tag | Equate Value | New, Changed, or No Longer Supported? |
---|---|---|
#CRCPR0 | 130 | New |
#CRCPR1 | 141 | New |
#CRCPR2 | 142 | New |
#CRCPR3 | 143 | New |
#CRCPR4 | 144 | New |
#CRCPR5 | 145 | New |
#CRCPR6 | 146 | New |
#CRCPR7 | 147 | New |
#LUPD | 139 | New |
Control Program (CP) User Exits and ECB User Exits summarize the control program (CP) and ECB uesr exit changes. See TPF System Installation Support Reference for a complete description of all user exits.
This information is presented in alphabetic order by the name of the
control program (CP) user exit.
Table 409. Changes to Control Program (CP) User Exits for TPF Transaction Services
Control Program (CP) User Exit Activated In | User Routine Label | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|
CL20 | UCCWLOG | New | Adds the transaction log write user exit. |
This information is presented in alphabetic order by the name of the
function.
Table 410. Changes to ECB User Exits for TPF Transaction Services
Function | User Exit Activated In | User Exit Program | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|---|---|
Deadlock detection | CL40 | CLUD | New | Adds support for modifying deadlock detection notification. |
Log recovery | CL21, CL24 | CL99 | New | Adds support for modifying log recovery error processing. |
The following section summarizes functional and operational changes. This information is presented in alphabetic order by the functional or operational change.
See Appendix A, "PUT 2-15 Interface Changes by Authorized Program Analysis Report (APAR)" for a summary of functional and operational changes by APAR.
Table 411 summarizes command changes. This information is presented in alphabetic order by the name of the command. See TPF Operations for a complete description of all commnds.
Attention: Changes to commands can impact any automation
programs you are using in your complex.
Table 411. Changes to Commands for TPF Transaction Services
Command | New, Changed, or No Longer Supported? | Description of Change |
---|---|---|
ZCORO | New | Process a TPF transaction services request. |
ZCTKA ALTER | Changed | Added the MCMTB and RLBUF parameters. |
ZCTKA DISPLAY | Changed | Added the MCMTB and RLBUF parameters. |
ZPSMS | Changed | The processor from which the FORCE DEACTIVATE parameter is specified takes over the recovery log of the processor that will be deactivated before its locks are released. |
ZSYSG ALTER | Changed | Added the DLOCK parameter. |
ZVFAC DISPLAY | Changed | Added the number of buffers in a commit scope to the display. |
Table 412 summarizes message (offline and online messages) and system error changes.
The message IDs or system error numbers are listed in numeric order preceded by their alphabetic prefix. Some offline and online messages do not have a standard message ID. For these, the messages are presented in alphabetic order based on the initial message text; or for those messages that begin with variable information, the initial message text that follows that variable information. See Messages (System Error and Offline) and Messages (Online) for a complete description of all messages and system errors.
Attention: Changes to offline messages, online messages,
and system errors may impact any automation programs you are using in your
complex.
Table 412. Changes to Messages and System Errors for TPF Transaction Services
Message ID or System Error Number | Message Type | New, Changed, or No Longer Supported? |
---|---|---|
000038 | System Error | Changed |
00C100 | System Error | New |
00C101 | System Error | New |
00C102 | System Error | New |
00C103 | System Error | New |
00C104 | System Error | New |
00C105 | System Error | New |
00C106 | System Error | New |
00C107 | System Error | New |
00C108 | System Error | New |
00C109 | System Error | New |
00C10A | System Error | New |
00C10B | System Error | New |
00C10C | System Error | New |
00C10D | System Error | New |
00C10E | System Error | New |
00C10F | System Error | New |
00C110 | System Error | New |
00C111 | System Error | New |
00C112 | System Error | New |
00C113 | System Error | New |
00C114 | System Error | New |
00C115 | System Error | New |
00C116 | System Error | New |
00C117 | System Error | New |
00C118 | System Error | New |
00C119 | System Error | New |
00C11A | System Error | New |
00C11B | System Error | New |
00C11C | System Error | New |
00C11D | System Error | New |
00C11E | System Error | New |
00C11F | System Error | New |
00C120 | System Error | New |
00C121 | System Error | New |
00C130 | System Error | New |
00C131 | System Error | New |
00C132 | System Error | New |
00C133 | System Error | New |
00C134 | System Error | New |
00C135 | System Error | New |
00C136 | System Error | New |
00C137 | System Error | New |
00C139 | System Error | New |
00C13A | System Error | New |
00C13C | System Error | New |
CLM00001E | Online | New |
CL110001I | Online | New |
CL110002I | Online | New |
CL110003I | Online | New |
CL110004E | Online | New |
CL140011I | Online | New |
CL210001I | Online | New |
CL210002E | Online | New |
CORO0001I | Online | New |
CORO0002E | Online | New |
CORO0003I | Online | New |
CORO0004E | Online | New |
CORO0005I | Online | New |
CORO0006I | Online | New |
CTIN0019I | Online | New |
CTIN0090E | Online | New |
DLOK0001E | Online | New |
DLOK0002I | Online | New |
You may have to increase the size of virtual file access (VFA) when you add TPF transaction services support to your TPF 4.1 system because of nested commit scopes. The number of records is not necessarily equal to the number of buffers. You can have a higher buffer count than the number of records when you have nested commit scopes. See TPF System Performance and Measurement Reference for more information about when to increase the size of VFA.
You may also need to increase the number of system work blocks (SWBs) that are allocated to your TPF 4.1 system with the addition of TPF transaction services. TPF transaction services uses SWBs for control records.
There are no changes.
There are no changes.
There are no changes.
There are no changes.
Table 413 summarizes changes to the publications in the TPF
library. This information is presented in alphabetic order by the
publication title. See the TPF Library Guide
for more information about the TPF library.
Table 413. Changes to TPF Publications for TPF Transaction Services
Publication Title | Softcopy File Name | Description of Change |
---|---|---|
TPF Application Programming | GTPAPP07 | Updated with information about commit scope processing for TPF transaction services |
TPF C/C++ Language Support User's Guide | GTPCLU07 | Updated with information about the C functions that were added and changed for TPF transaction services. |
TPF Concepts and Structures | GTPCON05 | Updated with information about the C functions that were added and changed for TPF transaction services. |
TPF Database Reference | GTPDBR05 | Updated with information about the transaction manager (TM), resource managers (RMs), log manager, and recovery log for TPF transaction services. |
TPF General Macros | GTPGEN07 | Updated with information about the new and changed general use macros for TPF transaction services. |
TPF Library Guide | GTPDOC07 | Updated with definitions for new terminology in the master glossary. |
Messages (System Error and Offline) and Messages (Online) | Not Applicable | Updated with information about messages and system errors that were added, changed, and no longer supported for TPF transaction services. |
TPF Migration Guide: Program Update Tapes | GTPMIG07 | Updated with migration considerations for TPF transaction services. |
TPF Operations | GTPOPR07 | Updated with information about the commands that were added and changed for TPF transaction services. |
TPF Program Development Support Reference | GTPPDR07 | Updated with information about new CINFC tags and a new dump label for TPF transaction services. Information is also provided for how real-time trace (RTT), program test vehicle (PTV), and selective file dump and trace (SFDT) work in a commit scope. |
TPF System Generation | GTPSYG07 | Updated with new record ID attribute table (RIAT) IDs. |
TPF System Installation Support Reference | GTPINR07 | Updated with information about the new and changed general use macros for TPF transaction services. |
TPF System Performance and Measurement Reference | GTPSPR07 | Updated with new information for the system summary report for data collection and reduction. |
There are no changes.
There are no changes.
There are no changes.
There are no changes.
There are no changes.
Use the following procedure to install TPF transaction services in your TPF 4.1 system.
Deadlock detection must be running in all processors in a loosely coupled complex. During the coexistence phase of migration, however, deadlock detection must be disabled by entering the ZSYSG command with the DLOCK parameter specified.
You may see the 000063 system error if the following conditions apply:
Either ignore the system error or disable deadlock detection.
Log takeover provides the ability for one processor to process the log of another processor. During the coexistence phase of migration, processors on an earlier level must not be permitted to force the deactivation of a processor on a later level because a forced deactivation means that the forcing processor recovers the log of the other processor.
If it is necessary for the processor at an earlier level to force the deactivation of the migrated processor (using the ZPSMS command with the PR FORCE DEACT parameters specified), the migrated processor will be deactivated but data that was committed may not be committed any longer.