JMSQueueシステムにストリームを書き出します。
連携時の設定方法の参考情報として、下記トピックで「IBM Websphere MQを使用する場合の設定方法」を説明します。
| 入力 | フォーマット | すべて |
|---|---|---|
| 接続数 | 1 | |
| 説明 | すべてのストリームを入力できます。 | |
| 出力 | フォーマット | すべて |
| 説明 | 入力ストリームをそのまま出力します。 |
| 名前 | プロパティ型 | マッピング | 説明 | ||||||
|---|---|---|---|---|---|---|---|---|---|
| コネクション名 | connection | - |
接続先のキューを指定します。
コネクションペインまたは管理コンソールにて作成されたQueue(JMS)接続名を選択します。
各コネクションの詳細については、「はじめに」-「詳細なトピック」-「フローの構成要素」-「コネクションプロパティ」を参照してください。 |
||||||
| キュー名 | string | 入力&出力 |
書き出すキューの名前を指定します。
|
||||||
| メッセージの優先順位 | int | 入力&出力 |
書き出すメッセージのプライオリティを指定します。
数値が大きいほど優先順位が高くなります。0〜9まで指定可能です。 |
||||||
| 有効期間(ミリ秒) | int | 入力&出力 |
いつまでキューに残しておくか有効期間をミリ秒で指定します。
0を指定すると永久に残ります。 |
||||||
| メッセージを永続化 | choice | 入力&出力 |
書き出すメッセージを永続化するかどうか指定します。
|
||||||
| MapMessageを使用 | boolean | 入力&出力 | ParameterListストリームに対してMapMessageを使用するかどうか指定します。 | ||||||
| メッセージプロパティ | category | 入力&出力 |
メッセージに付帯情報として名前と値をセットします。
この値を使用してQueueGetコンポーネントの選択条件 でメッセージを選別することなどが可能になります。 名前は自由につけることが可能ですが、"JMS"から始まる語とJMSで予約されている語(NOT AND OR BETWEEN LIKE IN IS NULL TRUE FALSE)は使用できません。 以下の名前を使用すると、対応するJMSメッセージヘッダーに値が設定されます。
|
なし。
| コミット | メッセージを書き出したことが確定する |
|---|---|
| ロールバック | メッセージを書き出す前の状態に戻される |
| タイプ | パラメーター | エラー処理フロー
へのストリーム | エラー
コード | 説明 |
|---|---|---|---|---|
| 汎用 | なし | コンポーネントの入力ストリーム | なし | JNDIサーバーとの接続に失敗した場合 |
| なし | JMSプロバイダとの接続に失敗した場合 | |||
| なし | メッセージの書き出しに失敗した場合 |
QueuePutコンポーネントはストリーム型に応じて出力するメッセージタイプが決まっています。
QueueGetコンポーネントはメッセージタイプに応じて復元できるストリーム型が決まっています。
| QueuePut | QueueGet | |
|---|---|---|
| XML | BytesMessage | BytesMessage |
| CSV | BytesMessage | BytesMessage/TextMessage |
| FixedLength | BytesMessage | BytesMessage |
| ParameterList | BytesMessage/MapMessage
(MapMessageを使用 プロパティの指定に従う) | BytesMessage/MapMessage |
| Text | TextMessage | BytesMessage/TextMessage |
| HTML | TextMessage | BytesMessage/TextMessage |
| JSON | TextMessage | BytesMessage/TextMessage |
| Binary | BytesMessage | BytesMessage |
| MIME | BytesMessage | BytesMessage |
| Record | BytesMessage | BytesMessage |
ParamterListストリームは、QueuePutコンポーネントではMapMessageを使用 プロパティがはいの場合MapMessage、いいえの場合BytesMessageとして出力します。QueueGetコンポーネントでは、BytesMessageまたはMapMessageから復元することが可能です。
QueueGetコンポーネントでBytesMessageから復元する場合、適宜決まったフォーマットになっていなければ復元はできません。例えばXMLストリームならばBytesMessageの中にXMLのバイト列が入っていなければ復元不可能です。
本コンポーネントからIBM MQにアクセスする場合の設定方法を以下に説明します。
以下の作業がインストール時に一度だけ必要になります。
各手順の詳細を以下に説明します。
MQのマニュアルに従ってインストールします。標準インストールではJMSサービスのインストールがOFFになっている可能性があるため、カスタムインストールでJMSサービスを有効にしてインストールします。
MQのインストールフォルダー(以降、[MQ_Install]と表記します)のjava/libフォルダーにある、以下のJavaライブラリをフローサービスのフォルダーにコピーします。コピー先のフローサービスのフォルダーは
[DATA_DIR]/system/lib/extとなります。コピー先に同じファイルがある場合は上書きしてください。OpenJMS用のライブラリは削除しておくことを推奨します。
Windows − C:\Program Files\IBM\MQ Linux − /opt/mqm
フローサービスを実行するアカウントからMQにアクセスできるよう、適宜アカウントの設定を変更します。Linuxの場合はフローサービスの実行アカウントがmqmグループに所属するようにします。Windowsでフローサービスの実行アカウントがドメインユーザーである場合は、domain mqmドメイングループに所属するようにします。詳しくはMQのマニュアルを参照してください。
コピーされたライブラリがフローサービスで有効になります。
[MQ_Install]/java/binにあるJMS30Admin.configファイルを編集し、JNDIの設定を行います。通常は「INITIAL_CONTEXT_FACTORY」と「PROVIDER_URL」の設定を行うことになります。
たとえば、ファイルシステムにJNDIのバインディング情報を置く場合には、
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory PROVIDER_URL=file:/C:[MQ_Install]のように設定します。
管理コンソールにログインし、[設定]-[コネクション]-[その他]のメニューからJNDIコネクションを作成します。「Provider URL」「Initial Factory」項目にMQ上のJMS30Admin.configファイルに指定した値を設定します。
以下の作業がMQでキューを作成するたびに毎回必要になります。
各手順の詳細を以下に説明します。
MQ上で作成したキューマネージャ、キューをJMSに登録します。
[MQ_Install]/java/binにあるJMS30Adminツールを起動すると、以下のようにプロンプトが表示されるので、MQへの接続方法に合わせて定義を登録します。
InitCtx>以下にフローサービスで使用するQueueコネクション名を「QCFNAME」、キュー名を「QNAME」とする場合の設定例を示します。
InitCtx> define qcf(QCFNAME) InitCtx> define q(QNAME) queue(SYSTEM.DEFAULT.LOCAL.QUEUE) InitCtx> endローカルマシンのデフォルトのキューマネージャ、ローカルキューQUEUE1にバインドモードで接続する場合:
InitCtx> define qcf(QCFNAME) InitCtx> define q(QNAME) queue(QUEUE1) InitCtx> endローカルマシンのキューマネージャQM1、ローカルキューQUEUE1にバインドモードで接続する場合:
InitCtx> define qcf(QCFNAME) qmgr(QM1) InitCtx> define q(QNAME) queue(QUEUE1) qmgr(QM1) InitCtx> endリモートマシンHOST1のキューマネージャQM1、ローカルキューQUEUE1にクライアントモードで接続する場合
InitCtx> define qcf(QCFNAME) qmgr(QM1) tran(CLIENT) host(HOST1) chan(CHANNEL1) port(1414) ccsid(932) InitCtx> define q(QNAME) queue(QUEUE1) qmgr(QM1) InitCtx> endMQにおけるキューマネージャ、キューの作成方法、クライアント接続のための設定方法、JMS30Adminの使い方などの詳細はMQのマニュアルを参照してください。
管理コンソールにログインし、[設定]-[コネクション]-[その他]のメニューからQueueコネクションを作成します。「JNDI接続名」項目にあらかじめ指定しておいたJNDIコネクションの値設定します。「Queue Connection Factory」項目にJMS30Adminで定義した値を設定します。
以上で本コンポーネントからJMS30Adminで定義したキューにアクセスできるようになります。