dsr             Wed Nov 22 17:22:06 2006 UTC

  Modified files:              
    /phpdoc/en/reference/sam    constants.xml reference.xml 
  Log:
  Updates for release 0.2.0
  
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/sam/constants.xml?r1=1.1&r2=1.2&diff_format=u
Index: phpdoc/en/reference/sam/constants.xml
diff -u phpdoc/en/reference/sam/constants.xml:1.1 
phpdoc/en/reference/sam/constants.xml:1.2
--- phpdoc/en/reference/sam/constants.xml:1.1   Mon Nov 13 16:57:27 2006
+++ phpdoc/en/reference/sam/constants.xml       Wed Nov 22 17:22:06 2006
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='iso-8859-1'?>
-<!-- $Revision: 1.1 $ -->
+<!-- $Revision: 1.2 $ -->
 <section id="mq.constants">
  &reftitle.constants;
  &extension.constants;
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/sam/reference.xml?r1=1.1&r2=1.2&diff_format=u
Index: phpdoc/en/reference/sam/reference.xml
diff -u phpdoc/en/reference/sam/reference.xml:1.1 
phpdoc/en/reference/sam/reference.xml:1.2
--- phpdoc/en/reference/sam/reference.xml:1.1   Mon Nov 13 16:57:27 2006
+++ phpdoc/en/reference/sam/reference.xml       Wed Nov 22 17:22:06 2006
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='iso-8859-1'?>
-<!-- $Revision: 1.1 $ -->
+<!-- $Revision: 1.2 $ -->
  <reference id="ref.sam">
   <title>SAM - Simple Asynchronous Messaging</title>
   <titleabbrev>SAM</titleabbrev>
@@ -23,9 +23,192 @@
 
    <section id='sam.installation'>
     &reftitle.install;
-    <para>
-     This should be the installation section.
-    </para>
+    <section id='sam.installation.prerequisites'>
+     <title>Prerequisites</title>
+      <para>
+The SAM extension interfaces to the IBM Messaging and Queuing middleware 
products using
+a set of libraries and some client side code referred to as XMS. This package 
is
+available as a free download in the guise of IBM support pack IA94. There is a 
description
+of this package and download links in the article <ulink 
url="&url.ibm.ia94;">Introducing XMS - The IBM Message Service API</ulink>.
+      </para>
+      <para>
+If you intend to use SAM to access the Messaging and Queuing infrastructure 
within
+WebSphere MQ then you will also need to have installed a local MQ queue 
manager or
+installed the WebSphere MQ clients package. The clients package is freely 
available
+as a support pack (<ulink url="&url.ibm.mqc6;">MQC6</ulink>).
+      </para>
+      <para>
+If you are only aiming to experiment with sending messages to and from 
WebSphere Application
+Server queues using the WebSphere Platform Messaging protocol (WPM) then you 
do not need
+to install the MQC6 package.
+      </para>
+      <para>
+After installing these packages you will need to ensure the XMS binary and, if 
you are
+using it, the MQ client bin directory are included in the PATH environment 
variable
+so that Apache and PHP can find the dependent .DLLs/libraries.
+      </para>
+     </section>
+     <section id='sam.installation.linux'>
+      <title>Linux installation steps</title>
+      <para>
+The sam extension is supplied as a PECL module, which
+you should be able to download and install in one step as follows:
+      <screen>
+       <![CDATA[
+pear install sam
+]]>
+      </screen>
+(Depending on your php environment, you will probably need to be root to do 
this.)
+      </para>
+      <para>
+Make sure that the module is loaded by PHP, by adding following line to
+      &php.ini;
+      :
+      <screen>
+       <![CDATA[
+extension=sam.so
+]]>
+      </screen>
+      </para>
+      <para>
+to your php.ini file.
+      </para>
+      <para>
+If you cannot use the PEAR installer, you can download the extension and build
+it manually:
+      <screen>
+       <![CDATA[
+pear download sam          #downloads sam-<version>.tgz
+tar -xzf sam-<version>.tgz
+cd sam-<version>
+phpize
+./configure
+make
+make install               #you may need to be root for this step
+]]>
+      </screen>
+      </para>
+      <para>
+To work with the very latest source, you'll need to extract it from cvs and
+build manually as above.
+      </para>
+     </section>
+     <section id='sam.installation.windows'>
+     <title>Windows installation steps</title>
+      <para>
+Currently you will need to build the sam extension for Windows as there
+are no pre-built binaries. The extension can be built using the standard
+Windows extension build procedures.
+      </para>
+      <para>
+You will need the PHP source tree for the version of PHP you wish to build
+the SAM extension against which you can obtain from php.net. This should be
+unpacked into a working directory of your choice.
+      </para>
+      <para>
+You will also need the libraries and headers used by PHP extensions available
+from http://www.php.net/extra/win32build.zip and this should be unzipped so
+that is in your working directory.
+      </para>
+      <para>
+You should have something like:
+       <screen>
+        <![CDATA[
+c:\php-build\-
+              |
+              |---php-5.0.5--|---build
+              |              |---ext
+              |              |--- ...
+              |
+              |---win32build--|---bin
+                              |---include
+                              |---lib
+        ]]>
+       </screen>
+      </para>
+      <para>
+You will need a compiler such as the free version of Visual Studio C++
+Express from the Microsoft web site. Also you need the Microsoft Windows
+Platform SDK which again can be downloaded from the Microsoft web site.
+      </para>
+      <para>
+Obtain the SAM extension source using pear (pear download sam) or by using
+CVS and copy the files to a new "sam" directory under the "ext" directory
+in your PHP source tree.
+      </para>
+      <para>
+To build the extension open a build environment window by going to the
+start menu->all programs->microsoft platform SDK for windows->
+  open build environment window->windows 200 build environment->
+    set windows 2000 build environment (retail)
+      </para>
+      <para>
+This should open a command prompt with all the environment variables set
+up to access the platform SDK etc. You then need to set the environment
+variables for Visual Studio by issuing the command "vcvars32.bat" in the
+window.
+      </para>
+      <para>
+Change directory to your working directory e.g. cd c:\php-build. Then
+make sure the win32build tools are accessible by adding them to the PATH
+environment variable:
+      <screen>
+       <![CDATA[
+set PATH=..\win32build\bin;%PATH%
+]]>
+      </screen>
+      </para>
+      <para>
+Run the buildconf.bat command. This should rebuild the configure.js file.
+      </para>
+      <para>
+Run the cscript command:
+      <screen>
+       <![CDATA[
+cscript /nologo configure.js --with-sam="c:\program files\ibm\xms"
+]]>
+      </screen>
+      </para>
+      <para>
+The additional parameter passed for sam is the installation path to the
+XMS libraries and runtime that were installed as described under prerequisites
+at the top of this file.
+      </para>
+      <para>
+You can specify whatever other cscript parameters you require to include or
+exclude items from the php build or select options.
+      </para>
+      <para>
+Assuming all has gone well so far you can now finally run a make!
+      <screen>
+       <![CDATA[
+nmake php_sam.dll
+]]>
+      </screen>
+      </para>
+     </section>
+     <section id='sam.installation.VS2005'>
+      <title>Additional steps for Visual Studio 2005</title>
+      <para>
+If you build the SAM extension with the Microsoft Visual Studio 2005 compiler 
and
+tools you need to perform an additional step in the build process to ensure the
+php_sam.dll is able to link with the C runtime libraries at runtime. This step
+includes the dependancy manifest into the DLL. Switch to the directory where 
the
+php_sam.dll has been generated (usually Release_TS or Debug_TS below the php
+source directory) and issue the following magic incantation:
+      <screen>
+       <![CDATA[
+mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
+]]>
+      </screen>
+      </para>
+      <para>
+If you build the SAM extension using the compiler and libaries from Microsoft 
Visual Studio 2005
+you will also need to ensure that the runtime components are installed on the 
system on
+which you intend to use SAM. This can be accomplished by installing Visual 
Studio 2005 or
+by using the freely distributable <ulink url="&url.ms.crt;">runtime 
package</ulink>.
+      </para>
+     </section>
    </section>  <!-- id=sam.installation -->
 
    <section id='sam.usage'>
@@ -47,12 +230,14 @@
      </para>
      <para>
       <example>
-       <title>Creating a connection and connecting to a local Messaging Server 
using all defaults</title>
+       <title>Creating a connection and connecting to a remote WebSphere 
MQSeries Messaging Server</title>
        <programlisting role='php'>
         <![CDATA[
 <?php
    $conn = new SAMConnection();
-   $conn->connect(SAM_WMQ);
+   $conn->connect(SAM_WMQ, array(SAM_HOST => myhost.mycompany.com,
+                                 SAM_PORT => 1506,
+                                 SAM_BROKER => mybroker));
 ?>
         ]]>
        </programlisting>
@@ -60,14 +245,14 @@
      </para>
      <para>
       <example>
-       <title>Creating a connection and connecting to a remote Messaging 
Server</title>
+       <title>Creating a connection and connecting to a remote WebSphere 
Application Server</title>
        <programlisting role='php'>
         <![CDATA[
 <?php
    $conn = new SAMConnection();
-   $conn->connect(SAM_WMQ, array(SAM_HOST => myhost.mycompany.com,
-                                 SAM_PORT => 1506,
-                                 SAM_BROKER => mybroker));
+   $conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 
'localhost:7278:BootstrapBasicMessaging',
+                                 SAM_BUS => 'Bus1',
+                                 SAM_TARGETCHAIN => 'InboundBasicMessaging'));
 ?>
         ]]>
        </programlisting>
@@ -123,7 +308,7 @@
        <programlisting role="php">
 <![CDATA[
 <?php
-   $msg->header->myPropertyName = (3.14159, SAM_FLOAT);
+   $msg->header->myPropertyName = array(3.14159, SAM_FLOAT);
 ?>
 ]]>
        </programlisting>
@@ -168,7 +353,7 @@
      // The Send failed!
      echo "Send failed ($conn->errno) $conn->error";
    } else {
-     $resp = $conn->receive('queue://receive/test', array(SAM_SELECT => 
$correlid));
+     $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => 
$correlid));
    }
 ?>
         ]]>
@@ -279,6 +464,12 @@
        </listitem>
        <listitem>
         <para>
+         <link linkend='function.SAM-Connection-peekAll'>peekAll</link>
+         - a method that receives one or messages from a queue without 
removing them from the queue.
+        </para>
+       </listitem>       
+       <listitem>
+        <para>
          <link linkend='function.SAM-Connection-receive'>receive</link>
          - a method that receives a message from a queue or subscription.
         </para>

Reply via email to