TCPIP Client policy (TCPIPClient)

Attach a TCPIP Client policy to one or more TCP/IP nodes in a message flow to control connection details to a TCP/IP client at run time.

You use a TCP/IP client node in a message flow to create a client connection to a raw TCP/IP socket, and to send or receive data over that connection to or from an external application. The TCP/IP client nodes open a connection to a remote server application that is listening on a TCP/IP port. The connections are not made directly by the node but are obtained from a connection pool that is managed by an integration server. The integration server uses the default TCPIP Client policy to determine which attributes are used for the socket connection. However, if the policy is set on the node, the policy is used for all the properties, including the hostname and port number. TCP/IP policies must be defined before a message flow that uses them is deployed, even in a test environment (see Configuring properties for TCP/IP).

To attach a TCPIP Client policy to a TCPIP Client node, set the Connection details property of the TCPIPClientInput, TCPIPClientOutput, or TCPIPClientReceive node to the name of the policy, in the format {policyProjectName}:policyName. You must deploy this policy before the associated message flow is started.

If you redeploy a TCPIPClient policy, all message flows that are using the policy are stopped and restarted.

The properties of this policy are described in the following table.
Table 1. Properties of the TCPIP Client policy
Property Property name in .policyxml file Value
Host name Hostname This mandatory property specifies the hostname of the remote system to connect to with a client connection. A valid value is any IP address or computer name. You cannot change this value if another policy exists with this name and is using the same port (unless the port is set to 0).

Value type: String

Port number Port This property specifies the port number to be used for this policy. The default value is 0 (zero), which means that no port number is used. By default, the policy is not used and the value of the port that is provided on the node is used instead.

A port number can be assigned to only one policy at a time; if you try to assign a port number to more than one policy, an error occurs.

Value type: Integer

SSL protocol SSLProtocol This property specifies the SSL protocol to use. Valid values are:
  • "" or none (the default), which indicates that SSL is not used.
  • SSL
  • SSLv3
  • TLS
Note: SSLv3 is disabled by default in IBM® App Connect Enterprise 13.0, because SSLv3 is no longer considered secure. For more information, see Migrating a flow that uses SSLv3.

Value type: String

Cipher suites SSLCiphers This property consists of a semicolon-delimited list of cipher suites that can be used for the SSL handshake. The default value of "" means that all available cipher suites can be used.

Value type: String

Minimum number of client connections MinimumConnections This property specifies the minimum number of client connections that are made by the integration server. The integration server tries to establish this number of connections even if no flows are using the connections. The default value of 0 (zero) means that the integration server does not make any client connections until they are needed. A value of -1 prevents TCPIPClientInput nodes from creating connections and from relying on the creation of connections by TCPIPClientOutput or TCPIPClientReceive nodes.

Value type: Integer

Maximum number of connections MaximumConnections This property specifies the maximum number of client connections that can be made to this host and port. The default value is 100, which means that 100 concurrent connections can be open for use by TCPIPClient nodes. When the maximum limit is reached, and all connections are in use, all other nodes are blocked until one of the connections becomes available for use or is closed. The length of time that the flow is blocked for can be controlled by configuring the property on the node Timeout sending a data record (seconds).

Value type: Integer

Maximum record size (bytes) MaxReceiveRecordBytes This property specifies the maximum size that a record can reach before an exception is issued. The default value is 100000000, which means that the integration server accepts messages with a maximum size of 100 MB. The record size is taken to be the size of the data, including all delimiters.

Value type: Integer

Connection expiry time (seconds) ExpireConnectionSec This property specifies the length of time (in seconds) that a connection is kept open without being used. The value can be any integer. A value of 0 (zero) causes the connection to be closed immediately. This property has a default value of -1, which causes the connection to remain open indefinitely without expiry.

Value type: Integer

SO_RCVBUF SO_RCVBUF This property specifies the size (in bytes) of the SO_RCVBUF property on the socket. Valid values vary according to the operating system that you are using. This property is a standard TCP/IP property. The default value is 0 (zero), which sets the size of the SO_RCVBUF property to the operating system default.

Value type: Integer

SO_SNDBUF SO_SNDBUF This property specifies the size (in bytes) of the SO_SNDBUF property on the socket. Valid values vary according to the operating system that you are using. This property is a standard TCP/IP property. The default value is 0 (zero), which sets the size of the SO_SNDBUF property to the operating system default.

Value type: Integer

SO_KEEPALIVE SO_KEEPALIVE This property specifies the value of the KEEPALIVE property on the socket. If the value is set to True, the socket checks that it is still connected after a specified time. The length of time depends on the TCP/IP implementation on the operating system, but is typically two hours. Keep-alive processing works only if the underlying operating system supports SO_KEEPALIVE. This property is a standard TCP/IP property. The default value is False, which means that no keep-alive processing is completed.

Value type: Boolean

TCP_NODELAY TCP_NODELAY This property specifies the value of the TCP_NODELAY property on the socket. If the value is set to True, which is the default, the socket sends data as soon as it is sent to its buffer.

Value type: Boolean

Traffic class TrafficClass This property specifies the traffic class that is set on any connection that is established. Valid values are positive integers. The default value is -1, which leaves the traffic class set to the operating system default.

Value type: Integer

SO_LINGER SO_LINGER This property specifies the SO_LINGER property on any connection that is established. This property is a standard TCP/IP property. The default value is False.

Value type: Boolean

SO_LINGER_TIMEOUT_SEC SO_LINGER_TIMEOUT_SEC This property specifies the SO_LINGER_TIMEOUT_SEC property on any connection that is established. This property is a standard TCP/IP property. Valid values are positive integers. The default value is -1, which leaves the SO_LINGER_TIMEOUT_SEC value set to the operating system default.

Value type: Integer

Use unique connection pool UseUniqueConnectionPool This property specifies whether the connection pool that corresponds to the policy is the main connection pool for the specified hostname and port number. You can have two connection pools for the same remote address, and you can use the Use unique connection pool property to specify whether the connection pool that corresponds to this policy is the main connection pool.

The nodes in a message flow specify which pool to use by specifying the appropriate policy. The hostname and port number that are specified in the node override the properties that are defined in the main policy only.

Possible values for this property are True and False. A value of True means that the connection pool for the policy is a separate connection pool rather than the main one. This property has a default value of False, which means that the policy defines the main connection pool. Any value other than True (including a null value) defaults to a value of False.

Value type: Boolean

Close with unprocessed data CloseWithUnprocessedData This property specifies whether the integration server reads ahead up to 1 MB on the stream to look for TCP/IP closure events from the stream. If a closure event is found, the connection is allowed to close if it is not owned by an input node. This process is used by flows that contain connections that are owned by receive nodes to respond to TCP/IP closure events, even if execution never proceeds to another receive node (for example if the flow's input node is idle when the closure occurs). This property has a default value of False.

Value type: Boolean

Secondary host list AlternativeAddresses This property contains a list of secondary host names and port numbers to be tried if the main remote address fails. If no addresses are specified, only the main remote address is used. Addresses must be in the format host:port. If no port number is specified, the main port number is used. Multiple addresses must be separated with semicolons; for example: jones6:1111;edwards.

Value type: String