ホスト側開始の処理
ホストによって開始される処理 (HIP) を使用すると、ホスト アプリケーションは COM または .NET オブジェクトのメソッドを呼び出し、メソッドにパラメーターを渡し、メソッドからパラメーターを受け取ることができます。 データが最初にホストからクライアントに移動し、次にクライアントからホストに移動すると、データはホストが理解できる形式からクライアントに適した形式に変換されます
ホストによって開始される処理は、次の手順で実装されます。
アプリケーションと呼ばれる HIP サービス プロセスは、ローカル環境定義で指定されたエンドポイントの一覧で受信接続のリッスンを開始します。
ホスト上で実行されているクライアント アプリケーションは、いずれかのエンドポイントを使用して HIP システムへの TCP 接続を開始します
HIP サービス プロセスは、エンドポイントとクライアントのホスト名または IP アドレスの間に確立された関連付けがあるかどうかを確認します。 関連付けが見つからない場合、接続は中止されます。
関連付けは、クライアント要求を完了するために実行されるワークフローのシーケンスである作業計画を一意に識別します。 作業計画には次の 3 種類があります。
エンドポイント
トランザクション要求メッセージ
データ。
エンドポイント
エンドポイント作業計画は、1 つの最終的なワークフローで構成されます。 関連付けは、クライアント要求処理のために呼び出される COM オブジェクトのメソッドに直接マップされます。 エンドポイント ワークフローでは、次の処理が実行されます。
クライアント データを受信します
データを開梱し、 メソッドのパラメーターを設定します
オブジェクトを作成し、 メソッドを呼び出します。
返されたパラメーターをクライアント データにパックする
クライアント データを送信する
接続を閉じます。
トランザクション要求メッセージ
トランザクション要求メッセージ (TRM) 作業計画は、TRM と最終ワークフローの 2 つのワークフローで構成されます。 TRM ワークフローは、クライアントが TRM を送信し、ワークフローが TRM 応答で応答するときに、会話の最初の部分を処理します。 TRM ワークフローでは、TRM の種類に応じて、Microsoft Concurrent Server、Microsoft Link、IBM Concurrent Server の 3 つの TRM ハンドラーのいずれかを使用できます。 TRM ワークフローでは、次の処理が実行されます。
割り当てられた入力形式を使用して TRM を受信してアンパックします
割り当てられたハンドラーに TRM を渡します
ハンドラーは、解決情報と正の TRM 応答を返します
文字データと想定される解決情報は、ホスト環境に関連付けられているコード ページを使用して Unicode に変換されます
解決情報に対して定義されたオブジェクトのメソッドへのマッピングがある場合、ワークフローはデータベースに対してクエリを実行します
一致が見つからない場合は、ハンドラーが呼び出され、負の TRM 応答が取得されます
TRM 応答は、割り当てられた出力形式を使用してパックされ、送信されます。 負の場合、接続は中止されます
ワークフローは、見つかったメソッド ID と共に Final ワークフローに制御を渡します
データ
データ決定作業計画は、データ決定型ワークフローと最終ワークフローの 2 つのワークフローで構成されます。 データ決定型ワークフローは、関連付けに定義されている決定要因の 1 つに一致するものを見つけようとするクライアント データを前処理します。 決定性には、文字の文字列と、クライアント データ内の文字列の位置が含まれます。 各決定要因は、オブジェクトのメソッドにマップされます。 起動時に、決定要因は決定要因に関連付けられているホストのすべてのコード ページに事前に変換されます。 ルールは、エンドポイントの決定要因 (ホストの関連付けが重複しないか、一方の決定要因が他の要素の一部ではない) に適用されます。 ワークフローは、次の手順に従います。
指定されたエンドポイント – ホストの組み合わせの決定要因の一覧が取得され、長さと位置の合計で昇順で並べ替えられます。
最初の決定要因はリストから取得されます
クライアント データの一部を受信する
データが決定要因と一致するかどうかがチェックされます
一致しない場合は、次の決定要因がリストから取得され、必要に応じてより多くのクライアント データが受信され、データは決定要因と比較されます
使用可能な決定要因がデータと一致しない場合、接続は中止されます
決定要因が見つかった場合、コントロールは、メソッド ID とクライアント データが既に読み取られた状態で Final ワークフローに渡されます。 クライアント データがメソッド パラメーターにマップされた後でも、決定性データが存在する場合があります。
Note
HIP MVS クライアントは、ソケット送信直後およびソケット受信前にソケット・シャットダウンを実行する必要があります。 ソケットの即時シャットダウンを実行しないと、TI ランタイムはデータを拒否し、接続を切断し、808 イベント メッセージ (トランザクション インテグレーター HIP アプリケーションが予想よりも多くのデータを受信しました)をサーバー アプリケーション イベント ログに記録します。 さらに、ワークステーションに送信されるデータを含むパケットは誤解を招く可能性があります。Microsoft ネットワーク モニターは、パケット内のデータとデータ長が過剰ではないことを示しています。