code: public void handleSilenceMessage(ControlSilence cMsg) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(this, tc, "handleSilenceMessage", new Object[] { cMsg });
  
      int priority = cMsg.getPriority().intValue();
      Reliability reliability = cMsg.getReliability();
      SIBUuid12 streamID = cMsg.getGuaranteedStreamUUID();
  
      StreamSet streamSet = getStreamSetForMessage(cMsg);
  
      if(streamSet == null)
      {
        //if this is a new stream ID, send a flush query
        handleNewStreamID(cMsg);
      }
      else
      {
        TargetStream targetStream = null;
        synchronized(streamSet)
        {
          targetStream = (TargetStream) streamSet.getStream(priority, reliability);
          if(targetStream == null)
          {
            //if the specific stream does not exist, create it
            targetStream = createStream(streamSet,
                                        priority,
                                        reliability,
                                        streamSet.getPersistentData(priority, reliability));
          }
        }
  
        // Update the statestream with this information
        targetStream.writeSilence(cMsg);
      }
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "handleSilenceMessage");
    }
docs: Handle a ControlSilence message.
  
  @param cMsg
  @throws SIException