Read timed out
When we set the Asset action to retire then active, it always report the Read time out error. The code like this:
asset.setAction(RAMAction.RETIRE);
session.put(asset, new RAMStatusMonitor());
asset.setAction(RAMAction.ARCHIVE);
session.put(asset, new RAMStatusMonitor());
The error log like this:
com.ibm.cloud.ram.RAMAccessException: ; nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.ibm.cloud.ram.RAMClient.deleteAsset(RAMClient.java:428)
at com.ibm.cloud.ram.RAMClientTest.testDelete(RAMClientTest.java:233)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: com.ibm.ram.common.data.exception.RAMRuntimeException: ; nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.ibm.ram.client.RAMSession.putAsset(RAMSession.java:3256)
at com.ibm.ram.client.RAMSession.put(RAMSession.java:4730)
at com.ibm.cloud.ram.RAMClient.deleteAsset(RAMClient.java:416)
... 25 more
Caused by: java.net.SocketTimeoutException: Read timed out
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at com.ibm.ram.internal.client.RAMHTTPSender.invoke(RAMHTTPSender.java:41)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.ibm.ram.repository.web.ws.core.v72.RAM1SoapBindingStub.changeAssetStateByID(RAM1SoapBindingStub.java:6389)
at com.ibm.ram.internal.access.ws.RAMv72.changeAssetStateByID(RAMv72.java:1028)
at com.ibm.ram.client.RAMSession.putAsset(RAMSession.java:2795)
... 27 more
Is the RAM client API need any socket timeout setting? Thanks.
Our RAM version is 7.2
asset.setAction(RAMAction.RETIRE);
session.put(asset, new RAMStatusMonitor());
asset.setAction(RAMAction.ARCHIVE);
session.put(asset, new RAMStatusMonitor());
The error log like this:
com.ibm.cloud.ram.RAMAccessException: ; nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.ibm.cloud.ram.RAMClient.deleteAsset(RAMClient.java:428)
at com.ibm.cloud.ram.RAMClientTest.testDelete(RAMClientTest.java:233)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: com.ibm.ram.common.data.exception.RAMRuntimeException: ; nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.ibm.ram.client.RAMSession.putAsset(RAMSession.java:3256)
at com.ibm.ram.client.RAMSession.put(RAMSession.java:4730)
at com.ibm.cloud.ram.RAMClient.deleteAsset(RAMClient.java:416)
... 25 more
Caused by: java.net.SocketTimeoutException: Read timed out
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at com.ibm.ram.internal.client.RAMHTTPSender.invoke(RAMHTTPSender.java:41)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.ibm.ram.repository.web.ws.core.v72.RAM1SoapBindingStub.changeAssetStateByID(RAM1SoapBindingStub.java:6389)
at com.ibm.ram.internal.access.ws.RAMv72.changeAssetStateByID(RAMv72.java:1028)
at com.ibm.ram.client.RAMSession.putAsset(RAMSession.java:2795)
... 27 more
Is the RAM client API need any socket timeout setting? Thanks.
Our RAM version is 7.2
5 answers
There is a RAMSession. setWebServiceTimeout(int seconds) that defaults to 60 seconds.
Hi Kbauer,
I set the code as session.setWebServiceTimeout(360000); and try to run the unit test as following:
asset.setAction(RAMAction.RETIRE);
session.setWebServiceTimeout(360000);
session.put(asset, new RAMStatusMonitor());
asset.setAction(RAMAction.ARCHIVE);
session.setWebServiceTimeout(360000);
session.put(asset, new RAMStatusMonitor());
But it will not work until run the unit test three times , then will not throw exception for read time not.
Also, after run it three times, it means can not do operation on the retire asset.
Do you have any idea on it? Thanks.
Hello,
Is the hang happening on "asset.setAction(RAMAction.RETIRE)" or
"asset.setAction(RAMAction.ARCHIVE)" ?
To understand your problem, you set the timeout to 360,000seconds
(100hours) and you get a timeout how soon?
Also, can you please check server logs and watch for any exceptions when
you make this call?
Regards,
Srimanth.
On 1/30/2011 5:53 AM, pantian wrote:
Is the hang happening on "asset.setAction(RAMAction.RETIRE)" or
"asset.setAction(RAMAction.ARCHIVE)" ?
To understand your problem, you set the timeout to 360,000seconds
(100hours) and you get a timeout how soon?
Also, can you please check server logs and watch for any exceptions when
you make this call?
Regards,
Srimanth.
On 1/30/2011 5:53 AM, pantian wrote:
kbauerwrote:
There is a RAMSession. setWebServiceTimeout(int seconds) that
defaults to 60 seconds.
Hi Kbauer,
I set the code as session.setWebServiceTimeout(360000); then can
work, but I have two questions want to confirm :
1) If any impact after this change? Cause the RAM reading slowly?
2) My code like this:
asset.setAction(RAMAction.RETIRE);
session.setWebServiceTimeout(360000);
session.put(asset, new RAMStatusMonitor());
asset.setAction(RAMAction.ARCHIVE);
session.setWebServiceTimeout(360000);
session.put(asset, new RAMStatusMonitor());
But after the status set to retire it can not be changed to Archieve
after that. Because it will throw the exception means the retire
status asset can not be used.
Could you help to confirm? Thanks.