/* * (non-Javadoc) * * @see javax.jms.Connection#close() */ @Override public void close() throws JMSException { stop(); for (HazelcastMQJmsSession session : sessionMap.values()) { session.close(); } sessionMap.clear(); mqContext.close(); mqContext = null; }
/* * (non-Javadoc) * * @see javax.jms.Connection#createSession(boolean, int) */ @Override public Session createSession(boolean transacted, int acknowledgeMode) throws JMSException { // acknowledgeMode isn't supported. HazelcastMQJmsSession session = new HazelcastMQJmsSession(this, transacted); sessionMap.put(session.getId(), session); if (active) { session.start(); } return session; }
/* * (non-Javadoc) * * @see javax.jms.Connection#stop() */ @Override public void stop() throws JMSException { if (!active) { return; } active = false; for (HazelcastMQJmsSession session : sessionMap.values()) { session.stop(); } mqContext.stop(); }
/* * (non-Javadoc) * * @see javax.jms.Connection#start() */ @Override public void start() throws JMSException { if (active) { return; } active = true; mqContext.start(); for (HazelcastMQJmsSession session : sessionMap.values()) { session.start(); } }
/** * Indicates that the given session has been closed and no longer needs to be tracked. * * @param session the session that was closed */ void onSessionClosed(HazelcastMQJmsSession session) { sessionMap.remove(session.getId()); }