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