メッセージキューイング処理
Luxorサーバの安定性向上と拡張性を改善するため、Luxor Ver.2.0よりメッセージキューイング処理としてActiveMQサービスを導入しました。
※ ActiveMQサービスがLuxor Ver.2.0以降のモジュールと同梱され、インストール対象となります。サーバとして起動するサービスであり、サーバ間通信設定はLuxor設定ファイルsetup.confのamqPortとamqAddressにて行います。
詳細に関しては、『Luxor_Ver.2.3_インストレーションガイド』の「Luxorサーバの設定」よりご参照ください。
キュー処理
ActiveMQでは処理待ちのリクエストを受け取り、これらのリクエストはサーバ上にファイル形式で保存されます。
キューへの操作
キューに対する操作可能な動作に関しては、Luxorの新管理画面の「インデックスキュー管理画面」にて詳しく記載していますので、ご参照ください。
キューサイズの上限値変更
storeUsage上限値を超過した場合、ERRORレベルのログが出力されます。ログ詳細に関しては、「Luxor各種ログ」に記載しています。該当ログが出力される場合、activemq.xmlの設定のstoreUsageを大きく調整することで回避可能です。
※ キューサイズの確認方法に関しては、「About管理画面」や「Luxorの新管理画面」より確認可能です。
ログ例
2017-12-18 13:33:14,694 ERROR [catalina-exec-5] solr.LuxorQueueServlet (LuxorQueueServlet.java:99) : Error Occurred When Producer Sending Message To ActiveMQ javax.jms.JMSException: COMMIT FAILED: Transaction marked rollback only xaErrorCode:100 at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:54) at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1399) at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1428) at org.apache.activemq.TransactionContext.commit(TransactionContext.java:330) at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:582) at jp.co.dreamarts.solr.LuxorQueueServlet.doExecute(LuxorQueueServlet.java:87) at jp.co.dreamarts.solr.LuxorQueueServlet.doPost(LuxorQueueServlet.java:54) at
該当ファイルのサイズには上限値"storeUsage"が設定され、上限値を超過する場合はリクエストの受け取りを停止します。デフォルトが10GBとなります。インデックス再作成する際など、リクエストが大量に溜まる場合、上限値"storeUsage"を大きく調整してください。
キューサイズ変更の手順例
1.サービスを停止する。
# service solrTomcat stop
2.次のファイルにアクセスして、storeUsageを15GBに変更する。
# vi /var/luxor/activemq.xml
<略>
<storeUsage>
<storeUsage limit="15 gb"/>
</storeUsage>
<略>
3.サービスを再起動する。
# service solrTomcat start
キュー処理が失敗した場合
ActiveMQでは、Luxorサーバに届くインデックス作成·更新·削除リクエストを受信順に処理します。添付ファイルダウンロードやプログラム途中での異常終了などの原因で処理に失敗したリクエストは、Error_Queue.logに出力されます。
エラーキューの保存場所
- エラーキューの保存場所:/var/log/luxor/Error_Queue.log
-
Error_Queue.logから確認可能な項目
- component:機能名
- title:タイトル
- upd_date:インデックス作成、更新、削除リクエストの送信時間
- function:リクエストの処理種類。[insert]、[update]、[delete]はそれぞれ作成、更新、削除を表す
Error_Queue.logには、Luxor新管理画面の「処理失敗インデックス管理画面」に表示されるログを格納します。詳細な出力内容に関しては、「処理失敗インデックス管理画面」からご確認下さい。
エラーキューへの操作
エラーキューに対し操作可能な動作に関しては、Luxorの新管理画面の「処理失敗インデックス管理画面」にて詳しく記載していますので、ご参照ください。