dsr Fri Dec 8 17:21:40 2006 UTC
Modified files:
/phpdoc/en/reference/sam constants.xml reference.xml
Log:
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/sam/constants.xml?r1=1.2&r2=1.3&diff_format=u
Index: phpdoc/en/reference/sam/constants.xml
diff -u phpdoc/en/reference/sam/constants.xml:1.2
phpdoc/en/reference/sam/constants.xml:1.3
--- phpdoc/en/reference/sam/constants.xml:1.2 Wed Nov 22 17:22:06 2006
+++ phpdoc/en/reference/sam/constants.xml Fri Dec 8 17:21:40 2006
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='iso-8859-1'?>
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
<section id="mq.constants">
&reftitle.constants;
&extension.constants;
@@ -358,6 +358,19 @@
</varlistentry>
<varlistentry>
<term>
+ <constant>SAM_WMQ_TARGET_CLIENT</constant>
+ (<type>string</type>)
+ </term>
+ <listitem>
+ <simpara>
+ Option name used on send requests to specify the target client mode. This
can either be default to
+ 'jms' or 'mq'. The default is 'jms' which means an RFH2 header is sent
with the message whereas the 'mq' setting
+ means no RFH2 is included.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
<constant>SAM_WPM</constant>
(<type>string</type>)
</term>
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/sam/reference.xml?r1=1.2&r2=1.3&diff_format=u
Index: phpdoc/en/reference/sam/reference.xml
diff -u phpdoc/en/reference/sam/reference.xml:1.2
phpdoc/en/reference/sam/reference.xml:1.3
--- phpdoc/en/reference/sam/reference.xml:1.2 Wed Nov 22 17:22:06 2006
+++ phpdoc/en/reference/sam/reference.xml Fri Dec 8 17:21:40 2006
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='iso-8859-1'?>
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
<reference id="ref.sam">
<title>SAM - Simple Asynchronous Messaging</title>
<titleabbrev>SAM</titleabbrev>
@@ -361,7 +361,110 @@
</example>
</para>
</section> <!-- id=sam.operations -->
+ <section id='sam.pubsub'>
+ <title>Publish/Subscribe and suscriptions to topics</title>
+ <para>
+ SAM allows messages to be sent either to queues or, for WebSphere MQ and
WPM, to publish/subscribe topics.
+ A topic desintation is specified to SAM in the usual way, i.e. in the
form 'topic://fred', rather than the form
+ 'queue://AQUEUE' used for point to point operation. To use
publish/subscribe it is simply necessary to specify the
+ correct broker name on the SAMConnect "connect" call and the desired
topic in the destination argument to the SAMConnect "send"
+ and "receive" calls. The PHP interface is otherwise identical to the
point to point model.
+ </para>
+ <para>
+ By default, SAM creates non-durable subscriptions when using
publish/subscribe. This means that if a client application is
+ inactive when messages are published to a topic, then it will not receive
them when it subsequently restarted. SAM does also
+ allow durable subscriptions to be made to topics when using WPM or
WebSphere MQ publish/subscribe. The purpose of these
+ subscriptions is to allow data to be received by a client application
even if that client was not active at the time
+ the data was published.
+ </para>
+ <para>
+ Durable subscriptions are specified by using the SAMConnect "subscribe"
call. This method takes the destination topic as an
+ input parameter and returns a subscription identifier that may be used on
subsequent "receive" calls. When the subscription
+ is no longer required the SAMConnection "unsubscribe" method should be
used to delete the subscription.
+ </para>
+ <para>
+ <example>
+ <title>Creating a durable subscription to a topic</title>
+ <programlisting role="php">
+ <![CDATA[
+<?php
+
+ $subName = $conn->subscribe('topic://A');
+
+ if (!$subName) {
+ echo "Subscribe failed";
+ } else {
+ # Subscribe was OK
+ ...
+ }
+?>
+ ]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title>Subscribing to a topic using a WebSphere Platform Messaging
(WPM) server</title>
+ <programlisting role="php">
+ <![CDATA[
+<?php
+ $conn = new SAMConnection();
+ // Note: For pub/sub on WPM, when connecting the name of a messaging engine
+ // to hold the durable subscription (SAM_WPM_DUR_SUB_HOME) must be
specified.
+ $conn->connect(SAM_WMQ, array(SAM_ENDPOINTS =>
'localhost:7278:BootstrapBasicMessaging',
+ SAM_BUS => 'Bus1',
+ SAM_TARGETCHAIN => 'InboundBasicMessaging'
+ SAM_WPM_DUR_SUB_HOME =>
'MyMachineNode01.server1-Bus1'));
+
+ $subName = $conn->subscribe('topic://A');
+
+ if (!$subName) {
+ echo "Subscribe failed";
+ } else {
+ # Subscribe was OK
+ ...
+ }
+?>
+ ]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title>Receiving published data using a durable subscription</title>
+ <programlisting role="php">
+ <![CDATA[
+<?php
+ $msg = $conn->receive($subName);
+ if ($msg) {
+ echo "Received a message OK";
+ } else {
+ echo "The receive failed";
+ }
+
+?>
+ ]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title>Deleting a durable subscription to a topic</title>
+ <programlisting role="php">
+ <![CDATA[
+<?php
+
+ if (!$conn->unsubscribe($subName)) {
+ echo "Unsubscribe failed";
+ }
+
+?>
+ ]]>
+ </programlisting>
+ </example>
+ </para>
+ </section> <!-- id=sam.pubsub -->
<section id='sam.errors'>
<title>Error handling</title>
<para>