10.3.2. メッセージングジャーナルテーブル名の設定

JBoss EAP 7 メッセージングは、個別の JDBC テーブルを使用してバインディング情報、メッセージ、大容量メッセージ、ページング情報を格納します。これらのテーブルの名前は、サーバー設定ファイルの messaging-activemq サブシステムにある server リソースの journal-bindings-tablejournal-jms-bindings-tablejournal-messages-tablejournal-large-messages-table、および journal-page-store-table 属性を使用して設定できます。

テーブル名にはいくつかの制限があります。

  • JBoss EAP 7 メッセージングでは、TABLE_NAME + GENERATED_ID のパターンでページングテーブルの識別子を生成します。ここで GENERATED_ID は 20 文字まで可能です。Oracle Database 12c ではテーブル名の長さは最大 30 文字であるため、テーブル名を 10 文字に制限する必要があります。これを超えると、ORA-00972: identifier is too long というエラーが表示される可能性があり、ページングが機能しなくなります。
  • Oracle Database 12c のスキーマオブジェクトネーミング規則に準拠しないテーブル名は、二重引用符で囲む必要があります。引用符付きの識別子は任意の文字で開始でき、任意の文字、句読点、スペースを含めることができます。ただし、引用符で囲まれていてもいなくても、識別子に二重引用符またはヌル文字 (\0) を含めることはできません。引用符で囲まれた識別子は、大文字と小文字が区別されることに注意してください。
  • 複数の JBoss EAP サーバーインスタンスが同じデータベースを使用してメッセージを永続化し、データをバインドする場合、テーブル名はサーバーインスタンスごとに一意である必要があります。複数の JBoss EAP サーバーは同じテーブルにアクセスできません。

以下の例は、引用符付き識別子を使用して journal-page-store-table 名を設定する管理 CLI コマンドです。

/subsystem=messaging-activemq/server=default:write-attribute(name=journal-page-store-table,value="\"PAGE_DATA\"")

これにより、サーバー設定ファイルの messaging-activemq サブシステムに以下の設定が作成されます。

<server name="default">
  <journal datasource="MessagingOracle12cDS" journal-page-store-table="&quot;PAGED_DATA&quot;"/>
  ...
</server>