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
Methods inherited from class org.apache.activemq.transport.TransportFilter |
asyncRequest, getNext, getReceiveCounter, getRemoteAddress, getTransportListener, isConnected, isDisposed, isFaultTolerant, narrow, onCommand, onException, reconnect, request, request, setTransportListener, toString, transportInterupted, transportResumed |
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
WriteTimeoutFilter
public WriteTimeoutFilter(Transport next)
oneway
public void oneway(Object command)
throws IOException
- Description copied from interface:
Transport
- A one way asynchronous send
- Specified by:
oneway
in interface Transport
- Overrides:
oneway
in class TransportFilter
- 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 TcpBufferedOutputStream 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:
start
in interface Service
- Overrides:
start
in class TransportFilter
- Throws:
Exception
- See Also:
Service.start()
stop
public void stop()
throws Exception
- Specified by:
stop
in interface Service
- Overrides:
stop
in class TransportFilter
- Throws:
Exception
- See Also:
Service.stop()
Copyright © 2005-2011 Apache Software Foundation. All Rights Reserved.