You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2017/09/20 14:37:57 UTC

activemq git commit: [no jira] test to exercise pool setBlockIfSessionPoolIsFull false

Repository: activemq
Updated Branches:
  refs/heads/master 0f21cf714 -> 5b4fb8aa2


[no jira] test to exercise pool setBlockIfSessionPoolIsFull false


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/5b4fb8aa
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/5b4fb8aa
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/5b4fb8aa

Branch: refs/heads/master
Commit: 5b4fb8aa2bafa691860745d182a831e1e852eeb1
Parents: 0f21cf7
Author: gtully <ga...@gmail.com>
Authored: Wed Sep 20 15:37:43 2017 +0100
Committer: gtully <ga...@gmail.com>
Committed: Wed Sep 20 15:37:43 2017 +0100

----------------------------------------------------------------------
 .../activemq/jms/pool/PooledConnectionTest.java | 59 ++++++++++++++++++++
 1 file changed, 59 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/5b4fb8aa/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionTest.java
----------------------------------------------------------------------
diff --git a/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionTest.java b/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionTest.java
index 9c6e059..b0f33fc 100644
--- a/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionTest.java
+++ b/activemq-jms-pool/src/test/java/org/apache/activemq/jms/pool/PooledConnectionTest.java
@@ -16,17 +16,23 @@
  */
 package org.apache.activemq.jms.pool;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.IllegalStateException;
+import javax.jms.JMSException;
+import javax.jms.Session;
 
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashSet;
+import java.util.LinkedList;
+
 /**
  * A couple of tests against the PooledConnection class.
  *
@@ -106,4 +112,57 @@ public class PooledConnectionTest extends JmsPoolTestSupport {
         LOG.debug("ConnectionFactory initialized.");
         return cf;
     }
+
+    @Test(timeout = 60000)
+    public void testAllSessionsAvailableOnConstrainedPool() throws Exception {
+        PooledConnectionFactory cf = new PooledConnectionFactory();
+        cf.setConnectionFactory(new ActiveMQConnectionFactory(
+                "vm://localhost?broker.persistent=false&broker.useJmx=false&broker.schedulerSupport=false"));
+        cf.setMaxConnections(5);
+        cf.setMaximumActiveSessionPerConnection(2);
+        cf.setBlockIfSessionPoolIsFull(false);
+
+        LinkedList<Connection> connections = new LinkedList<>();
+        HashSet<Session> sessions = new HashSet();
+
+        for (int i=0; i<10; i++) {
+            Connection conn = cf.createConnection();
+            LOG.info("connection: " + i + ", " + ((PooledConnection)conn).getConnection());
+
+            conn.start();
+            connections.add(conn);
+            sessions.add(conn.createSession(false, Session.AUTO_ACKNOWLEDGE));
+        }
+
+        assertEquals(sessions.size(), 10);
+        assertEquals(connections.size(), 10);
+
+        Connection connectionToClose = connections.getLast();
+        connectionToClose.close();
+
+        Connection conn = cf.createConnection();
+        LOG.info("connection:" + ((PooledConnection)conn).getConnection());
+
+        conn.start();
+        connections.add(conn);
+        try {
+            sessions.add(conn.createSession(false, Session.AUTO_ACKNOWLEDGE));
+        } catch (JMSException expected) {
+            conn.close();
+        }
+
+        conn = cf.createConnection();
+        LOG.info("connection:" + ((PooledConnection)conn).getConnection());
+
+        conn.start();
+        connections.add(conn);
+        try {
+            sessions.add(conn.createSession(false, Session.AUTO_ACKNOWLEDGE));
+        } catch (JMSException expected) {
+            conn.close();
+        }
+
+        assertEquals(sessions.size(), 10);
+        assertEquals(connections.size(), 12);
+    }
 }