You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by al...@apache.org on 2010/04/07 20:21:10 UTC
svn commit: r931634 -
/openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
Author: allee8285
Date: Wed Apr 7 18:21:10 2010
New Revision: 931634
URL: http://svn.apache.org/viewvc?rev=931634&view=rev
Log:
OPENJPA-1609 - Commit contribution by Jody Grassel.
Modified:
openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
Modified: openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java?rev=931634&r1=931633&r2=931634&view=diff
==============================================================================
--- openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java (original)
+++ openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java Wed Apr 7 18:21:10 2010
@@ -929,8 +929,18 @@ public class DB2Dictionary
int errorCode = ex.getErrorCode();
if (errorCode == -952 && "57014".equals(errorState))
return false;
+ /*
+ * Check if this Exception was generated by a lock timeout expiration.
+ * The following criteria are used to determine this:
+ *
+ * DB2 LUW Infocenter: SQLSTATE=57033 with reason code "80" indicates
+ * the statement failed due to timeout. DB2 for z/OS Stored Procedures:
+ * Through the CALL and Beyond, page 188: An ErrorCode of -913 with
+ * SQLERR 00C9008E means a timeout has occurred.
+ */
if (subtype == StoreException.LOCK && "57033".equals(errorState)
- && ex.getMessage().indexOf("80") != -1) {
+ && ((ex.getMessage().indexOf("80") != -1)
+ || (errorCode == -913 && ex.getMessage().contains("00C9008E")))) {
return false;
}
if ((subtype == StoreException.QUERY && "57014".equals(errorState) &&