You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/03/07 10:47:28 UTC
svn commit: r383831 -
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
Author: jstrachan
Date: Tue Mar 7 01:47:25 2006
New Revision: 383831
URL: http://svn.apache.org/viewcvs?rev=383831&view=rev
Log:
allow a connectionTimeout to be specified on a socket for AMQ-607
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java?rev=383831&r1=383830&r2=383831&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java Tue Mar 7 01:47:25 2006
@@ -46,6 +46,7 @@
public class TcpTransport extends TransportThreadSupport implements Transport, Service, Runnable {
private static final Log log = LogFactory.getLog(TcpTransport.class);
+ private int connectionTimeout = -1;
private int soTimeout = 10000;
private int socketBufferSize = 64 * 1024;
private Socket socket;
@@ -57,6 +58,7 @@
private int minmumWireFormatVersion;
private long maxInactivityDuration = 0; //30000;
private InetSocketAddress socketAddress;
+
/**
* Construct basic helpers
@@ -215,17 +217,20 @@
this.maxInactivityDuration = maxInactivityDuration;
}
+ public int getConnectionTimeout() {
+ return connectionTimeout;
+ }
+
+ /**
+ * Sets the timeout used to connect to the socket
+ */
+ public void setConnectionTimeout(int connectionTimeout) {
+ this.connectionTimeout = connectionTimeout;
+ }
+
// Implementation methods
// -------------------------------------------------------------------------
- protected void doStart() throws Exception {
- initialiseSocket(socket);
- if (socketAddress != null) {
- socket.connect(socketAddress);
- }
- initializeStreams();
- super.doStart();
- }
/**
* Factory method to create a new socket
@@ -291,11 +296,18 @@
sock.setSoTimeout(soTimeout);
}
- protected void initializeStreams() throws IOException {
- TcpBufferedInputStream buffIn = new TcpBufferedInputStream(socket.getInputStream(), 4096);
- this.dataIn = new DataInputStream(buffIn);
- TcpBufferedOutputStream buffOut = new TcpBufferedOutputStream(socket.getOutputStream(), 8192);
- this.dataOut = new DataOutputStream(buffOut);
+ protected void doStart() throws Exception {
+ initialiseSocket(socket);
+ if (socketAddress != null) {
+ if (connectionTimeout >= 0) {
+ socket.connect(socketAddress, connectionTimeout);
+ }
+ else {
+ socket.connect(socketAddress);
+ }
+ }
+ initializeStreams();
+ super.doStart();
}
protected void doStop(ServiceStopper stopper) throws Exception {
@@ -303,6 +315,13 @@
if (socket != null) {
socket.close();
}
+ }
+
+ protected void initializeStreams() throws IOException {
+ TcpBufferedInputStream buffIn = new TcpBufferedInputStream(socket.getInputStream(), 4096);
+ this.dataIn = new DataInputStream(buffIn);
+ TcpBufferedOutputStream buffOut = new TcpBufferedOutputStream(socket.getOutputStream(), 8192);
+ this.dataOut = new DataOutputStream(buffOut);
}
protected void closeStreams() throws IOException {