先說(shuō)一下硬件和操作系統環(huán)境:
機器:IBM的某型號刀片機,
操作系統:RED HAT LINUX 64bit企業(yè)版
業(yè)務(wù)數據庫:Oracle
WMB6.1,安裝在WMQ6之上,使用DB2 9作為代理數據庫
以上軟件都是安裝在同一臺刀片機上
另外,WMBT6.1安裝在我自己的windows機器上,用于開(kāi)發(fā)MB程序,并遠程部署到服務(wù)器上
按理說(shuō)參考資料應該是放在最后面的,只是我的這些安裝心得都是來(lái)自這些參考資料,為防止我的個(gè)人經(jīng)驗誤導讀者的安裝過(guò)程,所以先列出以下資料。有空慢慢看的話(huà),還是應該以這些官方資料為準
《messagebroker_Configuration_Administration_and_Security》
這本是權威了,除了對應的版本有些舊(WMB 6.0),整體內容還是很詳細的,幾乎所有平臺上的MB安裝、配置都有詳細的介紹。只是內容多得讓人看起來(lái)眼暈。
MB info center
內容和上面那本書(shū)差不多,比較精煉,但如果配置出了問(wèn)題,未必能找到詳細的解答
最后,強烈建議,如果是linux菜鳥(niǎo)(像我這種),趕緊補習一些linux的基本知識,比如環(huán)境變量怎么設置
其實(shí)安裝過(guò)程還是比較簡(jiǎn)單的,先安裝MQ,再安裝MB。MQ比較麻煩一點(diǎn),要用rpm,而MB則帶有一個(gè)Eclipse的安裝界面,和windows上和相似,跟著(zhù)向導走就行了。安裝好之后,會(huì )發(fā)現db2也隨著(zhù)MB一起裝好了
默認安裝路徑(注意大小寫(xiě)):
MB:/opt/ibm/mqsi
DB2:/opt/ibm/db2
紅皮書(shū)上已經(jīng)有詳細說(shuō)明,我就偷個(gè)懶,copy并解釋一下
1. Log on as root.
2. Create a database instance. Use the commands shown here for guidance for the different platforms.
a. On AIX:
/usr/lpp/db2_08_01/instance/db2icrt -u fence_userID username
b. On Linux, Solaris, or HP-UX:
/opt/IBM/db2/V8.1/instance/db2icrt -u fence_userID username
其實(shí),fence_userID 和username我也不太清楚是什么,你可以參考紅皮書(shū),或者找個(gè)db2高手問(wèn)問(wèn)。反正我當時(shí)使用root創(chuàng )建是不行的,一定要選擇其他賬號,比如你自己的用戶(hù)名
3. Log on as username
4. Create a database (in this example called WBRKBKDB) using the following commands (on some platforms, an explicit path name is required). You must insert a space between the starting period and the tilde character in the first command shown here:
. ~/sqllib/db2profile
db2start
db2 create database WBRKBKDB
db2 connect to WBRKBKDB
db2 bind ~/sqllib/bnd/@db2cli.lst grant public CLIPKG 5
重點(diǎn)說(shuō)明的是:. ~/sqllib/db2profile 這句命令,前面要有一個(gè)“.”和空格,否則沒(méi)用。執行了這條命令后,如果你對db2命令不熟悉,可以直接敲入“db2cc”,啟動(dòng)db2的圖形管理界面,在里面創(chuàng )建數據庫,省去了敲命令的麻煩
最后一步,在某些平臺上需要修改db2的DBHEAP屬性,至少900,才能滿(mǎn)足MB運行的需要,否則會(huì )造成性能低下。
由于在64位機器上跑MB,所以ODBC DSN是要32位還是64位是很頭疼的問(wèn)題,因為不同硬件平臺、操作系統的組合都有不同的要求。比如,在windows上是肯定沒(méi)有64bit支持的,而在某些操作系統(貌似是AIX),即使你全部用64bit的產(chǎn)品,也要配置32bit的ODBC。具體的可以參考紅皮書(shū),里面有詳細的列表,在這里我只針對我使用的平臺介紹配置過(guò)程,在此特別聲明,未必適用于讀者的環(huán)境
總體思路:linux的ODBC是通過(guò)一個(gè)配置文件來(lái)描述的,在該配置文件中寫(xiě)入相應的信息,然后在環(huán)境變量中設置 ODBCINI=“配置文件的絕對路徑”
編輯ODBC配置文件
1. 從你的MB安裝目錄下的ODBC64/V5.2 ,拷貝一份樣例配置文件:odbc64.ini,到某個(gè)目錄(比如mqm用戶(hù)的根目錄)
2. 修改該文件。在這里我只保留DB2和ORACLE的DSN,其他的統統刪了
3. 修改你的odbc64.ini的權限:
Ensure that the odbc64.ini file has file ownership of mqm:mqbrkrs and has the same permissions as the supplied sample file.
4. 修改ODBCINI環(huán)境變量指向你的odbc64.ini
5. 修改linux的庫路徑:LD_LIBRARY_PATH,指向db2和oracle的32位和64位odbc鏈接庫的路徑,比如我的配置如下:
LD_LIBRARY_PATH=$ORACLE_BASE/lib32:$DB2_BASE/lib32:$DB2_BASE/lib64:${LD_LIBRARY_PATH}
6. 如前所述,我對使用32還是64bit的DSN也是有點(diǎn)混亂,干脆就把下面兩個(gè)環(huán)境變量也加上,以防萬(wàn)一:
# for MB 64bit execution group
MQSI_LIBPATH64=/opt/ibm/db2/V9.1/lib64:${MQSI_LILPATH64}
# 32bit database lib may be needed
MQSI_LILPATH32=/opt/ibm/db2/V9.1/lib32:${MQSI_LILPATH32}
7. 最后是修改odbc64.ini文件的內容,具體的看書(shū)吧,下面是我的例子:
[ODBC Data Sources]
BRK1_DB=IBM DB2 ODBC Driver
M
###########################################
###### Individual data source stanzas #####
###########################################
# DB2 stanza
[BRK1_DB]
DRIVER=libdb2Wrapper64.so
Description=DB2DB DB2 ODBC Database
Database=BRK1_DB
# Oracle stanza
[OracleDB]
Driver=/opt/ibm/mqsi/6.1/ODBC64/V5.2/lib/UKora22.so
Description=DataDirect 5.2 64bit Oracle Wire Protocol
HostName=192.168.0.110
PortNumber=1521
SID=orcl
CatalogOptions=0
EnableStaticCursorsForLongData=0
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
ProcedureRetResults=1
ColumnSizeAsCharacter=1
##########################################
###### Mandatory information stanza ######
##########################################
[ODBC]
Trace=0 # To turn on ODBC trace set = 1
TraceFile=/var/mqm/log/odbctrace64.out
TraceDll=/opt/ibm/mqsi/6.1/ODBC64/V5.2/lib/odbctrac.so
InstallDir=/opt/ibm/mqsi/6.1/ODBC64/V5.2
UseCursorLib=0
IANAAppCodePage=4
UNICODE=UTF-8
補充幾點(diǎn)注意的地方:
1. DB2的driver是不用路徑的,只寫(xiě)驅動(dòng)名字即可
2. DB2的Database屬性(即是數據庫的名字),要和DSN的名字一樣(即是方括號中的內容)
3. 沒(méi)事不要打開(kāi)trace,會(huì )很慢
準備工作 打開(kāi)一個(gè)終端,運行命令之前,先輸入: . /opt/ibm/mqsi/6.1/bin/mqsiprofile 和前面的db2命令一樣,開(kāi)頭要有“.”和“空格” 你可以把這句話(huà)加到linux用戶(hù)根目錄的“.bashrc”文件,那樣每次打開(kāi)終端都會(huì )自動(dòng)執行這個(gè)腳本,以設置一些環(huán)境變量,否則你是無(wú)法使用MB命令的。 確保MQ和DB2都在運行 可以通過(guò)dspmq查看MQ組件的運行狀態(tài),如果隊列管理器沒(méi)有啟動(dòng),則通過(guò)strmqm命令啟動(dòng)之。 按照前面介紹的方法,利用db2cc圖形界面查看數據庫是否運行,否則啟動(dòng)之;也可以用db2start命令,記得要切換用戶(hù)到你創(chuàng )建db2時(shí)使用的賬號,比如: su db2usr –c “db2start” 創(chuàng )建配置管理器 mqsicreateconfigmgr ConfigMgr -i root -a xxxxx -q QM 創(chuàng )建代理 mqsicreatebroker BRK1 -i root -a xxxxx -q QM -n BRK1_DB -u db2usr -p xxxxx 創(chuàng )建代理時(shí),要指定代理數據庫的DSN名稱(chēng),同時(shí)指定連接ODBC的數據庫用戶(hù)名密碼 如果一切ok,創(chuàng )建好代理后,在db2數據庫中會(huì )看到多了很多表,那基本上就沒(méi)問(wèn)題了 如果出問(wèn)題,通常都是數據庫連接,對照紅皮書(shū)檢查你的ODBC配置(這個(gè)過(guò)程很痛苦),以及訪(fǎng)問(wèn)數據庫的用戶(hù)名、是否擁有足夠權限。實(shí)在不行,找IBM的支持吧….. 以上是連接代理數據庫,如果要連接用戶(hù)的oracle數據庫,請參考我之前寫(xiě)的第六篇筆記,利用這條命令: mqsisetdbparms brokerName -n dataSourceName [-u dataSourceUserId] -p dataSourcePassword 最后用mqsistart啟動(dòng)一下,一切ok的話(huà),就算完成萬(wàn)里長(cháng)征第一步了。 單純安裝好MB還是不夠的,你還要用WMBT開(kāi)發(fā)、部署和調試消息流,有誰(shuí)喜歡坐在風(fēng)扇轟鳴、充滿(mǎn)輻射的機房里coding呢?所以接下來(lái)講述如何配置WMB和WMBT,使得開(kāi)發(fā)者可以遠程連接MB并進(jìn)行調試 在此之前,可以參考這篇文章,實(shí)現遠程管理你的MQ http://blog.csdn.net/Justin4wd/archive/ 首先在MQ中建立監聽(tīng)器和服務(wù)器連接通道,具體請參考我的第三篇筆記 http://blog.csdn.net/wangchengsi/archive/2008/07/08/2625598.aspx 如果MB和WMBT是在同一臺機器,這樣做已經(jīng)足夠了,但如果是遠程連接,直接連接會(huì )報告以下錯誤,則還需要在MB那里配置ACL(訪(fǎng)問(wèn)權限列表) 從上圖可以獲得你的機器名和用戶(hù)名 在linux打開(kāi)一個(gè)終端,輸入以下命令 mqsicreateaclentry 配置管理器 -u 用戶(hù)名 -m 機器名 -x F –p -x F表示訪(fǎng)問(wèn)程度,F表示完全訪(fǎng)問(wèn) -p表示訪(fǎng)問(wèn)Proxy,即ConfigManagerProxy,相當于可以訪(fǎng)問(wèn)所有資源,比如代理 再次從toolkit連接MB,就可以了 之后,開(kāi)發(fā)、部署、調試的過(guò)程都和本地的機器一樣,讀者可以看我之前寫(xiě)的關(guān)于調試功能的配置 注意,6.0以前的MB需要安裝RAC(Rational Agent Controller)才能遠程調試,6.1開(kāi)始已經(jīng)不用了創(chuàng )建MB的運行實(shí)例
WMBT遠程開(kāi)發(fā)、調試

聯(lián)系客服