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

留言

這個網誌中的熱門文章

What's New in Ethereum Serenity (2.0)

瑞士滑雪分享2 - 策馬特

動手實做零知識 - circom