正常にコミットできなかった外部トランザクションをコミットまたはロールバックするグラフを作成できます。
この手順では、前述の推薦される方法に従っていることを前提としています。特にこの手順では、プロジェクトの workspace.prmファイルで空のOUTER_TRANSACTION_IDグローバル変数を指定し、プロジェクト内のコンポーネントでそのグローバル変数を使用していることを前提としています。
場合によっては、外部トランザクションを起動するグラフがトランザクションをコミットできないことがあります。たとえば、新しいグラフの作成中で、そのサブグラフをトラブルシューティングしているときに、コミットされていないトランザクションが発生することがあります。いずれかのサブグラフが失敗した場合、外部トランザクションを実行するグラフ全体もまた失敗することがあります。
一度に進行できるのは1つの外部トランザクションのみであるため、外部トランザクションを実行するグラフが失敗した場合、進行中の外部トランザクションがコミットされるまで、外部トランザクションを開始する他のグラフを実行することはできません。そのような場合は、外部トランザクションを手動でコミットできます。
一般的に、いずれかのグラフを実行しようとしてトランザクションに関連するエラーが発生したときは、すでに実行中の外部トランザクションを閉じることが必要になる場合があります。推薦される方法に従っている場合、外部トランザクションはtransactionというIDで実行しています。
トランザクションのコミットまたはロールバック・グラフを実行する前に、データ・ドメイン・インスタンスが実行中であり、次の例のようにブラウザからURLコマンドを発行することによりトランザクションWebサービスが使用可能であることを確認します。Endeca Serverの正しいポート番号(デフォルトでは7770)およびEndecaデータ・ドメイン名(次の例ではbikes)を使用していることを確認します。
http://localhost:7770/ws/transaction/bikes?wsdl
トランザクションのコミット・グラフまたはトランザクションのロールバック・グラフを作成する手順は次のとおりです。
トランザクションのコミット・グラフの場合:
<ns:request xmlns:ns="http://www.endeca.com/MDEX/transaction/1/0"> <ns:commitOuterTransaction> <ns:OuterTransactionId>transaction</ns:OuterTransactionId> </ns:commitOuterTransaction> </ns:request>
トランザクションのロールバック・グラフの場合:
<ns:request xmlns:ns="http://www.endeca.com/MDEX/transaction/1/0"> <ns:rollBackOuterTransaction> <ns:OuterTransactionId>transaction</ns:OuterTransactionId> </ns:rollBackOuterTransaction> </ns:request>