private void sendResponse(final Packet confirmPacket, final Packet response, final boolean flush, final boolean closeChannel) { if (logger.isTraceEnabled()) { logger.trace("ServerSessionPacketHandler::scheduling response::" + response); } storageManager.afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) { ActiveMQServerLogger.LOGGER.errorProcessingIOCallback(errorCode, errorMessage); Packet exceptionPacket = convertToExceptionPacket(confirmPacket, ActiveMQExceptionType.createException(errorCode, errorMessage)); doConfirmAndResponse(confirmPacket, exceptionPacket, flush, closeChannel); if (logger.isTraceEnabled()) { logger.trace("ServerSessionPacketHandler::exception response sent::" + exceptionPacket); } } @Override public void done() { if (logger.isTraceEnabled()) { logger.trace("ServerSessionPacketHandler::regular response sent::" + response); } doConfirmAndResponse(confirmPacket, response, flush, closeChannel); } }); }
@Override public void afterCompleteOperations(IOCallback run) { manager.afterCompleteOperations(run); }
public void sendReply(final StompConnection connection, final StompFrame frame, final StompPostReceiptFunction function) { server.getStorageManager().afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) { ActiveMQServerLogger.LOGGER.errorProcessingIOCallback(errorCode, errorMessage); ActiveMQStompException e = new ActiveMQStompException("Error sending reply", ActiveMQExceptionType.createException(errorCode, errorMessage)).setHandler(connection.getFrameHandler()); StompFrame error = e.getFrame(); send(connection, error); } @Override public void done() { if (frame != null) { send(connection, frame); } if (function != null) { function.afterReceipt(); } } }); }
public void sendReply(final StompConnection connection, final StompFrame frame, final StompPostReceiptFunction function) { server.getStorageManager().afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) { ActiveMQServerLogger.LOGGER.errorProcessingIOCallback(errorCode, errorMessage); ActiveMQStompException e = new ActiveMQStompException("Error sending reply", ActiveMQExceptionType.createException(errorCode, errorMessage)).setHandler(connection.getFrameHandler()); StompFrame error = e.getFrame(); send(connection, error); } @Override public void done() { if (frame != null) { send(connection, frame); } if (function != null) { function.afterReceipt(); } } }); }
@Override public void confirmPosition(final PagePosition position) throws Exception { // if we are dealing with a persistent cursor if (persistent) { store.storeCursorAcknowledge(cursorId, position); } store.afterCompleteOperations(new IOCallback() { volatile String error = ""; @Override public void onError(final int errorCode, final String errorMessage) { error = " errorCode=" + errorCode + ", msg=" + errorMessage; ActiveMQServerLogger.LOGGER.pageSubscriptionError(this, error); } @Override public void done() { processACK(position); } @Override public String toString() { return IOCallback.class.getSimpleName() + "(" + PageSubscriptionImpl.class.getSimpleName() + ") " + error; } }); }
private void createMessageAck(final int messageId, final int qos, final boolean internal) { session.getServer().getStorageManager().afterCompleteOperations(new IOCallback() { @Override public void done() { if (!internal) { if (qos == 1) { session.getProtocolHandler().sendPubAck(messageId); } else if (qos == 2) { session.getProtocolHandler().sendPubRec(messageId); } } } @Override public void onError(int errorCode, String errorMessage) { log.error("Pub Sync Failed"); } }); }
private void createMessageAck(final int messageId, final int qos, final boolean internal) { session.getServer().getStorageManager().afterCompleteOperations(new IOCallback() { @Override public void done() { if (!internal) { if (qos == 1) { session.getProtocolHandler().sendPubAck(messageId); } else if (qos == 2) { session.getProtocolHandler().sendPubRec(messageId); } } } @Override public void onError(int errorCode, String errorMessage) { log.error("Pub Sync Failed"); } }); }
/** * @param manager1 */ private void blockOnReplication(final StorageManager storage, final ReplicationManager manager1) throws Exception { final CountDownLatch latch = new CountDownLatch(1); storage.afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) { } @Override public void done() { latch.countDown(); } }); Assert.assertTrue(latch.await(30, TimeUnit.SECONDS)); }
private void ackRedistribution(final MessageReference reference, final Transaction tx) throws Exception { reference.handled(); queue.acknowledge(tx, reference); tx.commit(); storageManager.afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) { ActiveMQServerLogger.LOGGER.ioErrorRedistributing(errorCode, errorMessage); } @Override public void done() { execPrompter(); } }); }
storageManager.afterCompleteOperations(new IOCallback() {
public void afterIO(IOCallback ioCallback) { OperationContext context = recoverContext(); try { manager.getServer().getStorageManager().afterCompleteOperations(ioCallback); } finally { resetContext(context); } }
public void afterIO(IOCallback ioCallback) { OperationContext context = recoverContext(); try { manager.getServer().getStorageManager().afterCompleteOperations(ioCallback); } finally { resetContext(context); } }
queues.addAll(nonDurableQueues); storageManager.afterCompleteOperations(new IOCallback() {
storageManager.afterCompleteOperations(new IOCallback() {
storageManager.afterCompleteOperations(new IOCallback() {
storageManager.afterCompleteOperations(new IOCallback() {
connection.sendException(exceptionToSend); } else { server.getStorageManager().afterCompleteOperations(new IOCallback() { @Override public void done() {
storageManager.afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) {
@Test public void testNoActions() throws Exception { setupServer(true); StorageManager storage = getStorage(); manager = liveServer.getReplicationManager(); waitForComponent(manager); Journal replicatedJournal = new ReplicatedJournal((byte) 1, new FakeJournal(), manager); replicatedJournal.appendPrepareRecord(1, new FakeData(), false); final CountDownLatch latch = new CountDownLatch(1); storage.afterCompleteOperations(new IOCallback() { @Override public void onError(final int errorCode, final String errorMessage) { } @Override public void done() { latch.countDown(); } }); Assert.assertTrue(latch.await(1, TimeUnit.SECONDS)); Assert.assertEquals("should be empty " + manager.getActiveTokens(), 0, manager.getActiveTokens().size()); }