[jboss-svn-commits] JBL Code SVN: r5097 - in labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1: ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore ArjunaJTA/jta/classes/com/arjuna/ats/jta/common ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jul 14 10:26:26 EDT 2006
Author: kevin.conner at jboss.com
Date: 2006-07-14 10:26:21 -0400 (Fri, 14 Jul 2006)
New Revision: 5097
Modified:
labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Configuration.javatmpl
labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java
labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
Log:
Fixed setTransactionTimeout bug and added configuration parameter
Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2006-07-14 14:02:34 UTC (rev 5096)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2006-07-14 14:26:21 UTC (rev 5097)
@@ -37,6 +37,9 @@
import com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple;
import com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord;
+import com.arjuna.ats.jta.common.Configuration;
+import com.arjuna.ats.jta.common.Environment;
+import com.arjuna.ats.jta.common.jtaPropertyManager;
import com.arjuna.ats.jta.utils.XAHelper;
import com.arjuna.ats.jta.xa.XidImple;
import com.arjuna.ats.jta.logging.*;
@@ -98,6 +101,7 @@
_resources = new Hashtable();
_duplicateResources = new Hashtable();
_suspendCount = 0;
+ _xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled() ;
}
/**
@@ -629,29 +633,32 @@
{
try
{
- int xaStartNormal = ((theModifier == null) ? XAResource.TMNOFLAGS
- : theModifier.xaStartParameters(XAResource.TMNOFLAGS));
-
- xaRes.start(xid, xaStartNormal);
-
- int timeout = _theTransaction.getTimeout();
-
- if (timeout > 0)
+ if (_xaTransactionTimeoutEnabled)
{
- try
+ int timeout = _theTransaction.getTimeout();
+
+ if (timeout > 0)
{
- xaRes.setTransactionTimeout(timeout);
- }
- catch (XAException te)
- {
- if (jtaLogger.loggerI18N.isWarnEnabled())
+ try
{
- jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.timeouterror", new Object[]
- { "TransactionImple.enlistResource", XAHelper.printXAErrorCode(te), xid });
+ xaRes.setTransactionTimeout(timeout);
}
+ catch (XAException te)
+ {
+ if (jtaLogger.loggerI18N.isWarnEnabled())
+ {
+ jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.timeouterror", new Object[]
+ { "TransactionImple.enlistResource", XAHelper.printXAErrorCode(te), xid });
+ }
+ }
}
}
+ int xaStartNormal = ((theModifier == null) ? XAResource.TMNOFLAGS
+ : theModifier.xaStartParameters(XAResource.TMNOFLAGS));
+
+ xaRes.start(xid, xaStartNormal);
+
associatedWork = true;
_resources.put(xaRes, new TxInfo(xid));
@@ -1116,6 +1123,7 @@
}
_suspendCount = 0;
+ _xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled() ;
}
final com.arjuna.ats.arjuna.AtomicAction getAtomicAction()
@@ -1541,12 +1549,38 @@
_transactions.remove(tx.get_uid());
}
+ private static boolean getXATransactionTimeoutEnabled()
+ {
+ final Boolean xaTransactionTimeoutEnabled = Configuration.getXATransactionTimeoutEnabled() ;
+ if (xaTransactionTimeoutEnabled != null)
+ {
+ return xaTransactionTimeoutEnabled.booleanValue() ;
+ }
+ return XA_TRANSACTION_TIMEOUT_ENABLED ;
+ }
+
protected com.arjuna.ats.arjuna.AtomicAction _theTransaction;
private Hashtable _resources;
private Hashtable _duplicateResources;
private int _suspendCount;
+ private final boolean _xaTransactionTimeoutEnabled ;
+ private static final boolean XA_TRANSACTION_TIMEOUT_ENABLED ;
+
+ static
+ {
+ final String xaTransactionTimeoutEnabled = jtaPropertyManager.propertyManager.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED) ;
+ if (xaTransactionTimeoutEnabled != null)
+ {
+ XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(xaTransactionTimeoutEnabled).booleanValue() ;
+ }
+ else
+ {
+ XA_TRANSACTION_TIMEOUT_ENABLED = true ;
+ }
+ }
+
private static Hashtable _transactions = new Hashtable();
}
Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Configuration.javatmpl
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Configuration.javatmpl 2006-07-14 14:02:34 UTC (rev 5096)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Configuration.javatmpl 2006-07-14 14:26:21 UTC (rev 5097)
@@ -66,8 +66,19 @@
_propFile = file;
}
+ public static synchronized final Boolean getXATransactionTimeoutEnabled()
+ {
+ return _xaTransactionTimeoutEnabled ;
+ }
+
+ public static synchronized final void setXATransactionTimeoutEnabled(final Boolean xaTransactionTimeoutEnabled)
+ {
+ _xaTransactionTimeoutEnabled = xaTransactionTimeoutEnabled ;
+ }
+
private static String _lockStore = null;
private static String _propFile = "@PROPERTIES_FILE@";
+private static Boolean _xaTransactionTimeoutEnabled ;
}
Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java 2006-07-14 14:02:34 UTC (rev 5096)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/Environment.java 2006-07-14 14:26:21 UTC (rev 5097)
@@ -54,6 +54,7 @@
public static final String TM_JNDI_CONTEXT = "com.arjuna.ats.jta.utils.TMJNDIContext";
public static final String XA_ERROR_HANDLER = "com.arjuna.ats.jta.xaErrorHandler";
+ public static final String XA_TRANSACTION_TIMEOUT_ENABLED = "com.arjuna.ats.jta.xaTransactionTimeoutEnabled";
}
Modified: labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
===================================================================
--- labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2006-07-14 14:02:34 UTC (rev 5096)
+++ labs/jbosstm/branches/JBOSSTS_4_2_GA_MP1/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2006-07-14 14:26:21 UTC (rev 5097)
@@ -46,7 +46,10 @@
import com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator;
import com.arjuna.ats.jta.xa.*;
+import com.arjuna.ats.jta.common.Configuration;
+import com.arjuna.ats.jta.common.Environment;
import com.arjuna.ats.jta.logging.*;
+import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.internal.jta.xa.TxInfo;
@@ -685,26 +688,29 @@
{
try
{
- xaRes.start(xid, XAResource.TMNOFLAGS);
-
- int timeout = _theTransaction.getTimeout();
-
- if (timeout > 0)
+ if (_xaTransactionTimeoutEnabled)
{
- try
+ int timeout = _theTransaction.getTimeout();
+
+ if (timeout > 0)
{
- xaRes.setTransactionTimeout(timeout);
- }
- catch (XAException te)
- {
- if (jtaLogger.loggerI18N.isWarnEnabled())
+ try
{
- jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.timeouterror", new Object[]
- { "TransactionImple.enlistResource", XAHelper.printXAErrorCode(te), xid });
+ xaRes.setTransactionTimeout(timeout);
}
+ catch (XAException te)
+ {
+ if (jtaLogger.loggerI18N.isWarnEnabled())
+ {
+ jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.arjunacore.timeouterror", new Object[]
+ { "TransactionImple.enlistResource", XAHelper.printXAErrorCode(te), xid });
+ }
+ }
}
}
+ xaRes.start(xid, XAResource.TMNOFLAGS);
+
associatedWork = true;
_resources.put(xaRes, new TxInfo(xid));
@@ -1218,6 +1224,7 @@
jtaLogger.loggerI18N.warn("com.arjuna.ats.internal.jta.transaction.jts.syncproblem", ex);
}
+ _xaTransactionTimeoutEnabled = getXATransactionTimeoutEnabled() ;
}
protected void commitAndDisassociate ()
@@ -1641,11 +1648,37 @@
}
}
+ private static boolean getXATransactionTimeoutEnabled()
+ {
+ final Boolean xaTransactionTimeoutEnabled = Configuration.getXATransactionTimeoutEnabled() ;
+ if (xaTransactionTimeoutEnabled != null)
+ {
+ return xaTransactionTimeoutEnabled.booleanValue() ;
+ }
+ return XA_TRANSACTION_TIMEOUT_ENABLED ;
+ }
+
protected AtomicTransaction _theTransaction;
private Hashtable _resources;
private Hashtable _duplicateResources;
private int _suspendCount;
+ private final boolean _xaTransactionTimeoutEnabled ;
+
+ private static final boolean XA_TRANSACTION_TIMEOUT_ENABLED ;
+
+ static
+ {
+ final String xaTransactionTimeoutEnabled = jtsPropertyManager.propertyManager.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED) ;
+ if (xaTransactionTimeoutEnabled != null)
+ {
+ XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(xaTransactionTimeoutEnabled).booleanValue() ;
+ }
+ else
+ {
+ XA_TRANSACTION_TIMEOUT_ENABLED = true ;
+ }
+ }
private static Hashtable _transactions = new Hashtable();
More information about the jboss-svn-commits
mailing list