private void commitAddActiveMessage()
    {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.entry(this, tc, "commitAddActiveMessage");

        // If this consumer is in a set then commit the add to the set
        _consumerKey.commitAddActiveMessage();

        // Check the _maxActiveMessage counter for this specific consumer.
        // We're only interested if we're counting messages and we can only do that if
        // we're bifurcatable
        if (_bifurcatable && (_maxActiveMessages != 0))
        {
            // Lock down the active message counter (removing an active message will
            // only hold this lock, not the 'this' lock)
            synchronized (_maxActiveMessageLock)
            {
                // Add the message to the local consumer count
                _currentActiveMessages++;

                if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                    SibTr.debug(tc, "_currentActiveMessages: " + _currentActiveMessages);

                // If we've reached the maximum, suspend the consumer
                if (_currentActiveMessages == _maxActiveMessages)
                {
                    // Suspend the consumer for the next time round
                    suspendConsumer(DispatchableConsumerPoint.SUSPEND_FLAG_ACTIVE_MSGS);

                    // (F001731)
                    // If we're monitoring the maxActiveMessage limit then start an alarm that
                    // will ping when the allowable suspended time passes
                    if (_activeMsgBlockInterval > -1)
                    {
                        if (_activeMsgBlockAlarm == null)
                            _activeMsgBlockAlarm = new ActiveMsgBlockAlarm();

                        _activeMsgBlockAlarm.startAlarm();
                    }
                }
            }
        }

        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(this, tc, "commitAddActiveMessage");
    }
private void commitAddActiveMessage ( ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "commitAddActiveMessage" ) ; _consumerKey . commitAddActiveMessage ( ) ; if ( _bifurcatable && ( _maxActiveMessages != 0 ) ) { synchronized ( _maxActiveMessageLock ) { _currentActiveMessages ++ ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "_currentActiveMessages: " + _currentActiveMessages ) ; if ( _currentActiveMessages == _maxActiveMessages ) { suspendConsumer ( DispatchableConsumerPoint . SUSPEND_FLAG_ACTIVE_MSGS ) ; if ( _activeMsgBlockInterval > - 1 ) { if ( _activeMsgBlockAlarm == null ) _activeMsgBlockAlarm = new ActiveMsgBlockAlarm ( ) ; _activeMsgBlockAlarm . startAlarm ( ) ; } } } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "commitAddActiveMessage" ) ; }
/*
If the caller prepared the add of an active message they must come back
with either a commit or rollback of that prepare.

This method commits the add of the active message, i.e a message was actually
locked to the consumer

NOTE: Callers to this method will still have the JSLocalConsumerPoint locked
since the prepare