日曜日 7 12, 2009
日曜日 7 05, 2009
OpenMQ/WebLogic JMSメッセージ管理ツールQBrowserのバージョン2.5.0をリリースしました。
変更概要は以下の通りです。
[ローカルメッセージ]
・メッセージをzip形式のファイルに保存することが可能。
・保存したローカルメッセージは、QBrowser共通フォーマットであるため、どのMQ用のQBrowserでも
使用可能(開いたり、ドロップしたりできる:OpenMQ⇔WebLogicなど)
・保存したメッセージファイルを任意の宛先にドロップ可能
・保存したメッセージを元に新規作成パネルを開く
・メッセージのコピー/ペースト(ローカルストア→任意宛先)
[ローカルストア]
・ローカルフォルダに紐づく、QBrowser内で利用可能な仮想宛先
・通常の宛先と同じように、以下が可能
- 通常宛先(Queue, Topic)からローカルストアへメッセージを転送(コピー)
- ローカルストアから通常宛先へメッセージを転送
・ローカルストアへ転送されたメッセージはファイルとして永続化。
・特定のTopicメッセージの受信をトリガに、メッセージを自動でローカルストアへコピーする設定が可能
(Topicタブ、ローカルストアタブを右クリック)
・ローカルストア内のメッセージをコピー/他の宛先へペースト
[javax.jms.StreamMessage, javax.jms.Messageサポート]
・送信、転送、閲覧が可能
・これらの情報を流用して新規作成パネルを開く
[送信パネル]
・TextMessageボディ/Userプロパティ/StreamMessage/MapMessageのString属性編集パネルに、テキストファイルをドラッグアンドドロップすると中身をパネルにコピー
[その他]
・進捗ダイアログウインドウの高速化/バッファリング改善
・キーショートカット機能追加
・メッセージ一覧情報を作成するときには、一覧に必要な情報以外は保持しない。
必要になった時点でオンデマンドでメモリに展開する。(メモリ節約)
金曜日 6 12, 2009
OpenMQ/WebLogic MQ用 JMSメッセージ管理ツール「QBrowserV2」のバージョン2.4.0をリリースしました。
メッセージパネル(編集、詳細)を中心にリニューアルしました。

以下からQBrowserV2_2.4.0をダウンロードしてください。詳しい使い方はZIPを解凍して出てくる「ForOpenMQ起動方法ReadMe.txt」と「ForWebLogic起動方法ReadMe.txt」をご覧ください。
変更概要は以下の通りです。
・MapMessage対応(入力、表示)
・メッセージパネルを表ベースにリニューアル(JMSヘッダ、ユーザプロパティ、MapMessage)
・Stringプロパティ選択時のエディタ画面
・その他BugFix
(詳しくはリリースノートをご覧ください)
金曜日 5 08, 2009
こんにちは。
5月の連休の合間を利用して、Myはうすが提供しているメッセージキュー管理ツールを更新してみました。今回のリリース(2.3.0)でWebLogic MQに対応しました。
以下からQBrowserV2_2.3.0をダウンロードしてください。詳しい使い方はZIPを解凍して出てくる「ForOpenMQ起動方法ReadMe.txt」と「ForWebLogic起動方法ReadMe.txt」をご覧ください。
UIはJIDE Common Layer Open Source Projectを使用しリニューアルしました。OSSのパワーを実感した開発の日々(正味3日)でした。。。
変更概要は以下の通りです。
・WebLogic MQに対応 (付属のrun_wls_mq.bat/run_wls_mq_for_default_install_location.batを使用)
・JIDE Common Layer(OSS:https://jide-oss.dev.java.net/)を使用し、UIをリニューアル
・完全国際化(日本語、英語)
[UI部変更]
・宛先コンボボックスにTOPIC名も表示
・メッセージテーブルをタブ化し、複数宛先を並行表示
・アイコンメニュー追加
[追加機能]
・TOPICサブスクライブ(購読)メニュー/ボタン追加
・サブスクライブ(購読)一時停止/再開機能
・メッセージテーブルの行を右クリック→選択メッセージ転送
・メッセージテーブルの行を右クリック→選択メッセージ削除
・宛先リスト更新機能(QBrowser外で追加されたものを出す)
・ルックアンドフィール動的変更メニュー
・メッセージ送信時、永続化モードと圧縮モード選択
[仕様変更]
・起動時にJMSサーバに接続出来ない場合、エラーダイアログボックスとヒントを表示
・使用中にJMSサーバとの接続が切れた場合、別スレッドでバックグラウンドで接続試行
・宛先名を選択すると、選択された宛先タブが表示される(タブがない場合作成)
・削除最適化/スピードアップ
・テーブル全選択時、「全て選択」が「選択解除」へ
・(2.2.0から)宛先名を空欄にしてsearchすると、現在の全宛先を対象に検索
[WebLogic MQ]
・宛先自動検索機能(キュー、トピック、分散キュー/分散トピックなど)
GPLv2ライセンスですので、ソースコード含めご自由にお使いくださいませ。
バグレポートなどご協力いただけると幸いです・・・
土曜日 4 18, 2009
こんにちは。キューデータ管理ツールQBrowserV2に少しだけ機能追加してみました。
久々の更新ということでバージョンはV2.2.0としました。
以下からQBrowserV2_2.2.0をダウンロードしてください。
[追加機能]
Browseボタンの右に「Search」ボタンを追加し、メッセージの検索機能を追加しました。

Searchボタンを押すと、メッセージ検索ウィンドウがポップアップします。検索したい宛先名と必要があればメッセージセレクタ文字列を入力して、OKボタンを押せば検索結果がメインウインドウに表示されます。メッセージセレクタはJMS仕様のMessageSelector構文を使用します(少しSQLに似ています)。メッセージセレクタ文字列を入力しないと指定された宛先のメッセージを全件出力します。

メッセージセレクタにちょっと取っ付きにくいという方のために、だいたいの構文を集めたテンプレートを付けています。また、セレクタ文字列を入力して検索すると、文字列が履歴としてテンプレートに入るようになっています。

[オマケ]
各種情報照会ウィンドウの文字ずれが出ないようにしてみました。もう少しすっきり見えると思います。


金曜日 10 26, 2007
前回は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を設定してみたいと思います。
月曜日 10 22, 2007
前回はHADBをマシンにインストールしてみました。今回はインストールしたHADB上にドメインとDBを作成して
HADBをFaultTorelant状態に持っていくまでを説明します。
(まだ、1つのマシンにしかノードは作成しません)
[参考:HADBの対障害ステータスについて]
以下の6つのステータスのどれかになります。
・HAfaultTolerant
・FaultTolerant
・Operational
・Non Operational
・Stopped
・Unknown
[各ステータスの説明]
・HAfaultTolerant
DBはフォールトトレラント(対障害状態)にあり、スペアノードがDRU(冗長ユニット)1つにつき最低1つあります。
スペアノードがあると、ノードのペアのうちどちらかが破壊されてもOperational状態に落ちずに
破壊されたノードの代わりにスペアノードが本ノードに「昇格」してサービスを続けます。
スペアを全て使ってしまった場合はHADBのステータスはFaultTolerantになります。
・FaultTolerant
DRUの全てのミラーノードのペアが正常に稼動している状態です。FaultTolerant状態ではどこかのノードに障害が発生するとペアを維持できなくなりますが、サービス自体には影響はありません。FaultTolerant状態で片方のノードに障害が起きた場合はHADBのステータスはOperationalとなります。
・Operational
ミラーノードのどちらか一方だけ稼動している状態です。この状態のまま稼動中のノード(既に相方を失っている)がクラッシュするとサービスが停止してしまいます。早急にFaultTolerantより上の状態に戻す必要があります。
・Non Operational
DRU間でノードのペアが丸ごとダウンしている状態です。この状態ではDBはサービスを行うことができません。
・Stopped
DB中で稼動しているノードが1つも存在しない状態です。DB起動前または、hadbm stopコマンドが完了するとこの状態になります。
・Unknown
状態が不明の場合です。
#今回の設定ですと同じマシンにDRUを2つインストールしてしまうので、HADBをインストールしたマシンがクラッシュするとHADBのサービスを継続することができなくなります。
マシンのクラッシュではなく、片方のノードのプロセス障害の場合はHADBは何ら問題なくサービスを提供することができます。
次回、他の物理マシンにもノードを追加して片方のマシンクラッシュに対応できる構成を説明します。
[設定概要]
0.マネージメントエージェントの起動
1.HADBドメインを作成
2.DBをドメイン中に作成
3.SQLでのテスト
0.MAがインストール・起動していなければインストールと起動
windows
cd C:\Sun\HADB\hadb\4.4.3-6\bin
ma -i ma.cfg
net start HADBMgmtAgent
solaris
cd /opt/SUNWappserver/hadb/4/bin
./ma-initd start
マネージメントエージェントとは、HADBの各ノードの管理と監視を行うプロセスです。hadbmコマンドを発行する場合はMAを起動しておく必要があります。
1.マネージメントドメインの作成
windows
hadbm createdomain --adminpassword=adminadmin localhost
solaris
./hadbm createdomain --adminpassword=adminadmin 129.158.34.188
マネージメントドメインはどのホストにDBノードを載せることができるかを管理しています。ノードを作成したい全てのホスト名/IPアドレスがマネージメントドメインに含まれている必要があります。(作成後にhadbm extenddomainコマンドでホストを増やすこともできます)
2.DBの作成
windows
hadbm create --devicesize 1024 --hosts testhost1,testhost1
solaris
./hadbm create --devicesize 1024 --hosts 129.158.34.188,129.158.34.188
--hostsには、HADBのノードをどのホスト(マシン)に作成するかを指定します。
今回は最初の設定ですので、同一マシンに2つのDRUを載せるように設定してみます。この場合は同じホスト名を2回、カンマで区切って指定します。(4つ指定したい場合は4つホスト名をカンマで区切って指定します)。ノードはかならず2以上の偶数で指定する必要があります。
-bash-3.00# ./hadbm create --devicesize 1024 --hosts 129.158.34.188,129.158.34.188
Please enter the password for the database system user:***********
Please retype the password for database system user:***********
WARNING: The --dbpassword option is deprecated since it is insecure. Using this option can compromise your password. Please use either the command prompt or the --dbpasswordfile option.
Please enter the password for the admin system user:***********
2007-09-22 15:59:48.145 INFO hadbm create --devicesize=1024 --hosts=129.158.34.188,129.158.34.188 --datadevices=1 --no-cleanup=false --no-clear=false --quiet=false --version=false --yes=false --force=false --echo=false --dbpassword=******
2007-09-22 16:00:03.322 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.data-0.1 for node hadb:1
2007-09-22 16:00:03.323 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.noman.1 for node hadb:1
2007-09-22 16:00:03.323 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.relalg.1 for node hadb:1
2007-09-22 16:00:03.324 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.nilog.1 for node hadb:1
2007-09-22 16:00:03.331 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.noman.0 for node hadb:0
2007-09-22 16:00:03.383 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.data-0.0 for node hadb:0
2007-09-22 16:00:03.425 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.nilog.0 for node hadb:0
2007-09-22 16:00:03.450 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hadb.relalg.0 for node hadb:0
2007-09-22 16:00:39.767 INFO Starting node hadb:1 at level firststart, config version 1, in order to start database
2007-09-22 16:00:39.796 INFO n:1 NSUP INF 2007-09-22 16:00:39.795 p:4417 Legal realtime priorities are 0 (lowest) to 59 (highest) set it to:29
2007-09-22 16:00:42.431 INFO Starting node hadb:0 at level firststart, config version 1, in order to start database
2007-09-22 16:00:42.492 INFO n:0 NSUP INF 2007-09-22 16:00:42.491 p:4420 Legal realtime priorities are 0 (lowest) to 59 (highest) set it to:29
Database hadb successfully created and started.
db名をhadbで作成する場合
./hadbm create --devicesize 1024 --hosts 129.158.34.188,129.158.34.188
db名をhastoreで作成する場合
-bash-3.00# ./hadbm create --devicesize 1024 --hosts 129.158.34.188,129.158.34.188 hastore
Please enter the password for the database system user:***********
Please retype the password for database system user:***********
WARNING: The --dbpassword option is deprecated since it is insecure. Using this option can compromise your password. Please use either the command prompt or the --dbpasswordfile option.
Please enter the password for the admin system user:***********
2007-09-22 16:11:13.303 INFO hadbm create --devicesize=1024 --hosts=129.158.34.188,129.158.34.188 --datadevices=1 --no-cleanup=false --no-clear=false --quiet=false --version=false --yes=false --force=false --echo=false --dbpassword=****** hastore
2007-09-22 16:11:28.130 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.nilog.0 for node hastore:0
2007-09-22 16:11:28.130 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.relalg.0 for node hastore:0
2007-09-22 16:11:28.131 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.noman.0 for node hastore:0
2007-09-22 16:11:28.131 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.data-0.0 for node hastore:0
2007-09-22 16:11:28.155 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.noman.1 for node hastore:1
2007-09-22 16:11:28.156 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.relalg.1 for node hastore:1
2007-09-22 16:11:28.198 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.nilog.1 for node hastore:1
2007-09-22 16:11:28.250 INFO Initializing device /opt/SUNWappserver/hadb/4.4.3-6/device/hastore.data-0.1 for node hastore:1
2007-09-22 16:12:04.795 INFO Starting node hastore:0 at level firststart, config version 1, in order to start database
2007-09-22 16:12:04.833 INFO n:0 NSUP INF 2007-09-22 16:12:04.833 p:5055 Legal realtime priorities are 0 (lowest) to 59 (highest) set it to:29
2007-09-22 16:12:07.033 INFO Starting node hastore:1 at level firststart, config version 1, in order to start database
2007-09-22 16:12:07.060 INFO n:1 NSUP INF 2007-09-22 16:12:07.060 p:5060 Legal realtime priorities are 0 (lowest) to 59 (highest) set it to:29
Database hastore successfully created and started.
DBの作成が完了したら、HADBデータベースを起動します。
hadbm start データベース名
./hadbm start hastore
HADBデータベースを停止する必要がある場合は停止コマンドを入力します。
hadbm stop データベース名
./hadbm stop hastore
以下のコマンドでHADBの各種設定を照会することができます。
-bash-3.00# ./hadbm get --all hastore
Please enter the password for the admin system user:***********
2007-09-22 16:15:32.138 INFO hadbm get --all=true --quiet=false --version=false --yes=false --force=false --echo=false hastore
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.188:15025
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
SysLogPrefix hadb-hastore
TakeoverTime 10000
HADB内に定義されているドメインを照会してみましょう。
-bash-3.00# ./hadbm listdomain
Please enter the password for the admin system user:***********
2007-09-22 16:19:01.400 INFO hadbm listdomain --quiet=false --version=false --yes=false --force=false --echo=false
Hostname Enabled? Running? Release Interfaces
testhost1.japan.sun.com Yes Yes V4-4-3-6 129.158.34.188
hadbm statusコマンドにて、hadbのサービスの状態を照会することができます。
-bash-3.00# ./hadbm status hastore
Please enter the password for the admin system user:***********
2007-09-22 16:20:30.024 INFO hadbm status --nodes=false --quiet=false --version=false --yes=false --force=false --echo=false hastore
Database Status
hastore FaultTolerant
./hadbm get --all hastoreの結果から、JDBCURLを取得する
以下の部分にノードのホスト名/IP:ポート番号が出力されています。
後ほど、MQ側でHADBに接続するときに必要になる文字列です。
JdbcUrl jdbc:sun:hadb:129.158.34.188:15005,129.158.34.188:15025
[HADBのテスト]
HADBが正常に設定され、DBが作成されてアクセス可能かをテストしてみます。
clusqlユーティリティを使用します。
[clusqlについて]
hadbmには、SQLコマンドインターフェイスとして、clusqlユーティリティが添付されています。
#Oracleで言うところのSQLPlus、Java DBで言うところのIJに相当するものです(詳細機能は違いますが)
hadbmユーティリティがあるのと同じディレクトリへ移動して以下のコマンドを発行します。
./clusql ホスト名:ポート番号(hadbm get --all hastoreで表示されたJDBCURL)
ユーザ名:system
パスワード(デフォルトを変更していない場合):adminadmin
-bash-3.00# ./clusql 129.158.34.188:15025
User name : system
Password :
SQL: select * from sysroot.alltables;schemaid tableid schemaname tablename
0 302 sysroot systbldsc
0 303 sysroot systbldef
0 304 sysroot systbt
0 308 sysroot syslnk
0 309 sysroot syshgh
0 310 sysroot sysacc
0 104 sysroot krnprocedures
0 105 sysroot krnnodes
0 109 sysroot krnnodegroupnodes
0 301 sysroot systbl
0 305 sysroot systbtatt
0 306 sysroot systbtdef
0 307 sysroot sysusr
0 311 sysroot sysnix
0 312 sysroot sysviw
0 313 sysroot sysviwcol
0 101 sysroot krntables
0 102 sysroot krnfragments
0 103 sysroot krnreplicas
0 106 sysroot krnredundancyunits
0 107 sysroot krnsites
0 108 sysroot krnnodegroupsHADB-I-11930: Selected 22 row(s)
これでHADBの設定は完了です。
管理ドメインが作成され、hastoreというDBがMQの永続ストア用に用意されました。
次回はMQ4.1をこのHADBを永続ストアに利用するように設定してみます。
月曜日 10 15, 2007
本編とはちょっと話がそれてしまいますが、今回は番外編ということで
Java DBに同梱されているDBテーブル定義を確認するためのdblookユーティリティの紹介をしたいと思います。
そのデータベースの中にどのようなテーブルが定義されているのか、カラムの属性は何なのかをお手軽に
チェックするにはもってこいのツールです。(これを使わなくてもシステムカタログを照会すれば情報は収集できます)
以下のコマンドを実行します。
#今回はOpen MQ4.1によってどんなテーブルが作成されているのかをチェックしてみます
C:\software\JavaDB\bin>dblook -d jdbc:derby://localhost:1527/hastore
localhost:1527/hastoreの部分は適宜変更してください
<<ホスト名/IPアドレス>>:<<ポート番号>>/<<データベース名>>
-- タイム・スタンプ: 2007-10-04 12:17:39.431
-- ソース・データベース: hastore
-- 接続 URL: jdbc:derby://localhost:1527/hastore
-- appendLogs: false-- ----------------------------------------------
-- 表用の DDL ステートメント
-- ----------------------------------------------CREATE TABLE "APP"."MQPROP41CMMDEMOHACLUSTER" ("PROPNAME" VARCHAR(100) NOT NULL, "PROPVALUE" VARCHAR (4096) FOR BIT DATA);
CREATE TABLE "APP"."MQCONSTATE41CMMDEMOHACLUSTER" ("MESSAGE_ID" VARCHAR(100) NOT NULL, "CONSUMER_ID" BIGINT NOT NULL, "STATE" INTEGER, "TRANS
CREATE TABLE "APP"."MQCON41CMMDEMOHACLUSTER" ("ID" BIGINT NOT NULL, "CLIENT_ID" VARCHAR(1024), "DURABLE_NAME" VARCHAR(1024), "CONSUMER" VARCH
CREATE TABLE "APP"."MQCREC41CMMDEMOHACLUSTER" ("RECORD" VARCHAR (4096) FOR BIT DATA NOT NULL, "CREATED_TS" BIGINT NOT NULL);
CREATE TABLE "APP"."MQSES41CMMDEMOHACLUSTER" ("ID" BIGINT NOT NULL, "BROKER_ID" VARCHAR(100) NOT NULL, "IS_CURRENT" INTEGER NOT NULL, "CREATE
CREATE TABLE "APP"."MQMSG41CMMDEMOHACLUSTER" ("ID" VARCHAR(100) NOT NULL, "MESSAGE" BLOB(1048576) NOT NULL, "MESSAGE_SIZE" INTEGER, "STORE_SE
CREATE TABLE "APP"."MQDST41CMMDEMOHACLUSTER" ("ID" VARCHAR(100) NOT NULL, "DESTINATION" VARCHAR (2048) FOR BIT DATA NOT NULL, "IS_LOCAL" INTE
CREATE TABLE "APP"."MQBKR41CMMDEMOHACLUSTER" ("ID" VARCHAR(100) NOT NULL, "URL" VARCHAR(100) NOT NULL, "VERSION" INTEGER NOT NULL, "STATE" IN
CREATE TABLE "APP"."MQTXN41CMMDEMOHACLUSTER" ("ID" BIGINT NOT NULL, "TYPE" INTEGER NOT NULL, "STATE" INTEGER, "AUTO_ROLLBACK" INTEGER NOT NUL
CREATE TABLE "APP"."MQVER41CMMDEMOHACLUSTER" ("STORE_VERSION" INTEGER NOT NULL, "LOCK_ID" VARCHAR(100));
-- ----------------------------------------------
-- 索引用の DDL ステートメント
-- ----------------------------------------------CREATE INDEX "APP"."MQTXN41CMMDEMOHACLUSTERIDX1" ON "APP"."MQTXN41CMMDEMOHACLUSTER" ("STORE_SESSION_ID");
CREATE INDEX "APP"."MQMSG41CMMDEMOHACLUSTERIDX1" ON "APP"."MQMSG41CMMDEMOHACLUSTER" ("STORE_SESSION_ID", "DESTINATION_ID");
CREATE INDEX "APP"."MQDST41CMMDEMOHACLUSTERIDX1" ON "APP"."MQDST41CMMDEMOHACLUSTER" ("STORE_SESSION_ID");
CREATE INDEX "APP"."MQCONSTATE41CMMDEMOHACLUSTERIDX1" ON "APP"."MQCONSTATE41CMMDEMOHACLUSTER" ("TRANSACTION_ID");
-- ----------------------------------------------
-- キー用の DDL ステートメント
-- ------------------------------------------------ primary/unique
ALTER TABLE "APP"."MQTXN41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123210480" PRIMARY KEY ("ID");ALTER TABLE "APP"."MQSES41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123209310" PRIMARY KEY ("ID");
ALTER TABLE "APP"."MQMSG41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123210260" PRIMARY KEY ("ID");
ALTER TABLE "APP"."MQDST41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123209950" PRIMARY KEY ("ID");
ALTER TABLE "APP"."MQCON41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123209610" PRIMARY KEY ("ID");
ALTER TABLE "APP"."MQBKR41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123209070" PRIMARY KEY ("ID");
ALTER TABLE "APP"."MQCONSTATE41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123209750" PRIMARY KEY ("MESSAGE_ID", "CONSUMER_ID");
ALTER TABLE "APP"."MQPROP41CMMDEMOHACLUSTER" ADD CONSTRAINT "SQL071002123209450" PRIMARY KEY ("PROPNAME");
This blog copyright 2009 by naokitakemura





