メッセージキューの設定

最終更新日: 2020年3月14日
R8 | R9

メッセージングミドルウェアの選択

このページは、メッセージングミドルウェアのインストールを行ったあとにお読みください。

メッセージキューを指定する

環境 > アプリケーションを開きます。メッセージキュー設定欄の「メッセージジョブ機能を使用する」の選択肢を有効にします。

図1 環境設定

Apache Active MQ Artemis または Amazon MQ を利用する場合

"環境 > アプリケーション > メッセージキュー > メッセージジョブ機能を使用する" で "ActiveMQ" を選択してください。

Rabbit MQ を利用する場合

"RabbitMQ" を選択してください。

上記のいずれも選択されていない場合、以降に説明する非同期処理(メッセージジョブ機能)は利用できません。

サーバをインストールしない運用(インメモリでの動作)

"ActiveMQ" を選択し、さらに "ActiveMQ > 送信先" を "インメモリ" とすると、メッセージングミドルウェアを別途インストールすることなく非同期処理を実現することができます。

重要

この方式にはデメリットもあります。こちらをお読みの上、ご利用いただくケースをご検討ください。

両方を利用する

Apache Active MQ Artemis と Rabbit MQ の両方を併用することもできます。"ActiveMQ" と "RabbitMQ" の両方を選択します。このとき "デフォルトの接続先" の設定が有効になります。送信先キュー名に指定がない場合は、このデフォルト接続先が用いられます。

Apache ActiveMQ Artemis

インストールした Apache ActiveMQ Artemis の情報を設定します。

設定欄説明
送信先"インメモリ" と "ブローカー接続" のいずれかを選択する。"インメモリ" の場合、Wagbyに同梱されているActiveMQクライアントライブラリがメモリ上でキューを管理するため、別途 Apache ActiveMQ Artemis をインストールすることなく利用できる。Apache ActiveMQ Artemisをインストールしている環境では "ブローカー接続" を選択する。
ブローカーURL標準は "failover:(tcp://localhost:61616)?timeout=10000" となっている。これはApache ActiveMQ Artemisをローカルマシンで起動した場合のデフォルト値。送信先が "インメモリ" の場合、この設定は無視される。(*)
ユーザ名インストール時に設定したユーザ名を指定する。送信先が "インメモリ" の場合、この設定は無視される。
パスワードインストール時に設定したパスワードを指定する。送信先が "インメモリ" の場合、この設定は無視される。
ジョブを受信するキューの名前標準は空白となっている。カスタマイズしてメッセージキュー名を指定したい場合に指定する。
(*) failover: 指定は、MQが何らかの理由で再起動したとき、再度、自動接続を試みるものです。timeout 指定はこの自動接続を試みる上限で、単位は ms です。(この例では10秒としています。10秒試して再接続できない場合、MQが停止したとみなします。) 利用環境に応じて timeout 値は適切に変更してください。

Rabbit MQ

インストールした Rabbit MQ の情報を設定します。

設定欄説明
RabbitMQホスト名ホスト名を指定する。未指定時はlocalhost。
RabbitMQポート番号未指定時は5672。
RabbitMQユーザ名未指定時はguest。
RabbitMQパスワード未指定時はguest。
使用するキューの名前標準は空白とする。カスタマイズしてメッセージキュー名を指定したい場合に指定する。
ジョブを受信するキューの名前標準は空白とする。カスタマイズしてメッセージキュー名を指定したい場合に指定する。

ホスト名、ポート番号、ユーザ名、パスワードの設定は、ビルドしたアプリケーションの WEB-INF/classes/application.properties に出力されます。

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

キュー名はビルドしたアプリケーションの WEB-INF/wagby-servlet/jfcMessageQueue.xml に出力されます。 キュー名の未指定時(空白設定)は、標準では "wagbyJobQueue" という名前のキューが用意されます。

具体的には「使用するキューの名前」は rabbit:queue へ、「ジョブを受信するキューの名前」は rabbit:listener の queues に反映されます。

   <rabbit:queue name="wagbyJobQueue"/>
   <rabbit:queue name="wagbyUploadUpdateJobQueue"/>
   <rabbit:listener-container connection-factory="rabbitConnectionFactory">
       <rabbit:listener
         queues="wagbyJobQueue,wagbyUploadUpdateJobQueue"
         ref="JobExecutionMessageListener" method="processQueue"/>
   </rabbit:listener-container>

Amazon MQ

AWS に設定した Amazon MQ の情報を反映させます。

設定欄説明
送信先"ブローカー接続" を選択する。
ブローカーURL例 failover:ssl://b-51d382de-d5a3-42c2-8d29-5a51d0489a0b-1.mq.ap-northeast-1.amazonaws.com:61617
ユーザ名AmazonMQの設定時に登録したユーザ名を指定する。
パスワードAmazonMQの設定時に登録したパスワードを指定する。
ジョブを受信するキューの名前標準は空白となっている。カスタマイズしてメッセージキュー名を指定したい場合に指定する。