/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
/** * @param close */ private void closeCleanSessions(boolean close) { HashSet<ClientSessionInternal> sessionsToClose; synchronized (sessions) { sessionsToClose = new HashSet<>(sessions); } // work on a copied set. the session will be removed from sessions when session.close() is // called for (ClientSessionInternal session : sessionsToClose) { try { if (close) session.close(); else session.cleanUp(false); } catch (Exception e1) { ActiveMQClientLogger.LOGGER.unableToCloseSession(e1); } } checkCloseConnection(); }
@Test public void testProducerOnClosedSession() throws Exception { clientSession.close(); try { clientSession.createProducer(); Assert.fail("should throw exception"); } catch (ActiveMQObjectClosedException oce) { //ok } catch (ActiveMQException e) { fail("Invalid Exception type:" + e.getType()); } }
clientSession.close();
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
} finally { try { session.close(); } catch (Throwable e) {
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
private ClientSession createSessionInternal(final String username, final String password, final boolean xa, final boolean autoCommitSends, final boolean autoCommitAcks, final boolean preAcknowledge, final int ackBatchSize) throws ActiveMQException { String name = UUIDGenerator.getInstance().generateStringUUID(); SessionContext context = createSessionChannel(name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge); ClientSessionInternal session = new ClientSessionImpl(this, name, username, password, xa, autoCommitSends, autoCommitAcks, preAcknowledge, serverLocator.isBlockOnAcknowledge(), serverLocator.isAutoGroup(), ackBatchSize, serverLocator.getConsumerWindowSize(), serverLocator.getConsumerMaxRate(), serverLocator.getConfirmationWindowSize(), serverLocator.getProducerWindowSize(), serverLocator.getProducerMaxRate(), serverLocator.isBlockOnNonDurableSend(), serverLocator.isBlockOnDurableSend(), serverLocator.isCacheLargeMessagesClient(), serverLocator.getMinLargeMessageSize(), serverLocator.isCompressLargeMessage(), serverLocator.getInitialMessagePacketSize(), serverLocator.getGroupID(), context, orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor(), orderedExecutorFactory.getExecutor()); synchronized (sessions) { if (closed || !clientProtocolManager.isAlive()) { session.close(); return null; } sessions.add(session); } return session; }
@Test public void testNoCheckFailoverMessage() throws Exception { final int pingPeriod = 1000; ActiveMQServer server = createServer(false, true); server.start(); ClientSessionInternal session = null; try { ServerLocator locator = createFactory(true).setClientFailureCheckPeriod(pingPeriod).setRetryInterval(500).setRetryIntervalMultiplier(1d).setReconnectAttempts(-1).setConfirmationWindowSize(1024 * 1024); locator.setProtocolManagerFactory(new HornetQClientProtocolManagerFactory()); ClientSessionFactory factory = createSessionFactory(locator); session = (ClientSessionInternal) factory.createSession(); server.stop(); Thread.sleep((pingPeriod * 2)); List<String> incomings = server.getConfiguration().getIncomingInterceptorClassNames(); incomings.add(UnsupportedPacketInterceptor.class.getName()); server.start(); //issue a query to make sure session is reconnected. ClientSession.QueueQuery query = session.queueQuery(new SimpleString("anyvalue")); assertFalse(query.isExists()); locator.close(); UnsupportedPacketInterceptor.checkReceivedTypes(); } finally { try { session.close(); } catch (Throwable e) { } server.stop(); } }
session.close(); } catch (Throwable e) {