![]() | ||||||||||||||||||||||
jms messaging in quercus - sending 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 on sending messages. In this example, the script checks a POST variable "message" and if it is set, sends the value of that variable to a JMS queue. A Message Driven Bean (MDB) receives these messages and records them. The record is displayed by a servlet. Example: PHP sending script
<?php
if (isset($_POST["message"])) {
$queue = java_bean("Queue");
if (! $queue) {
echo "Unable to get message queue!\n";
} else {
if ($queue->offer($_POST["message"]) == TRUE) {
echo "Successfully sent message '" . $_POST["message"] . "'";
} else {
echo "Unable to send message '" . $_POST["message"] . "'";
}
}
}
?>
The programming model of the Quercus JMS interface is first to
get access to the queue using the
JMS requires two resources: A MemoryQueue configuration
The example uses the queue named Example: Queue configuration in resin-web.xml
<web-app xmlns="http://caucho.com/ns/resin"
xmlns:resin="urn:java:com.caucho.resin">
<jms:MemoryQueue>
<Named>Queue</Named>
</jms:MemoryQueue>
</web-app>
ConnectionFactory configurationExample: ConnectionFactory configuration in resin-web.xml
<web-app xmlns="http://caucho.com/ns/resin"
xmlns:resin="urn:java:com.caucho.resin">
<resin:JmsConnectionFactory/>
</web-app>
The complete configuration is in WEB-INF/resin-web.xml. Message Bean configurationExample: MyListener configuration in resin-web.xml
<web-app xmlns="http://caucho.com/ns/resin"
xmlns:resin="urn:java:com.caucho.resin">
<ejb-message-bean class="example.MyListener">
<destination>#{Queue}</destination>
</ejb-message-bean>
</web-app>
| ||||||||||||||||||||||