Java Code Examples for org.apache.activemq.command.ActiveMQTextMessage#setMemoryUsage()
The following examples show how to use
org.apache.activemq.command.ActiveMQTextMessage#setMemoryUsage() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: StoreQueueCursorNoDuplicateTest.java From activemq-artemis with Apache License 2.0 | 4 votes |
public void testNoDuplicateAfterCacheFullAndReadPast() throws Exception { final PersistenceAdapter persistenceAdapter = brokerService.getPersistenceAdapter(); final MessageStore queueMessageStore = persistenceAdapter.createQueueMessageStore(destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * (count + 2)); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); final ConnectionContext contextNotInTx = new ConnectionContext(); for (int i = 0; i < count; i++) { ActiveMQTextMessage msg = getMessage(i); msg.setMemoryUsage(systemUsage.getMemoryUsage()); queueMessageStore.addMessage(contextNotInTx, msg); underTest.addMessageLast(msg); } assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
Example 2
Source File: StoreQueueCursorOrderTest.java From activemq-artemis with Apache License 2.0 | 4 votes |
@Test public void tesBlockedFuture() throws Exception { final int count = 2; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 1); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); FutureTask<Long> future = new FutureTask<Long>(new Runnable() { @Override public void run() { } }, 2L) { }; msg.getMessageId().setFutureOrSequenceLong(future); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // second message will flip the cache but will be stored before the future task msg = getMessage(1); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch unset", 0L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
Example 3
Source File: StoreQueueCursorOrderTest.java From activemq-artemis with Apache License 2.0 | 4 votes |
@Test public void testNoSetBatchWithUnOrderedFutureCurrentSync() throws Exception { final int count = 2; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 1); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef = msg; FutureTask<Long> future = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef.getMessageId().setFutureOrSequenceLong(1L); } }, 1L) { }; msg.getMessageId().setFutureOrSequenceLong(future); Executors.newSingleThreadExecutor().submit(future); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // second message will flip the cache but will be stored before the future task msg = getMessage(1); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch unset", 0L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
Example 4
Source File: StoreQueueCursorOrderTest.java From activemq-artemis with Apache License 2.0 | 4 votes |
@Test public void testSetBatchWithOrderedFutureCurrentFuture() throws Exception { final int count = 2; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 1); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef = msg; FutureTask<Long> future = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef.getMessageId().setFutureOrSequenceLong(0L); } }, 0L) { }; msg.getMessageId().setFutureOrSequenceLong(future); Executors.newSingleThreadExecutor().submit(future); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // second message will flip the cache but will be stored before the future task msg = getMessage(1); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRe2f = msg; FutureTask<Long> future2 = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRe2f.getMessageId().setFutureOrSequenceLong(1L); } }, 1L) { }; msg.getMessageId().setFutureOrSequenceLong(future2); Executors.newSingleThreadExecutor().submit(future2); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch set", 1L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
Example 5
Source File: StoreQueueCursorOrderTest.java From activemq-artemis with Apache License 2.0 | 4 votes |
@Test public void testSetBatchWithFuture() throws Exception { final int count = 4; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * (count + 6)); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef = msg; FutureTask<Long> future0 = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef.getMessageId().setFutureOrSequenceLong(0L); } }, 0L) { }; msg.getMessageId().setFutureOrSequenceLong(future0); underTest.addMessageLast(msg); Executors.newSingleThreadExecutor().submit(future0); msg = getMessage(1); messages[3] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.setRecievedByDFBridge(true); final ActiveMQTextMessage msgRef1 = msg; FutureTask<Long> future1 = new FutureTask<Long>(new Runnable() { @Override public void run() { msgRef1.getMessageId().setFutureOrSequenceLong(3L); } }, 3L) { }; msg.getMessageId().setFutureOrSequenceLong(future1); underTest.addMessageLast(msg); msg = getMessage(2); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); // out of order future Executors.newSingleThreadExecutor().submit(future1); // sync add to flip cache msg = getMessage(3); messages[2] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(3L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch set", 2L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(count); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }
Example 6
Source File: StoreQueueCursorOrderTest.java From activemq-artemis with Apache License 2.0 | 4 votes |
@Test public void testSetBatch() throws Exception { final int count = 3; final Message[] messages = new Message[count]; final TestMessageStore queueMessageStore = new TestMessageStore(messages, destination); final ConsumerInfo consumerInfo = new ConsumerInfo(); final DestinationStatistics destinationStatistics = new DestinationStatistics(); consumerInfo.setExclusive(true); final Queue queue = new Queue(brokerService, destination, queueMessageStore, destinationStatistics, null); queueMessageStore.start(); queueMessageStore.registerIndexListener(null); QueueStorePrefetch underTest = new QueueStorePrefetch(queue, brokerService.getBroker()); SystemUsage systemUsage = new SystemUsage(); // ensure memory limit is reached systemUsage.getMemoryUsage().setLimit(messageBytesSize * 5); underTest.setSystemUsage(systemUsage); underTest.setEnableAudit(false); underTest.start(); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); ActiveMQTextMessage msg = getMessage(0); messages[0] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(0L); underTest.addMessageLast(msg); msg = getMessage(1); messages[1] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(1L); underTest.addMessageLast(msg); assertTrue("cache enabled", underTest.isUseCache() && underTest.isCacheEnabled()); msg = getMessage(2); messages[2] = msg; msg.setMemoryUsage(systemUsage.getMemoryUsage()); msg.getMessageId().setFutureOrSequenceLong(2L); underTest.addMessageLast(msg); assertTrue("cache is disabled as limit reached", !underTest.isCacheEnabled()); assertEquals("setBatch set", 2L, queueMessageStore.batch.get()); int dequeueCount = 0; underTest.setMaxBatchSize(2); underTest.reset(); while (underTest.hasNext() && dequeueCount < count) { MessageReference ref = underTest.next(); ref.decrementReferenceCount(); underTest.remove(); LOG.info("Received message: {} with body: {}", ref.getMessageId(), ((ActiveMQTextMessage) ref.getMessage()).getText()); assertEquals(dequeueCount++, ref.getMessageId().getProducerSequenceId()); } underTest.release(); assertEquals(count, dequeueCount); }