Hi,
you simply run into a connection timeout. The default value for these timeout is 15 
minutes. Because of a better performance the JDBC driver fetches the rows of a 
resultset in chunks (30 - 130 kByte depends on packet size) and not row by row. If you 
need longer than 15 minutes to iterate thru the chunck then you will get a Timeout 
Exception while the internal fetch command is trying to fetch the next chunk.   

There are different possibilities to avoid the Timeout Exception:
- increase or switch off the connection timeout for the whole database by modifying 
the database parameter "SESSION_TIMEOUT" (0 : no timeout of session)
- increase or switch off the connection timeout for a certain connection using the 
jdbc connect property timeout=<value>
- send a ping to the database from time to time while you are fetching thru a big 
resultset. You can do this using the JDBC-method Connection.isclosed().

Regards,
Marco
----------------------------------------------
Marco PASKAMP
SAP Labs Berlin

> -----Original Message-----
> From: Raimund Jacob [mailto:[EMAIL PROTECTED]
> Sent: Dienstag, 7. Oktober 2003 10:46
> To: [EMAIL PROTECTED]
> Subject: jdbc timeout when fetching large results
> 
> 
> hi!
> 
> in one of my java/jdbc applications i sometimes get an exception like 
> this one:
> 
> com.sap.dbtech.jdbc.exceptions.ConnectionException: [-1] Timeout
> at 
> com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:413)
> at 
> com.sap.dbtech.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:320)
> at 
> com.sap.dbtech.jdbc.FetchInfo.executeFetchCommand(FetchInfo.java:244)
> at 
> com.sap.dbtech.jdbc.FetchInfo.executeFetchRelative(FetchInfo.java:192)
> at 
> com.sap.dbtech.jdbc.ResultSetSapDB.fetchNextChunk(ResultSetSap
> DB.java:2380)
> at com.sap.dbtech.jdbc.ResultSetSapDB.next(ResultSetSapDB.java:372)
> ...
> 
> i dont really know what to do against them. they seem to appear when 
> iterating large result sets over a longer period of time (say 
> an hour or 
> two). this one appeared after about 15 minutes iterating a result set 
> that should have taken about an hour to iterate.
> 
> when this happened, i have to restart my application, the db 
> itself is fine.
> 
> the server is 7.4.3.17 on linux, the jdbc driver is 7.4.4    Build 
> 001-000-156-985.
> 
> what could be the reason?
> 
>       Raimund
> 
> -- 
> Pinuts media+science GmbH                 http://www.pinuts.de
> Raimund Jacob                             [EMAIL PROTECTED]
> Potsdamer Str. 96                         voice : +49 30 59 00 90 322
> 10785 Berlin                              fax   : +49 30 59 00 90 390
> Germany
> 
> 
> -- 
> MaxDB Discussion Mailing List
> For list archives: http://lists.mysql.com/maxdb
> To unsubscribe:    
http://lists.mysql.com/[EMAIL PROTECTED]

-- 
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to