Using JMS in Quercus

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.

Receiving JMS messages from a PHP script

This example uses two queues: an "ad queue" and a "control queue".
The PHP script removes advertisements from the ad queue using the
poll() method. This method is non-blocking -
if there are no advertisements, the method will return FALSE
instead of waiting for a new advertisement. Whenever the PHP script
removes an advertisement from the ad queue, it signals a Java message
driven bean (MDB) to add another ad by sending an empty message to the
control queue.

The programming model of the Quercus JMS interface is first to
get access to the queue using java_bean to get the
named queue. To create a JMSQueue object, pass in
the name of the JMS queue to be used. Since the JMS Queue implements
the BlockingQueue API, the PHP script can use
offer() and poll(). The example above shows
how to use both methods.

Configuring JMS for PHP and Java

JMS requires that two resources be set up: A
ConnectionFactory and a Queue. Both are
configured in WEB-INF/resin-web.xml.
The ConnectionFactory is used to connect to all the
Queues and only one of them needs to be set up.

Cloud-optimized Resin Server is a Java EE certified Java Application Server, and Web Server, and Distributed Cache Server (Memcached).Leading companies worldwide with demand for reliability and high performance web applications including SalesForce.com, CNET, DZone and many more are powered by Resin.