docs: public void clearMessagesAtSource(IndoubtAction indoubtAction) throws SIMPControllableNotFoundException, SIMPRuntimeOperationFailedException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
         SibTr.entry(tc, "clearMessagesAtSource");
  
      //This method used to be exposed by the MBeans,
      //but this is no longer the case. Instead, the exposed methods will be delete/moveAll
      //which will implicitly use this path
  
      assertValidControllable();
  
      synchronized(_streamSet)
      {
        boolean foundUncommittedMsgs = false;
        boolean reallocateAllMsgs = false;
        // Start by reallocating all messages which have not yet been sent
        // If inDoubtAction == INDOUBT_REALLOCATE then reallocate all messages
        // including those which have already been sent
        if( indoubtAction == IndoubtAction.INDOUBT_REALLOCATE)
        {
          reallocateAllMsgs = true;
  
          // This will be PtoP Only
          try
          {
            _sourceStreamManager.reallocate(reallocateAllMsgs);
          }
          catch (SIException e)
          {
            FFDCFilter.processException(
              e,
              "com.ibm.ws.sib.processor.runtime.SourceStreamSetControl.clearMessagesAtSource",
              "1:424:1.39",
              this);
  
            SIMPRuntimeOperationFailedException finalE =
              new SIMPRuntimeOperationFailedException(
                nls.getFormattedMessage(
                  "INTERNAL_MESSAGING_ERROR_CWSIP0003",
                  new Object[] {"SourceStreamSetControl.clearMessagesAtSource",
                      "1:432:1.39",
                                e},
                  null), e);
  
            SibTr.exception(tc, finalE);
  
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "clearMessagesAtSource", finalE);
            throw finalE;
  
          }
        }
  
        // 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)
        {
          boolean discard = false;
          if( indoubtAction == IndoubtAction.INDOUBT_DELETE)
            discard = true;
  
          // 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.hasNext())
          {
            xmitMsg = (TransmitMessage)itr.next();
  
            state = xmitMsg.getState();
  
            if (state.equals( State.COMMITTING.toString() ) )
            {
              // Ignore committing messages. Theres nothing we can do with them.
              foundUncommittedMsgs = true;
            }
            else
            {
              try
              {
                // Try to delete it
                SIMPMessage msg = xmitMsg.getSIMPMessage();
                if( msg != null)
                {
                  _sourceStreamManager.removeMessage(msg);
                  QueuedMessage queuedMessage = (QueuedMessage)msg.getControlAdapter();
    
                  // A null message implies it's already gone from the MsgStore
                  if(queuedMessage != null)
                    queuedMessage.moveMessage(discard);
                }
              }
              catch (SIException e)
              {
                FFDCFilter.processException(
                  e,
                  "com.ibm.ws.sib.processor.runtime.SourceStreamSetControl.clearMessagesAtSource",
                  "1:496:1.39",
                  this);
  
                SIMPRuntimeOperationFailedException finalE =
                  new SIMPRuntimeOperationFailedException(
                    nls.getFormattedMessage(
                      "INTERNAL_MESSAGING_ERROR_CWSIP0003",
                      new Object[] {"SourceStreamSetControl.clearMessagesAtSource",
                          "1:504:1.39",
                                    e},
                      null), e);
  
                SibTr.exception(tc, finalE);
  
                if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "clearMessagesAtSource", finalE);
                throw finalE;
             }
            }
          }
        }
  
  //    d477883 - COMMENT THE FOLLOWING CODE
  //    We no longer flush the streams as part of a deleteAll/reallocateAll
  //    This stream may still be used afterwards and therefore we dont want to
  //    null out any resources.
  
  //      // Now send a Flushed message and remove streamSet from sourcestreamManager
  //      if( foundUncommittedMsgs == false)
  //      {
  //
  //        try
  //        {
  //          _sourceStreamManager.forceFlush();
  //        }
  //        catch (SIException e)
  //        {
  //          FFDCFilter.processException(
  //            e,
  //            "com.ibm.ws.sib.processor.runtime.SourceStreamSetControl.clearMessagesAtSource",
  //            "1:535:1.39",
  //            this);
  //
  //          SIMPRuntimeOperationFailedException finalE =
  //            new SIMPRuntimeOperationFailedException(
  //              nls.getFormattedMessage(
  //                "INTERNAL_MESSAGING_ERROR_CWSIP0003",
  //                new Object[] {"SourceStreamSetControl.clearMessagesAtSource",
  //                    "1:543:1.39",
  //                              e},
  //                null), e);
  //
  //          SibTr.exception(tc, finalE);
  //
  //          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "clearMessagesAtSource", finalE);
  //          throw finalE;
  //        }
  //      }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
         SibTr.exit(tc, "clearMessagesAtSource");
    }