jms messaging in quercus - receiving messages
Quercus offers a simplified messaging interface built upon JMS. This functionality makes it possible to send and receive messages using either the Resin JMS implementation or any other messaging service with a JMS implementation. Many features of JMS are designed for message-driven services which make sense in the Java world, but are not appropriate for PHP. This tutorial focuses receiving messages in a non-blocking way.
This example uses two queues: an "ad queue" and a "control queue".
The PHP script removes advertisements from the ad queue using the
$ad_queue = java_bean("AdQueue"); $control_queue = java_bean("ControlQueue"); if (! $ad_queue) { echo "Unable to get ad queue!\n"; } elseif (! $control_queue) { echo "Unable to get control queue!\n"; } else { $ad = $ad_queue->poll(); if ($ad == null) { echo "No ads available on the queue\n"; } else { echo "$ad"; } if (! $control_queue->offer(0)) { echo "Unable to send control message\n"; } }
The programming model of the Quercus JMS interface is first to
get access to the queue using
JMS requires that two resources be set up: A
<web-app xmlns="http://caucho.com/ns/resin"> <jms-connection-factory uri="resin:"/> </web-app>
This example uses two queues, <web-app xmlns="http://caucho.com/ns/resin"> <jms-queue name="AdQueue" uri="memory:"/> <jms-queue name="ControlQueue" uri="memory:"/> </web-app> The complete configuration is in WEB-INF/resin-web.xml.
|