COMTIContext によるカスタム TRM と ELM

トランザクション インテグレーター (TI) 開発者は、カスタム形式のトランザクション要求メッセージ (TRM) または拡張リスナー メッセージ (EMM) をクライアント プログラムから CICS システムに渡し、カスタム形式の TRM または EMM を受け取ることができます。

カスタム TRM または ELM は、コンテキスト データを介して渡されます。 コンテキスト データは、クライアント アプリケーション コードで定義されている省略可能な COMTIContext パラメーターに含まれており、メソッド呼び出しの最後のパラメーターである必要があります。 ホスト宛ての TRM は、COM モデルのユーザー定義型 (UDT) または.NET Framework モデルの構造体として定義する必要があります。 UDT の名前は、TRMIN 文字で始まる必要があります。 ホストからの TRM 応答も UDT として定義する必要があります。 UDT の名前は、文字 TRMOUT で始まる必要があります。 有効な TRM 名の例は、TRMINMyVeryOwn、TRMINStandard、TRMOUTMyVeryOwn、および TRMOUTStandard です。

タイプ ライブラリまたは構造体には複数の TRM 定義を含めることができますが、1 つのメソッド呼び出しで COMTIContext パラメーターに含める方向ごとに 1 つの TRM (つまり、1 つの TRMIN と 1 つの TRMOUT) のみを含める必要があります。 たとえば、Visual Basic では、各 COMTIContext 配列はバリアントの 1 次元動的配列として宣言されます (つまり、出現回数は指定されていません)。

同じ方向に複数の TRM を定義した場合、TI ランタイムではコンテキスト配列で最初に検出された TRM のみが使用されます。 (状況によっては、最初に検出された TRM が、コンテキスト配列に追加した最初の TRM であるとは限りません)。 TI ランタイムは、使用中の TRM が破棄されるまで、配列内の残りの TRM を無視します。 TI ランタイムで正しい TRM が使用されるようにするには、同じ方向を意図した複数の TRM をコンテキスト配列に追加しないでください。

Note

Context 配列を操作するクライアント アプリケーションは、実行時に適切なファイルにアクセスできる必要があります。 Visual Basic6.0 を使用している場合は、アプリケーションが COMTIContext.dll にアクセスできる必要があります。 Visual Basic .NET を使用している場合、アプリケーションは Microsoft.HostIntegration.TI.ClientContext.dll にアクセスできる必要があります。

Note

Visual Basic .NET を使用する場合、カスタム TRM として使用されるデータ構造をアセンブリ内のパラメーターに関連付ける必要があります。 したがって、アセンブリ内にダミー メソッド、メソッドに割り当てられたパラメーター、および TRM として使用するデータ構造を作成する必要があります。 これを行わないと、Visual Basic .NET アプリケーション内の構造体を参照できなくなります。 Visual Basic 6.0 ではメソッドに関連付けられていない UDT の参照が Visual Basic 6.0 で許可されているため、UDT をメソッドに関連付ける必要はありません。

参照

トランザクション要求メッセージ
カスタム TRM を渡す方法