MQTTSubscribe ノード

MQTTSubscribe ノードは、 MQ テレメトリー・トランスポート (MQTT) メッセージング・プロトコルを使用してメッセージをパブリッシュするアプリケーションまたはデバイスからメッセージを受信するために使用します。 IBM® Integration Bus は、これらのメッセージをメッセージ・フローに伝搬することができます。

MQTTSubscribe ノードは、次の動作モードで使用可能です。
  • Developer
  • Application Integration Suite
  • Standard
  • Advanced
  • Express
  • Scale
  • Adapter
詳しくは、 動作モードを参照してください。

このトピックには、以下のセクションが含まれています。

目的

MQTTSubscribe ノードは、MQTT サーバー上で指定した 1 つ以上のトピックにサブスクライブし、受信したメッセージをメッセージ・フロー内で伝搬します。

MQTTSubscribe ノードはパレットの MQTT ドロワーに含まれていて、 IBM Integration Toolkit 内では次のアイコンによって表されます。

MQSubscribe ノード・アイコン

メッセージ・フロー内でのこのノードの使用

MQTTSubscribe ノードは、MQTT サーバーでホストされているトピックに対してアプリケーションおよびデバイスによってパブリッシュされたメッセージを受信するために使用します。 その後、受信メッセージをメッセージ・フロー内で処理することができます。

このノードが MQTT 接続のクライアント ID を処理する方法、およびスケーラビリティーについて詳しくは、 IBM Integration Bus での MQTT の使用を参照してください。 このノードがさまざまなサービス品質 (QoS) レベルで配信されるメッセージを処理する方法について詳しくは、 サービス品質と接続管理を参照してください。

注: このノードは、GitHub の mqtt-client-connector プロジェクトの一部として開発されました。 mqtt-client-connector プロジェクトについて詳しくは、 mqtt-クライアント・コネクター GitHub リポジトリーを参照してください。 このリポジトリーには、 IBM Integration Busを使用して MQTT アプリケーションまたはデバイスを他のテクノロジーと統合する方法の例が含まれています。 詳しくは、GitHub の MQTT コネクター・サンプル を参照してください。

ローカル環境変数

MQTTSubscribe ノードは、メッセージを伝搬するときに、そのメッセージに関する情報を LocalEnvironment.MQTT.Input という名前のローカル環境サブツリーに保管します。 以下の表に、 MQTTSubscribe ノードのローカル環境変数をリストします。 エレメントには、現行レコードに関するデータが入っています。

ローカル環境変数の表

表 1. LocalEnvironment.MQTT.Input サブツリーに含まれるエレメントのリスト
エレメント名 エレメント・データ・タイプ 説明
複写 BOOLEAN メッセージが以前のメッセージの重複であるかどうか。 次のように設定TRUEORFALSE.
Retained BOOLEAN メッセージが保持されたメッセージかどうか。 次のように設定TRUEORFALSE.「保存」は次のように設定されます。TRUEメッセージがサーバーによって保持され、クライアントが最初にサーバーに接続したときに現在送信されている場合。
トピック CHARACTER 受信メッセージがパブリッシュされた先の MQTT トピックの名前。
QualityOfService INTEGER 受信メッセージのサービスの品質 次のように設定0(多くても 1 回)、1(少なくとも 1 回)、または2(正確に 1 回)。

ターミナルおよびプロパティー

MQTTSubscribe ノードをメッセージ・フローに追加すると、メッセージ・フロー・エディターの「 プロパティー 」ビューを使用してそれを構成できます。 フィールドのヘルプを表示するには、フィールド内でクリックしてから、フィールドの先頭に表示される情報アイコンをクリックします。 デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。 一般的な構成情報については、 メッセージ・フロー・ノードの構成を参照してください。

運用ポリシーを作成および添付することで、実行時にこのタイプのノードの特定の接続プロパティーを制御することができます。 ポリシーについて詳しくは、 運用ポリシーのプロパティーを参照してください。

以下の表は、メッセージ・フロー・エディターの「プロパティー」ビューにある特定のタブで設定できるノード・ターミナルおよびノード・プロパティーについて説明しています。 M の見出しの列では、プロパティーが必須 かどうか (デフォルトが定義されていない場合に値を入力することが必要かどうか) を示します (必須であれば、アスタリスクのマークが付きます)。

ノード・ターミナルの表

表 2. MQTTSubscribe ノードのターミナルは、以下のようになります。
ターミナル 説明
Failure Out ターミナルにメッセージが伝搬される前にエラーが起きた場合に、メッセージのルーティング先となる出力ターミナル。 「妥当性検査」プロパティーが設定されている場合でも、このターミナルに伝搬されるメッセージは妥当性検査が行われません。
Out 入力ノード内でエラーが起こらなかった場合、外部リソースから受信されるメッセージは常にこの Out ターミナルにまず送信されます。
Catch 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。 例外がキャッチされるのは、このターミナルが接続されている場合のみです。

ノード・プロパティーの表

表 3. ノードの 「説明」 プロパティー
プロパティー M デフォルト 説明
ノード名 はい MQTTSubscribe ノードの名前。
簡略説明 いいえ   ノードの簡単な説明
詳細説明 いいえ   メッセージ・フロー内のノードの目的を説明するテキスト。
表 4. ノードの 「基本」 プロパティー
プロパティー M デフォルト 説明
クライアント ID はい * クライアントの固有の名前。
トピック名 はい * MQTT トピックの名前。
ホスト名 はい * MQTT サーバーのホスト名。
ポート はい 1883 MQTT サーバーへの接続用ポート番号。
サービスの品質 いいえ 0 - 最高 1 回 MQTT メッセージの配信のサービス品質レベル。 有効な値は、「0 - 最高 1 回」「1 - 最低 1 回」、および「2 - 正確に 1 回」です。
セキュリティー ID いいえ なし mqsisetdbparms コマンドによって作成および構成されるセキュリティー ID オブジェクトの名前。これには、MQTT サーバーへの接続を認証するために統合ノードが使用するユーザー ID とパスワードが含まれます。 mqsisetdbparms コマンドを使用して、統合ノードがアクセスするセキュリティー ID のユーザー ID とパスワードを設定します。

このプロパティーのデフォルト値は「なし」で、ユーザー ID およびパスワードが MQTT サーバーに渡されないことを意味しています。

セキュリティー ID のサポートについて詳しくは、 mqsisetdbparms コマンドを参照してください。

SSL の使用 いいえ 選択解除 これを選択すると、 MQTTSubscribe ノードと MQTT サーバーとの間の接続で SSL の使用が試行されます。 MQTT 接続の保護を参照してください。
表 5. ノードの「入力メッセージの構文解析」プロパティー
プロパティー M デフォルト 説明
メッセージ・ドメイン いいえ BLOB メッセージの構文解析に使用されるドメイン。 フィールドがブランクの場合、デフォルトは BLOB になります。
メッセージ・モデル いいえ 選択されていない メッセージが定義されているメッセージ・モデル・スキーマ・ファイルの名前またはロケーション。

「参照」をクリックすると、 選択された「メッセージ・ドメイン」の使用可能なメッセージ・モデル・スキーマ・ファイルのリストが表示されます。

メッセージ いいえ 選択されていない メッセージ・モデル・スキーマ・ファイル内のメッセージ・ルートの名前またはロケーション。 このリストには、選択したメッセージ・モデルで定義された、利用可能なすべてのメッセージが取り込まれます。
物理形式 いいえ 選択されていない メッセージの物理形式の名前。 MRM または IDOC パーサーを使用する場合は、リストから着信メッセージの物理形式を選択します。 このリストには、選択されたメッセージ・モデル用に定義したすべての物理形式が含まれます。 「メッセージ・ドメイン」プロパティーを DataObject に設定した場合、このプロパティーを XML または SAP ALE IDoc に設定できます。 外部ソースからのビット・ストリームを構文解析してメッセージ・ツリーを生成する必要がある場合には、このプロパティーを SAP ALE IDoc に設定してください。
表 6. ノードの「パーサー・オプション」プロパティー
プロパティー M デフォルト 説明
構文解析のタイミング いいえ 要求時 このプロパティーは、入力メッセージを構文解析する時を制御します。 有効な値は、「要求時」「即時」、および「完全」です。 デフォルトでは、このプロパティーは「要求時」 に設定されます。これにより、メッセージの構文解析が遅延されます。 メッセージが即時に解析されるようにするには、 オンデマンドでの構文解析を参照してください。
XML スキーマ・データ・タイプを使用してツリーを構築する いいえ 選択されていない このプロパティーは、XML スキーマから取得されたデータ・タイプを使って、XMLNSC パーサーがメッセージ・ツリー内に構文エレメントを作成するかどうかを制御します。 このプロパティーを選択できるのは、「検証」タブで「検証」プロパティーを「コンテンツ」または「コンテンツと値」に設定した場合のみです。 XMLNSC について詳しくは、 XMLNSC ドメインでのメッセージの操作を参照してください。
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 いいえ 選択されていない このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定した場合に、入力 MQRFH2 ヘッダーまたは「入力メッセージの構文解析」プロパティー「メッセージ・ドメイン」を XMLNS にすると、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。
混合内容の保存 いいえ 選択されていない このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスをクリアした場合、混合テキストは無視されて、エレメントは作成されません。
コメントの保存 いいえ 選択されていない このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスをクリアした場合、コメントは無視されて、エレメントは作成されません。
処理命令の保存 いいえ 選択されていない このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 チェック・ボックスをクリアした場合、処理命令は無視されて、エレメントは作成されません。
不透明エレメント いいえ ブランク XMLNSC パーサーによって不透明解析される入力メッセージ内のエレメントのリストを指定するときに、このプロパティーを使用します。 不透明解析が実行されるのは、妥当性検査が使用不可に設定されている場合のみ (つまり、「妥当性検査」「なし」の場合) です。妥当性検査が使用可能な場合、「不透明エレメント」で指定される項目は無視されます。
表 7. ノードの「妥当性検査」プロパティー
プロパティー M デフォルト 説明
妥当性検査 いいえ 継承 このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」「内容と値」「内容」、および「継承」です。
失敗時の処置 いいえ 例外 このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」「内容」 または 「内容と値」 に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」「ローカル・エラー・ログ」「例外」、および「例外リスト」です。

これらのプロパティーの詳細については、 妥当性検査プロパティーを参照してください。

表 8. ノードの「ポリシー」プロパティー
プロパティー M デフォルト 説明
ポリシー URL いいえ   ポリシー文書の名前と場所を指定する URL。
表 9. ノードの「モニター」プロパティー
プロパティー M デフォルト 説明
Events いいえ   ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードにもモニター・イベントが定義されません。 追加編集、および 削除 を使用して、ノードのモニター・イベントを作成、変更、または削除します。詳しくは、 モニター・プロパティーを使用したモニター・イベント・ソースの構成 を参照してください。

「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。

構成可能プロパティー

以下の表は、構成可能な (メッセージ・フローをデプロイメント用 BAR ファイルに追加するときに mqsiapplybaroverride コマンドを使用することによってそのプロパティー値を変更できる) ノード・プロパティーについて説明しています。 この表では、メッセージ・フロー・ノード・プロパティーと、mqsiapplybaroverride コマンドの対応するプロパティーとをマップしています。

構成可能プロパティーについて詳しくは、 BAR ファイル内の構成可能プロパティーを参照してください。

構成可能プロパティーの表

表 10. mqsiapplybaroverride コマンドを使用して構成できるノード・プロパティーのリスト
プロパティー mqsiapplybaroverride コマンド・プロパティー
クライアント ID clientId
トピック名 topicName
ホスト名 ホスト名
ポート port
サービスの品質 qos
妥当性検査 validateMaster
ポリシー URL policyUrl
セキュリティー ID securityIdentity
SSL の使用 useSSL
接続 URL connectionUrl

運用ポリシー・プロパティー

運用ポリシーを作成して MQTT ノードに添付することによって、実行時のノードの動作を制御できます。 次の表では、メッセージ・フロー・ノードの操作 プロパティーと、ノード・ポリシー文書の対応するプロパティーとをマップしています。 操作 プロパティーとは、運用ポリシーを使用することによって実行時にその値を制御できるプロパティーのことです。

運用ポリシーについて、およびメッセージ・フローでポリシーを使用する方法について詳しくは、 運用ポリシー および MQTTSubscribe ポリシーを参照してください。

運用プロパティーの表

表 11. 運用ポリシーを使用することによって実行時に制御可能なノード・プロパティーのリスト
プロパティー ポリシー文書プロパティー
簡略説明 shortDesc
詳細説明 longDesc
クライアント ID clientId
トピック名 topicName
ホスト名 ホスト名
ポート port
サービスの品質 qos