Changes the state of transactions.
CAUTION
The REPAIR command can corrupt data. Use it only if none
of the resource managers participating in the transaction
provides a means of changing transaction states.
Requires:
o The CMKRNL privilege.
o READ and WRITE access to the transaction log and the directory
it is in.
Format
REPAIR filespec
1 – Parameter
filespec
The file specification of the transaction log containing the
transactions whose states you want to change.
The REPAIR command requires the following:
o The logical SYS$JOURNAL must be defined in executive mode in
the system logical name table.
o The transaction log must be in a directory pointed to by the
logical SYS$JOURNAL.
o The file type of the transaction log must be .LM$JOURNAL.
The REPAIR command uses the following defaults:
o If you omit the disk and directory, the REPAIR command looks
for the transaction log in the directories pointed to by the
logical SYS$JOURNAL.
o If you omit the file type, the REPAIR command uses
.LM$JOURNAL.
2 /LOGID
/LOGID=logid
Selects records only for transactions that have participants
whose logid matches the specified value.
The logid is in the Log ID field, to the right of the Type field
in the output from the DUMP command. The value you specify must
be exactly as it appears in the display, including hyphens.
Note that you can use this qualifier only with the /RM qualifier.
3 /RM
/RM=name
Selects records only for transactions that have participants
whose names begin with the specified value.
The participant name is shown in the Name field in the output
from DUMP, and is output in both ASCII and hexadecimal.
If the participant name includes undisplayable characters, you
can select records for that participant by using the hexadecimal
form of its name. When specifying the hexadecimal form of
the name, you must convert it by reversing the pairs in the
hexadecimal number. For example, if the participant name is:
Name (11): "SYSTEM$RED" (4445 52244D45 54535953)
the value you specify for the /RM qualifier is:
/RM=%X53595354454D24524544
4 /STATE
/STATE=COMMITTED
/STATE=PREPARED
Selects records only for transactions in either the Committed or
Prepared states.
5 /TID
/TID=transaction_id
Selects records only for the specified transaction.
The transaction_id is shown in the Transaction ID field in the
output from the DUMP command. The value you specify must be
exactly as it appears in the display, including hyphens.
6 – Description
Use the REPAIR command to change the state of transactions.
CAUTION
The REPAIR command can corrupt data. Use it only if none
of the resource managers participating in the transaction
provides a means of changing transaction states.
Use this command only if none of the resource managers
participating in the transaction provides a means of changing
the transaction state. For example, if Rdb is a participant in
the transaction, do not use REPAIR; use the Rdb Management (RMU)
utility commands instead. Similarly, if DBMS is a participant,
use the Database Operator (DBO) utility commands.
Change the transaction state only when you already know the
outcome of the transaction and need to manually update the
transaction log immediately. You might want to do this because,
for example, you have lost the network link to a remote node.
When you use the REPAIR command you use qualifiers to specify
which transactions you want to change. By default, the REPAIR
command selects all transactions.
Once you have selected the transactions to change, you enter the
REPAIR subcommand mode. Within this mode, the prompt changes to
REPAIR> and you have a set of additional subcommands described
in Subcommands of the REPAIR Command. You use these commands
either to manually change the state of the transaction, or
to select the next transaction that matches your selection
criteria. The subcommands are as follows:
Subcommand Action
ABORT Specifies that a Prepared transaction is to be
aborted by removing its record from the transaction
log. This writes a record of type Forgotten for the
transaction.
Note that DECdtm services use the presumed abort
logging protocol.
COMMIT Specifies that a Prepared transaction is to be
committed. This writes a record of type Committed
for the transaction.
EXIT Returns to the LMCP> prompt.
FORGET Specifies that a Committed transaction can be removed
from the transaction log. This writes a record of
type Forgotten for the transaction.
NEXT Displays the next transaction that matches your
selection criteria.
LMCP displays each of the selected transactions in turn, so that
you can change them. For each selected transaction, you can
either use the ABORT, COMMIT, and FORGET subcommands to change
the state of the transaction, or use the NEXT subcommand to
select the next transaction.
To exit from the REPAIR subcommand mode, enter the EXIT
subcommand or press Ctrl/Z.
7 – Example
LMCP> REPAIR/STATE=PREPARED/RM="RMS$" DISK$JOURNALS:[LOGFILES]SYSTEM$ORANGE
In this example transactions to be modified are selected from
the transaction log for node ORANGE. The transactions selected
are those that match both of the following criteria:
o RMS Journaling for OpenVMS is participating in the transaction.
o The transaction is in the Prepared state.