code: public boolean remove( LocalSession localSession , TransactionItem[] items ) throws JMSException
      {
      	checkNotClosed();
      	checkTransactionLock();
      	
      	int volatileCommitted = 0;
      	int persistentCommitted = 0;
      	
          synchronized (storeLock)
          {
      		for (int n = 0 ; n < items.length ; n++)
              {
      			TransactionItem transactionItem = items[n];
              	if (transactionItem.getDestination() != this)
              		continue;
              	
              	if (traceEnabled)
                  	log.trace(localSession+" COMMIT "+transactionItem.getMessageId());
              	
              	// Delete message from store
              	if (transactionItem.getDeliveryMode() == DeliveryMode.PERSISTENT)
              	{
              		persistentStore.delete(transactionItem.getHandle());
              		persistentCommitted++;
              	}
              	else
              	{
              		volatileStore.delete(transactionItem.getHandle());
              		volatileCommitted++;
              	}
              }
          }
          acknowledgedGetCount.addAndGet(volatileCommitted + persistentCommitted);
          
          if (persistentCommitted > 0 && requiresTransactionalUpdate())
          {
          	pendingChanges = true;
          	return true;
          }
          else
          	return false;
      }
docs: Commit get operations on this queue (messages are removed)
  @return true if a store commit is required to ensure data safety