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);
+ }
}