CICS がイベント出力を保証する方法

同期出力モードと適切なトランザクション・モードで EP アダプターを使用することにより、確実にイベントを出力させることができます。 同期出力では、イベントの書式設定と出力処理がキャプチャー・トランザクションの作業単位内で同期的に完了されます。 作業単位は、イベントが出力された場合のみ正常に完了します。 EP アダプターはアプリケーション・タスクからリンクされます。 つまり、EP ディスパッチャーのスレッド、または分離 EP アダプター・タスクによる非同期処理では、イベントがキューに入ることはありません。

同期イベント出力は、システムのキャプチャー・ポイントに対してはサポートされていません。 そのため、システム・イベントの出力は保証できません。

同期イベントは、トランザクションと非トランザクションのいずれも可能ですが、どちらの場合もトランスポートのリカバリー可能性を正しくセットアップする必要があります。

同期的な非トランザクション・イベント:
作業単位が失敗した場合にイベントが取り消されることがないように、EP アダプターはイベントを、そのトランスポートに、リカバリー不能な方法で出力する必要があります。
同期的なトランザクション・イベント:
作業単位が取り消された場合に、そのトランザクション・イベントが取り消されるように、EP アダプターはイベントを、そのトランスポートに、リカバリー可能な方法で出力する必要があります。

すべての EP アダプターが TRANSMODE のすべての組み合わせで同期出力をサポートできるわけではありません。 詳しくは、イベント処理アダプターを参照してください。

イベントの出力に失敗した場合、EP アダプターによって、そのイベントに関する情報とそのイベントが出力されなかった理由が示され、関連するイベント統計値が増分されて、キャプチャー・トランザクションの作業単位がバックアウトされます。

計画にあたっての考慮事項

同期イベント出力が動作する仕組みを理解することで、この機能を最大限活用する方法が分かりやすくなります。 同期イベント出力の使用時に考慮することとして、アプリケーションのセキュリティー、パフォーマンス、トランスポート、アプリケーションへの影響などが挙げられます。

イベント・キャプチャー・トランザクションには、同期出力のためにイベント出力トランスポート (WebSphere® MQ EP アダプターの WebSphere MQ キューなど) に対する書き込み権限が必要となります。 イベントを出力する EP ディスパッチャー・タスクまたは EP アダプター・タスクには、非同期出力のために書き込み権限が必要となります。

同期のトランザクション・イベント出力はリカバリー可能です。 CICS WebSphere MQ EP アダプターを使用する場合、イベントは同期点下で WebSphere MQ イベント・キューに置かれます。 そのため、WebSphere MQ ログ・データ・セットのスペース割り振りの検討が必要となる場合があります。 CICS TSQ EP アダプターを使用している場合、リカバリー可能な TS キューの使用が増えるため、場合によっては CICS ログ・ストリームのサイズと属性の検討が必要です。 同期点をとらずに長時間実行しているタスクのある同期トランザクション・イベントを使用すると、ログのオーバーフローが生じる可能性があります。

同期出力を使用する場合、カスタム EP アダプターは、DFHEP.ADAPTPARM コンテナー内の EPAP_RECOVER フラグに従う必要があります。 詳しくは、カスタム EP アダプターを参照してください。

イベント出力を保証することで、ビジネスに欠くことのできないイベント・ベースのアプリケーションを構築する機会が提供され、既存のアプリケーションは信頼できる方法で拡張されます。 その代わり、イベント出力の保証に同期処理が不可欠となるため、アプリケーションの応答時間に影響が出ることがあります。 同期イベント出力の適切な使用により、アプリケーションへの影響が最小限に抑えられます。 イベント出力の保証時のパフォーマンスの考慮について、詳しくはイベント処理のパフォーマンスを参照してください。

単一の作業単位によって、多数のイベントが出力される場合があり、その場合、トランザクションのイベントもあれば、非トランザクションのイベントもあります。 トランザクションのキャプチャーにおいて同期イベントの出力に失敗した場合、作業単位はキャプチャーするトランザクション・イベントと共に取り消されます。 非トランザクション・イベントは引き続き出力される可能性があります。

EP アダプター、そのリソース (WebSphere MQ キューなど)、およびイベント・コンシューマーは、出力されるイベントの予測ピーク量を処理するのに十分な容量で構成しなければなりません。 それによってキャプチャー・トランザクションの失敗を防ぐことができます。

同期出力をどこで使用するかを決定しやすくするために、非同期と同期の出力について比較できるよう考慮事項をいくつか挙げます。

非同期イベント出力の使用時には、以下の特性を考慮してください。
  • イベントは、これらがキャプチャーされた順序とは異なる順序で CICS® プログラムから出力されることがあります。
  • イベントが出力される順序は、イベントが有効な CICS プログラムの実行ごとに異なる可能性があります。
  • イベント出力は保証されません。 CICS が進行中のイベントと共に異常終了した場合、イベントは失われることがあります。 稀なことですが、イベントのキャプチャー後、その出力の前に CICS システムが失敗した場合、イベントはまったく出力されない場合があります。 これはイベント・バインディング内の EP アダプターがそのイベントがトランザクションであることを指定しているかどうかに関係ありません。
  • イベントの書式設定と出力の負担は、イベント処理スレッドに、または別個のトランザクションにオフロードされます。
  • キャプチャー・トランザクションへの影響は最小限です。
  • アプリケーション・コードへの変更は不要です。
同期イベント出力の使用時には、以下の特性を考慮してください。
  • イベントは、キャプチャーされた順序で CICS プログラムから出力されます。
  • キャプチャー・トランザクションが正常に完了する場合、イベントの出力が保証されます。
  • イベントは、ビジネスに欠くことのできないデータに対するアプリケーションの拡張として考慮できます。
  • 同期出力と WebSphere MQ EP アダプターを共に使用すれば、イベント・デリバリーを保証できます。
  • イベントの書式設定と出力の負担は、アプリケーション・スレッドに追加されます。
  • キャプチャー・トランザクションへの影響は大きくなります。 つまり、アプリケーション・スレッドで出力されるイベントについては、イベント出力の失敗によって、アプリケーションが取り消されます。 キャプチャー・トランザクションの構成および全体的なシステム・リソースの使用への影響を考慮してください。