protected void start() throws JMSException {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.entry(this, tc, "start");

        // We call start regardless of whether this is synchronous or async
        if (coreConsumerSession != null) {
            try {

                synchronized (closedLock) {
                    if (!closed) {
                        // Do not deliver message immediately on start.
                        coreConsumerSession.start(false);
                    }
                    else {
                        // This condition could be caused by tight looping closing of consumers at
                        // the same time as calling connection.start. This is a less intrusive solution
                        // than adding the locking that would otherwise be required.
                        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                            SibTr.debug(this, tc, "Avoided starting a consumer that has been closed.");
                    }
                }

            } catch (SIException sice) {
                // No FFDC code needed
                // d222942 review. Default message ok.
                // This exception will be propogated back up to the Session, which will
                // cache the first exception thrown. Once all the consumers have been
                // started (or stopped) the first caught exception is then propogated
                // to the Connection for delivery to the application.
                // d238447 FFDC Review. Either external or already FFDCd, so don't FFDC here.
                throw (JMSException) JmsErrorUtils.newThrowable(JMSException.class,
                                                                "EXCEPTION_RECEIVED_CWSIA0085",
                                                                new Object[] { sice, "JmsMsgConsumerImpl.start" },
                                                                sice,
                                                                null, // null probeId = no FFDC
                                                                this,
                                                                tc);
            }
        }

        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(this, tc, "start");
    }
protected void start ( ) throws JMSException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "start" ) ; if ( coreConsumerSession != null ) { try { synchronized ( closedLock ) { if ( ! closed ) { coreConsumerSession . start ( false ) ; } else { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( this , tc , "Avoided starting a consumer that has been closed." ) ; } } } catch ( SIException sice ) { throw ( JMSException ) JmsErrorUtils . newThrowable ( JMSException . class , "EXCEPTION_RECEIVED_CWSIA0085" , new Object [ ] { sice , "JmsMsgConsumerImpl.start" } , sice , null , this , tc ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "start" ) ; }
Method start.