transportInterruptionProcessingComplete.incrementAndGet(); try { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() {
scheduler.executeAfterDelay(new Runnable() { @Override public void run() { scheduler.executeAfterDelay(new Runnable() { @Override public void run() {
session.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() { session.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() {
@Override public Response pullMessage(ConnectionContext context, final MessagePull pull) throws Exception { // The slave should not deliver pull messages. if (getPrefetchSize() == 0) { final long currentDispatchedCount = getSubscriptionStatistics().getDispatched().getCount(); prefetchExtension.set(pull.getQuantity()); dispatchMatched(); // If there was nothing dispatched.. we may need to setup a timeout. if (currentDispatchedCount == getSubscriptionStatistics().getDispatched().getCount() || pull.isAlwaysSignalDone()) { // immediate timeout used by receiveNoWait() if (pull.getTimeout() == -1) { // Send a NULL message to signal nothing pending. dispatch(null); prefetchExtension.set(0); } if (pull.getTimeout() > 0) { scheduler.executeAfterDelay(new Runnable() { @Override public void run() { pullTimeout(currentDispatchedCount, pull.isAlwaysSignalDone()); } }, pull.getTimeout()); } } } return null; }
scheduler.executeAfterDelay(new Runnable() { @Override public void run() {
connection.getScheduler().executeAfterDelay(new Runnable() {
void clearMessagesInProgress() { executor.clearMessagesInProgress(); // we are called from inside the transport reconnection logic // which involves us clearing all the connections' consumers // dispatch and delivered lists. So rather than trying to // grab a mutex (which could be already owned by the message // listener calling the send or an ack) we allow it to complete in // a separate thread via the scheduler and notify us via // connection.transportInterruptionProcessingComplete() // for (final ActiveMQMessageConsumer consumer : consumers) { consumer.inProgressClearRequired(); scheduler.executeAfterDelay(new Runnable() { public void run() { consumer.clearMessagesInProgress(); }}, 0l); } }
transportInterruptionProcessingComplete.incrementAndGet(); try { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() {
transportInterruptionProcessingComplete.incrementAndGet(); try { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() {
transportInterruptionProcessingComplete.incrementAndGet(); try { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() { connection.getScheduler().executeAfterDelay(new Runnable() { @Override public void run() {
if (connection != null) { if (abortSubscriberConnection) { scheduler.executeAfterDelay(new Runnable() { public void run() { connection.serviceException(new InactivityIOException("Consumer was slow too often (>"
scheduler.executeAfterDelay(new Runnable() { @Override public void run() { scheduler.executeAfterDelay(new Runnable() { @Override public void run() {
@Override public Response pullMessage(ConnectionContext context, final MessagePull pull) throws Exception { // The slave should not deliver pull messages. if (getPrefetchSize() == 0) { final long currentDispatchedCount = getSubscriptionStatistics().getDispatched().getCount(); prefetchExtension.set(pull.getQuantity()); dispatchMatched(); // If there was nothing dispatched.. we may need to setup a timeout. if (currentDispatchedCount == getSubscriptionStatistics().getDispatched().getCount() || pull.isAlwaysSignalDone()) { // immediate timeout used by receiveNoWait() if (pull.getTimeout() == -1) { // Send a NULL message to signal nothing pending. dispatch(null); prefetchExtension.set(0); } if (pull.getTimeout() > 0) { scheduler.executeAfterDelay(new Runnable() { @Override public void run() { pullTimeout(currentDispatchedCount, pull.isAlwaysSignalDone()); } }, pull.getTimeout()); } } } return null; }
@Override public Response pullMessage(ConnectionContext context, final MessagePull pull) throws Exception { // The slave should not deliver pull messages. if (getPrefetchSize() == 0) { final long currentDispatchedCount = getSubscriptionStatistics().getDispatched().getCount(); prefetchExtension.set(pull.getQuantity()); dispatchMatched(); // If there was nothing dispatched.. we may need to setup a timeout. if (currentDispatchedCount == getSubscriptionStatistics().getDispatched().getCount() || pull.isAlwaysSignalDone()) { // immediate timeout used by receiveNoWait() if (pull.getTimeout() == -1) { // Send a NULL message to signal nothing pending. dispatch(null); prefetchExtension.set(0); } if (pull.getTimeout() > 0) { scheduler.executeAfterDelay(new Runnable() { @Override public void run() { pullTimeout(currentDispatchedCount, pull.isAlwaysSignalDone()); } }, pull.getTimeout()); } } } return null; }
@Override public Response pullMessage(ConnectionContext context, final MessagePull pull) throws Exception { // The slave should not deliver pull messages. if (getPrefetchSize() == 0) { final long currentDispatchedCount = getSubscriptionStatistics().getDispatched().getCount(); prefetchExtension.set(pull.getQuantity()); dispatchMatched(); // If there was nothing dispatched.. we may need to setup a timeout. if (currentDispatchedCount == getSubscriptionStatistics().getDispatched().getCount() || pull.isAlwaysSignalDone()) { // immediate timeout used by receiveNoWait() if (pull.getTimeout() == -1) { // Send a NULL message to signal nothing pending. dispatch(null); prefetchExtension.set(0); } if (pull.getTimeout() > 0) { scheduler.executeAfterDelay(new Runnable() { @Override public void run() { pullTimeout(currentDispatchedCount, pull.isAlwaysSignalDone()); } }, pull.getTimeout()); } } } return null; }
scheduler.executeAfterDelay(new Runnable() { @Override public void run() {
scheduler.executeAfterDelay(new Runnable() { @Override public void run() {
scheduler.executeAfterDelay(new Runnable() { @Override public void run() {
scheduler.executeAfterDelay(new Runnable() {
redeliveryDelay = redeliveryPolicy.getNextRedeliveryDelay(redeliveryDelay); scheduler.executeAfterDelay(new Runnable() {