![]()  | ||||||||||||||||||
| documentation examples changes amber (jpa) ejb database ioc jmx jsf messaging quercus remoting servlet security jms/php send jms/php receive jms ioc listener  | 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
 Example: connection factory configuration in resin-web.xml <web-app xmlns="http://caucho.com/ns/resin"> <jms-connection-factory uri="resin:"/> </web-app> 
This example uses two queues,  Example: Queue configuration in resin-web.xml <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. 
 
  | |||||||||||||||||