code: public void put(QueueData queueData, short msgBatch) // f200337
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "put", new Object[] {queueData, ""+msgBatch});
  
        synchronized(this)
        {
           if (!ordered && batchesReady == 1)
           {
              // A non-ordered async consumer proxy queue only caches one batch at a time. Therefore
              // if we are trying to put messages on when there is a batch already ready, we
              // messed up.
              SIErrorException e = new SIErrorException(
                 nls.getFormattedMessage("ASYNC_BATCH_ALREADY_READY_SICO1031", null, null)
              );
  
              FFDCFilter.processException(e, CLASS_NAME + ".put",
                                          CommsConstants.ASYNCHPQ_PUT_01, this);
  
              throw e;
           }
  
           queue.addLast(queueData);
  
           // If the data added to the queue was not a chunked message, then we have received an
           // entire message - so update counters etc
           if (!queueData.isChunkedMessage())
           {
              notifyMessageReceived(queueData.isLastInBatch());
           }
  
        }
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Put has completed: " + this);
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "put");
     }
docs: Places a message onto the queue.
  
  @param queueData
  The data which comprises the message to queue.
  @param msgBatch
  The message batch number.