未解決トランザクションおよびOracle Rdbでサポートされるトランザクション・マネージャ(DECdtmおよびEncina)の詳細は、『Oracle Rdb7 Guide to Distributed Transactions』を参照してください。
RMU Recover Resolveコマンドを使用して、アフター・イメージ・ジャーナル(.aij)ファイル内の未解決の分散トランザクションをコミットまたはアボートします。未解決トランザクションの影響を受ける各.aijファイルで、未解決トランザクションを同じ状態(COMMITまたはABORT)に完了させる必要があります。RMU Recover Resolveコマンドでは、次のタスクを行います。
- 未解決トランザクションのID情報の表示。
- 未解決トランザクションを解決する状態の要求(コマンドラインでState修飾子を指定しなかった場合)。トランザクションの管理にDECdtmを使用している場合、COMMIT、ABORTまたはIGNOREを指定できます。XAトランザクションを使用している場合、COMMITまたはABORTを指定できます。
- 指定した状態を確認するプロンプトの表示
- 未解決トランザクションのコミット、アボートまたは無視
- すべての未解決トランザクションの情報を表示するまで続行
aij-file-name
アフター・イメージ・ジャーナルを含むファイルの名前。最適化されたアフター・イメージ・ジャーナル(.oaij)ファイルではありません。デフォルトのファイル拡張子は.aijです。
Confirm
Noconfirm
変更した各トランザクションの状態の確認を要求します。対話式処理でのデフォルトはConfirmです。このプロンプトを表示しない場合、Noconfirm修飾子を指定します。バッチ処理でのデフォルトはNoconfirmです。
State=option
すべての未解決トランザクションを解決する状態を指定します。分散トランザクションの管理にDECdtmを使用している場合、State修飾子のオプションは次のとおりです。
- Commit: すべての未解決トランザクションをコミットします。
- Abort: すべての未解決トランザクションをアボートします。
- Ignore: トランザクションを解決しません。
分散トランザクションの管理にEncinaを使用している場合、State修飾子のオプションは次のとおりです。
- Commit: すべての未解決トランザクションをコミットします。
- Abort: すべての未解決トランザクションをアボートします。
State修飾子を指定しない場合、.aijファイル内の未解決トランザクションごとに、アクションを入力するようOracle RMUから要求されます。DECdtmでトランザクションを管理し、Ignoreを入力した場合、Oracle RMUでトランザクションを解決するのではなく、トランザクションを解決するコーディネータに通知されます。コーディネータが再度使用可能になり、トランザクションの完了が指示されるか、RMU Recover Resolveコマンドを再度使用して手動でトランザクションを完了させるまで、トランザクションは未解決のままになります。コーディネータのアクティビティの詳細は、『Oracle Rdb7 Guide to Distributed Transactions』を参照してください。
コーディネータはEncinaで管理されるトランザクションには関与していないため、XAトランザクションではIgnoreオプションは無効です。
- データベースに対してRMU Recover Resolveコマンドを使用するには、データベースのルート・ファイルにRMU$RESTORE権限を持っているか、OpenVMSのSYSPRVまたはBYPASS権限を持っている必要があります。
- New修飾子を使用してデータベースをリストアし、破損したデータベースを削除していない場合、Root修飾子を使用して、データベース・ルート・ファイルの元のファイル指定をオーバーライドします。
- コマンドラインで指定した.aijファイルからのロールフォワード後、Oracle RMUから次の.aijファイルの名前が要求されます。ロールフォワードする.aijファイルがまだある場合、.aijファイルのバージョン番号を含むファイル名を入力します。.aijファイルがもうない場合、[Return]キーを押します。ロールフォワードと、.aijファイルに対するトランザクション順序番号の確認の詳細は、『Oracle Rdb Guide to Database Maintenance』を参照してください。
- Oracle RdbとEncinaトランザクション・マネージャとを組み合せた使用について、次の点に注意してください。
- リリース7.0以上のOracle Rdbで作成された、またはリリース7.0以上に変換されたデータベースのみをXAトランザクションに含めることができます。
- 分散トランザクションを開始するには、トランザクションに関係するすべてのデータベースについてDISTRIBTRANデータベース権限を持っている必要があります。
- Oracle Rdbでは、Encinaに対する明示的分散トランザクションのみがサポートされます。つまり、トランザクションを開始および終了するEncinaルーチンをアプリケーションで明示的にコールする必要があります。
例1次のコマンドでは、mf_personnelデータベースをリカバリし、古い.aijファイルからデータベースをロールフォワードして未解決の分散トランザクションを解決します。State修飾子が指定されていないため、各未解決トランザクションの状態についてOracle RMUからユーザーにプロンプトが表示されます。
$ RMU RECOVER/RESOLVE MF_PERSONNEL.AIJ;1
例2
この例では、mf_personnel.aijファイルのすべての未解決トランザクションがコミットされます。
$ RMU/RECOVER/RESOLVE/STATE=COMMIT MF_PERSONNEL.AIJ
RMU Recover Resolveコマンドの例は、『Oracle Rdb7 Guide to Distributed Transactions』も参照してください。