code: private JMSConnection startConnectionAndSession() {
         JMSConnection result = null;
         Connection connection = null;
         Session session = null;
         try {
            connection = factory.createConnection();
            if ( connection != null ) {
               session = connection.createSession( sessionTransacted, sessionAck );
               result = new JMSConnection(connection,session);
               if ( logger.isDebugEnabled() ) {
                  logger.debug( "KieServerMDB sessionTransacted={}, sessionAck={}",
                          sessionTransacted,
                          sessionAck);
               }
            }
         } catch (JMSException jmse) {
            String errMsg = "Unable to obtain connection/session";
            logger.error( errMsg, jmse );
            throw new JMSRuntimeException( errMsg, jmse );
         } finally {
             if (connection != null && session == null){
                 logger.error("KieServerMDB: Session creation failed - closing connection");
                 try {
                     connection.close();
                 } catch (JMSException jmse) {
                     String errMsg = "KieServerMDB: Error closing connection after failing to open session";
                     throw new JMSRuntimeException(errMsg, jmse);
                 }
             }
         }
         return result;
      }
docs: This method is used to initialize the JMS connection and
  session. It is done in its own method so that if the
  point at which it is done needs to be changed then
  it can be done by just changing the invocation point.