ロー TCP/IP ソケットへのクライアント接続を作成し、その接続を介してデータを受信するには、TCPIPClientInput ノードを使用します。
このトピックには、以下のセクションが含まれています。
TCPIPClientInput ノードは、TCP/IP ポート上で listen しているリモート・サーバー・アプリケーションへの接続を開きます。 接続は、直接ノードによって行われるのではなく、WebSphere® Message Broker 実行グループによって管理される接続プールから入手されます。 実行グループは、デフォルトの TCPIPClient 構成可能サービスを使用して、ソケット接続に使用される属性を判別します。 しかし、このノード上で構成可能サービスが設定されている場合は、ホストやポート番号を含むすべてのプロパティーに構成可能サービスが使用されます。
TCP/IP ノードに対して SSL を使用するように、ブローカーを構成できます。SSL および TCP/IP ノードを参照してください。
接続が接続プールによって開かれると、TCPIPClientInput ノードに送られます (ノードの Open ターミナルが接続されている場合)。 入力イベントは、接続上の 1 つの TCPIPClientInput ノードだけに送られます。
デフォルトでは (構成可能サービスで設定されている)、入力ノードによってクライアント接続は作成されません。 ノードは、出力ノードか要求ノードによって作成されるクライアント接続に依存しています。 この操作のモードでは、出力ノードか要求ノードが対話を開始するまで、入力ノードが開始されることはありません。
構成可能サービス上でモードを変更して、処理に使用できるクライアント接続のプールを作成できます。 この機能を使用するには、minimumConnections をゼロより大きな値に設定しなければなりません。 このように実行グループは、始動時に接続を作成し、最小値に達するまで接続の作成を続けることで、確実に指定数の接続が常時使用可能であるようにします。
この動作は TCPIPServerInput ノードとは異なり、最小数の接続の作成を試行しません。 詳しくは、TCPIPServerInput ノードを参照してください。
クライアント・ノードには最大値も設定されており、作成できる接続の数が制限されます。 出力ノードが接続を作成する結果として、最小値より多くの接続が存在することもあります。
接続が使用可能で、処理できるデータが 1 バイト以上ある場合、2 つ目の基準が満たされたことになります。そうでない場合、接続は閉じます。 いずれの場合も、接続がノードに提供され、イベントが処理されます。
ノード上のプロパティーに従ってデータの最初のレコードが検出されてから、Out ターミナルに送信されます。 データ待機のタイムアウトや完全レコードの待機中の接続のクローズなどのエラーが発生すると、データは Failure ターミナルに送信されます。 接続が閉じ、データがない場合、メッセージは Close ターミナルに送信されます。 メッセージにはデータがありませんが、閉じた接続の詳細情報がローカル環境にあります。
データおよびクローズ・イベントの両方に対して、以下のローカル環境が作成されます。
ローカル環境中の場所 | 説明 |
---|---|
$LocalEnvironment/TCPIP/Input/ConnectionDetails/Type | クライアント。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/Hostname | 接続を行うのに使用されるホスト名。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/Port | 接続を行うのに使用されるポート番号。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/OpenTimestamp | 初めて接続が開かれた時点のタイム・スタンプ。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/CloseTimestamp | 接続が閉じた時点のタイム・スタンプ (まだ閉じていない場合はヌル)。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/SequenceNumber/InputRecord | この接続上で受け取られるメッセージのシーケンス番号。 先頭レコードのシーケンス番号は 1 です。2 番目のレコードのシーケンス番号は 2 で、以後同様です。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/SequenceNumber/OutputRecord | この接続上で送信されるメッセージのシーケンス番号。 先頭レコードのシーケンス番号は 1 です。2 番目のレコードのシーケンス番号は 2 で、以後同様です。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/Id | 使用されるソケットの ID。 この ID は、メッセージ・ブローカーで接続を一意的に識別するのに使用される内部 ID です。 |
$LocalEnvironment/TCPIP/Input/ConnectionDetails/ReplyId | この接続上で保管されている応答 ID。 値は任意のテキスト・ストリングにすることができます。 |
ノードで接続ストリームからのレコードの構成が終わると、接続を解放して、他のノードで使用できるように接続プールに戻します。 戻された接続が今後他のノードでどのように使用されるかは、「拡張」タブ上のプロパティーで示されます。 「拡張」プロパティーは、デフォルトで、TCP/IP 接続上の入力ストリームに予約済みのマークを付けます。これは、メッセージ・フローの現在の使用が終了するまで他の入力ノードが使用できないという意味です。 またはその代わりに、別のノードで予約解除になるまで接続を予約するか、それともまったく予約せずに、他のノード (またはこのノード中のスレッド) が接続をすぐに使用できるようにすることができます。 出力ストリーム上でも同様のオプションが使用可能ですが、デフォルトでは未予約のままになっています。
予約済みのストリームは、接続の ID が認識されている場合のみ、別のノードがアクセスできます。 この動作によって、メッセージ・フロー中のすべてのノードが、同じ ID を使用して同じ接続にアクセスでき、その一方で接続を獲得している他のフローを停止できます。
TCPIPClientInput ノードはパレットの「TCPIP」ドロワーに入っていて、WebSphere Message Broker Toolkit 内では次のアイコンによって表されます。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
TCPIPClientInput ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。
デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。
以下のように、TCPIPClientInput ノードを構成します。
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type>
<Fmt>XML</Fmt></mcd>
MQRFH2 ヘッダーの値とは異なる値を設定すると、MQRFH2 ヘッダーの値が優先されます。
「レコード検出」を、「クローズした接続」、「固定長」、または 「区切り」に設定すると、レコード長には 100 MB の限度が適用されます。 「レコード検出」を「解析済みレコード・シーケンス」に設定すると、TCPIPClientInput ノードは、レコード長を判別も制限もしません。 メッセージ・フロー中の下流のノードは、レコード長の判別や、長いレコードの処理を試みることがあります。 このようなやり方で大きなレコードを処理するつもりの場合、ブローカーに十分なメモリーがあることを確認しておいてください。 使用可能メモリーを最大限に活用するには、Large Messaging サンプルに説明されているフロー技法を用いる必要があるかもしれません。Large Messagingを参照してください。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
TCPIPClientInput ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
オープン | 接続が最初に開かれたときにメッセージがルーティングされる出力ターミナル。 処理が必要になるのが、データが最初に到着したときではなく、接続が開かれたときである場合、この Open ターミナルを使用します。 メッセージに関連する接続は、Open ターミナルへの伝搬が完了するまで、一般接続プールから確保されています。 ただし、接続は、ローカル環境で指定した接続 ID を使用してアクセスできます。 作成された各接続は、TCPIPClientReceive ノードまたは TCPIPClientOutput ノードによって作成された中間フローである任意の接続を含め、Open ターミナルに送信されます。 Open ターミナルが接続されていない場合は、オープン・イベントは接続プール内で自動的に使用可能になります。 |
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 この値には、再試行処理が原因の障害も含まれます。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。 |
Out | 外部リソースからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。入力ノード内でエラーが起こらなかった場合、外部リソースから受信されるメッセージは常にこの Out ターミナルにまず送信されます。 |
Close | 接続が閉じた場合にメッセージがルーティングされる出力ターミナル。 |
Catch | 例外がダウンストリームで発行され、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。 例外がキャッチされるのは、このターミナルが接続されている場合のみです。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力する必要がある場合、アスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
TCPIPClientInput ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | TCPIPClientInput | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
TCPIPClientInput ノードの基本プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
接続の詳細 | はい | はい | 使用するホスト名とポート番号か、または構成可能サービスの名前を含むストリング。 | connectionDetails | |
データ・レコード待機タイムアウト (秒) | はい | はい | 60 | データの先頭バイトの到達後に、接続上でノードがさらにデータを listen する期間を指定します。 秒単位の任意の時間の長さを指定できます。 | timeoutWaitingForData |
TCPIPClientInput ノードの拡張プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
接続のクローズ | はい | いいえ | いいえ | 接続をいつ閉じるか、あるいは開いたままにするかを制御します。 有効なオプションは、以下のとおりです。
|
レコードの受信後に入力ストリームをクローズします | はい | いいえ | 選択されていない | データの取り出し後すぐに入力ストリームを閉じるかどうかを指定します。 接続入力ストリームが予約されると、他のノードは ID を認識していないとそのストリームを使用できません。 デフォルトでは、このプロパティーは選択されません。 |
入力ストリームの変更 | いいえ | いいえ | 変更しないでそのままにする | 接続 ID を指定する入力ノードと受信ノードのみが使用するように入力ストリームを予約するかどうか、またはフローの終わりに解放するかどうかを指定します。 有効なオプションは、以下のとおりです。
|
出力ストリームの変更 | いいえ | いいえ | 変更しないでそのままにする | この出力ストリームが解放され、どの出力ノードでも使用できるようにプールに戻されるかどうかを指定します。 有効なオプションは、以下のとおりです。
|
TCPIPClientInput ノードの「入力メッセージの構文解析」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | BLOB | 着信メッセージの構文解析に使用されるドメイン。 | |
メッセージ・モデル | いいえ | いいえ | 着信メッセージが定義されているメッセージ・モデルの名前またはロケーション。 | ||
メッセージ | いいえ | いいえ | データの文書全体をモデル化し、メッセージ・モデル・スキーマ・ファイル内に含まれているグローバル・エレメントの名前またはロケーション。 このリストには、選択したメッセージ・モデルで定義された、利用可能なすべてのメッセージが取り込まれます。 | ||
物理形式 | いいえ | いいえ | 着信メッセージの物理フォーマットの名前。 | ||
メッセージ・コード化文字セット ID | はい | いいえ | ブローカー・システム・デフォルト | 読み取られるデータを解釈するのに使用されるコード化文字セットの ID。 | messageCodedCharSetIdProperty |
メッセージ・エンコード | はい | いいえ | ブローカー・システム指定 | 読み取られるデータを解釈するのに使用される数字およびラージ文字のエンコード・スキーム。 有効な値は、「ブローカー・システム指定」または数値のエンコード値です。 エンコードの詳細については、データ変換を参照してください。 | messageEncodingProperty |
TCPIPClientInput ノードの「パーサー・オプション」のプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、入力メッセージを構文解析する時を制御します。 有効な値は以下のとおりです。
このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。 |
XML スキーマ・データ・タイプを使用してツリーを構築する | いいえ | いいえ | 選択されていない | このプロパティーは、メッセージ・ツリー内の構文エレメントが、XML スキーマから取得されたデータ・タイプを持つかどうかを制御します。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定すると、入力 MQRFH2 ヘッダーまたは「入力メッセージの構文解析」プロパティー「メッセージ・ドメイン」が XMLNS の場合、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
不透明エレメント | いいえ | いいえ | ブランク | XMLNSC パーサーによって不透明解析される入力メッセージ内のエレメントのリストを指定するときに、このプロパティーを使用します。 |
TCPIPClientInput ノードの「レコードおよびエレメント」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
レコード検出 | はい | いいえ | ストリームの終了 | 入力データ内のレコードを特定するために使用される仕組み。 有効なオプションは、以下のとおりです。
|
長さ (バイト数) | はい | いいえ | 0 | レコード検出に「固定長」が選択されたときの各レコードのバイト単位の長さ。 |
区切り文字 | はい | いいえ | DOS または UNIX の行終了 | 「区切り」レコード検出が選択されたときに、各レコードを分離または終了する区切り文字バイトのタイプ。 有効なオプションは、以下のとおりです。
|
カスタム区切り文字 (16 進数) | いいえ | いいえ | 「区切り」レコード検出および「カスタム区切り文字」が選択されたときの、16 進数で表される区切り文字バイト。 「区切り文字」プロパティーを「カスタム区切り文字 (16 進数)」に設定した場合のみ、このプロパティーは必須です。 | |
区切り文字タイプ | はい | いいえ | 後置 | 「区切り」レコード検出および「カスタム区切り文字 (16 進数)」が選択されたときの区切り文字の位置。 有効なオプションは、以下のとおりです。
|
TCPIPClientInput ノードの「再試行」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
再試行メカニズム | はい | いいえ | 失敗 | ノードがフローの障害をどのように処理するかを示します。 有効なオプションは、以下のとおりです。
|
|
再試行しきい値 | はい | はい | 0 | 「再試行メカニズム」が「短い再試行」である場合に、フロー・トランザクションを再試行する回数。 | retryThreshold |
短い再試行間隔 | いいえ | はい | 0 | 「再試行しきい値」がゼロでない場合の各再試行間の秒単位の間隔。 | shortRetryInterval |
長い再試行間隔 | いいえ | はい | 300 | 「再試行メカニズム」が「短い再試行と長い再試行」で、再試行しきい値に達した場合の、再試行間の間隔。 | longRetryInterval |
TCPIPClientInput ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は以下のとおりです。
|
validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 有効な値は以下のとおりです。
|
TCPIPClientInput ノードの「トランザクション」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
トランザクション・モード | いいえ | はい | いいえ | この入力ノード上のトランザクション・モードによって、フロー内の残りのノードが整合ポイントの下で実行するかどうかが決まります。
有効なオプションは、以下のとおりです。
|
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
追加インスタンス・プール | いいえ | はい | メッセージ・フローに関連付けられたプールの使用 | 追加インスタンスの取得元のプール。
|
componentLevel |
追加インスタンス | いいえ | はい | 0 | 「追加インスタンス・プール」プロパティーが「ノードに関連付けられたプールの使用」に設定されている場合に、ノードが開始できる追加インスタンスの数。 | additionalInstances |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |