INT-1279 Doc Changes for New Adapters/Gateways, Remove Old

This commit is contained in:
Gary Russell
2010-08-13 22:15:43 +00:00
parent a54c7ed5f1
commit c15ebb07d8

View File

@@ -20,32 +20,29 @@
by joining to a multicast address.
</para>
<para>
TCP inbound and outbound adapters are provided <classname>TcptSendingMessageHandler</classname>
sends messages over TCP. <classname>TcpNetReceivingChannelAdapter</classname> receives messages over TCP.
<tip>The adapters are no longer configured with connection options directly; instead, they are given
TCP inbound and outbound adapters are provided <classname>TcpSendingMessageHandler</classname>
sends messages over TCP. <classname>TcpReceivingChannelAdapter</classname> receives messages over TCP.
<tip>If you have been using an earlier 2.0 milestone, note that the adapters are no longer configured
with connection options directly; instead, they are given
a reference to a connection factory. See below.</tip>
</para>
<para>
A simple inbound TCP gateway is provided; this allows for simple request/response processing. While
An inbound TCP gateway is provided; this allows for simple request/response processing. While
the gateway can support any number of connections, each connection can only process serially. The thread
that reads from the socket waits for, and sends, the response before reading again.
that reads from the socket waits for, and sends, the response before reading again. If the connection factory
is configured for single use connections, the connection is closed after the socket times out.
</para>
<para>
A simple outbound TCP gateway is provided; this allows for simple request/response processing. Each
request is processed serially. The calling thread blocks on the socket until either a response is received
or an I/O error occurs. Requests are single-threaded over the socket.
</para>
<para>
<tip>The gateways have not yet been converted to use the stand-alone tcp connection factories. If you are
using the gateways, you should configure them as before (legacy documentation remains below).
The gateways will be converted shortly.</tip>
An outbound TCP gateway is provided; this allows for simple request/response processing.
If the associated connection factory is configured for single use connections, a new connection is
immediately created for each new request. Otherwise, if the connection is in use,
the calling thread blocks on the connection until either a response is received or an I/O error occurs.
</para>
</section>
<section id="udp-adapters">
<title>UDP Adapters</title>
<para>
<programlisting language="xml"><![CDATA[ <ip:outbound-channel-adapter id="udpOut"
protocol="udp"
<programlisting language="xml"><![CDATA[ <ip:udp-outbound-channel-adapter id="udpOut"
host="somehost"
port="11111"
multicast="false"
@@ -63,8 +60,7 @@
short the contain the packet, the packet can be truncated. The length header provides a mechanism to detect this.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:outbound-channel-adapter id="udpOut"
protocol="udp"
<programlisting language="xml"><![CDATA[ <ip:udp-outbound-channel-adapter id="udpOut"
host="somehost"
port="11111"
multicast="false"
@@ -82,8 +78,7 @@
must send an acknowledgment to the sender within a specified time.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:outbound-channel-adapter id="udpOut"
protocol="udp"
<programlisting language="xml"><![CDATA[ <ip:udp-outbound-channel-adapter id="udpOut"
host="somehost"
port="11111"
multicast="false"
@@ -108,9 +103,8 @@
For even more reliable networking, TCP can be used.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:inbound-channel-adapter id="udpReceiver"
<programlisting language="xml"><![CDATA[ <ip:udp-inbound-channel-adapter id="udpReceiver"
channel="udpOutChannel"
protocol="udp"
port="11111"
receive-buffer-size="500"
multicast="false"
@@ -118,9 +112,8 @@
A basic unicast inbound udp channel adapter.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:inbound-channel-adapter id="udpReceiver"
<programlisting language="xml"><![CDATA[ <ip:udp-inbound-channel-adapter id="udpReceiver"
channel="udpOutChannel"
protocol="udp"
port="11111"
receive-buffer-size="500"
multicast="true"
@@ -256,6 +249,12 @@
the other direction will use the default converter.
</tip>
</para>
<para>
Connection factories can be configured with a reference to a
<classname>TcpConnectionInterceptorFactoryChain</classname>. Interceptors can be used
to add behavior to connections, such as negotiation, security, and other setup.
Further documentation to follow.
</para>
<para>
For a full reference of the attributes available on connection factories, see the
reference at the end of this section.
@@ -330,118 +329,31 @@
'inboundClient' and deposited in channel 'replies'.
</para>
</section>
<section id="legacy-tcp-adapters">
<title>TCP Adapters - Legacy - These Adapters Will be Removed Before 2.0 GA</title>
<para>
<tip>These adapters have been replaced with the adapters above please migrate
to the new configuration; these adapters will not be available in GA</tip>
Two versions of TCP inbound and outbound channel adapters are provided; these adapters
use either java.net.Socket IO, or java.nio.channels.SocketChannel IO. The choice of which
to use depends on the application. The TcpNet* adapters use java.net.Socket and the TcpNio*
adapters use java.nio.channels.ChannelSocket. It is not anticipated that much difference in
performance, if any, would exist between these technologies on the outbound side. This is
because each outbound adapter sends data over only one socket. On the receiving side
however, consideration should be given to the number of connections. For the
<classname>TcpNetReceivingChannelAdapter</classname> a thread is dedicated to receiving
data on each connected socket; the pool size must therefore be set large enough to handle
the expected number of connections. For the <classname>TcpNioReceivingChannelAdapter</classname>
threads are used on an as-needed basis and it is likely that many fewer threads would be
needed. If a small number of connections is expected, we expect that the the TcpNetReceivingChannelAdapter
will give the best performance. For large number of connections, the TcpNioReceivingChannelAdapter will
likely give the best performance. In addition, the TcpNioReceivingChannelAdapter provides an
attribute <classname>using-direct-buffers</classname> which attempts to use direct buffers. See
<classname>java.nio.ByteBuffer</classname> for more information about direct buffers.
<tip>
It is not expected that direct buffers will offer much, if any, performance difference. You
should experiment with the use of TcpNxx* adapters, and direct buffers when using TcpNio*
adapters to determine the best performance in your environment.
</tip>
</para>
<para>
TCP is a streaming protocol; this means that some structure has to be provided to data
transported over TCP, so the receiver can demarcate the data into discrete messages.
Four standard message formats are provided for this purpose; you can also provide code
for your own custom format. The first of the four standard formats is 'length-header', in which case a 4 byte
length header precedes the data; this is the default. The second is 'stx-etx' in which the message
data is preceded by an STX (0x02) character and terminated with an ETX (0x03) character.
The third is 'crlf' in which the message is terminated with a carriage return and line feed
(\r\n). These three formats require a byte array or String payload outbound endpoints; inbound
endpoints produce messages with byte array payloads. The fourth format is 'serialized' wherby
standard java serialization is used; payloads must implement <classname>Serializable</classname>.
For the simple formats, the first (the default) is likely to be the most performant. This is because
we can determine exactly how many bytes to read to obtain the complete message. The other
two formats require examining each byte to determine if the end of the message has been
received. The length-header format can also handle binary data. The other two formats can only handle
text data (specifcally, data that does not contain characters 0x02 and 0x03 for stx-etx and
0x0d and 0x0a for crlf). This limitation can be avoided by appropriate character escaping techniques
in the application layer. No such escaping is provided by the adapters; therefore it is not recommened
that these formats be used without some transformation if the data may contain these characters.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:outbound-channel-adapter id="tcpOut"
channel="inChannel"
protocol="tcp"
host="somehost"
port="11111"
message-format="length-header"
using-nio="true"
using-direct-buffers="false"
so-keep-alive="true"
so-timeout="10000"
/>]]></programlisting>
A basic outbound tcp channel adapter. This adapter uses java.nio.channels.SocketChannel.
To use a java.net.Socket, set <classname>using-nio</classname> to false and
<classname>using-direct-buffers</classname> is not relevant.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:inbound-channel-adapter id="tcp1"
channel="channel"
protocol="tcp"
port="11111"
message-format="length-header"
using-nio="true"
using-direct-buffers="false"
pool-size="2"
so-keep-alive="true"
so-timeout="10000"
/>]]></programlisting>
A basic inbound tcp channel adapter. This adapter uses java.nio.channels.SocketChannel.
To use a java.net.Socket, set <classname>using-nio</classname> to false and
<classname>using-direct-buffers</classname> is not relevant.
</para>
</section>
<section id="tcp-gateways">
<title>TCP Gateways</title>
<para>
The simple inbound TCP gateway <classname>SimpleTcpNetInboundGateway</classname>
and simple oubound TCP gateway <classname>SimpleTcpNetOutboundGateway</classname>
use <classname>java.net.Socket</classname> for communications. Each connection
The inbound TCP gateway <classname>TcpInboundGateway</classname>
and oubound TCP gateway <classname>TcpOutboundGateway</classname>
use a server and client connection factory respectively. Each connection
can process a single request/response at a time.
</para>
<para>
The inbound gateway delegates to a subclass of the <classname>TcpNetReceivingChannelAdapter</classname>
described above, so please read that section for more information. After
constructing a message with the incoming payload and sending
After constructing a message with the incoming payload and sending
it to the requestChannel, it waits for a response and sends the payload
from the response message by writing it to the socket, using the same
message format configured for the incoming message.
from the response message by writing it to the connection.
</para>
<para>
The outbound gateway delegates to a <classname>TcpNetSendingMessageHandler</classname>
described above, so please read that section for more information. After
sending a message over the socket, the thread waits for a response and
constructs a response message with a byte[] payload The incoming
response is decoded using the same
message format configured for the outgoing message. Communications over
the socket are single-threaded. Users should be aware that only one
After sending a message over the connection, the thread waits for a response and
constructs a response message
Communications over the connections are single-threaded. Users should be aware that only one
message can be handled at a time and if another thread attempts to send
a message before the current response has been received, it will block. Only
when the inprocess message receives a response (or times out based on the
socket timeout option) will it proceed. If an error occurs while reading the
response, the socket will be closed, regardless of the close attribute.
a message before the current response has been received, it will block until
any previous requests are complete (or time out).
If, however, the client connection factory is configured for single-use connections
each new request gets its own connection and is processed immediately.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:inbound-gateway id="gatewayCrLf"
<programlisting language="xml"><![CDATA[ <ip:tcp-inbound-gateway id="gatewayCrLf"
port="1234"
request-channel="someChannel"
message-format="crlf"
@@ -450,7 +362,7 @@
used by a simple client such as telnet.
</para>
<para>
<programlisting language="xml"><![CDATA[ <ip:outbound-gateway id="simpleOutGateway"
<programlisting language="xml"><![CDATA[ <ip:tcp-outbound-gateway id="simpleOutGateway"
request-channel="tcpChannel"
message-format="crlf"
host="localhost"
@@ -613,69 +525,55 @@
However, pool-size is also used for the server socket backlog,
regardless of whether an external task executor is used. Defaults to 5.</entry>
</row>
<row>
<entry>interceptor-factory-chain</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>Documentation to be supplied.</entry>
</row>
</tbody>
</tgroup>
</table>
<table id="ip-ob-adapter-attributes">
<title>Legacy IP Outbound Channel Adapter Attributes</title>
<title>UDP Outbound Channel Adapter Attributes</title>
<tgroup cols="5">
<colspec align="left" />
<colspec colnum="1" colname="col1" colwidth="1*"/>
<colspec colnum="2" colname="col2" colwidth="0.3*" align="center"/>
<colspec colnum="3" colname="col3" colwidth="0.3*" align="center"/>
<colspec colnum="4" colname="col4" colwidth="1*"/>
<colspec colnum="5" colname="col5" colwidth="2*"/>
<colspec colnum="2" colname="col4" colwidth="1*"/>
<colspec colnum="3" colname="col5" colwidth="2*"/>
<thead>
<row>
<entry align="center">Attribute Name</entry>
<entry align="center">TCP?</entry>
<entry align="center">UDP?</entry>
<entry align="center">Allowed Values</entry>
<entry align="center">Attribute Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>protocol</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry>tcp, udp</entry>
<entry>Determines whether the adapter uses TCP or UDP, over IP.</entry>
</row>
<row>
<entry>host</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>The host name or ip address of the destination. For multicast udp
adapters, the multicast address.</entry>
</row>
<row>
<entry>port</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>The port on the destination.</entry>
</row>
<row>
<entry>multicast</entry>
<entry>N</entry>
<entry>Y</entry>
<entry>true, false</entry>
<entry>Whether or not the udp adapter uses multicast.</entry>
</row>
<row>
<entry>acknowledge</entry>
<entry>N</entry>
<entry>Y</entry>
<entry>true, false</entry>
<entry>Whether or not a udp adapter requires an acknowledgment from the destination.
when enabled, requires setting the following 4 attributes.</entry>
</row>
<row>
<entry>ack-host</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>When acknowledge is true, indicates the host or ip address to which the
acknowledgment should be sent. Usually the current host, but may be
@@ -684,8 +582,6 @@
</row>
<row>
<entry>ack-port</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>When acknowledge is true, indicates the port to which the
acknowledgment should be sent. The adapter listens on this port for
@@ -693,8 +589,6 @@
</row>
<row>
<entry>ack-timeout</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>When acknowledge is true, indicates the time in milliseconds that the
adapter will wait for an acknowlegment. If an acknowlegment is not
@@ -702,118 +596,42 @@
</row>
<row>
<entry>min-acks-for- success</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>Defaults to 1. For multicast adapters, you can set this to a larger
value, requiring acknowlegments from multiple destinations.</entry>
</row>
<row>
<entry>check-length</entry>
<entry>N</entry>
<entry>Y</entry>
<entry>true, false</entry>
<entry>Whether or not a udp adapter includes a data length field in the
packet sent to the destination.</entry>
</row>
<row>
<entry>time-to-live</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>For multicast adapters, specifies the time to live attribute for
the <classname>MulticastSocket</classname>; controls the scope
of the multicasts. Refer to the Java API
documentation for more information.</entry>
</row>
<row>
<entry>using-nio</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>Whether or not the tcp adapter is using NIO. Refer to the java.nio
package for more information.</entry>
</row>
<row>
<entry>using-direct-buffers</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>When using NIO, whether or not the tcp adapter uses direct buffers.
Refer to <classname>java.nio.ByteBuffer</classname> documentation for
more information.</entry>
</row>
<row>
<entry>message-format</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>length-header, stx-etx, crlf, serialized, custom</entry>
<entry>The formatting that the tcp adapter uses so the receiver can demarcate
messages. Defaults to length-header.
See the discussion above for details about each format.</entry>
</row>
<row>
<entry>custom-socket- writer-class-name</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>Subclass of TcpNetSocket- Writer or TcpNioSocket- Writer</entry>
<entry>When message-format is 'custom' the name of the class that
implements the custom format. Must be a subclass of the NxxSocketWriter,
depending on whether using-nio is false or true.</entry>
</row>
<row>
<entry>so-timeout</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname> and <classname>java.net.DatagramSocket</classname>
<entry>See <classname>java.net.DatagramSocket</classname>
setSoTimeout() methods for more information.</entry>
</row>
<row>
<entry>so-send-buffer-size</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname> and <classname>java.net.DatagramSocket</classname>
<entry>See <classname>java.net.DatagramSocket</classname>
setSendBufferSize() methods for more information.</entry>
</row>
<row>
<entry>so-receive-buffer- size</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>Used for udp acknowlegment packets. See <classname>java.net.DatagramSocket</classname>
setReceiveBufferSize() methods for more information.</entry>
</row>
<row>
<entry>so-keep-alive</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>See <classname>java.net.Socket. setKeepAlive()</classname>.</entry>
</row>
<row>
<entry>so-linger</entry>
<entry>Y</entry>
<entry>N</entry>
<entry></entry>
<entry>Sets linger to true with supplied value.
See <classname>java.net.Socket. setSoLinger()</classname>.</entry>
</row>
<row>
<entry>so-tcp-no-delay</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>See <classname>java.net.Socket. setTcpNoDelay()</classname>.</entry>
</row>
<row>
<entry>so-traffic-class</entry>
<entry>Y</entry>
<entry>N</entry>
<entry></entry>
<entry>See <classname>java.net.Socket. setTrafficClass()</classname>.</entry>
</row>
<row>
<entry>local-address</entry>
<entry>N</entry>
@@ -822,13 +640,10 @@
<entry>On a multi-homed system, for the UDP adapter, specifies an IP address
for the interface to which the socket will be bound for reply messages.
For a multicast adapter it is also used to determine which interface
the multicast packets will be sent over. Not applicable to the TCP
adapter.</entry>
the multicast packets will be sent over.</entry>
</row>
<row>
<entry>task-executor</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>
Specifies a specific Executor to be used for acknowledgment handling. If not supplied, an internal
@@ -840,144 +655,75 @@
</tgroup>
</table>
<table id="ip-ib-adapter-attributes">
<title>Legacy IP Inbound Channel Adapter Attributes</title>
<title>UDP Inbound Channel Adapter Attributes</title>
<tgroup cols="5">
<colspec align="left" />
<colspec colnum="1" colname="col1" colwidth="1*"/>
<colspec colnum="2" colname="col2" colwidth="0.3*" align="center"/>
<colspec colnum="3" colname="col3" colwidth="0.3*" align="center"/>
<colspec colnum="4" colname="col4" colwidth="1*"/>
<colspec colnum="5" colname="col5" colwidth="2*"/>
<colspec colnum="2" colname="col4" colwidth="1*"/>
<colspec colnum="3" colname="col5" colwidth="2*"/>
<thead>
<row>
<entry align="center">Attribute Name</entry>
<entry align="center">TCP?</entry>
<entry align="center">UDP?</entry>
<entry align="center">Allowed Values</entry>
<entry align="center">Attribute Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>protocol</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry>tcp, udp</entry>
<entry>Determines whether the adapter uses TCP or UDP, over IP.</entry>
</row>
<row>
<entry>port</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>The port on which the adapter listens.</entry>
</row>
<row>
<entry>multicast</entry>
<entry>N</entry>
<entry>Y</entry>
<entry>true, false</entry>
<entry>Whether or not the udp adapter uses multicast.</entry>
</row>
<row>
<entry>multicast-address</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>When multicast is true, the multicast address to which the adapter
joins.</entry>
</row>
<row>
<entry>pool-size</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>Specifies the concurrency. For udp, specifies how many packets can
be handled concurrently. For tcp, not using nio, specifies the
number of concurrent connections supported by the adapter. For tcp,
using nio, specifies the number of tcp fragments that are concurrently
reassembled into complete messages.
It only applies in this sense if task-executor is not configured.
However, pool-size is also used for the server socket backlog,
regardless of whether an external task executor is used. Defaults to 5.</entry>
<entry>Specifies the concurrency. Specifies how many packets can
be handled concurrently.
It only applies if task-executor is not configured.
Defaults to 5.</entry>
</row>
<row>
<entry>task-executor</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>
Specifies a specific Executor to be used for socket handling. If not supplied, an internal
pooled executor will be used. Needed on some platforms that require the use of specific
task executors such as a WorkManagerTaskExecutor. See pool-size for thread
requirements, depending on other options.</entry>
requirements.</entry>
</row>
<row>
<entry>receive-buffer-size</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>For udp, the size of the buffer used to receive DatagramPackets.
<entry>The size of the buffer used to receive DatagramPackets.
Usually set to the MTU size. If a smaller buffer is used than the
size of the sent packet, truncation can occur. This can be detected
by means of the check-length attribute.For tcp, the size of the
buffer used to reassemble incoming messages. Effectively the maximum
message size that can be received.</entry>
by means of the check-length attribute..</entry>
</row>
<row>
<entry>check-length</entry>
<entry>N</entry>
<entry>Y</entry>
<entry>true, false</entry>
<entry>Whether or not a udp adapter expects a data length field in the
packet received. Used to detect packet truncation.</entry>
</row>
<row>
<entry>using-nio</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>Whether or not the tcp adapter is using NIO. Refer to the java.nio
package for more information.</entry>
</row>
<row>
<entry>using-direct-buffers</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>When using NIO, whether or not the tcp adapter uses direct buffers.
Refer to java.nio.ByteBuffer documentation for more information.</entry>
</row>
<row>
<entry>message-format</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>length-header, stx-etx, crlf, serialized, custom</entry>
<entry>The formatting that the tcp adapter uses so the adapter can demarcate
messages. Defaults to length-header.
See the discussion above for details about each format.</entry>
</row>
<row>
<entry>custom-socket- reader-class-name</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>Subclass of TcpNetSocket- Reader or TcpNioSocket- Reader</entry>
<entry>When message-format is 'custom' the name of the class that
implements the custom format. Must be a subclass of the NxxSocketReader,
depending on whether using-nio is false or true.</entry>
</row>
<row>
<entry>so-timeout</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname> and <classname>java.net.DatagramSocket</classname>
<entry>See <classname>java.net.DatagramSocket</classname>
setSoTimeout() methods for more information.</entry>
</row>
<row>
<entry>so-send-buffer-size</entry>
<entry>N</entry>
<entry>Y</entry>
<entry></entry>
<entry>Used for udp acknowlegment packets. See <classname>java.net.DatagramSocket</classname>
setSendBufferSize() methods for more information.</entry>
@@ -987,32 +733,15 @@
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname> and <classname>java.net.DatagramSocket</classname>
<entry>See <classname>java.net.DatagramSocket</classname>
setReceiveBufferSize() for more information.</entry>
</row>
<row>
<entry>so-keep-alive</entry>
<entry>Y</entry>
<entry>N</entry>
<entry>true, false</entry>
<entry>See <classname>java.net.Socket. setKeepAlive()</classname>.</entry>
</row>
<row>
<entry>local-address</entry>
<entry>Y</entry>
<entry>Y</entry>
<entry></entry>
<entry>On a multi-homed system, specifies an IP address
for the interface to which the socket will be bound.</entry>
</row>
<row>
<entry>close</entry>
<entry>Y</entry>
<entry>N</entry>
<entry></entry>
<entry>If set to true, instructs the adapter to close the socket
after receiving a message. Defaults to false.</entry>
</row>
</tbody>
</tgroup>
</table>
@@ -1036,87 +765,6 @@
<entry></entry>
<entry>The port on which the gateway listens.</entry>
</row>
<row>
<entry>pool-size</entry>
<entry></entry>
<entry>Specifies the number of concurrent connections supported
by the gateway. A thread from the pool is used to handle each socket.
It only applies in this sense if task-executor is not configured.
However, pool-size is also used for the server socket backlog,
regardless of whether an external task executor is used. Defaults to 5.</entry>
</row>
<row>
<entry>task-executor</entry>
<entry></entry>
<entry>
Specifies a specific Executor to be used for socket handling. If not supplied, an internal
pooled executor will be used. Needed on some platforms that require the use of specific
task executors such as a WorkManagerTaskExecutor. See pool-size for thread
requirements.</entry>
</row>
<row>
<entry>receive-buffer-size</entry>
<entry></entry>
<entry>The size of the
buffer used to reassemble incoming messages. Effectively the maximum
message size that can be received.</entry>
</row>
<row>
<entry>message-format</entry>
<entry>length-header, stx-etx, crlf, serialized, custom</entry>
<entry>The formatting that the tcp gateway uses for demarcating
incoming requests and formatting responses. Defaults to length-header.
See the discussion above for details about each format.</entry>
</row>
<row>
<entry>custom-socket- reader-class-name</entry>
<entry>Subclass of TcpNetSocket- Reader</entry>
<entry>When message-format is 'custom' the name of the class that
implements the custom format. Must be a subclass of the
TcpNetSocketReader.</entry>
</row>
<row>
<entry>custom-socket- writer-class-name</entry>
<entry>Subclass of TcpNetSocket- Writer</entry>
<entry>When message-format is 'custom' the name of the class that
implements the custom format. Must be a subclass of the
TcpNetSocketWriter.</entry>
</row>
<row>
<entry>so-timeout</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname>
setSoTimeout() for more information.</entry>
</row>
<row>
<entry>so-send-buffer-size</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname>
setSendBufferSize() methods for more information.</entry>
</row>
<row>
<entry>so-receive-buffer- size</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname>
setReceiveBufferSize() for more information.</entry>
</row>
<row>
<entry>so-keep-alive</entry>
<entry>true, false</entry>
<entry>See <classname>java.net.Socket. setKeepAlive()</classname>.</entry>
</row>
<row>
<entry>local-address</entry>
<entry></entry>
<entry>On a multi-homed system, specifies an IP address
for the interface to which the socket will be bound.</entry>
</row>
<row>
<entry>close</entry>
<entry></entry>
<entry>If set to true, instructs the gateway to close the socket
after sending the reply to a message. Defaults to false.</entry>
</row>
</tbody>
</tgroup>
</table>
@@ -1140,69 +788,6 @@
<entry></entry>
<entry>The host name or ip address of the destination.</entry>
</row>
<row>
<entry>port</entry>
<entry></entry>
<entry>The port to which the gateway connects.</entry>
</row>
<row>
<entry>receive-buffer-size</entry>
<entry></entry>
<entry>The size of the
buffer used to reassemble incoming messages. Effectively the maximum
message size that can be received.</entry>
</row>
<row>
<entry>message-format</entry>
<entry>length-header, stx-etx, crlf, serialized, custom</entry>
<entry>The formatting that the tcp gateway uses for formating
requests and demarcating
incoming responses. Defaults to length-header.
See the discussion above for details about each format.</entry>
</row>
<row>
<entry>custom-socket- reader-class-name</entry>
<entry>Subclass of TcpNetSocket- Reader</entry>
<entry>When message-format is 'custom' the name of the class that
implements the custom format. Must be a subclass of the
TcpNetSocketReader.</entry>
</row>
<row>
<entry>custom-socket- writer-class-name</entry>
<entry>Subclass of TcpNetSocket- Writer</entry>
<entry>When message-format is 'custom' the name of the class that
implements the custom format. Must be a subclass of the
TcpNetSocketWriter.</entry>
</row>
<row>
<entry>so-timeout</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname>
setSoTimeout() for more information.</entry>
</row>
<row>
<entry>so-send-buffer-size</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname>
setSendBufferSize() methods for more information.</entry>
</row>
<row>
<entry>so-receive-buffer- size</entry>
<entry></entry>
<entry>See <classname>java.net.Socket</classname>
setReceiveBufferSize() for more information.</entry>
</row>
<row>
<entry>so-keep-alive</entry>
<entry>true, false</entry>
<entry>See <classname>java.net.Socket. setKeepAlive()</classname>.</entry>
</row>
<row>
<entry>close</entry>
<entry></entry>
<entry>If set to true, instructs the adapter to close the socket
after receiving the reply to a message. Defaults to false.</entry>
</row>
</tbody>
</tgroup>
</table>