SAMConnection::connect

(PECL sam >= 0.1.0)

SAMConnection::connect メッセージングサーバーとの接続を確立する

説明

SAMConnection::connect ( string $protocol [, array $properties ] ) : bool

SAMConnection オブジェクトに対して "connect" メソッドをコールすると、 PHP スクリプトをメッセージングサーバーと接続させます。 接続が作成されるまでは、メッセージの送受信は行われません。

パラメータ

protocol

構造化文字列で、メッセージングサーバーに接続する際に使用するプロトコル指定します。 サポートされるプロトコルについては、それぞれ対応する定数が存在します。 通常はこの定数を使用しますが、 お望みに応じてスクリプト中で動的に文字列を作成することもできます。 この文字列はふたつの部分からなります。最初の部分がプロトコル識別子で、 その次がプロトコルのオプションです。このふたつをコロン (:) で連結します。使用可能な値は次の表のとおりです。

プロトコル文字列 定数 使用法
mqtt SAM_MQTT MQTT (MQ Telemetry Transport) プロトコルを使用して クライアントからサーバーに接続します。
wmq SAM_WMQ IBM MQSeries プロトコルを使用してリモートのメッセージングサーバーに接続します。 これは "wmq:client" (SAM_WMQ_CLIENT) と同じです。 オプションの配列に、ブローカ名 (SAM_BROKER) を指定する必要があります。
wmq:client SAM_WMQ_CLIENT IBM MQSeries プロトコルを使用してリモートのメッセージングサーバーに接続します。 オプションの配列に、ブローカ名 (SAM_BROKER) を指定する必要があります。
wmq:bindings SAM_WMQ_BINDINGS IBM MQSeries プロトコルを使用してローカルのメッセージングサーバーに接続し、 共有メモリを使用して通信します。 オプションの配列に、ブローカ名 (SAM_BROKER) を指定する必要があります。
wpm SAM_WPM IBM WebSphere Platform Messaging プロトコルを使用して、 WebSphere Application サーバーあるいはクラスタのメッセージングシステムに接続します。 オプションの配列に、バス名 (SAM_BUS) を指定する必要があります。 また、エンドポイントとターゲットチェインも指定します。
rtt SAM_RTT IBM Realtime トランスポートプロトコルを使用して、 メッセージングシステムに接続します。

properties

オプションの連想配列で、接続の際に必要な詳細情報を表すプロパティを指定します。 以下の表に、使用できるプロパティ名とその値をまとめます。

プロパティ名 デフォルト値 使用法
SAM_BROKER none メッセージングサーバー上で稼動するブローカあるいはキューマネージャの名前。

このプロパティは、WebSphere MQSeries プロトコル (SAM_WMQ, SAM_WMQ_CLIENT, SAM_WMQ_BINDINGS) を使用する場合に必須となります。

SAM_HOST localhost メッセージングサーバーが稼動しているマシンのホスト名。
SAM_PORT SAM_WMQ の場合は 1414、 SAM_WPM の場合は 1506、 SAM_MQTT の場合は 1883 メッセージングサーバーに接続する際のポート番号。
SAM_EXPIRE_AFTER 0 メッセージが有効期限切れとみなされ、キューから削除されるまでの時間を ミリ秒で指定します。デフォルト値は 0 で、これは決して期限切れにならないことを意味します。

警告: まだ実装されていません!

SAM_MESSAGE_PERSISTENCE none メッセージを、配送中に持続させるかどうかを指定します。 SAM_PERSISTENT あるいは SAM_NON_PERSISTENT のいずれかです。 デフォルトは、接続の形式と接続先メッセージングサーバーの機能に依存します。

警告: まだ実装されていません!

SAM_MQTT_CLEANSTART FALSE 任意で指定する接続オプションで、 MQTT サーバーに対してこのクライアントのこれまでの接続データを削除するよう指示します。 また、クライアントが明示的あるいは不意に接続を切断した際には購読を削除するようにします。 この値を TRUE にすると、クライアントが接続した際に SAM は既存の購読を破棄します。また、クライアントが接続を切断する際にも購読を破棄します。 このオプションを FALSE に設定するかあるいはデフォルトを使用すると、 購読は永続的なものとなり、クライアントの接続が切断されても生き残ります。
SAM_PASSWORD none 接続先メッセージングサーバーが認証を要求した際に使用するパスワードを指定します。
SAM_TRANSACTIONS SAM_AUTO この接続でのトランザクションの処理方法を指示します。 SAM_AUTO (デフォルト) の場合は、操作単位で自動的にトランザクションを処理します。 SAM_MANUAL の場合は、PHP スクリプトでトランザクションの範囲を制御できるようになります。 SAM_MANUAL を使用している場合は、コミットを行わずにスクリプトが終了したり コミットを行わずに接続が閉じられた場合に、処理中のトランザクションがロールバックされます。
SAM_USERID none 接続先メッセージングサーバーが認証を要求した際に使用するユーザー ID を指定します。
SAM_WPM_DUR_SUB_HOME none 永続的な購読を管理するメッセージングエンジンの名前 (WPM のみ)。

返り値

このメソッドは、エラーが発生した場合に FALSE を返します。

例1 IBM MQSeries プロトコル (WMQ) を使用したメッセージングサーバーへの接続の作成

<?php

$conn
->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com'SAM_PORT => 1506SAM_BROKER => 'MyBroker'));

?>

例2 トランザクション制御を指定し、 デフォルトのホストとポートを使用した接続の作成

<?php

$conn
->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker'SAM_TRANSACTIONS => SAM_MANUAL));

?>

例3 IBM WebSphere Platform Messaging プロトコル (WPM) を使用したメッセージングサーバーへの接続の作成

<?php

$conn
->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              
SAM_BUS => 'Bus1'SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>