private PersistentMessage GetMessageFromQueue(ITransaction transaction, string queueName, string subqueue) { AssertNotDisposedOrDisposing(); PersistentMessage message = null; queueStorage.Global(actions => { message = actions.GetQueue(queueName).Dequeue(subqueue); if (message != null) { actions.RegisterUpdateToReverse( transaction.Id, message.Bookmark, MessageStatus.ReadyToDeliver, subqueue); } actions.Commit(); }); return message; }