トランザクションの復旧に影響を与えるメインフレームの問題
状況によっては、TI はリモート環境で新しいトランザクションを処理できません。 これは正しい動作である可能性があります。 たとえば、TI 例外 1227 がクライアント アプリケーションに返されるか、イベントに記録され、HRESULT が 8004D110 の場合、通信エラー後に以前のトランザクションが解決されていないため、このリモート環境での新しいトランザクションを受け入れることができないことを示します。
2 フェーズ・コミット・プロセスが完了しない場合、CICS は、通信が再確立されるまで、トランザクションを In-Doubt 状態に保持する必要があります。 その後、TI は復旧プロトコルを実行して、トランザクションがすべてのノードで同じ状態であることを確認します。 これを行うには、CICS を正しく構成する必要があります。
CICS が予期せず終了し、コールド状態で再始動された場合、完了していないトランザクションのログにメモリーはありません。 そのため、これらのトランザクションを一貫した状態に自動的に回復することはできません。 CICS を停止する前にすべてのトランザクションが完了したことを確認するか、同じログを使用してウォーム再始動のために CICS を構成して、保留中のトランザクションをリカバリーできるようにします。
CICS トランザクション・サーバーを使用すると、管理者はトランザクションの In-Doubt 属性に待機時間を指定できます。 ほとんどの場合、通信を再確立するのに十分な値を指定してください。 In-Doubt 状態に残されたすべてのトランザクションが復旧される前にこのタイムアウトが経過した場合、CICS はそれらをローカルで解決するヒューリスティックな決定を行います。 この決定が Microsoft DTC (分散トランザクション コーディネーター) によるトランザクションに対して行われた決定と競合する場合、以前のトランザクションの結果が手動でオーバーライドされるまで、新しいトランザクションを開始できません。
CICS トランザクション・サーバーより前の CICS バージョンでは、リカバリー属性に待機時間はありません。 待機値を In-Doubt 属性に割り当てても、回復が試行されたときに CICS によって TI によって要求された状態にトランザクションが配置されることはありません。 これらのバージョンの CICS を使用している場合は、In-Doubt 属性をバックアウトまたはコミットに設定します。 結果として得られるヒューリスティックの決定が正しくなくなり、新しいトランザクションの開始を妨げる場合は、DTC を使用してトランザクションの結果をオーバーライドします。
トランザクションが正常に復旧されなかったことを示す SNA LU 6.2 Resync TP サービスからのメッセージについて、Windows イベント ログを調べます。 推奨されるアクションに従います。 Microsoft Transaction Server の [トランザクション リスト] ウィンドウを使用して、保留中のトランザクションを表示します。 トランザクションを右クリックして、そのプロパティを表示します。 これを解決して、ヒューリスティックに選択するように CICS が構成された状態、または CICS が予期せず終了してコールドを開始した場合は、バックアウトまたは中止された状態に合わせて解決します。 ログ内のイベントは、CICS によって選択されたトランザクションと状態を識別します。
Note
TCP/IP は ACID (アトミック、一貫性、分離、持続性) トランザクションをサポートしていないため、これは TCP/IP には適用されません。