Hallo Alexander,

> IIRC the JBoss transaction manager, which I used to check the
implementation, 
> and the SAP Web AS always set the configured transaction timeout
before starting
> a transaction on an XA Resource ... so that's why I never bothered
with the
> default value too much ...

I havent managed to configure Jboss 3.2.6 to call setTransactionTimeout,
I think it does not support it. Have you tried Jboss 4.0? But even if
the method is invoked, I wonder why it is coded to return false.

So our patch involves adding a property to the xatimeout to
DataSourceSapDBBase and acessing it from within XAConnectionSapDB (both
com.sap.dbtech.jdbcext.*) and making the connection to return true.

Greetings
Bernd

Index: DataSourceSapDBBase.java
===================================================================
RCS file:
/var/cvs/Products/SAP/sapdbc_patch/src/java/com/sap/dbtech/jdbcext/DataS
ourceSapDBBase.java,v
retrieving revision 1.1
diff -u -r1.1 DataSourceSapDBBase.java
--- DataSourceSapDBBase.java    28 Jun 2005 11:07:31 -0000      1.1
+++ DataSourceSapDBBase.java    15 Jul 2005 14:26:26 -0000
@@ -45,6 +45,7 @@
 public class DataSourceSapDBBase
 {
     public static final int DEFAULT_LOGINTIMEOUT=30;
+    public static final int DEFAULT_XATIMEOUT=30;
 
     protected Properties    connectProperties;
     protected PrintWriter   logWriter;
@@ -171,6 +172,24 @@
         return "jdbc:sapdb://" + getServerName() + ":" + getPort() +
"/" + getDatabaseName();
     }
 
+    public void setXATimeout(int xatimeout)
+    {
+
connectProperties.setProperty("xatimeout",Integer.toString(xatimeout));
+    }
+
+    public int getXATimeout()
+    {
+        String s=connectProperties.getProperty("xatimeout");
+        if(s == null) {
+            return DEFAULT_XATIMEOUT;
+        }
+        try {
+            return Integer.parseInt(s);
+        } catch(NumberFormatException numberFormatEx) {
+            return DEFAULT_XATIMEOUT;
+        }
+    }
+
     private int portFromUrl(String url)
     {
        int slashPos;
@@ -428,6 +447,7 @@
         result.add(new StringRefAddr("trace", getTrace()));
         result.add(new StringRefAddr("tracesize", getTraceSize()));
         result.add(new StringRefAddr("xatrace", getXATrace()));
+        result.add(new StringRefAddr("xatimeout", getXATimeout()));
         return result;
     }
 }


Index: XAConnectionSapDB.java
===================================================================
RCS file:
/var/cvs/Products/SAP/sapdbc_patch/src/java/com/sap/dbtech/jdbcext/XACon
nectionSapDB.java,v
retrieving revision 1.1
diff -u -r1.1 XAConnectionSapDB.java
--- XAConnectionSapDB.java      28 Jun 2005 11:07:31 -0000      1.1
+++ XAConnectionSapDB.java      15 Jul 2005 14:27:55 -0000
@@ -62,8 +62,7 @@
         this.trace=trace;
         this.nonTxConnection=null;
         this.currentTransaction=null;
-        this.transactionTimeout = 30;
+        this.transactionTimeout = ds.getXATimeout();
     }
 
     boolean isTraceEnabled()

@@ -366,9 +365,9 @@
             xaerror(null,XAException.XAER_INVAL);
         }
         this.transactionTimeout=transactionTimeout;
-        return false;
+        return true;
     }
    
 
//----------------------------------------------------------------------
     void sendErrorEvent(SQLException sqlEx)
     {

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

Reply via email to