Index: modules/cnr-resultset-client/trunk/src/main/java/eu/dnetlib/enabling/resultset/client/ResultSetClientFactory.java
===================================================================
--- modules/cnr-resultset-client/trunk/src/main/java/eu/dnetlib/enabling/resultset/client/ResultSetClientFactory.java	(revision 44543)
+++ modules/cnr-resultset-client/trunk/src/main/java/eu/dnetlib/enabling/resultset/client/ResultSetClientFactory.java	(revision 44544)
@@ -1,9 +1,14 @@
 package eu.dnetlib.enabling.resultset.client;
 
+import javax.xml.ws.BindingProvider;
 import javax.xml.ws.wsaddressing.W3CEndpointReference;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.transport.http.HTTPConduit;
+import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
 import org.springframework.beans.factory.annotation.Required;
 
 import eu.dnetlib.enabling.resultset.client.utils.EPRUtils;
@@ -22,6 +27,12 @@
 	 */
 	private static final Log log = LogFactory.getLog(ResultSetClientFactory.class);
 
+	private final static long DEFAULT_CONNECT_TIMEOUT = 10000;
+
+	private final static long DEFAULT_REQUEST_TIMEOUT = 60000;
+
+	private final static int DEFAULT_PAGE_SIZE = 100;
+
 	/**
 	 * used to resolve the epr references to the service endpoint
 	 */
@@ -38,12 +49,17 @@
 	private int pageSize;
 
 	/**
-	 * actual timeout
+	 * request timeout
 	 */
 	private long timeout;
 
+	/**
+	 * request timeout
+	 */
+	private long connectTimeout;
+
 	public ResultSetClientFactory() {
-		log.info("creating new ResultSetClientIterableFactory with default pageSize and timeout");
+		this(DEFAULT_PAGE_SIZE, DEFAULT_REQUEST_TIMEOUT, DEFAULT_CONNECT_TIMEOUT);
 	}
 
 	/**
@@ -53,10 +69,27 @@
 	 * @throws IllegalArgumentException
 	 */
 	public ResultSetClientFactory(int pageSize, long timeout) throws IllegalArgumentException {
-		if (pageSize <= 0 || timeout <= 0)
-			throw new IllegalArgumentException("parameters pageSize and timeout must be greater than zero");
+		this(pageSize, timeout, DEFAULT_CONNECT_TIMEOUT);
+	}
+
+	/**
+	 *
+	 * @param pageSize
+	 * @param timeout
+	 *          time to wait for server response before throwing a timeout exception
+	 * @param connectTimeout
+	 *          time to wait for server to accept the connection before throwing a connection timeout exception
+	 * @throws IllegalArgumentException
+	 */
+	public ResultSetClientFactory(int pageSize, long timeout, long connectTimeout) throws IllegalArgumentException {
+		if (pageSize <= 0 || timeout <= 0 || connectTimeout <= 0) {
+			throw new IllegalArgumentException("parameters pageSize, timeout and connectTimeout must be greater than zero");
+		}
+		log.info(String.format("creating new ResultSetClientIterableFactory with pageSize (%s), connect timeout (%s) and connect timeout (%s)",
+				pageSize, timeout, connectTimeout));
 		this.pageSize = pageSize;
 		this.timeout = timeout;
+		this.connectTimeout = connectTimeout;
 	}
 
 	/**
@@ -67,11 +100,11 @@
 	 */
 	@Override
 	public IterableResultSetClient getClient(W3CEndpointReference epr, int pageSize) {
-		final ResultSetService resultSet = serviceResolver.getService(ResultSetService.class, epr);
+		final ResultSetService resultSet = getResultSetService(epr, getConnectTimeout(), getTimeout());
 		final String rsId = serviceResolver.getResourceIdentifier(epr);
 
 		//using given pageSize and default timeout
-		return new IterableResultSetClient(resultSet, rsId, pageSize, timeout);
+		return new IterableResultSetClient(resultSet, rsId, pageSize, getTimeout());
 	}
 
 	/**
@@ -81,13 +114,33 @@
 	 */
 	@Override
 	public IterableResultSetClient getClient(W3CEndpointReference epr) {
-		final ResultSetService resultSet = serviceResolver.getService(ResultSetService.class, epr);
+		final ResultSetService resultSet = getResultSetService(epr, getConnectTimeout(), getTimeout());
 		final String rsId = serviceResolver.getResourceIdentifier(epr);
 
-		//using default pageSize and timeout
-		return new IterableResultSetClient(resultSet, rsId, pageSize, timeout);
+		//using default pageSize and timeouts
+		return new IterableResultSetClient(resultSet, rsId, getPageSize(), getTimeout());
 	}
 
+	private ResultSetService getResultSetService(final W3CEndpointReference epr, final long connectTimeout, final long requestTimeout) {
+		final ResultSetService service = serviceResolver.getService(ResultSetService.class, epr);
+
+		if (log.isDebugEnabled()) {
+			log.debug(String.format("creting resultSet service stub with connectTimeout(%s), requestTimeout(%s)", connectTimeout, requestTimeout));
+		}
+
+		final Client client = ClientProxy.getClient(service);
+		final HTTPConduit http = (HTTPConduit) client.getConduit();
+		final HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
+
+		httpClientPolicy.setConnectionTimeout(connectTimeout);
+		httpClientPolicy.setAllowChunking(false);
+		httpClientPolicy.setReceiveTimeout(requestTimeout);
+
+		http.setClient(httpClientPolicy);
+
+		return service;
+	}
+
 	/**
 	 * 
 	 * @param stringEpr
@@ -137,4 +190,11 @@
 		this.timeout = timeout;
 	}
 
+	public long getConnectTimeout() {
+		return connectTimeout;
+	}
+
+	public void setConnectTimeout(final long connectTimeout) {
+		this.connectTimeout = connectTimeout;
+	}
 }
Index: modules/cnr-resultset-client/trunk/src/main/resources/eu/dnetlib/enabling/resultset/client/applicationContext-resultsetClient.properties
===================================================================
--- modules/cnr-resultset-client/trunk/src/main/resources/eu/dnetlib/enabling/resultset/client/applicationContext-resultsetClient.properties	(revision 44543)
+++ modules/cnr-resultset-client/trunk/src/main/resources/eu/dnetlib/enabling/resultset/client/applicationContext-resultsetClient.properties	(revision 44544)
@@ -1,2 +1,3 @@
 services.is.resultset.client.timeout=60000
-services.is.resultset.client.pagesize=10
+services.is.resultset.client.connecttimeout=10000
+services.is.resultset.client.pagesize=100
Index: modules/cnr-resultset-client/trunk/src/main/resources/eu/dnetlib/enabling/resultset/client/applicationContext-resultsetClient.xml
===================================================================
--- modules/cnr-resultset-client/trunk/src/main/resources/eu/dnetlib/enabling/resultset/client/applicationContext-resultsetClient.xml	(revision 44543)
+++ modules/cnr-resultset-client/trunk/src/main/resources/eu/dnetlib/enabling/resultset/client/applicationContext-resultsetClient.xml	(revision 44544)
@@ -15,7 +15,8 @@
 		class="eu.dnetlib.enabling.resultset.client.ResultSetClientFactory"
 		p:serviceResolver-ref="serviceResolver" p:eprUtils-ref="eprUtils"
 		p:pageSize="${services.is.resultset.client.pagesize}"
-		p:timeout="${services.is.resultset.client.timeout}" />
+		p:timeout="${services.is.resultset.client.timeout}"
+		p:connectTimeout="${services.is.resultset.client.connecttimeout}"/>
 
 	<bean id="eprUtils" class="eu.dnetlib.enabling.resultset.client.utils.EPRUtils" />
 
