通信アダプタ用 Java CAPS プロジェクトコンポーネントの構成

TCPIP インバウンド設定

TCPIP インバウンド設定」セクションは、Java の Socket および ServerSocket のオプションを提供します。TCP/IP HL7 インバウンドアダプタの接続マッププロパティーのこのセクションには、次の表に示す最上位パラメータが含まれています。

表 1–58 接続マップ - TCPIP インバウンド設定

名前 

説明 

必要な値 

接続タイプ

アダプタによる TCP/IP 接続の確立方法を指定します。 

  • クライアント: アダプタは、外部サーバー (ホスト/ポート) に接続して接続を確立します。アダプタは能動モードになります。

  • サーバー: アダプタは、外部クライアントからの接続要求が受信されるまで特定のポート上で待機します。要求が受信されると、アダプタはその要求を受け付け、接続を確立します。アダプタは受動モードになります。

クライアント」または「サーバー」。「サーバー」がデフォルト設定です。「クライアント」モードが特に必要でないかぎり、この値はデフォルトの「サーバー」のままにしておいてください。

ServerSO タイムアウト

ServerSocketSO_TIMEOUT の値を、ミリ秒で設定または取得します。ServerSocket.accept() で使用されます。このオプションをゼロ以外のタイムアウトに設定すると、この ServerSocket 上で accept() を呼び出した際に、その設定された時間の長さだけブロックが発生します。タイムアウトの期限が切れると、java.net.SocketTimeoutException (または java.net.InterruptedIOException) がスローされますが、ServerSocket は有効なままです。ブロック動作に入る前に、このオプションを有効にしてください。このパラメータが使用されるのは、「接続タイプ」が「サーバー」に設定されている場合だけです

ServerSO タイムアウトを示す数値 (ミリ秒)。

このタイムアウトはゼロ (0) より大きくする必要があります。ゼロのタイムアウトは、タイムアウトが無限であると解釈されます。

デフォルト設定は 60000 (60 秒) です。

サーバーソケットファクトリ実装クラス名

サーバーソケットファクトリを実装した Java クラスの名前を指定します。このクラスは、サーバーソケットを作成するために使用されます。ユーザー独自のサーバーソケット実装を用意した場合には、その実装を含む Java クラスの名前をここで入力します。ファクトリ実装クラスは、次のインタフェースを実装する必要があります。 


com.stc.connector.tcpip.model.factory.TCPIPSocketFactory

有効な Java クラス名。デフォルトは次のとおりです。 


com.stc.connector.tcpip.model.
factory.TCPIPSocketFactoryIm
pl

キープアライブ

クライアントの SO_KEEPALIVE オプションが有効、無効のいずれであるかを指定します。ある TCP ソケットでこのオプションが設定されており、そのソケット経由で2 時間、どちらの方向にもデータがまったく交換されなかった場合、TCP は自動的に KEEPALIVE プローブをピアに送信します (実際の値は実装に依存する)。このプローブは TCP セグメントであり、ピアはこれに応答する必要があります。次の 3 つの応答のいずれかが予期されます。 

  1. ピアが期待どおりの ACK で応答する。アプリケーションへの通知は行われません (何も問題がないため)。その後さらに 2 時間非活動状態が続くと、TCP は再度プローブを送信します。

  2. ピアが RST で応答する。これは、ピアのホストがクラッシュしてリブートしたことをことを、ローカルの TCP に通知します。ソケットが閉じられます。

  3. ピアからの応答がない。ソケットが閉じられます。このオプションの目的は、ピアのホストがクラッシュしたかどうかを検出することです。これは、受け付けられたクライアント Socket で使用されます。

true または false。true は、サーバーの SO_KEEPALIVE オプションが有効であることを示します。


注 –

一部のプロパティーについては、その設定がサーバーソケット自体には直接関連付けられません。代わりに、それらのプロパティーは受け付けられたクライアントソケットにマップされます。


受信バッファーサイズ

現在のソケットの SO_RCVBUF オプションの値を設定または取得します。これは、オペレーティングシステムがこのソケットの入力用に使用するバッファーのサイズです。これは、プラットフォームが受信ネットワーク入出力用に使用する配下のバッファーの概算サイズを提供します。これを設定に使用すると、その値は、このソケット経由で受信されるデータ用に使用するバッファーのサイズに関する、アプリケーションからカーネルへの提案値になります。これを取得に使用すると、プラットフォームがこのソケット上でのデータ受信時に使用するバッファーの実際のサイズが返されます。

受信バッファーサイズを示す数値。 

デフォルト設定は 8192 です。

送信バッファーサイズ

現在のソケットの SO_SNDBUF オプションの値を設定または取得します。これは、オペレーティングシステムがこのソケットの出力用に使用するバッファーのサイズです。これは、プラットフォームが送信ネットワーク入出力用に使用する配下のバッファーの概算サイズを提供します。これを設定に使用すると、その値は、このソケット経由で送信されるデータ用に使用するバッファーのサイズに関する、アプリケーションからカーネルへの提案値になります。これを取得に使用すると、プラットフォームがこのソケット上でのデータ送信時に使用するバッファーの実際のサイズが返されます。

送信バッファーサイズを示す数値。 

デフォルト設定は 8192 です。

SoLinger

アダプタが linger-on-close タイムアウトを実行するかどうかを指定します。このオプションは、TCP Socket の close() からの即時リターンを無効化/有効化します。このパラメータは「SoLinger タイムアウト」と組み合わせて使用されます。

  • true で、かつ「SoLinger タイムアウト」がゼロ以外の整数タイムアウトに設定された場合: これは、ピアに書き込まれたすべてのデータの送信と肯定応答が完了するまで、close() がブロックされることを意味します。それが完了した時点で、ソケットは正常に閉じられます。linger タイムアウトに達すると、ソケットは TCP RST で強制的に閉じられます。

  • true で、かつ「SoLinger タイムアウト」がゼロのタイムアウトに設定された場合: 強制的なクローズが即時に行われることを示します。「SoLinger タイムアウト」プロパティーを参照してください。

true または false。true の場合、SO_Linger オプションが有効になります。

SoLinger タイムアウト

サーバーの SoLinger タイムアウトを秒で指定します。「SoLinger タイムアウト」は「linger-on-close」タイムアウトを設定するために、「SoLinger」 (「SoLinger」プロパティー値を参照) と組み合わせて使用されます。

SoLinger」が true (有効) に設定された場合、「SoLinger タイムアウト」値の意味は、次のようになります。

  • ゼロ以外の整数は、ピアに書き込まれたすべてのデータの送信と肯定応答が完了するまで、close() 呼び出しがブロックされることを意味します。それが完了した時点で、ソケットは正常に閉じられます。linger タイムアウトに達すると、ソケットは TCP RST で強制的に閉じられます。指定したタイムアウト値が 65,535 を超えていると、その値は 65,535 に減らされます。

  • 整数ゼロは、強制的なクローズが即時に行われることを示します。

-1 から 65535 までの整数。デフォルトは -1 秒ですが、これは、「SoLinger」オプションが無効化される (false に設定される) ことを示します。

ゼロ (0) は、SoLinger が即時に強制的なクローズを実行することを示します。整数 1 から 65535 までは、タイムアウトの秒数を示します。

SoTimeout

SoTimeout の値をミリ秒で設定または取得します。受け付けられたクライアントソケットで使用されます。このオプションをゼロ以外のタイムアウトに設定すると、このソケットに関連付けられた InputStream 上で read() を呼び出した際に、設定された時間だけブロックが発生します。タイムアウトの期限が切れると、java.io.InterruptedIOException (または java.net.SocketTimeoutException) がスローされますが、Socket は有効なままです。

ブロック動作に入る前に、このオプションを有効にしてください。 

SoTimeout の値 (ミリ秒)。デフォルト設定は 10000 (10 秒) です。

このタイムアウトは 0 (ゼロ) より大きくする必要があります。ゼロのタイムアウトは、タイムアウトが無限であると解釈されます。

TcpNoDelay

サーバーの TcpNoDelay オプション (つまり、Nagle のアルゴリズム) が有効、無効のいずれであるかを指定します。

  • true: 最大転送単位 (MTU) のサイズより小さいデータパケットがネットワーク経由で即時に送信されるのを、サーバーが許可することを示します。高速ネットワークでは、true を設定するとパフォーマンスが改善される可能性があります。

  • false: MTU サイズより小さいデータパケットがネットワーク経由で即時に送信されるのを、サーバーが許可しないことを示します。

    これは、受け付けられたクライアントソケットで使用されます。

true または false

デフォルト設定は false です。