code: public synchronized void writeValue(MessageItem msgItem)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
        SibTr.entry(tc, "writeValue", msgItem);
      
      timeLastMsgReceived = System.currentTimeMillis();
        
      if(msgItem.getMessage().getGuaranteedValueValueTick() > lastTick)
      {  
        try
        {
          //Check if the stream is full.
          //For express target streams, we simply look at whether the
          //number of messages on the destination is higher than the destination
          //high limit. 
          //See defect 24425
          if(isStreamFull(msgItem.getMessage()))
          {
            //there is no room for this message so we discard it
            if(TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            {
              SibTr.debug(tc, "discarding message as the stream is full.");
            }
          }
          else
          {
            deliverer.deliverExpressMessage(msgItem,this);
            messagesReceived++;  
          }
        }
        catch (SIException e)
        {
          // FFDC
          FFDCFilter.processException(
            e,
            "com.ibm.ws.sib.processor.gd.ExpressTargetStream.writeValue",
            "1:181:1.54",
            this);
  
          SibTr.exception(tc, e);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "writeValue", e);
  
          throw new SIErrorException(e);
        }
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "writeValue");
    }
docs: /* (non-Javadoc)
  @see com.ibm.ws.sib.processor.gd.OutputStream#writeValue(com.ibm.ws.sib.mfp.JsMessage)