docs: public void clearMessagesAtSource(IndoubtAction indoubtAction)
      throws SIMPControllableNotFoundException, SIMPRuntimeOperationFailedException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
         SibTr.entry(tc, "clearMessagesAtSource");
  
      assertValidControllable();
  
      synchronized(_streamSet)
      {
        boolean foundUncommittedMsgs = false;
        //we do not reallocate for an individual InternalOutputStreamSet
  
        // Next delete all indoubt messages from the Message store
        // Unless we have been told to leave them there
        // Since any reallocated messages have been replace by Silence
        // in the streams we can assume we want to work on all messages which
        // remain in the stream
        if( indoubtAction != IndoubtAction.INDOUBT_LEAVE)
        {
          // This is an iterator over all messages in all the source streams
          // in this streamSet. There may be Uncommitted messages in this list
          // but getSIMPMessage will return null for these as they don't have a
          // valid ItemStream id so we won't try to delete them
          Iterator itr = this.getTransmitMessagesIterator(SIMPConstants.SIMPCONTROL_RETURN_ALL_MESSAGES);
  
          TransmitMessage xmitMsg = null;
          String state=null;
  
          while(itr != null && itr.hasNext())
          {
            xmitMsg = (TransmitMessage)itr.next();
  
            state = xmitMsg.getState();
  
            if (state.equals( State.COMMITTING.toString() ) )
            {
              foundUncommittedMsgs = true;
            }
            else
            {
              try
              {
                // We can operate on this message
                SIMPMessage msg = xmitMsg.getSIMPMessage();
                if( msg != null)
                {
  
                  //this will also check whether the msg should ber emoved
                  //from the store
                  _ioStreamManager.removeMessage(_streamSet, msg);
                }
              }
              catch (SIResourceException e)
              {
                FFDCFilter.processException(
                    e,
                    "com.ibm.ws.sib.processor.runtime.InternalOutputStreamSetControl.clearMessagesAtSource",
                    "1:496:1.30",
                    this);
  
                  SIMPRuntimeOperationFailedException finalE =
                    new SIMPRuntimeOperationFailedException(
                      nls.getFormattedMessage(
                        "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                        new Object[] {"InternalOutputStreamSetControl.clearMessagesAtSource",
                            "1:504:1.30",
                                      e},
                        null), e);
  
                  SibTr.exception(tc, finalE);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "clearMessagesAtSource", finalE);
                  throw finalE;
              }
            }
          }
        }
  
        // Now send a Flushed message and remove streamSet from ioStreamManager
        if( foundUncommittedMsgs == false)
        {
          _ioStreamManager.forceFlush(_streamSet.getStreamID());
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
         SibTr.exit(tc, "clearMessagesAtSource");
    }