Open MQ4.1を使ってみよう!第13回 HADBを永続ストアに使用するようにMQを設定
前回はHADB自体の設定を行いました。
今回はMQ側をHADBを使うように設定してみたいと思います。
MQ側のコンフィグ設定
1.HADBのJDBCURLを取得する
-bash-3.00# ./hadbm get --all hastore
Please enter the password for the admin system user:***********
2007-10-04 06:52:48.394 INFO hadbm get --all=true --quiet=false --version=false --yes=false --force=false --echo=false
Attribute Value
ConnectionTrace false
CoreFile false
DataBufferPoolSize 200
DataDeviceSize 1024
DevicePath /opt/SUNWappserver/hadb/4.4.3-6/device
EagerSessionThreshold 50
EagerSessionTimeout 120
EventBufferSize 0
HistoryPath /opt/SUNWappserver/hadb/4.4.3-6/history
InternalLogBufferSize 12
JdbcUrl jdbc:sun:hadb:129.158.34.188:15005,129.158.34.187:15045,129.158.34.188:15025,129.158.34.187:15065
LogBufferSize 48
MaxTables 1100
NumberOfDataDevices 1
NumberOfLocks 50000
NumberOfSessions 100
PackageName V4.4.3.6
PortBase 15000
RelAlgDeviceSize 128
SessionTimeout 1800
SQLTraceMode none
StartRepairDelay 20
StatInterval 600
SysLogFacility local0
SysLogLevel WARNING
2.これの以下の部分をNotepadなどにメモしておく
JdbcUrl jdbc:sun:hadb:129.158.34.188:15005,129.158.34.187:15045,129.158.34.188:15025,129.158.34.187:15065
3.config.propertiesに以下を設定
config.propertiesは、
<<MQインストールフォルダ>>\mq\var\instances\<<ブローカ名>>\\props
フォルダにあります。もし<<ブローカ名>>フォルダがまだ存在しない場合には以下のコマンドで
ブローカ定義を作ってください
#UNIXは
/var/imq/instances/ブローカ名/props
にあります。
コマンドの例
cd C:\software\MQ4.1\mq\bin
imqbrokerd -name broker1 -port 7676
config.properties中の最後の部分に以下を設定
imq.instanceconfig.version=300
imq.brokerid=broker1
imq.persist.store=jdbc
imq.persist.jdbc.dbVendor=hadb
# Replace 'server list' with your comma-separated list of servers.
imq.persist.jdbc.hadb.property.serverList=129.158.34.188:15005,129.158.34.187:15045,129.158.34.188:15025,129.158.34.187:15065
# Replace username.
imq.persist.jdbc.hadb.user=system
imq.persist.jdbc.hadb.needpassword=true
imq.persist.jdbc.hadb.password=adminadmin
・imq.persist.jdbc.hadb.property.serverListにはさきほどメモしておいたJDBCURLを「jdbc:sun:hadb:」を抜いた形で指定します。
broker2用
imq.instanceconfig.version=300
imq.brokerid=broker2
imq.persist.store=jdbc
imq.persist.jdbc.dbVendor=hadb
# Replace 'server list' with your comma-separated list of servers.
imq.persist.jdbc.hadb.property.serverList=129.158.34.188:15005,129.158.34.187:15045,129.158.34.188:15025,129.158.34.187:15065
# Replace username.
imq.persist.jdbc.hadb.user=system
imq.persist.jdbc.hadb.needpassword=true
imq.persist.jdbc.hadb.password=adminadmin
broker3用
imq.instanceconfig.version=300
imq.brokerid=broker3
imq.persist.store=jdbc
imq.persist.jdbc.dbVendor=hadb
# Replace 'server list' with your comma-separated list of servers.
imq.persist.jdbc.hadb.property.serverList=129.158.34.188:15005,129.158.34.187:15045,129.158.34.188:15025,129.158.34.187:15065
# Replace username.
imq.persist.jdbc.hadb.user=system
imq.persist.jdbc.hadb.needpassword=true
imq.persist.jdbc.hadb.password=adminadmin
4.<<MQインストールフォルダ>>\mq\lib\extにhadbjdbc4.jarをコピーする
コピー先例:C:\software\MQ4.1\mq\lib\ext
#Unixでは/usr/share/lib/imq/ext
hadbjdbc4.jarの格納場所は9.1withHADBの<<インストールディレクトリ>>\hadb\4.4.3-6\lib
例:
C:\Sun\AppServer91withHADB\hadb\4.4.3-6\lib
#UNIXでは
/opt/SUNWappserver/hadb/4.4.3-6/lib
5.Q4.1を起動します
C:\Sun\MQ4.1\mq\bin>imqbrokerd -name broker1 -port 7676 -tty
[22/9/2007:23:56:59 JST]
==================================================================
Sun Java(tm) System Message Queue 4.1
Sun Microsystems, Inc.
バージョン: 4.1 (Build 36-e)
コンパイル: Thu 07/26/2007
Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
==================================================================
Java ランタイム: 1.5.0_12 Sun Microsystems Inc. D:\jdk1.5.0_12\jre
[22/9/2007:23:56:59 JST] ライセンス: Sun Java(tm) System Message Queue 4.1 Enterprise Edition
[22/9/2007:23:56:59 JST] IMQ_HOME=C:\Sun\MQ4.1\mq
[22/9/2007:23:56:59 JST] IMQ_VARHOME=C:\Sun\MQ4.1\mq\var
[22/9/2007:23:56:59 JST] Windows XP 5.1 x86 psq96026.Japan.Sun.COM (1 cpu) Administrator
[22/9/2007:23:56:59 JST] Java ヒープサイズ: 最大=194432k、現在=16256k
[22/9/2007:23:56:59 JST] 引数: -tty
[22/9/2007:23:56:59 JST] [B1203]: broker1 のブローカ ID から開始します
[22/9/2007:23:56:59 JST] [B1004]: 最小スレッド 1 および最大スレッド 1 と tcp [ 7676, 50, * ] を使用して portmapper サービスを開始します
[22/9/2007:23:56:59 JST] [B1060]: 持続データの読み込み中...
[22/9/2007:23:57:01 JST] プラグイン持続ストアの使用:
version=410
brokerid=broker1
database connection url=129.158.34.188:15005,129.158.34.188:15025
database user=system
[22/9/2007:23:57:01 JST] [B1170]: プラグイン持続ストアの自動作成が有効です
[22/9/2007:23:57:01 JST] 警告 [B4239]: データベーステーブル MQVER41Sbroker1 から持続ストアバージョンを読み込めませんでした:
java.sql.SQLException: [SELECT STORE_VERSION FROM MQVER41Sbroker1]: HADB-E-11701: Table mqver41sbroker1 not found
[22/9/2007:23:57:01 JST] [B1114]: 持続的ストアが新規に作成されます...
[22/9/2007:23:57:01 JST] データベーステーブル MQVER41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQBKR41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQSES41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQPROP41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQCREC41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQCON41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQCONSTATE41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQDST41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQMSG41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] データベーステーブル MQTXN41Sbroker1 を作成しています...
[22/9/2007:23:57:02 JST] [B1041]: クラスタの初期化に成功しました。
[22/9/2007:23:57:02 JST] [B1004]: 最小スレッド 1 および最大スレッド 1 と tcp [ 0, 100 ] を使用して cluster_discovery サービスを開始します
[22/9/2007:23:57:02 JST] [B1136]: ストアードトランザクションの処理中
[22/9/2007:23:57:02 JST] [B1284]: 0 のクラスタトランザクションが PREPARED 状態のままですが、0 は COMMITTED 状態にあり、リモートブローカが完了するのを待っています
[22/9/2007:23:57:02 JST] 0 のリモートトランザクションのうち、0 が PREPARED 状態、0 が COMMITTED 状態にあります
[22/9/2007:23:57:02 JST] [B1013]: キューの自動作成が有効です
[22/9/2007:23:57:02 JST] [B1144]: デッドメッセージキューの作成中
[22/9/2007:23:57:02 JST] [B1158]: 管理者が送信先 mq.sys.dmq [キュー] を作成しました
[22/9/2007:23:57:03 JST] [B1239]: プラットフォーム MBean サーバーを使用します
[22/9/2007:23:57:03 JST] JESMF classes not present - JESMF support will not be enabled.
[22/9/2007:23:57:03 JST] JMX コネクタサーバー jmxrmi は URL service:jmx:rmi://psq96026/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTAuMTU0LjI5AAAHJQAAAAAAAAAACB+VdgAAARUtuL/XgAAAeA== で正常に起動しました
[22/9/2007:23:57:04 JST] [B1004]: 最小スレッド 4 および最大スレッド 10 と tcp(host = *, port=0, mode=dedicated) を使用して admin サービスを開始します
[22/9/2007:23:57:04 JST] [B1227]: admin サービス接続認証に file ユーザーリポジトリを使用します
[22/9/2007:23:57:04 JST] [B1004]: 最小スレッド 10 および最大スレッド 1000 と tcp(host = *, port=0, mode=dedicated) を使用して jms サービスを開始します
[22/9/2007:23:57:04 JST] [B1227]: jms サービス接続認証に file ユーザーリポジトリを使用します
[22/9/2007:23:57:04 JST] [B1004]: 最小スレッド 1 および最大スレッド 1 と tcp [ 0.0.0.0/0.0.0.0:1832 ] を使用して cluster サービスを開始します
[22/9/2007:23:57:04 JST] [B1228]: クラスタの ping 間隔は 60 秒です
[22/9/2007:23:57:04 JST] [B1039]: ブローカ "imqbroker@psq96026.Japan.Sun.COM:7676" の準備ができました。
同様にbroker2とbroker3のインスタンスも起動します。
C:\Sun\MQ4.1\mq\bin>imqbrokerd -name broker2 -port 7677 -tty
C:\Sun\MQ4.1\mq\bin>imqbrokerd -name broker3 -port 7678 -tty
6.QK2などのツールにてテストします。
MQ稼動中に、HADBの片方のノードをストップさせるなど
可用性をテストしてみてください。
次回は、HADBのノードを別の物理マシンに追加してOSレベルまたはハードウエアでの障害に対応できるように
HADBを設定してみたいと思います。
