docs: public List sendValueMessages(
      List msgList,
      long completedPrefix,
      boolean requestedOnly,
      int priority,
      Reliability reliability,
      SIBUuid12 stream) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "sendValueMessages",
          new Object[] { msgList,
                         new Long(completedPrefix),
                         new Boolean(requestedOnly)});
  
      // We will send the messages using MPIO
      // Work out the cellule pair needed by the
      // messageTransmitter
      SIBUuid8[] fromTo = new SIBUuid8[1];
      fromTo[0] = _targetMEUuid;
  
      JsMessage jsMsg = null;
  
      TickRange tickRange = null;
      MessageItem msgItem = null;
      long msgId = -1;
      List<TickRange> expiredMsgs = null;
      
      for (int i = 0; i < msgList.size(); i++)
      {
        tickRange = (TickRange)msgList.get(i);
       
        // Get the messageStore Id from the stream
        msgId = tickRange.itemStreamIndex;
  
        // Retrieve the message from the non-persistent ItemStream
        msgItem =
          _destinationHandler.
            getPubSubRealization().
              retrieveMessageFromItemStream(msgId);
                    
        // If the item wasn't found it has expired  
        if ( msgItem == null )
        {
          if ( expiredMsgs == null )
            expiredMsgs = new ArrayList<TickRange>();
          
          expiredMsgs.add(tickRange);   
  
          // In this case send Silence instead      
          ControlMessage cMsg = createSilenceMessage(tickRange.valuestamp,
                                                     completedPrefix,
                                                     priority,
                                                     reliability,
                                                     stream);
  
          ((ControlSilence)cMsg).setRequestedOnly(requestedOnly);
               
          // If the destination in a Link add Link specific properties to message
          if( _isLink )
          {
            cMsg = addLinkProps(cMsg);
            cMsg.setRoutingDestination( _routingDestination );  
          }
                    
          // Send the message to the MessageTransmitter
          // Send at priority+1 if this is a response to a Nack
          if( requestedOnly )
            _mpio.sendDownTree(fromTo, priority+1, cMsg);
          else
            _mpio.sendDownTree(fromTo, priority, cMsg);
    
        }
        else
        {
          try
          {
            // PM34074
            // Retrieve a copy of the message from MessageItem
            jsMsg = msgItem.getMessage().getReceived();
          }
          catch(MessageCopyFailedException e)
          {
            FFDCFilter.processException(
              e,
              "com.ibm.ws.sib.processor.impl.PubSubOutputHandler.sendValueMessages",
              "1:960:1.164.1.5",
              this);
              
            if (tc.isEntryEnabled())
              SibTr.exit(tc, "sendValueMessages", "SIErrorException: "+e);  
            throw new SIErrorException(e);
          }
        
          // Modify the streamId if necessary     
          if( jsMsg.getGuaranteedStreamUUID() !=  stream)
          {
            jsMsg.setGuaranteedStreamUUID(stream);
          }
  
          // Are there Completed ticks after this Value
          // If so we need to adjust the message to reflect this
          if (tickRange.endstamp > tickRange.valuestamp)
          {
            jsMsg.setGuaranteedValueEndTick(tickRange.endstamp);
          }
        
          // Update the completedPrefix to current value
          jsMsg.setGuaranteedValueCompletedPrefix(completedPrefix);
  
          // Set the requestedOnly flag
          jsMsg.setGuaranteedValueRequestedOnly(requestedOnly);
        
          // If the destination in a Link add Link specific properties to message
          if( _isLink )
          {
            jsMsg = addLinkProps(jsMsg);
            jsMsg.setRoutingDestination( _routingDestination );  
          }
        
          if (TraceComponent.isAnyTracingEnabled() && UserTrace.tc_mt.isDebugEnabled())
          {
            DestinationHandler dest = 
              _messageProcessor.getDestinationManager().getDestinationInternal(_destinationHandler.getUuid(), false);
            
            if (dest != null)
              UserTrace.traceOutboundSend(jsMsg, 
                                          _neighbour.getUUID(), 
                                          dest.getName(),
                                          dest.isForeignBus() || dest.isLink(),
                                          dest.isMQLink(),
                                          dest.isTemporary());
            else
              UserTrace.traceOutboundSend(jsMsg, 
                                          _neighbour.getUUID(), 
                                          _destinationHandler.getUuid().toString().toString(),
                                          false,
                                          false,
                                          false);
  
          }
          
          // Send the message to the MessageTransmitter
          // Send at priority+1 if this is a response to a Nack
          if( requestedOnly )
            _mpio.sendDownTree(fromTo, priority+1, jsMsg);
          else
            _mpio.sendDownTree(fromTo, priority, jsMsg);
                          
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "sendValueMessages", expiredMsgs);
        
      return expiredMsgs;  
    }