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