[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