Socket read timing out immediately
When does the timer for SO_TIMEOUT start? Is it when you call read on the socket? Or is it after the last packet of data is received from the remote node?
In my app, I have a socket with SO_TIMEOUT set to 2 minutes. By design, the connection is idle for a period of time longer than that, but I don't even try to read from the socket during this period. Then, I write some data to the socket and try to read a response. I would expect the 2 minute interval to start when I make the blocking call to read, but instead, I get a SocketTimeoutException right away. What's going on? Was the time that the connection was purposely idle count toward the timeout interval, even though I wasn't blocked trying to read? How can I avoid this?
I'm now officially confused.
Digging around a bit: from the Socket FAQ:
SO_{SND,RCV}TIMEO are probably the most widely
unimplemented, or strangely/incompatibly implemented, of all
common sockopts in existence... Basically, in short, NEVER
try to use them for anything... ;-)
If you want I/O timeouts, your only real option in most cases is
to roll your own, using either blocking/alarm()-based timeouts, or
non-blocking/select()-based timeouts... The latter probably being
the best choice, and least likely to cause pain (especially if you
ever need to write multi-threaded code)...
From the JDK source (PlainSocketImpl.c):
* SO_TIMEOUT is a no-op on Solaris/Linux
if (cmd == java_net_SocketOptions_SO_TIMEOUT) {
return;
}There ya go :-)
The JDK source for Windows (PlainSocketImpl.c) sets SO_RCVTIMEO if the winsock library in question supports it. (Undocumented feature: timeouts of <= 5 seconds are interpreted as 0).
I'm starting to think maybe setSoTimeout() isn't the best thing to do... Anyone here with experience with it?
Similar Messages
-
IO Error: Socket read timed out / IOP_iopinstance1_datasource" closed
Hi ,
Can somebody suggest what could be the probable cause of following errors showing up in IOP log file?
####<Aug 16, 2011 10:49:11 PM PDT> <Info> <Common> <sc-csttest> <IOPServer_iopinstance1> <weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@357ac2f7> <<anonymous>> <> <0000J7MI9kZFk3vLsYw0yX1EIpFA00002K> <1313560151943> <BEA-000628> <Created "1" resources for pool "IOP_iopinstance1_datasource", out of which "1" are available and "0" are unavailable.>
####<Aug 16, 2011 10:49:12 PM PDT> <Info> <JDBC> <sc-csttest> <IOPServer_iopinstance1> <weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@357ac2f7> <<anonymous>> <> <0000J7MI9kZFk3vLsYw0yX1EIpFA00002K> <1313560152146> <BEA-001128> <Connection for pool "IOP_iopinstance1_datasource" closed.>
java.sql.SQLRecoverableException: IO Error: Socket read timed out
Thanks
LokeshThis particular error means your database is down and socket is timedout. Or the query takes so long that the reader timedout -- unlikely.
Also, the general weblogic socket write errors, which you might see sometimes means that the client got disconnected before the server wrote results back. This is harmless -
JDBC pooling Oracle driver Socket read timed out
I run Java EE application on Glassfish server v3 together with Oracle 12 DB on the same machine under Windows Server 2012 64bit. I use latest ojdbc7 driver.
Connection pool config:
<jdbc-connection-pool validation-table-name="DUAL" steady-pool-size="20" statement-cache-size="100" associate-with-thread="true" statement-timeout-in-seconds="30" idle-timeout-in-seconds="60" max-wait-time-in-millis="2000" validate-atmost-once-period-in-seconds="20" datasource-classname="oracle.jdbc.pool.OracleDataSource" pool-resize-quantity="5" max-pool-size="60" res-type="javax.sql.DataSource" name="dbPool" is-connection-validation-required="true">
<property name="driverClass" value="oracle.jdbc.OracleDriver"></property>
<property name="user" value="xxx"></property>
<property name="url" value="jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))"></property>
<property name="password" value="xxx"></property>
<property name="portNumber" value="1521"></property>
<property name="databaseName" value="orcl"></property>
<property name="serverName" value="127.0.0.1"></property>
<property name="oracle.jdbc.ReadTimeout" value="300000"></property>
<property name="oracle.net.CONNECT_TIMEOUT" value="10000"></property>
</jdbc-connection-pool>
After 2 or 3 hours, when there is more than 1 user (3-5) using my application, it stops responding and I get this in glassfish logs
javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.allocator|_ThreadID=152;_ThreadName=Thread-2;|RAR5038:Unexpected exception while creating resource for pool dbPool. Exception : javax.resource.spi.ResourceAllocationException: Connection could not be allocated because: IO Error: Socket read timed out
Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: IO Error: Socket read timed out
From the database side it looks like this
Fatal NI connect error 12560, connecting to:
(LOCAL=NO)
VERSION INFORMATION:
TNS for 64-bit Windows: Version 12.1.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 12.1.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 12.1.0.1.0 - Production
Time: 13-JUN-2014 03:14:49
Tracing not turned on.
Tns error struct:
ns main err code: 12560
TNS-12560: TNS:protocol adapter error
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
opiodr aborting process unknown ospid (3404) as a result of ORA-609
When I just reset db listener everything works ok for next 1-2 hours (depends on application load). So temporary solution is to run bat script from windows scheduler to reset the listener every 1h.
I tried everything I could find - applied these parameters:
- Sqlnet.ora:
SQLNET.INBOUND_CONNECT_TIMEOUT=180
SQLNET.EXPIRE_TIME=5
- Listener.ora:
INBOUND_CONNECT_TIMEOUT_LISTENER_IPC=120
But still without successIs the problem here just that you need a connection pool that closes idle connections? Some pools will close idle connections after a time out period. And the pool lets you set that time out period. If the pool you are using doesn't provide that then use a different pool.
-
WebLogic 11g data source connection pooling failed with IO error:socket read timed out.
Hi all,
We encountered IO Error: Socket read timed out( <Received exception while creating connection for pool "DS_1": IO Error: Socket read timed out> ) during the creation of data sources in WebLogic 11g. Manual data source testing seems to indicate intermittent connection and the server seems to take a long time to start up with multiple IO errors. We increased the timeout at the database side but it does not seems to help. The database is 11g (11.2.0.3). The database services and listener are up which does not indicate that the database instance is down.This particular error means your database is down and socket is timedout. Or the query takes so long that the reader timedout -- unlikely.
Also, the general weblogic socket write errors, which you might see sometimes means that the client got disconnected before the server wrote results back. This is harmless -
Java.sql.SQLException: Socket read timed out
// DbTest.java
<code>
import java.sql.*;
import java.io.*;
public class DbTest
public static void main(String args[])
System.out.println("DbTest main(-)");
Connection con = null;
try
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("class loaded");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcldb","scott","tiger");
System.out.println("con obj created");
System.out.println("con obj retrived");
if (con!=null)
System.out.println("Connection created successfully");
else
System.out.println("Connection refused");
catch (SQLException e)
e.printStackTrace();
catch(Exception e)
e.printStackTrace();
</code>
e:\JavaPrgms\JDBC>javac DbTest.java
e:\JavaPrgms\JDBC>java DbTest
DbTest main(-)
class loaded
java.sql.SQLException: Socket read timed out
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:
531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtensio
n.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at DbTest.main(DbTest.java:17)
Caused by: oracle.net.ns.NetException: Socket read timed out
at oracle.net.ns.Packet.receive(Packet.java:320)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:286)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
... 7 more
i am using win 7 64bit os , Oracle 11.2, Jdk 1.7 how can i resolve this problem?
Edited by: 910776 on Oct 4, 2012 10:49 AMYour other thread got locked because all you did was post a bunch of code without explaining what your question or issue was or what the code is supposed to be doing.
java.sql.SQLException: Socket read timed out
Simply reposting in this forum isn't enough. Edit your post and and add \ tags on the line before and the line after the code to preserve the formatting.
Also explain what you are trying to do, the problem you are having and answer the questions I ask you in your other thread.
{quote}
What is it you are trying to do?
Why are you trying to connect to two different databases?
Do either of those databases actually exist?
Do they exist on the local machine that Java is running on?
Can you connect to either of them without using Java?
{quote} -
Java.sql.SQLException: Io exception: Socket read timed out
Hello,
I've a interface RFC - JDBC - RFC.
When this interface is executing, i have the follow error in RuntimeWorkbench::
'Unable to execute statement for table or stored procedure. 'TABLAERR' (Structure 'STATEMENT') due to java.sql.SQLException: Io exception: Socket read timed out'
In SXMB_MONI do not see any message, only
' <SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry> '
this error don't occurs always, when and why i don't know..
I searched for information about this error and nothing found
why it is happens?
thank very muchHI,
This is not a problem in ur mapping or configuration.
This is a problem with JDBC connection. This is a common error, that generally comes when the DB server is receiving and processing numerous records. Connection time out or socket read time out.
First try this:
In ur JDBC adapter go to Advanced Tab Page and check Transaction Isolation Level as Serializable.
If still problem persists then take help of basis guys and increase the timeout for the connection, same thing can be asked from DB team. -
I have a rmi call.
Client: JDK1.5.0_06 Windows 2003
Server: JDK1.5.0_06 Windows XP
I got following exceptions in client side sometimes, but not always:
java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.net.SocketException: Connection reset by peer: socket write error
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
So I set -Dsun.rmi.server.exceptionTrace=true property to server side and got following exceptions:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.net.SocketTimeoutException: Read timed out
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:282)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
60)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:701)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java
:2217)
at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream
.java:2616)
at java.io.ObjectInputStream$BlockDataInputStream.readFully(ObjectInputS
tream.java:2646)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1609)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1293)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1628)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1293)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:19
12)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
713)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream
Is this problem caused by network or do you have any work around for it?try to increase the socket read duration by adding -Dcom.sun.CORBA.transport.ORBTCPReadTimeouts= to the variable list of your JVM.
If it does not work, you can take a look at the sun bug 6553303 or search for the related bugs from the bug database. I saw a similar bug before. -
GetInputStream from request - read timed out
I'm using Weblogic server 5.1 and a third party product
(Blackboard), running on Win2k and IIS5.0.
I've created a servlet and configured weblogic to execute the servlet
for a given extension etc.. which works fine, but when trying to read from
the ServletInputStream I get an IOException, "Read timed out". This isn't a
problem in weblogic.servlet.internal.ServletInputStreamImpl, but something
further back that sets the input stream. I've tried reset, but it appears
that reset and marking is not supported. I know POSTs are working within the
third party application, but I'm using PROPFIND and trying to read XML (the
content-length is correct).
Any suggestions,
Matt Elton
Univeristy of Northumbria
Newcastle
UKI would probably guess that CIS is configuring its socket threads to have particular timeouts (to limit the time you would wait if something seriously went wrong with the request). Typically CIS is focused on page generation in APP servers or portals and these app servers (or portals) tend to like timeouts on their requests. This of course is unsuitable for the scenario of uploading the file. I would consult the CIS documentation to see if there are any mechanisms for tuning this behavior. If not, try contacting support.
-
Hi,
A java class I use is connecting to another system via socket.
This always works fine when using Java 1.3. However my database installation forces me to use Java 1.2.1 where the same code fails.
Does anybody know of a workaround to this problem?
I use Solaris.
When using Java 1.2.1 I get
Read timed out
java.io.InterruptedIOException: Read timed out
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.socketRead(Compiled Code)
at java.net.SocketInputStream.read(Compiled Code)
at java.net.SocketInputStream.read(Compiled Code)
at java.io.InputStreamReader.fill(Compiled Code)
at java.io.InputStreamReader.read(Compiled Code)
at java.io.InputStreamReader.read(Compiled Code)
at java.io.StreamTokenizer.read(Compiled Code)
at java.io.StreamTokenizer.nextToken(Compiled Code)
at com.posten.autent.AutentClient.receive(Compiled Code)
at com.posten.autent.AutentClient.connect(AutentClient.java:265)
Here is the code
// Attempt to connect to server.
try {
socket = new Socket( host, port );
in = new InputStreamReader( socket.getInputStream() ) ;
input = new StreamTokenizer( in );
output = new PrintStream( socket.getOutputStream() );
input.resetSyntax();
input.wordChars( '\u0021', '\uffff' );
input.whitespaceChars( '\u0010', '\u0020' );
input.whitespaceChars( '=', '=' );
input.quoteChar( 39 );
socket.setSoTimeout( timeout );
catch( Exception e ) { ...
The timeout is 10000 (10 seconds) which is far much more than necessary.
Regards,
Erika BiesseWell now, I've found a way around the problem myself.
The java bug is Bug Id 4150737 and it was corrected in Java 1.2.2.
The reason why I must stick to java 1.2.1 is that I call the java code from stored procedures in Oracle 8.1.7, which is JDK 1.2.1 compliant only. (If you the other way around call the OracleDB from java, you can use any java version.)
Here is the WO:
Before the very first input.nextToken I send an empty command, an extra
newline.
After each 'real' command I send, I call input.nextoken until TT_EOF or TT_EOL
because the other system answers 'Error' on the empty command.
Then I send another empty command, and then input.nextoken can read the answer
of the 'real' command.
Ugly, but it works! -
Read of HTTP Request POST parameters failed:Read timed out
Hi !
Any one seen this exception . any ideas of the cause?
java.lang.RuntimeException: Read of HTTP Request POST parameters failed: Read timed out
at org.apache.catalina.connector.HttpRequestBase.parseParameters(HttpRequestBase.j ava:665)
at org.apache.catalina.connector.HttpRequestBase.getParameterValues(HttpRequestBase.java :737)
at org.apache.catalina.connector.RequestFacade.getParameterValues(RequestFacade.java:170 )
Thanks,Assuming there is nothing wrong with
org.apache.catalina.connector.HttpRequestBase.parseParameters
I can only think of 2 things:
1. The timeout is set for an extremely short time in the Apache settings (server.xml의)
2. The client application is sending the POST verry slow or incorrect. For example the
client says that the POST is 500 long than sends 200 and leaves the connection open.
You can try and post the following:
request.txt:
POST /somePath/somefile.js HTTP/1.1
Host: localhost:44
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20041217
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 45
depreciatedButWontPostWithoutAName=some+valueThe client sending the request:
import java.io.*;
import java.net.*;
import java.io.DataOutputStream;
import java.applet.Applet;
public class appTest extends Applet implements Runnable {
public static final int HTTP_PORT = 80;
public static final String hostName = "localhost";
public void run() {
try{
InetAddress addr = InetAddress.getByName(hostName);
Socket s = new Socket(addr,HTTP_PORT);
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(s.getOutputStream(), "UTF8"));
s.setSoTimeout(2000);
File fileToSend = new File("request.txt");
FileInputStream fleHTML = new FileInputStream(fileToSend);
StringBuffer sbHTMFile = new StringBuffer();
int b = fleHTML.read();
while(b!=-1){
sbHTMFile.append((char) b);
b = fleHTML.read();
wr.write(sbHTMFile.toString());
wr.flush();
BufferedReader rd = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
wr.close();
rd.close();
} catch (Exception e) {
e.printStackTrace();
public void init(){
new Thread(this).start();
public appTest(){
new Thread(this).start();
// main program
public static void main(String argv[]) throws Exception {
new appTest();
}In appTest.java change HTTP_PORT to the port you need and hostName to the
hostname you need.
In request.txt change the /somePath/somefile.js to the location you desire.
And change Host: localhost:44 to the hostname and post you desire. -
SocketTimeoutException: Read timed out - Context Is Too Large
I've successfully generated ADS Forms through WebDynpro for a while, but have now run into an issue when the complex node used to fill the report is around 1,000 rows. The process to retrieve the data via the EJBs, along with the process to fill the context, takes around 10 seconds, but the actual generation of the PDF fails due to the following exception:
com.sap.tc.webdynpro.pdfobject.core.PDFObjectRuntimeException: Service call exception; nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.sap.tc.webdynpro.pdfobject.core.PDFObject.doSoapCall(PDFObject.java:280)
at com.sap.tc.webdynpro.pdfobject.core.PDFObject.createPDF(PDFObject.java:222)
at com.sap.tc.webdynpro.clientserver.adobe.AdobeFormHelper.createPDFDocumentForUIElement(AdobeFormHelper.java:457)
at com.sap.tc.webdynpro.clientserver.uielib.adobe.impl.InteractiveForm.afterHandleActionEvent(InteractiveForm.java:158)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.afterHandleActionEvent(ClientApplication.java:1147)
at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:402)
at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:252)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:154)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:392)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:345)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:323)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:865)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:240)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:159)
I'm not finding anything related to report size for this issue, only versioning of ADS and read credentials.
Are there limitations to the amount of information that can be generated with the SAP provided credentials?
Do I need to break up the amount of information displayed at one time?
Thanks,
LaneHi Lane,
first of all, the time out is definitely not related to the credential, it is simply a technical prerequisite for being able to create PDF forms using Interactive Forms at all.
If you are on NW '04 SP11 or lower, try upgrading to a later version. SP 12 (and higher) contains a newer version of Adobe document services that renders much faster.
Also, by default the Web service client socket timeout is set to 60. Try changing this parameter in the Visual Administrator: Server -> Services -> Web Services Container on the Settings tab.
We have seen online scenarios with performance issues when the context was rather large. It may make more sense to create smaller PDFs with a stricter data selection.
Hope this helps!
Kind regards,
Markus Meisl
SAP NetWeaver Product Management -
Read timed out, for file checkin using SCS API
Hi,
I have installed content server and deployed CIS in standalone oc4j.
I want to checkin files using the SCS API. Initially I was to able checkin a file of size 120MB successfully. When I tried to checkin a file of size 300MB , file is checked in but an Exception with the msg "Read timeout out" is thrown.
I am able to checkin the same file(300MB) through content server front end without any error.Why do I get exception when using the API?
[2008-01-11 09:56:07,343] [main] WARN (com.stellent.cis.server.api.scs.protocol.impl.HDAProtocol) - Unable to find end header mark! ()
[2008-01-11 09:56:07,343] [main] WARN (com.stellent.cis.server.api.scs.protocol.impl.HDAProtocol) - Did not read any headers from input, setting type to UNKNOWN_TYPE
com.stellent.cis.client.command.CommandException: com.stellent.cis.server.api.scs.request.SCSRequestException: Error reading the response from the Content Server: Read timed out
at com.stellent.cis.server.api.scs.impl.SCSCommand.executeRequest(SCSCommand.java:338)
at com.stellent.cis.server.api.scs.impl.SCSCommand.execute(SCSCommand.java:222)
at com.stellent.cis.client.command.impl.services.CommandExecutorService.executeCommand(CommandExecutorService.java:57)
at com.stellent.cis.client.command.impl.CommandFacade.executeCommand(CommandFacade.java:158)
at com.stellent.cis.client.command.impl.BaseCommandAPI.invokeCommand(BaseCommandAPI.java:84)
at com.stellent.cis.client.api.scs.document.checkin.impl.SCSDocumentCheckinAPI.checkinFileStream(SCSDocumentCheckinAPI.java:707)
at test.CheckinFile.execute(CheckinFile.java:85)
at test.CheckinFile.main(CheckinFile.java:60)
Caused by: com.stellent.cis.server.api.scs.request.SCSRequestException: Error reading the response from the Content Server: Read timed out
at com.stellent.cis.server.api.scs.request.impl.SCSRequestProcessor.parseResponse(SCSRequestProcessor.java:223)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestProcessor.processRequest(SCSRequestProcessor.java:114)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestFilterChain.doRequestFilter(SCSRequestFilterChain.java:61)
at com.stellent.cis.server.api.scs.request.stream.SCSOptimizedPublishFilter.handleRequest(SCSOptimizedPublishFilter.java:128)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestFilterChain.doRequestFilter(SCSRequestFilterChain.java:58)
at com.stellent.cis.server.api.scs.request.stream.SCSOptimizedRetrieveFilter.handleRequest(SCSOptimizedRetrieveFilter.java:250)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestFilterChain.doRequestFilter(SCSRequestFilterChain.java:58)
at com.stellent.cis.server.api.scs.request.rewrite.SCSRewriteURLFilter.handleRequest(SCSRewriteURLFilter.java:140)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestFilterChain.doRequestFilter(SCSRequestFilterChain.java:58)
at com.stellent.cis.server.api.scs.request.cache.impl.SCSServiceCacheFilter.handleRequest(SCSServiceCacheFilter.java:104)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestFilterChain.doRequestFilter(SCSRequestFilterChain.java:58)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestExecutorProxy.execute(SCSRequestExecutorProxy.java:105)
at com.stellent.cis.server.api.scs.impl.SCSCommand.executeViaProxy(SCSCommand.java:353)
at com.stellent.cis.server.api.scs.impl.SCSCommand.executeRequest(SCSCommand.java:335)
... 7 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
at com.stellent.cis.server.api.scs.protocol.impl.HDAProtocol$1.read(HDAProtocol.java:379)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at com.stellent.cis.server.api.scs.protocol.impl.BaseHDAProtocol.determineFormat(BaseHDAProtocol.java:150)
at com.stellent.cis.server.api.scs.protocol.impl.HDAProtocol.readMessage(HDAProtocol.java:308)
at com.stellent.cis.server.api.scs.request.impl.SCSRequestProcessor.parseResponse(SCSRequestProcessor.java:206)
... 20 more
Regards
RajiI would probably guess that CIS is configuring its socket threads to have particular timeouts (to limit the time you would wait if something seriously went wrong with the request). Typically CIS is focused on page generation in APP servers or portals and these app servers (or portals) tend to like timeouts on their requests. This of course is unsuitable for the scenario of uploading the file. I would consult the CIS documentation to see if there are any mechanisms for tuning this behavior. If not, try contacting support.
-
Data Federator - Read timed out
Hi,
I'm using Data Federator XI 3.0 SP2. I have a datasource connecting to a web service. The web service may return take a long time to do heavy processing, etc., before returning any data. If I call the web service via Data Federator, I will get the following error
Exception was thrown while executing a query on Data Federator Query Server.
An exception occurred when querying Data Federator Query Server.
[Data Federator Driver][Server]
[Wrapper /TEST/sysadmin/sources/draft/ReturnInputAsOutput]HTTP input/output exception: Read timed out
[Wrapper /TEST/sysadmin/sources/draft/ReturnInputAsOutput]HTTP input/output exception: Read timed out
[Wrapper /TEST/sysadmin/sources/draft/ReturnInputAsOutput]HTTP input/output exception: Read timed out
HTTP input/output exception: Read timed out
I'm guessing that the Data Federator query timed out because the web service takes a long time to response, is it not? If this is the case, how do I increase timeout value? If this is not the case, then what does the error mean and how do I resolve it?
Thanks.
Edited by: Chih Hui Wan on Nov 19, 2009 9:15 AMHi Dayanand,
For testing purpose, I created a small simple web service with only one operation that sleep for more than two minutes before returning a string. I called this web service operation from Data Federator. After waiting for a while, I got the "Read timed out" error
Regards,
Chih Hui -
Read timed out error while opening monitor tab in DataServices
Hello all,
Am getting a "Read timed out" error when I try to open the monitor tab in DataServices admin console for a few jobs only. For several jobs, monitor tab opens just fine. But for a few it doesnt and throws the error mentioned above. Mostly this behaviour is noticed with a job having several workflows and dataflows.
The version of DS used is 12.1.0.0. Tried to gather some info on this issue, but couldnt find any relevant thread. Would really appreciate if anyone could help me with it.
Regards,
Premcheck the following post
http://www.forumtopics.com/busobj/viewtopic.php?t=148213 -
Error: Read timed out&MESSAGE_NOT_FOUND.
Hi,
There's a synchronous scenario (File-File). A connection failure occured during a query from buisness-process (BPM). Since then an error (error message) appears constantly in Runtime Workbench-Component Monitoring-Communication Channels.
Success
RRB: entering RequestResponseBean
Success
RRB: passing through ...
Success
RRB: suspending the transaction
Success
RRB: leaving RequestResponseBean
Success
Application attempting to send an XI message synchronously using connection File_http://sap.com/xi/XI/System.
Success
Trying to put the message into the call queue.
Success
Message successfully put into the queue.
Success
The message was successfully retrieved from the call queue.
Success
The message status set to DLNG.
Error
Received XI System Error. ErrorCode: GENERAL ErrorText: com.sap.aii.af.ra.ms.api.DeliveryException: Read timed out ErrorStack:
Error
Returning synchronous error notification to calling application: com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: Read timed out.
Error
Transmitting the message using connection http://*****:8010/sap/xi/engine?type=entry failed, due to: com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: Read timed out.
Error
The message status set to FAIL.
Error
Returning to application. Exception: com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: Read timed out
Error
Attempt to process file failed with com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: Read timed out
Error
Attempt to process file failed with com.sap.aii.af.service.util.transaction.api.TxManagerException: Unable to roll back transaction: com.sap.engine.services.ts.exceptions.BaseIllegalStateException
File removing and the channel rebooting the channel donu2019t help.
After rebooting the channel:
Error
Received XI System Error. ErrorCode: MESSAGE_NOT_FOUND ErrorText: ErrorStack: XML message not found
Error
Returning synchronous error notification to calling application: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MESSAGE_NOT_FOUND:.
Error
Transmitting the message using connection http://*****:8010/sap/xi/engine?type=entry failed, due to: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MESSAGE_NOT_FOUND:.
Error
The message status set to FAIL.
Error
Returning to application. Exception: com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MESSAGE_NOT_FOUND:
Error
Attempt to process file failed with com.sap.aii.af.ra.ms.api.DeliveryException: XIServer:MESSAGE_NOT_FOUND:
Error
Attempt to process file failed with com.sap.aii.af.service.util.transaction.api.TxManagerException: Unable to roll back transaction: com.sap.engine.services.ts.exceptions.BaseIllegalStateException
Any ideas?hi,
try this,
go to Message Monitoring in RWB, delete all the messages with status system error and onhold.
it shd solve your problem
Regards,
Sukarna.chirumamilla.
Maybe you are looking for
-
I want sap easy access screen as an iview in the portal
Hi , I want sap easy access screen as a iview in portal ,how can i do it. I used SESSION_MANAGER tcode and created a transaction iview but it is going to rs00 tcode screen, PLZ help me
-
Generate Web Dynpro Model?
Hi, I'm familiar with DS 7.0, and I'm begining to lear 7.1 recently. I searched for tutorials and in the forum, but I can't find how to create a Web Dynpro model from a CAF DC, in 7.0 it was just a right click and generate WD Model, can you help me p
-
How to invoke synchronous services dynamically (parallel) using BPEL
hi, I am working on soa suit 11g(11.1.1.2.0) & weblogic server 10.3.2. I have one requirement in which i need to dynamically route endpoints. To achive this, i have created one table in which i stored endpoints(wsdl url) & i used parallel flow to get
-
Multiple Image inputs in Blendmode Shader
I'm using 3 input images in a kernel destined to be used as a Blendmode.Shader. As the documentation states, I have the background image as the first input, the foreground image (to whose bitmap I apply the Blendmode) as the second input, and a third
-
Ipod touch not updating because it takes to long to back it
I cannot update my ipod touch version 3.1.2 because when i do so, it needs to be backed up. When doing this, it will be backing for many hours and the status bar will have hardly moved. please help me out.