[Jboss-cvs] JBossAS SVN: r56201 - branches/JBoss_4_0_3_SP1_JBAS_3511/server/src/main/org/jboss/jms/asf
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Aug 23 18:46:59 EDT 2006
Author: weston.price at jboss.com
Date: 2006-08-23 18:46:58 -0400 (Wed, 23 Aug 2006)
New Revision: 56201
Added:
branches/JBoss_4_0_3_SP1_JBAS_3511/server/src/main/org/jboss/jms/asf/JmsSessionPoolFiller.java
Log:
[JBAS-3511] Improvements for ASF integration, pool management, idle session collection
as and dynamic allocation.
Added: branches/JBoss_4_0_3_SP1_JBAS_3511/server/src/main/org/jboss/jms/asf/JmsSessionPoolFiller.java
===================================================================
--- branches/JBoss_4_0_3_SP1_JBAS_3511/server/src/main/org/jboss/jms/asf/JmsSessionPoolFiller.java 2006-08-23 22:46:44 UTC (rev 56200)
+++ branches/JBoss_4_0_3_SP1_JBAS_3511/server/src/main/org/jboss/jms/asf/JmsSessionPoolFiller.java 2006-08-23 22:46:58 UTC (rev 56201)
@@ -0,0 +1,78 @@
+package org.jboss.jms.asf;
+
+import java.util.LinkedList;
+
+public class JmsSessionPoolFiller implements Runnable
+{
+ private final LinkedList pools = new LinkedList();
+
+ private final Thread fillerThread;
+
+ private static final JmsSessionPoolFiller filler = new JmsSessionPoolFiller();
+
+ public static void fillPool(StdServerSessionPool pool)
+ {
+ filler.internalFillPool(pool);
+ }
+
+ public JmsSessionPoolFiller ()
+ {
+ fillerThread = new Thread(this, "JMS Session PoolFiller");
+ fillerThread.start();
+ }
+
+ public void run()
+ {
+ ClassLoader myClassLoader = getClass().getClassLoader();
+ Thread.currentThread().setContextClassLoader(myClassLoader);
+ //keep going unless interrupted
+ while (true)
+ {
+ try
+ {
+ StdServerSessionPool sp = null;
+ //keep iterating through pools till empty, exception escapes.
+ while (true)
+ {
+
+ synchronized (pools)
+ {
+ sp = (StdServerSessionPool)pools.removeFirst();
+ }
+ if (sp == null)
+ {
+ break;
+ }
+
+ sp.fillToMin();
+ }
+
+ }
+ catch (Exception e)
+ {
+ }
+
+ try
+ {
+ synchronized (pools)
+ {
+ pools.wait();
+ }
+ }
+ catch (InterruptedException ie)
+ {
+ return;
+ }
+ }
+ }
+
+ private void internalFillPool(StdServerSessionPool mcp)
+ {
+ synchronized (pools)
+ {
+ pools.addLast(mcp);
+ pools.notify();
+ }
+ }
+
+}
More information about the jboss-cvs-commits
mailing list