[jboss-cvs] JBossAS SVN: r66945 - branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 9 17:25:32 EST 2007


Author: bdecoste
Date: 2007-11-09 17:25:32 -0500 (Fri, 09 Nov 2007)
New Revision: 66945

Modified:
   branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsActivationSpec.java
   branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsServerSessionPool.java
Log:
[JBPAPP-387] merged changes for TIBCO EMS failover

Modified: branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsActivationSpec.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsActivationSpec.java	2007-11-09 22:25:28 UTC (rev 66944)
+++ branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsActivationSpec.java	2007-11-09 22:25:32 UTC (rev 66945)
@@ -122,6 +122,43 @@
    
    private Boolean isSameRMOverrideValue;
    
+   private boolean forceClearOnShutdown = false;
+   
+   private long forceClearOnShutdownInterval = 1000;
+   
+   private int forceClearAttempts = 0;
+   
+   public void setForceClearOnShutdown(boolean forceClear)
+   {
+      this.forceClearOnShutdown = forceClear;
+   }   
+   
+   public boolean isForceClearOnShutdown()
+   {
+      return this.forceClearOnShutdown;
+   }
+   
+   public long getForceClearOnShutdownInterval()
+   {
+      return this.forceClearOnShutdownInterval;
+   }
+   
+   public void setForceClearOnShutdownInterval(long forceClearOnShutdownInterval)
+   {
+      this.forceClearOnShutdownInterval = forceClearOnShutdownInterval;
+   }
+   
+   public int getForceClearAttempts()
+   {
+      return forceClearAttempts;
+   }
+   
+   public void setForceClearAttempts(int forceClearAttempts)
+   {
+      this.forceClearAttempts = forceClearAttempts;
+   }
+
+   
    /**
     * @return the acknowledgeMode.
     */

Modified: branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsServerSessionPool.java
===================================================================
--- branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsServerSessionPool.java	2007-11-09 22:25:28 UTC (rev 66944)
+++ branches/JBPAPP_4_2_0_GA_CP/connector/src/main/org/jboss/resource/adapter/jms/inflow/JmsServerSessionPool.java	2007-11-09 22:25:32 UTC (rev 66945)
@@ -221,16 +221,42 @@
 
          sessionCount -= serverSessions.size();
          serverSessions.clear();
-
-         // Wait for inuse sessions
-         while (sessionCount > 0)
-         {
-            try
+         
+         if (activation.getActivationSpec().isForceClearOnShutdown())
+         {        
+            int attempts = 0;
+            int forceClearAttempts = activation.getActivationSpec().getForceClearAttempts();
+            long forceClearInterval = activation.getActivationSpec().getForceClearOnShutdownInterval();
+            
+            log.info("Force clear behavior in effect. Waiting for " + forceClearInterval + " milliseconds for " + forceClearAttempts + " attempts.");
+           
+            while((sessionCount > 0) && (attempts < forceClearAttempts))
             {
-               serverSessions.wait();
+               try
+               {
+                  serverSessions.wait(forceClearInterval);
+                  log.trace("Clear attempt " + attempts); 
+                  ++attempts;               
+            
+               }catch(InterruptedException ignore)
+               {
+                  
+               }
+            
             }
-            catch (InterruptedException ignore)
+         }
+         else
+         {
+            // Wait for inuse sessions
+            while (sessionCount > 0)
             {
+               try
+               {
+                  serverSessions.wait();
+               }
+               catch (InterruptedException ignore)
+               {
+               }
             }
          }
       }




More information about the jboss-cvs-commits mailing list