Package org.apache.activemq.transport
Class WriteTimeoutFilter
java.lang.Object
org.apache.activemq.transport.TransportFilter
org.apache.activemq.transport.WriteTimeoutFilter
- All Implemented Interfaces:
Service,Transport,TransportListener
This filter implements write timeouts for socket write operations.
When using blocking IO, the Java implementation doesn't have an explicit flag
to set a timeout, and can cause operations to block forever (or until the TCP stack implementation times out the retransmissions,
which is usually around 13-30 minutes).
To enable this transport, in the transport URI, simpley add
For example (15 second timeout on write operations to the socket):
For example (enable default timeout on the socket):
To enable this transport, in the transport URI, simpley add
transport.soWriteTimeout=.For example (15 second timeout on write operations to the socket):
<transportConnector
name="tcp1"
uri="tcp://127.0.0.1:61616?transport.soTimeout=10000&transport.soWriteTimeout=15000"
/>
For example (enable default timeout on the socket):
<transportConnector
name="tcp1"
uri="tcp://127.0.0.1:61616?transport.soTimeout=10000&transport.soWriteTimeout=15000"
/>
- Author:
- Filip Hanik
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static AtomicIntegerprotected static longprotected static WriteTimeoutFilter.TimeoutThreadprotected static ConcurrentLinkedQueue<WriteTimeoutFilter>protected longFields inherited from class org.apache.activemq.transport.TransportFilter
next, transportListener -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static booleandeRegisterWrite(WriteTimeoutFilter filter, boolean fail, IOException iox) static longgetSleep()protected Socketprotected TimeStampStreamlongvoidA one way asynchronous sendprotected static voidregisterWrite(WriteTimeoutFilter filter) static voidsetSleep(long sleep) voidsetWriteTimeout(long writeTimeout) voidstart()voidstop()Methods inherited from class org.apache.activemq.transport.TransportFilter
asyncRequest, getNext, getPeerCertificates, getReceiveCounter, getRemoteAddress, getTransportListener, getWireFormat, isConnected, isDisposed, isFaultTolerant, isReconnectSupported, isUpdateURIsSupported, narrow, onCommand, onException, reconnect, request, request, setPeerCertificates, setTransportListener, toString, transportInterupted, transportResumed, updateURIs
-
Field Details
-
writers
-
messageCounter
-
timeoutThread
-
sleep
protected static long sleep -
writeTimeout
protected long writeTimeout
-
-
Constructor Details
-
WriteTimeoutFilter
-
-
Method Details
-
oneway
Description copied from interface:TransportA one way asynchronous send- Specified by:
onewayin interfaceTransport- Overrides:
onewayin classTransportFilter- Throws:
IOException
-
getWriteTimeout
public long getWriteTimeout() -
setWriteTimeout
public void setWriteTimeout(long writeTimeout) -
getSleep
public static long getSleep() -
setSleep
public static void setSleep(long sleep) -
getWriter
-
getSocket
-
registerWrite
-
deRegisterWrite
-
start
- Specified by:
startin interfaceService- Overrides:
startin classTransportFilter- Throws:
Exception- See Also:
-
stop
- Specified by:
stopin interfaceService- Overrides:
stopin classTransportFilter- Throws:
Exception- See Also:
-