Configuring Java CAPS Project Components for Communication Adapters

TCPIP Outbound Settings — TCP/IP HL7 V2 Outbound Adapter

Presents the java Socket options. For more information see the JDK Javadoc. This section of the TCP/IP HL7 V2 outbound adapter Connectivity Map properties contains the top-level parameters displayed in this table:

Table 78 Connectivity Map - TCPIP Outbound Settings

Name 

Description 

Required Value 

Connection Type

Specifies how the adapter establishes the TCP/IP connection: 

  • Client: The adapter connects to an external server (host/port) to establish the connection. The adapter is in active mode.

  • Server: The adapter waits/listens on a particular port for an incoming connection request from an external client. Once the request is received, the adapter accepts the request and establishes the connection. The adapter is in passive mode.

Select Client or Server.

Unless you specifically require Server mode, leave this value as the default, Client.

ServerSoTimeout

Sets or gets the value of the SoTimeout for the ServerSocket, in milliseconds. Used for ServerSocket.accept().

When this option is set to a non-zero timeout, calling accept() for ServerSocket will block for only this period of time. If the timeout expires, a java.net.SocketTimeoutException (or java.net.InterruptedIOException) is thrown, though the ServerSocket remains valid.

Enable this option prior to entering the blocking operation. This parameter is only used when the Connection Type is set as Server.

The SoTimeout value in milliseconds. The timeout must be greater than 0 (zero). A timeout of zero is interpreted as an infinite timeout.

The configured default is 60000 (60 seconds).

Keep Alive

Specifies whether the client’s SO_KEEPALIVE option is enabled or disabled. When the option is set for a TCP socket and no data has been exchanged across the socket in either direction for 2 hours, TCP automatically sends a KEEPALIVE probe to the peer (the actual value is implementation dependent). This probe is a TCP segment to which the peer must respond. One of three responses is expected:

  1. The peer responds with the expected ACK. The application is not notified (since everything is OK). TCP will send another probe following another 2 hours of inactivity.

  2. The peer responds with an RST, which tells the local TCP that the peer host has crashed and rebooted. The socket is closed.

  3. There is no response from the peer. The socket is closed. The purpose of this option is to detect if the peer host has crashed. This is used for the accepted client Socket.

Select True or False.

True indicates that the SO_KEEPALIVE option is enabled.

Receive Buffer Size

Sets or gets the value of the SO_RCVBUF option for the current socket, that is the buffer size used by the operating system for input on this socket. It provides an estimate of the size of the underlying buffers used by the platform for incoming network I/O.

When used in set, this is a suggestion for the kernel from the application regarding the size of buffers to use for the data to be received over the socket. When used in get, this must return the actual size of the buffer used by the platform when receiving data on this socket.

A number indicating the receive buffer size. 

The configured default is 8192.

Send Buffer Size

Sets or gets the value of the SO_SNDBUF option for the current socket, that is the buffer size used by the operating system for output on this socket. It provides an estimate of the size of the underlying buffers used by the platform for outgoing network I/O.

When used in set, this is a suggestion for the kernel from the application regarding the size of buffers to use for the data to be sent over the socket. When used in get, this must return the actual size of the buffer used by the platform when sending out data on this socket.

A number indicating the send buffer size. 

The configured default is 8192.

SoLinger

Specifies whether the adapter performs a linger-on-close timeout. This option disables/enables immediate return from a close() of a TCP Socket. This parameter is used in conjunction with SoLinger Timeout.

  • True with SoLinger Timeout set to a non-zero integer timeout: This means that a close() will block, pending the transmission and acknowledgement of all data written to the peer, at which point the socket is closed gracefully. Upon reaching the linger timeout, the socket is closed forcefully with a TCP RST.

  • True with SoLinger Timeout set to a timeout of zero: Indicates that a forceful close is done immediately. See the SoLinger Timeout propertry.

Select True or False.

True enables the SO_Linger option.

SoLinger Timeout

Specifies the server’s SoLinger time-out in seconds. SoLinger Timeout is used in conjunction with SoLinger (see the SoLinger property) to configure the “linger-on-close” timeout.

When SoLinger is set to true (enabled), the SoLinger Timeout value indicates the following:

  • A non-zero integer means that calling close() will block, pending the transmission and acknowledgement of all data written to the peer, at which point the socket is closed gracefully. Upon reaching the linger timeout, the socket is closed forcefully with a TCP RST. If the specified timeout value exceeds 65,535 it will be reduced to 65,535.

  • A zero integer indicates that a forceful close is done immediately.

An integer between -1 and 65535.

A value of -1 seconds indicates that the SoLinger option is disabled (set as false).

A value of 0 (zero) indicates that SoLinger immediately performs a forceful close.

An value of 1 to 65535 indicates the number of seconds for the time-out.

The configured default is -1 seconds.

SoTimeout

Sets or gets the value of the SoTimeout in milliseconds. When this option is set to a non-zero timeout, calling read() on the InputStream associated with this socket will block for only this configured length of time.

If the timeout expires, a java.io.InterruptedIOException (or java.net.SocketTimeoutException) is thrown, but the Socket remains valid. Enable this option prior to entering the blocking operation.

The SoTimeout value in milliseconds. The timeout must be greater than zero (0). A timeout of zero is interpreted as an infinite timeout. 

The configured default is 10000 (10 seconds).

TcpNoDelay

Specifies whether the server’s TcpNoDelay option (that is, Nagle’s algorithm) is enabled or disabled.

  • True: Indicates that the server allows data packets that are less than the maximum transfer unit (MTU) size to be sent out immediately over the network. A setting of True may improve performance for higher-speed networks.

  • False: Indicates that the server does not allow data packets that are less than the MTU size be sent out immediately over the network.

    This is used for the accepted client socket.

Select True or False.

The configured default is False.

Socket Factory Implementa-tion Class Name

Specifies the name of the Java class that implements the socket factory. This class is used to create the socket. If you have provided your own socket implementation, enter the name of the Java class that contains this implementation here. The factory implementation class must implement the following interface: 

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

A Java class name. 

The default value is 

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

Where to Go Next

TCPIP Outbound Settings - Client Connection Establishment — TCP/IP HL7 V2 Outbound Adapter.

Related Topics