If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 
Go Back  dBforums > Database Server Software > DB2 > DB2 jdbc error code -4499

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 04-01-08, 03:26
holgerschlegel holgerschlegel is offline
Registered User
 
Join Date: May 2006
Posts: 19
DB2 jdbc error code -4499

We are accessing a DB/2 Express database version 8.2 using the DB2 JDBC Driver. In some long running processes, we sometimes get an sql exception "A communication error has been detected".
Using the trace facility of the jdbc driver showed the error code -4499. In the db2 documentation for that error code I only found the following sentence: "A fatal error occurred that resulted in a disconnect.". Not very helpfull.

The complete informations from the trace file are:

[ibm][db2][jcc][Thread:main][SQLException@1ff0dde] java.sql.SQLException
[ibm][db2][jcc][Thread:main][SQLException@1ff0dde] SQL state = null
[ibm][db2][jcc][Thread:main][SQLException@1ff0dde] Error code = -4499
[ibm][db2][jcc][Thread:main][SQLException@1ff0dde] Message = A communication error has been detected. Communication protocol being used: UWReply.fill(). Communication API being used: recvBuff(). Location where the error was detected: ReasonCode=54. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS DB2ConnectionCorrelator: GA47E424.A30D.01A847092216
[ibm][db2][jcc][Thread:main][SQLException@1ff0dde] Stack trace follows
com.ibm.db2.jcc.a.DisconnectException: A communication error has been detected. Communication protocol being used: UWReply.fill(). Communication API being used: recvBuff(). Location where the error was detected: ReasonCode=54. Communication function detecting the error: *. Protocol specific error codes(s) TCP/IP SOCKETS DB2ConnectionCorrelator: GA47E424.A30D.01A847092216

In addition there is a stacktrace with the first 13 elements been inside the db2 jdbc driver.

Some more environment informations:
Client: Windows 2003 x86 using java 1.5.0
Database: DB2/AIX64, version SQL08025
JDBC Driver: IBM DB2 JDBC Universal Driver version 2.7.58

Does anyone know what can cause that error. Or even better, what can I do to solve that error.

Holger Schlegel
Reply With Quote
  #2 (permalink)  
Old 04-01-08, 03:37
stolze stolze is offline
Registered User
 
Join Date: Jan 2007
Location: Jena, Germany
Posts: 2,662
I have no idea, but have you tried applying the latest FixPak?
__________________
Knut Stolze
IBM DB2 Analytics Accelerator
IBM Germany Research & Development
Reply With Quote
  #3 (permalink)  
Old 04-01-08, 03:39
Marcus_A Marcus_A is offline
Registered User
 
Join Date: May 2003
Location: USA
Posts: 5,196
Since it is a "long running process" I suspect you are getting a TCP/IP timeout and the connection is being dropped.

Are you using any connection pooling software on the java client (JBoss, Webshpere, WebLogic, etc)?
__________________
M. A. Feldman
IBM Certified DBA on DB2 for Linux, UNIX, and Windows
IBM Certified DBA on DB2 for z/OS and OS/390
Reply With Quote
  #4 (permalink)  
Old 04-01-08, 04:38
holgerschlegel holgerschlegel is offline
Registered User
 
Join Date: May 2006
Posts: 19
The total process is running many hours (>10), but contains of many transactions. Some of them may contain heavy statements that may cause a timeout in the client.

If the connection is dropped by the client jdbc driver due to tcp/ip timeout, I expected to find a corresponging entry in the database log. But there is no such entry.

The java client uses a single connection, no connection pooling.

Holger Schlegel
Reply With Quote
  #5 (permalink)  
Old 04-01-08, 04:50
holgerschlegel holgerschlegel is offline
Registered User
 
Join Date: May 2006
Posts: 19
The total process is running many hours (>10), but contains of many transactions. Some of them may contain heavy statements that may cause a timeout in the client.

If the connection is dropped by the client jdbc driver due to tcp/ip timeout, I expected to find a corresponging entry in the database log. But there is no such entry.

I just found out that the db2 jdbc driver has a property "loginTime" in seconds. It is used for login and for any sql request. After the set number of seconds, the driver closes the connection. Its default value of 0 is declared as "the default system timeout value".
Does anyone know where to find the concrete value for "default system timeout"?

Holger Schlegel
Reply With Quote
  #6 (permalink)  
Old 09-09-08, 15:01
msspurlock msspurlock is offline
Registered User
 
Join Date: Dec 2006
Posts: 5
Since it's AIX, are you sure you have enough connection handlers?
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On