function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Sean_kSean_k 

[Urgent]:: java.net.SocketTimeoutException: Read timed out

Question 1)
Iam trying to get data from salesforce custom object which has more than a million records.
I got the following error.

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.SocketTimeoutException: Read timed out
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: java.net.SocketTimeoutException
: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.a(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPS
ender.java:631)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:141)


in CommonsHTTPSender

httpClient.setConnectionTimeout(5000);
httpClient.setHttpConnectionFactoryTimeout(5000); methods
i changed time from 5000 to 10000 still it didn't help?
Question 2)
Everybody on the forum saying "Make sure you're using HTTP/1.1 persistent connections".
How do I know which HTTP I am using? How can I implement HTTP/1.1..
Right now the Http class(CommonsHTTPSender) I am using is copied from the Quickstart examples.

Please help..this is urgent..
SuperfellSuperfell
CommonsHTTPSender does persistent connections.

What's your timeout (not connection timeout) set to ? the default of 60 seconds might be a bit low to create a 1 million row cursor. The 2 timeouts you're fiddling with are connection related, and are not relevant in this case (as you have a connection).
Sean_kSean_k
i did increase the setTimeOut time( binding.setTimeout(1000 * 60 * 60 * 100); ),Still i was getting the same error.
Even i tried by reducing size of extract from sforce from 2000 to 500, it was no help :(
SuperfellSuperfell
so how did it take to timeout ?, as you seem to be setting the timeout to 100 hours.

Are you sure you're changing the timeout on the stub actually used ? i think the quickstarts create new stub after login, which can throw you.
Sean_kSean_k
Hey, Simon thanks so much for quick responses...
I double checked it...I am setting on the same binding which iam using to get the data..? and FYI Iam getting the same error with salesforce data loader when i run the query...
SuperfellSuperfell
What timeout setting do you have setup in the loader. What's the SOQL you're using for the query ?
Sean_kSean_k
I set to time out to 9400 seconds..

and the query is " Select Id, Name FROM Subscriber__c "

2006-01-31 16:07:43,608 INFO [main] controller.LoaderController initConfig (Loa
derController.java:297) - The log has been initialized
2006-01-31 16:09:12,101 INFO [ModalContext] controller.LoaderController execute
Action (LoaderController.java:100) - executing EXTRACTION
2006-01-31 16:11:18,385 ERROR [ModalContext] client.PartnerClient query (Partner
Client.java:711) - Error in query
AxisFault
faultCode: {urn:fault.partner.soap.sforce.com}QUERY_TIMEOUT
faultSubcode:
faultString: QUERY_TIMEOUT: Your query request was running for too long.
faultActor:
faultNode:
faultDetail:
{urn:fault.partner.soap.sforce.com}fault:
QUERY_TIMEOUT
Your query request was running for too long.tionMessage>


QUERY_TIMEOUT: Your query request was running for too long.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
rce)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.axis.encoding.ser.BeanDeserializer.(BeanDeserializer
.java:125)
at org.apache.axis.encoding.ser.BeanDeserializer.(BeanDeserializer
.java:111)
at com.sforce.soap.partner.fault.UnexpectedErrorFault.getDeserializer(Un
expectedErrorFault.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(B
aseDeserializerFactory.java:177)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerA
s(BaseDeserializerFactory.java:117)
at org.apache.axis.encoding.DeserializationContextImpl.getDeserializer(D
eserializationContextImpl.java:466)
at org.apache.axis.encoding.DeserializationContextImpl.getDeserializerFo
rType(DeserializationContextImpl.java:481)
at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaul
tDetailsBuilder.java:172)
SuperfellSuperfell
That's an entirely different error, you should log a case with support.
gowthamgowtham
Hey am getting this error did any one got solution pls post it. Its urgent.:(