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

TCPIP アウトバウンド設定

Java の Socket のオプションを提供します。詳細については、JDK の Javadoc を参照してください。TCP/IP HL7 アウトバウンドアダプタの接続マッププロパティーのこのセクションには、次の表に示す最上位パラメータが含まれています。

表 1–72 接続マップ - TCPIP アウトバウンド設定

名前 

説明 

必要な値 

接続タイプ

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

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

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

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

ServerSoTimeout

ServerSocket の SoTimeout の値をミリ秒で設定または取得します。ServerSocket.accept() で使用されます。

このオプションをゼロ以外のタイムアウトに設定すると、この ServerSocket の accept() を呼び出した際に、その期間だけブロックが発生します。タイムアウトの期限が切れると、java.net.SocketTimeoutException (または java.net.InterruptedIOException) がスローされますが、ServerSocket は有効なままです。

ブロック動作に入る前に、このオプションを有効にしてください。このパラメータが使用されるのは、「接続タイプ」が「サーバー」に設定されている場合だけです。

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

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

キープアライブ

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

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

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

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

true または falsetrue は、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 Timeout」プロパティーを参照してください。

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 までは、タイムアウトの秒数を示します。

デフォルト設定は -1 秒です。

SoTimeout

SoTimeout の値をミリ秒で設定または取得します。このオプションをゼロ以外のタイムアウトに設定すると、このソケットに関連付けられた InputStream 上で read() を呼び出した際に、設定された時間の間だけブロックが発生します。

タイムアウトの期限が切れると、java.io.InterruptedIOException (または java.net.SocketTimeoutException) がスローされますが、Socket は有効なままです。ブロック動作に入る前に、このオプションを有効にしてください。

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

デフォルト設定は 10000 (10 秒) です。

TcpNoDelay

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

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

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

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

true または false を選択します。

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

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

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

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

Java クラス名。 

デフォルト値は次のとおりです 

com.stc.connector.tcpip.model.factory.TCPIPSocketFactoryImpl