9.3.3. JDBCCacheLoader


JBossCache は、 ノードのステートをリレーショナルデータベースに保存およびロードする JDBC ベースのキャッシュローダー実装と配布されます。 実装クラスは org.jboss.cache.loader.JDBCCacheLoader です。
現在の実装は 1 つのテーブルしか使用しません。テーブルの各行は 1 つのノードを表し、 3 つの列を含みます。
  • Fqn の列 (1 次キー列でもある)
  • ノードの内容の列 (属性と値のペア)
  • Fqn の列
Fqn は文字列として保存されます。 ノードの内容は BLOB として保存されます。

警告

JBoss Cache では Fqn で使用されるオブジェクトのタイプに制限がありませんが、 このキャッシュローダー実装では Fqn にタイプ java.lang.String のオブジェクトのみが含まれる必要があります。 Fqn の長さも制限があります。 Fqn は 1 次キーであるため、 デフォルトの列タイプは、 使用するデータベースによって決められる最大長までのテキスト値を保存できる VARCHAR になります。
特定のデータベースシステムの設定については、 この wiki ページ を参照してください。

9.3.3.1. JDBCCacheLoader の設定

9.3.3.1.1. テーブルの設定
テーブルと列の名前、および列タイプは以下のプロパティで設定できます。
  • cache.jdbc.table.name - テーブル名です。 {schema_name}.{table_name} のように、 テーブルのスキーマ名を先頭に追加することができます。 デフォルト値は「jbosscache」です。
  • cache.jdbc.table.primarykey - テーブルの 1 次キーの名前。デフォルト値は、「jbosscache_pk」です。
  • cache.jdbc.table.create - true または false を設定できます。 起動時にテーブルを作成するかどうかを指定します。 true の場合、 テーブルが存在しないと作成されます。デフォルト値は true です。
  • cache.jdbc.table.drop - true または false を設定できます。シャットダウン時にテーブルを破棄するかどうかを指定します。デフォルト値は true です。
  • cache.jdbc.fqn.column - FQN の列名。デフォルト値は「fqn」です。
  • cache.jdbc.fqn.type - FQN の列タイプ。デフォルト値は「varchar(255)」です。
  • cache.jdbc.node.column - ノード内容の列名。デフォルト値は「node」です。
  • cache.jdbc.node.type - ノード内容の列タイプ。デフォルト値は「blob」です。このタイプは使用するデータベースに対して有効なバイアンリデータタイプを指定する必要があります。
9.3.3.1.2. DataSource
管理された環境 (アプリケーションサーバーなど) で JBossCache を使用する場合は、使用する DataSource の JNDI 名を指定します。
  • cache.jdbc.datasource - DataSource の JNDI 名。 デフォルト値は java:/DefaultDS です。
9.3.3.1.3. JDBC ドライバ
DataSource を使用しない場合は、JDBC ドライバを使用してデータベースアクセスを設定する以下のプロパティを持ちます。
  • cache.jdbc.driver - 完全修飾 JDBC ドライバ名
  • cache.jdbc.url - データベースに接続する URL
  • cache.jdbc.user - データベースに接続するユーザー名
  • cache.jdbc.password - データベースに接続するパスワード
9.3.3.1.4. c3p0 接続プーリング
JBoss Cache は、 c3p0:JDBC DataSources/Resource Pools ライブラリをスタンドアロンで使用しているアプリケーションサーバー外部で実行している場合に JDBC 接続プーリングを実装します。 有効にするには、 次のプロパティを編集します。
  • cache.jdbc.connection.factory - 接続ファクトリクラス名。 設定されていない場合、 標準のプールされていない実装がデフォルトとなります。 c3p0 プーリングを有効にするには、 c3p0 の接続ファクトリクラスを設定します。 次の例を参照してください。
同じキャッシュローダープロパティのセクションに任意の c3p0 パラメータを設定することも可能ですが、 必ずプロパティ名の先頭に「c3p0」を付けるようにしてください。 使用できるプロパティの一覧を検索するには、 c3p0:JDBC DataSources/Resource Pools に配布される c3p0 ライブラリバージョン向けの c3p0 ドキュメントを確認してください。 異なるプーリングパラメータを簡単に試せるようにするため、 -Dc3p0.maxPoolSize=20 のように JBoss Cache XML 設定ファイルのプロパティにある値を上書きし、 システムプロパティよりこれらのプロパティを設定することができます。 c3p0 プロパティが設定ファイルとシステムプロパティのいずれにも定義されていない場合、 c3p0 ドキュメントに記載されているデフォルト値が適用されます。
9.3.3.1.5. 設定例
以下はデータベースとして Oracle を使用した JDBCCacheLoader の例です。 CacheLoaderConfiguration XML 要素には、 データベース関連の設定を定義する任意のプロパティセットが含まれます。
<loaders passivation="false" shared="false">
      <preload>
         <node fqn="/some/stuff"/>
      </preload>
      <!-- if passivation is true, only the first cache loader is used; the rest are ignored -->
      <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="true"
              ignoreModifications="false" purgeOnStartup="false">
         <properties>
            cache.jdbc.table.name=jbosscache
            cache.jdbc.table.create=true
            cache.jdbc.table.drop=true
            cache.jdbc.table.primarykey=jbosscache_pk
            cache.jdbc.fqn.column=fqn
            cache.jdbc.fqn.type=VARCHAR(255)
            cache.jdbc.node.column=node
            cache.jdbc.node.type=BLOB
            cache.jdbc.parent.column=parent
            cache.jdbc.driver=oracle.jdbc.OracleDriver
            cache.jdbc.url=jdbc:oracle:thin:@localhost:1521:JBOSSDB
            cache.jdbc.user=SCOTT
            cache.jdbc.password=TIGER
          </properties>
      </loader>
  </loaders>
全体の JDBC 接続を設定する代わりに、既存のデータソースの名前を指定できます。
 <loaders passivation="false" shared="false">
      <preload>
         <node fqn="/some/stuff"/>
      </preload>
      <!-- if passivation is true, only the first cache loader is used; the rest are ignored -->
      <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="true"
              ignoreModifications="false" purgeOnStartup="false">
         <properties>
            cache.jdbc.datasource=java:/DefaultDS
         </properties>
      </loader>
  </loaders>
c3p0 JDBC 接続プーリングを使用したキャッシュローダーの設定例:
 <loaders passivation="false" shared="false">
      <preload>
         <node fqn="/some/stuff"/>
      </preload>
      <!-- if passivation is true, only the first cache loader is used; the rest are ignored -->
      <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="true"
              ignoreModifications="false" purgeOnStartup="false">
         <properties>
            cache.jdbc.table.name=jbosscache
            cache.jdbc.table.create=true
            cache.jdbc.table.drop=true
            cache.jdbc.table.primarykey=jbosscache_pk
            cache.jdbc.fqn.column=fqn
            cache.jdbc.fqn.type=VARCHAR(255)
            cache.jdbc.node.column=node
            cache.jdbc.node.type=BLOB
            cache.jdbc.parent.column=parent
            cache.jdbc.driver=oracle.jdbc.OracleDriver
            cache.jdbc.url=jdbc:oracle:thin:@localhost:1521:JBOSSDB
            cache.jdbc.user=SCOTT
            cache.jdbc.password=TIGER
            cache.jdbc.connection.factory=org.jboss.cache.loader.C3p0ConnectionFactory
            c3p0.maxPoolSize=20
            c3p0.checkoutTimeout=5000
         </properties>
      </loader>
   </loaders>
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る