TCP 受信アダプタに関する設定
概要
TCP 受信アダプタには以下の設定があります。
グループ | 設定 |
---|---|
基本設定 | [ポート]、[呼び出し間隔] |
接続設定 | [接続毎のジョブ]、[許可IPアドレス]、[OS接続受け付けキューサイズ] (QSize)、[接続を維持]、[読み込みタイムアウト]、[SSL構成]、[ローカル・インターフェース] |
追加設定 | [受け入れクラス名]、[文字セット] |
残りの設定はすべてのビジネス・サービスに共通のものです。詳細は、"すべてのビジネス・サービスに含まれる設定" を参照してください。
受け入れクラス名
EnsLib.TCP.CountedXMLInboundAdapterOpens in a new tab に適用されます。
受信した XML ブロックを基にこのアダプタがインスタンス化するクラスの名前を指定するカンマ区切りのリストです。
許可IPアドレス
すべての TCP 受信アダプタに適用されます。
接続を受け入れるリモート IP アドレスのカンマ区切りのリストです。アダプタは、IPV4 アドレス、IPV6 アドレス、またはドメイン・ホスト・コントローラが解決できるサーバ名を受け入れます。オプションとして、port の指定がサポートされています。例えば、192.168.1.22 または 192.168.1.22:3298 のアドレス形式は両方とも受け入れられます。
IP アドレス・フィルタリングは、一般アクセスできるシステムではなくプライベート・ネットワーク上のアクセスを制御するための手段です。IP アドレス・フィルタリングを唯一のセキュリティ・メカニズムとして利用することは推奨されません。攻撃者は IP アドレスをスプーフィング (偽装) できるからです。
ポート番号を指定すると、その他のポートからの接続は拒否されます。
この文字列の先頭に感嘆符 (!) が付加されている場合、受信アダプタは、受信接続要求を待つことなく接続を開始します。受信アダプタは指定されたアドレスへの接続を開始し、次にメッセージを待機します。この場合、指定されるアドレスは 1 つだけで、ポートが指定された場合は Port 設定の値より優先されます。それ以外の場合は Port 設定が使用されます。
呼び出し間隔
すべての TCP 受信アダプタに適用されます。
アダプタが構成されたソースからの受信データをリッスンする秒数です。この秒数を超えると、プロダクション・フレームワークからのシャットダウン信号を確認します。
アダプタは、入力を検出すると、データを取得してビジネス・サービスに渡します。ビジネス・サービスはデータを処理し、アダプタは直ちに新規入力の待機を開始します。プロダクションが実行中であり、ビジネス・サービスが有効化され、アクティブになるようにスケジュールされている場合、このサイクルは常に継続されます。
CallInterval のデフォルト値は 5 秒です。最小値は 0.1 秒です。
文字セット
EnsLib.TCP.CountedInboundAdapterOpens in a new tab、EnsLib.TCP.CountedXMLInboundAdapterOpens in a new tab、および EnsLib.TCP.TextLineInboundAdapterOpens in a new tab に適用されます。
受信データの文字セットを指定します。InterSystems IRIS® は、自動的に、文字をこの文字エンコーディングから変換します。この設定値は大文字と小文字が区別されません。Binary は、バイナリ・ファイル、新規行文字と改行文字が異なるデータ、または変更しないまま残す必要のあるデータに対して使用します。テキスト・ドキュメントを転送するときは、他の設定が便利な場合があります。選択肢は以下のとおりです。
-
Binary — バイナリ転送 (デフォルト)
-
Ascii — 文字エンコーディング変換を伴わない Ascii モード FTP 転送
-
Default — ローカル InterSystems IRIS サーバのデフォルトの文字エンコード
-
Latin1 — ISO Latin1 8 ビット・エンコード
-
ISO-8859-1 — ISO Latin1 8 ビット・エンコード
-
UTF-8 — Unicode 8 ビット・エンコード
-
UCS2 — Unicode 16 ビット・エンコード
-
UCS2-BE — Unicode 16 ビット・エンコード (ビッグ・エンディアン)
-
InterSystems IRIS に NLS (各国言語サポート) をインストールするための、国際文字エンコード規格に基づくその他のエイリアス
文字セットおよび変換テーブルの詳細は、"変換テーブル" を参照してください。
エンディアン
EnsLib.TCP.CountedInboundAdapterOpens in a new tab と EnsLib.TCP.CountedXMLInboundAdapterOpens in a new tab に適用されます。
選択項目 [ビッグ] または [リトル] は、4 バイト・ブロック・カウントの接頭語のバイト順を示します。[ビッグ] エンディアンは、最上位バイト (MSB) を最初に回線上に送ることを意味し、[リトル] エンディアンは、最下位バイト (LSB) を最初に回線上に送ることを意味します。この文字列のデフォルト値は[ビッグ]です。
接続毎のジョブ
すべての TCP 受信アダプタに適用されます。
真のとき、アダプタは受信 TCP 接続ごとに処理を行う新しいジョブを生成して、複数の接続の同時処理を可能にします。偽の場合、各接続に対する新しいジョブは生成されません。X12 接続には、通常は偽を選択するのが適切です。デフォルトは真です。
TCP サービスに対して [JobPerConnection] が真の場合、それぞれの新しい受信ソケット接続は、リスナ・ジョブ自体ではなく新たに生成されたジョブによって処理されるようになります。ただし、一度にリスナになれるのは 1 つのジョブのみであり、なおかつ 1 つのジョブがリスナになっている必要があります。このため、TCP サービスの [プール・サイズ] に 2 以上の値が指定されていても、1 つのリスナ・ジョブしか開始されません。しかし、[JobPerConnection] を真に設定すると、このリスナで生成できる接続ジョブの数は無制限になります。
[プール・サイズ] 設定を 2 以上に構成すると、同時に存在可能な接続ジョブの数を制限できます。この制限に達すると、既存の接続ジョブが終了するか停止するまで、リスナは接続を受け入れなくなります。イベント・ログの警告メッセージは、この制限に最初に達した時点で表示されます。
ローカル・インタフェース
すべての TCP 受信アダプタに適用されます。
TCP 接続に必要なネットワーク・インタフェースを指定します。リストから値を選択するか、値を入力してください。空の値は、任意のインタフェースが使用できることを意味します。
OS接続受け付けキューサイズ (QSize)
すべての TCP 受信アダプタに適用されます。
このビジネス・サービスのために、オペレーティング・システムで予約しておく必要のある受信接続数を指定します。同時に発生すると想定される接続が 1 つのみで、以降の接続がオペレーティング・システムによって直ちに拒否される場合は 0 に設定します。多数のクライアントが次々と接続する場合には大きな数値を設定します。デフォルトは 100 です。0 ~ 1000 の範囲で設定できますが、最大受信接続数は TCP の実装によって異なります。
0 に設定した場合は、ビジネス・サービスで処理中の受信接続があると、接続しようとするクライアントは接続を拒否されます。これにより、ビジネス・サービスに接続しているクライアントが接続を解除され、リッスンしているソケットがまだ解放されていない短時間のうちに再接続しようとする状況になることが考えられます。その結果、クライアントは再接続しようとしなくなります。
HL7 と X12 の TCP 受信アダプタの場合は、この既定値が 0 に設定されます。これにより、一度に想定される接続が 1 つのみである、HL7 の先入れ先出し (FIFO) 方針がサポートされます。
ポート
すべての TCP 受信アダプタに適用されます。
アダプタが TCP 要求をリッスンしているローカル・マシン上の TCP ポートを指定します。オペレーティング・システムで一時的な送信接続用に使用されるポート範囲内のポート番号を指定することは避けてください。
読込タイムアウト
すべての TCP アダプタに適用されます。
リモート TCP ポートから初期データを受信した後、次に続く受信 TCP 読み取りオペレーションを待機する秒数です。デフォルトは 5 秒です。指定できる値の範囲は 0 ~ 600 秒 (最大 10 分) です。
SSLConfig
すべての TCP アダプタに適用されます。
この接続の認証に使用する既存の TLS 構成の名前。アダプタから通信が開始されるため、クライアント TLS 構成を選択します。
TLS 構成を作成して管理するには、管理ポータルを使用します。インターシステムズの "TLS ガイド" を参照してください。[SSL/TLS構成を編集] ページの最初のフィールドは [構成名] です。この文字列を [SSL構成] の値として使用します。
接続を維持
すべての TCP アダプタに適用されます。
入力イベント後にアダプタがどれだけの間リモート・システムとの接続を維持するかを指定し、アダプタによる切断処理方法を指定します。
以下のいずれかの値を指定できます。
-
正の値—アダプタは、ここで指定された秒数だけリモート・システムとの接続を維持します。切断はエラーのようには処理されません。
-
0—アダプタは直ちに切断します。切断はエラーのようには処理されません。
-
–1—アダプタは、アイドル・タイムも含め、永久的に接続されたままとなります。切断はエラーのように処理されます。
Note:アダプタは、[接続を維持] の値が -1 の場合のみ、起動時に自動接続されます。
デフォルト値は -1 です。
[接続を維持] を –1 に、[接続毎のジョブ] を False に設定すると、アダプタは、ネットワークでの事象によって生じた切断を検出しない場合があります。具体的には、以下のような状況が発生する可能性があります。
-
アダプタがリモート・システムからの受信接続を受け入れます。
ここで、[接続毎のジョブ] が False に設定されていると、アダプタ上のリスナ・ジョブが各受信接続を処理する (この処理を行う新しいジョブを生成するのではなく) ことを思い出してください。
-
ネットワークでの事象により切断が発生し、アダプタは接続を終了するための TCP FIN または RST パケットを受け取りません。
例えば、リモート・システムとアダプタとの間のファイアウォールが、一定の時間の経過後に接続を閉じることがあります。
-
リモート・システムは接続を再確立しようとしますが、アダプタ上の待ち受けソケットに接続できません。
-
リモート・システムはエラーを生成し、引き続き接続の再確立を試みます。
この状況を修復するには、そのアダプタを使用しているビジネス・サービスを停止してから再起動する必要があります。
この状況を回避するには、[接続を維持] を –1 以外の値に設定します。例えば、[接続を維持] を 300 に設定すると、アダプタは 5 分後に切断します。さらに、アダプタが要求を順に処理する必要がない場合は、[接続毎のジョブ] を True に設定し、アダプタが受け取った複数の受信接続要求を一度に処理できるようにします。