RMU Resolveコマンドを使用して、データベースの未解決分散トランザクションをコミットまたは強制終了します。未解決トランザクションの影響を受けるすべてのデータベースで、未解決トランザクションが同じ状態(CommitまたはAbort)になるように解決する必要があります。RMU Resolveが次のタスクを実行します。
- 未解決トランザクションのID情報を表示します。
- 未解決トランザクションを解決する状態(CommitまたはAbort)を指定するように要求します(コマンドラインでState修飾子を指定しなかった場合)。
- 選択した状態の確認を要求します。
- 未解決トランザクションをコミットまたは強制終了します。未解決トランザクションをコミットまたは強制終了すると、トランザクションが解決されます。再び解決することはできません。
- すべての未解決トランザクションの情報を表示するまで、後続の未解決トランザクションを表示し、状態の指定を要求します。
Parent_Node、ProcessまたはTsn修飾子を使用して、Oracle RMUで表示する未解決トランザクションの数を制限します。UsersおよびState=Blocked修飾子をRMU Dumpコマンドで使用して、Parent_Node、ProcessおよびTsn修飾子の値を判別します。
root-file-spec
未解決トランザクションを解決するデータベース・ルート・ファイル。
Confirm
Noconfirm
各未解決トランザクションの確認を要求します。これは対話型処理のデフォルトです。Noconfirm修飾子を指定すると、このような要求が行われません。これはバッチ処理のデフォルトです。
Log
Nolog
コマンドの処理をSYS$OUTPUTに報告するかどうかを指定します。Log修飾子を指定すると、解決操作のサマリー情報をSYS$OUTPUTに報告するようにリクエストします。Nolog修飾子を指定するとこの報告は行われません。どちらも指定しない場合は、DCL VERIFYフラグの現在の設定がデフォルトになります。(DCL SET VERIFYコマンドによってDCL VERIFYフラグの設定が制御されます。)Parent_Node=node-name
ノード名を指定して、指定したノードで生成されるトランザクションのみからトランザクションを選択するようにします。Parent_Node修飾子を省略すると、すべてのノードで生成されるトランザクションがRMU Resolveによって含められます。TsnまたはProcess修飾子をParent_Node修飾子と一緒に指定することはできません。
Parent_Node修飾子はXAトランザクションでは無効です。
Process=process-id
プロセスIDを指定して、指定したプロセスに対応するトランザクションのみからトランザクションを選択するようにします。この修飾子を省略すると、指定したデータベースにアタッチするトランザクションのすべてのプロセスがRMU Resolveによって含められます。Parent_NodeまたはTsn修飾子をProcess修飾子と一緒に指定することはできません。
State=options
すべての未解決トランザクションを解決する状態を指定します。State修飾子のオプションは次のとおりです。
- Commit---未解決トランザクションをコミットします。
- Abort---未解決トランザクションを強制終了します。
State修飾子を指定しないと、そのデータベースの未解決トランザクションごとにアクション(CommitまたはAbort)を入力するようにRMU Resolveによって求められます。
Tsn=tsn
状態を変更する未解決トランザクションのトランザクション順序番号(TSN)を指定します。TSN値は、次の10進数形式でquadwordに含まれます。
high longword : low longword
high longwordはユーザーの最大値32768(215)を保持でき、low longwordは最大ユーザー値4,294,967,295(232)を保持できます。high longwordの一部はOracle Rdbによってオーバーヘッドに使用されます。
TSNを指定するとき、TSNがlow longwordにおさまる場合は、high longwordとコロンを省略できます。たとえば、0:444と444はいずれもTSNの入力値として有効です。
Tsn修飾子を省略すると、すべての未解決トランザクションがRMU Resolveによって含められます。Parent_NodeまたはProcess修飾子をTsn修飾子と一緒に指定することはできません。
- データベースに対してRMU Resolveコマンドを使用するには、そのデータベースのルート・ファイルのACLにRMU$RESTORE権限が必要です。あるいは、OpenVMS SYSPRVまたはBYPASS権限が必要です。
例1次のコマンドは、MF_PERSONNELデータベースの最初に表示される未解決トランザクションを、Abort状態に変更してロールバックするように指定します。
$ RMU/RESOLVE/LOG/STATE=ABORT MF_PERSONNEL
例2
次のコマンドは、ノードGREENによって調整されたすべてのトランザクションのリストを表示します。これは、2フェーズ・コミット制御プロトコルDECdtmを使用するアプリケーションの実行中にノードGREENで障害が発生したときに役立つことがあります。
$ RMU/RESOLVE/PARENT_NODE=GREEN MF_PERSONNEL
例3
次のコマンドは、プロセス41E0364Aによって開始されたすべてのトランザクションのリストを表示します。このリストは、このプロセスが削除された場合に、このプロセスによって開始されたトランザクションを解決するために役立ちます。
$ RMU/RESOLVE/PROCESS=41E0364A MF_PERSONNEL
例4
次のコマンドは、MF_PERSONNELデータベースの未解決トランザクションを完了し、操作を確認して記録します。
$ RMU/RESOLVE/LOG/CONFIRM MF_PERSONNEL
RMU Resolveコマンドの詳細は、『Oracle Rdb7 Guide to Distributed Transactions』を参照してください。