@Test public void testBrowserOnly() throws Exception { ((ActiveMQConnectionFactory) cf).setConsumerWindowSize(0); conn = cf.createConnection(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); jBossQueue = ActiveMQJMSClient.createQueue(JmsConsumerTest.Q_NAME); MessageProducer producer = session.createProducer(jBossQueue); int noOfMessages = 10; for (int i = 0; i < noOfMessages; i++) { TextMessage textMessage = session.createTextMessage("m" + i); textMessage.setIntProperty("i", i); producer.send(textMessage); } QueueBrowser browser = session.createBrowser(jBossQueue); Enumeration enumMessages = browser.getEnumeration(); for (int i = 0; i < noOfMessages; i++) { Assert.assertTrue(enumMessages.hasMoreElements()); TextMessage msg = (TextMessage) enumMessages.nextElement(); Assert.assertNotNull(msg); Assert.assertEquals(i, msg.getIntProperty("i")); } Assert.assertFalse(enumMessages.hasMoreElements()); conn.close(); // Asserting delivering count is zero is bogus since messages might still be being delivered and expired at this // point // which can cause delivering count to flip to 1 }
@Test public void testBrowserAndConsumerSimultaneousDifferentConnections() throws Exception { ((ActiveMQConnectionFactory) cf).setConsumerWindowSize(0); conn = cf.createConnection();
@Test public void testLastValueKeyUsingAddressQueueParameters() throws Exception { ActiveMQConnectionFactory fact = (ActiveMQConnectionFactory) getCF(); //Set the consumer window size to 0 to not buffer any messages client side. fact.setConsumerWindowSize(0); Connection connection = fact.createConnection(); try { Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE); Queue queue = session.createQueue("random?last-value-key=reuters_code"); assertEquals("random", queue.getQueueName()); ActiveMQDestination a = (ActiveMQDestination) queue; assertEquals("reuters_code", a.getQueueAttributes().getLastValueKey().toString()); MessageProducer producer = session.createProducer(queue); MessageConsumer consumer1 = session.createConsumer(queue); connection.start(); for (int j = 0; j < 100; j++) { TextMessage message = session.createTextMessage(); message.setText("Message" + j); message.setStringProperty("reuters_code", "key"); producer.send(message); } //Last message only should go to the consumer TextMessage tm = (TextMessage) consumer1.receive(10000); assertNotNull(tm); assertEquals("Message99", tm.getText()); } finally { connection.close(); } }
@Test public void testLastValueQueueUsingAddressQueueParameters() throws Exception { ActiveMQConnectionFactory fact = (ActiveMQConnectionFactory) getCF(); //Set the consumer window size to 0 to not buffer any messages client side. fact.setConsumerWindowSize(0); Connection connection = fact.createConnection(); try { Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE); Queue queue = session.createQueue("random?last-value=true"); assertEquals("random", queue.getQueueName()); ActiveMQDestination a = (ActiveMQDestination) queue; assertTrue(a.getQueueAttributes().getLastValue()); MessageProducer producer = session.createProducer(queue); MessageConsumer consumer1 = session.createConsumer(queue); connection.start(); for (int j = 0; j < 100; j++) { TextMessage message = session.createTextMessage(); message.setText("Message" + j); message.setStringProperty(Message.HDR_LAST_VALUE_NAME.toString(), "key"); producer.send(message); } //Last message only should go to the consumer TextMessage tm = (TextMessage) consumer1.receive(10000); assertNotNull(tm); assertEquals("Message99", tm.getText()); } finally { connection.close(); } }
fact.setConsumerWindowSize(0); Connection connection = fact.createConnection();
fact.setConsumerWindowSize(0); Connection connection = fact.createConnection();
@Test public void testBrowserAndConsumerSimultaneous() throws Exception { ((ActiveMQConnectionFactory) cf).setConsumerWindowSize(0); conn = cf.createConnection();
@Test public void testShareDurable() throws Exception { ((ActiveMQConnectionFactory) cf).setConsumerWindowSize(0); conn = cf.createConnection(); conn.start();
@Test public void testGroupingRollbackOnClose() throws Exception { ActiveMQConnectionFactory fact = (ActiveMQConnectionFactory) getCF(); fact.setConsumerWindowSize(1000); fact.setTransactionBatchSize(0); Connection connection = fact.createConnection();
ActiveMQConnectionFactory hcf = (ActiveMQConnectionFactory) factory; hcf.setConsumerWindowSize(0);
jbcf.setConsumerWindowSize(numMessages * bodySize / 10);
jbcf.setConsumerWindowSize(numMessages * bodySize / 10);
@Test public void testShareDuraleWithJMSContext() throws Exception { ((ActiveMQConnectionFactory) cf).setConsumerWindowSize(0); JMSContext conn = cf.createContext(JMSContext.AUTO_ACKNOWLEDGE);
jbcf.setConsumerWindowSize(numMessages * bodySize / 10);
cf.setCacheLargeMessagesClient(cfConfig.isCacheLargeMessagesClient()); cf.setMinLargeMessageSize(cfConfig.getMinLargeMessageSize()); cf.setConsumerWindowSize(cfConfig.getConsumerWindowSize()); cf.setConsumerMaxRate(cfConfig.getConsumerMaxRate()); cf.setConfirmationWindowSize(cfConfig.getConfirmationWindowSize());
factory.setCallTimeout(callTimeout); factory.setMinLargeMessageSize(minLargeMessageSize); factory.setConsumerWindowSize(consumerWindowSize); factory.setConsumerMaxRate(consumerMaxRate); factory.setConfirmationWindowSize(confirmationWindowSize);
cf.setCallTimeout(callTimeout); cf.setMinLargeMessageSize(minLargeMessageSize); cf.setConsumerWindowSize(consumerWindowSize); cf.setConsumerMaxRate(consumerMaxRate); cf.setConfirmationWindowSize(confirmationWindowSize);
cf.setConsumerWindowSize(consumerWindowSize); Assert.fail("Should throw exception"); } catch (IllegalStateException e) {