5.8. JMS ユーザーマネージャーの設定
JMS User Manager は事前設定したクライアント ID をユーザーにマッピングします。設定したログインモジュールに応じてユーザーとロールのテーブルの管理も行います。
JMSUserManager の設定例は以下のとおりです。
<mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
name="jboss.messaging:service=JMSUserManager"
xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
<depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
<depends optional-attribute-name="TransactionManager">
jboss:service=TransactionManager
</depends>
<attribute name="DataSource">java:/DefaultDS</attribute>
<attribute name="CreateTablesOnStartup">true</attribute>
<attribute name="SqlProperties">
CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL,
PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128),
PRIMARY KEY(USER_ID)) ENGINE = INNODB
CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL,
USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
ENGINE = INNODB
SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
POPULATE.TABLES.1=INSERT INTO JBM_USER (USER_ID,PASSWD,CLIENTID)
VALUES ('jdoe','jdoepw','jdoe-id')
</attribute>
</mbean>
5.8.1. JMSUserManager MBean 属性
- CreateTablesOnStartup
- JMS ユーザーマネージャーが起動時にテーブル(およびインデックス)の作成を試行するようにするには、これを
trueに設定します。テーブルまたはインデックスが既に存在している場合は、SQLExceptionは JDBC ドライバーによって送出されますが、永続マネージャーはこれを無視するためその動作は継続します。デフォルトでは、CreateTablesOnStartup属性の値はtrueに設定されています。 - UsingBatchUpdates
- データベースが JDBC バッチ更新に対応している場合は、これを
trueに設定します。JDBC 永続マネージャーは、バッチ内のデータベースアップデートを複数まとめ、パフォーマンスを向上します。デフォルトでは、UsingBatchUpdates属性の値はfalseに設定されています。 - SQLProperties
- 特定のデーターベースの DDL と DML を指定します。特定の DDL や DML ステートメントがオーバーライドされていない場合は、デフォルトの Hypersonic 設定がそのステートメントに使用されます。デフォルトユーザーとロールのデータをここでも指定可能です。挿入データは、上記の例のように
POPULATE.TABLESで開始するプロパティー名で指定する必要があります。
Database Connection Retry パラメーターは、接続失敗が検出された場合接続を再確立するか、何度再接続を試みるか、接続再試行の間隔はどの程度かを制御します。
- RetryOnConnectionFailure
- MBean がデータベースへの再接続を試行すべきか指定します。デフォルト値は
falseです。 - MaxRetry
- DataSource 接続失敗の上限を指定します。デフォルトは
25です。パラメーターを-1に設定し、「Retry forever」モードを有効にします。このパラメーターはRetryOnConnectionFailureがtrueに設定されている場合有効です。重要
クラスター化されたデスティネーションからメッセージをコンシュームするクライアントは、クローズされると応答しなくなります。これは、ノードのMaxRetry値が-1に設定されている場合に発生し、データベースへの接続が失われます。この問題を回避するには、ノードのMaxRetryパラメーターを-1よりも大きな値に設定してください。[database]-persistence-service.xmlファイルにあるPersistenceManager、PostOffice、JMSUserManagerMBeanの属性値を設定してください。 - RetryInterval
- 連続する再試行の間隔を指定します。デフォルトは、1000 (ミリ秒) となっています。このパラメーターは、
RetryOnConnectionFailureがtrueに設定されている場合に有効です。