diff --git a/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/Connection.java b/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/Connection.java index 24738f2..73009dc 100644 --- a/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/Connection.java +++ b/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/Connection.java @@ -24,8 +24,8 @@ public Connection(String nid, int bufferSize) { } @Override - public void connect(SocketAddress endpoint) throws IOException { - super.connect(endpoint); + public void connect(SocketAddress endpoint, int timeout) throws IOException { + super.connect(endpoint, timeout); is = new BufferedInputStream(getInputStream()); os = new BufferedOutputStream(getOutputStream()); } diff --git a/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/RomaSocketPool.java b/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/RomaSocketPool.java index 7a96504..11a8192 100644 --- a/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/RomaSocketPool.java +++ b/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/RomaSocketPool.java @@ -53,7 +53,7 @@ public synchronized Connection getConnection(String nodeId) throws Exception { GenericObjectPool pool = poolMap.get(nodeId); if (pool == null) { PoolableObjectFactory factory = - new SocketPoolFactory(nodeId, bufferSize); + new SocketPoolFactory(nodeId, bufferSize, timeout); pool = new GenericObjectPool(factory); pool.setMaxActive(maxActive); pool.setMaxIdle(maxIdle); diff --git a/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/SocketPoolFactory.java b/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/SocketPoolFactory.java index 3b99170..d123d62 100644 --- a/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/SocketPoolFactory.java +++ b/romac4j/src/main/java/com/rakuten/rit/roma/romac4j/connection/SocketPoolFactory.java @@ -8,16 +8,23 @@ public class SocketPoolFactory implements PoolableObjectFactory { private String nodeId; private int bufferSize; + private int timeout = 1000; public SocketPoolFactory(String nid, int bufferSize) { this.nodeId = nid; this.bufferSize = bufferSize; } + public SocketPoolFactory(String nid, int bufferSize, int timeout) { + this.nodeId = nid; + this.bufferSize = bufferSize; + this.timeout = timeout; + } + public Connection makeObject() throws IOException { Connection con = new Connection(nodeId, bufferSize); String[] host = nodeId.split("_"); - con.connect(new InetSocketAddress(host[0], Integer.valueOf(host[1]))); + con.connect(new InetSocketAddress(host[0], Integer.valueOf(host[1])), timeout); return con; }