From bd1363c17abf9686a6104fac7d62df3b044f87e9 Mon Sep 17 00:00:00 2001 From: Eugene Crosser Date: Mon, 29 Mar 2010 15:25:57 +0400 Subject: Make stomp queue manager work with basic servers Signed-off-by: Eugene Crosser --- lib/stompqueuemanager.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php index 9af8b2f48..4d9f39791 100644 --- a/lib/stompqueuemanager.php +++ b/lib/stompqueuemanager.php @@ -39,7 +39,8 @@ class StompQueueManager extends QueueManager protected $base; protected $control; - protected $useTransactions = true; + protected $useTransactions; + protected $useAcks; protected $sites = array(); protected $subscriptions = array(); @@ -64,6 +65,8 @@ class StompQueueManager extends QueueManager $this->base = common_config('queue', 'queue_basename'); $this->control = common_config('queue', 'control_channel'); $this->breakout = common_config('queue', 'breakout'); + $this->useTransactions = !common_config('queue', 'stomp_no_transactions'); + $this->useAcks = !common_config('queue', 'stomp_no_acks'); } /** @@ -703,13 +706,15 @@ class StompQueueManager extends QueueManager protected function ack($idx, $frame) { - if ($this->useTransactions) { - if (empty($this->transaction[$idx])) { - throw new Exception("Tried to ack but not in a transaction"); + if ($this->useAcks) { + if ($this->useTransactions) { + if (empty($this->transaction[$idx])) { + throw new Exception("Tried to ack but not in a transaction"); + } + $this->cons[$idx]->ack($frame, $this->transaction[$idx]); + } else { + $this->cons[$idx]->ack($frame); } - $this->cons[$idx]->ack($frame, $this->transaction[$idx]); - } else { - $this->cons[$idx]->ack($frame); } } -- cgit v1.2.3-54-g00ecf