OpenMQ broker on Windows
筆記:OpenMQ broker with ssl 與config們
版本:OpenMQ v.4.5 (thread pool is not supported by SSL)
官方會在5.0中讓 SSL support thread pool的管理方式
http://java.net/jira/browse/MQ-252
server side的目錄結構
安裝完OpneMQ後,會在program files下有Sun\MessageQueue的目錄
mq\bin\ ==> 都是broker的相關tool
imqadmin.exe --> admin在用的tool,可以監看connection資訊(東西相當的少)
imqbrokerd.exe --> broker執行檔
imqsvcadmin.exe --> 照doc說法,是把broker註冊成Windows Service(沒用過)
imqkeytool.exe --> 就是gen keystore, certificate用的,我都是用java的keytool
etc\mq\ ==> 預設的password file跟broker搜尋certificate的路徑
var\mq\instances\imqbroker\props\config.properties --> 設定檔都在這喔
var\mq\instances\imqbroker\log\log.txt --> broker的log
一些config
基本上server, client的connection是走jms這個service的,admin是給administrator管理所用的service,也就是只要跟client有關的connection就都是設jms or ssljms
imq.<ServiceName>.max_threads
控制broker開多少個thread去處理connection
ServiceName: jms, ssljms, admin, ssladmin...
imq.<ServiceName>.threadpool_model
broker要用哪種模式去處理connection
dedicated(預設): 一個connection用一個thread
shared:使用thread pool
imq.shared.connectionMonitor_limit
每個thread最多處理幾個connection
imq.passfile.enabled
要不要使用password file 儲存密碼
imq.passfile.name
password file的名稱(只有file name 不是full path),預設路徑:etc\mq\ ,怎麼寫password file的
內容,可參照etc\mq\passfile.sample
imq.keystore.file.name
keystore file的名稱(只有file name 不是full path),預設路徑:etc\mq\
SSL
如果你要走SSL,要照著以下步驟
1. Gen Certificate
參考:http://kimiwublog.blogspot.tw/ 裡的 Gen certificate:
注意!CN name要是host name喔
2. 在config.properties中,增加
imq.service.activelist=jms,admin,ssljms,ssladmin
imq.keystore.file.name=<keystore file name>
imq.jmx.connector.ssljmxrmi.brokerHostTrusted=true
optional: 若把certificate的密碼存到password file 中,需要再設下列參數
imq.passfile.enabled=true
imq.passfile.name=<password file >
我們的應用需要開thread pool來處理connection,所以要再設(4.x shared model不support SSL)
imq.ssljms.threadpool_model=shared
imq.ssljms.max_threads=500
工具:
Java的JConsole是個方便監看broker的好工具,需要安裝JDK
發現:
如果使用OpenMQ installer package裡的vbs做安裝的話,都會裝在Program Files下面(x64平台上也一樣,並不是在Program Files(x86)下),他會去找的JVM也是在Program Files下面,也就是說,broker雖然只有32bit的版本,但裝在64的Windows,一樣會需要64bit的JVM
疑問:
每份document上面都會寫說,用ssl要加imq.ssljms.ssl.port=1756,不過broker實際跑起來的還是default的7676,broker上ssl的port也還是動態產生的,在client建立connection時,用1756還是會連不上。
其實OpenMQ的文件還滿多的,只不過在google上不容易google到,可以參考這裡:http://glassfish.java.net/docs/index.html
ref: http://docs.oracle.com/cd/E18930_01/html/821-2438/aeogb.html#gbnjz
留言
張貼留言