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
public class WriteTimeoutFilter extends TransportFilter
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
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 Modifier and Type Class Description protected static classWriteTimeoutFilter.TimeoutThread
-
Field Summary
Fields Modifier and Type Field Description protected static AtomicIntegermessageCounterprotected static longsleepprotected static WriteTimeoutFilter.TimeoutThreadtimeoutThreadprotected static ConcurrentLinkedQueue<WriteTimeoutFilter>writersprotected longwriteTimeout-
Fields inherited from class org.apache.activemq.transport.TransportFilter
next, transportListener
-
-
Constructor Summary
Constructors Constructor Description WriteTimeoutFilter(Transport next)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static booleandeRegisterWrite(WriteTimeoutFilter filter, boolean fail, IOException iox)static longgetSleep()protected SocketgetSocket()protected TimeStampStreamgetWriter()longgetWriteTimeout()voidoneway(Object command)A 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 Detail
-
writers
protected static ConcurrentLinkedQueue<WriteTimeoutFilter> writers
-
messageCounter
protected static AtomicInteger messageCounter
-
timeoutThread
protected static WriteTimeoutFilter.TimeoutThread timeoutThread
-
sleep
protected static long sleep
-
writeTimeout
protected long writeTimeout
-
-
Constructor Detail
-
WriteTimeoutFilter
public WriteTimeoutFilter(Transport next)
-
-
Method Detail
-
oneway
public void oneway(Object command) throws IOException
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
protected TimeStampStream getWriter()
-
getSocket
protected Socket getSocket()
-
registerWrite
protected static void registerWrite(WriteTimeoutFilter filter)
-
deRegisterWrite
protected static boolean deRegisterWrite(WriteTimeoutFilter filter, boolean fail, IOException iox)
-
start
public void start() throws Exception- Specified by:
startin interfaceService- Overrides:
startin classTransportFilter- Throws:
Exception- See Also:
Service.start()
-
stop
public void stop() throws Exception- Specified by:
stopin interfaceService- Overrides:
stopin classTransportFilter- Throws:
Exception- See Also:
Service.stop()
-
-