12.4. 永続データソースの設定

Data Grid を使用すると、キャッシュに保存されているデータをデータソースに永続化できます。Red Hat Data Grid for OpenShift には、以下の 2 種類のデータソースがあります。

  • OpenShift で実行される内部データソース。これらのデータソースは Red Hat Container Registry から入手でき、追加の環境ファイルを設定する必要はありません。

    注記

    内部データソースには、PostgreSQL、MySQL、および MongoDB が含まれます。ただし、現在、Red Hat Data Grid for OpenShift は PostgreSQL と MySQL のみをサポートしています。

  • OpenShift で実行されない外部データソース。これらの外部データソースは、OpenShift のシークレットに追加する環境ファイルで設定する必要があります。

12.4.1. 内部データソースの設定

DB_SERVICE_PREFIX_MAPPING 環境変数は、内部データソースの JNDI マッピングを定義します。

複数の JNDI マッピングを、DB_SERVICE_PREFIX_MAPPING 環境変数のコンマ区切りの値として定義できます。Data Grid for OpenShift イメージのを実行すると、起動スクリプトは JNDI マッピングごとに個別のデータソースを作成します。次に、Data Grid for OpenShift は各データソースを自動的に検出します。

JNDI マッピングを定義するには、以下の形式で環境変数の値を指定します。

${POOL_NAME}-${DATABASE_TYPE}=${PREFIX}

  • ${POOL_NAME} はデータソースの pool-name 属性です。簡単に識別でき、分かりやすい英数字値を使用します。この値には特殊文字を使用できません。同様に、値には小文字以外は使用できません。
  • ${DATABASE_TYPE} は使用するデータベースドライバーを指定します。同様に、値には小文字以外は使用できません。

    注記

    {$DATABASE_TYPE} でサポートされる値は mysql および postgresql のみです。

  • ${PREFIX} は、データソースを設定する環境変数の名前に使用します。

12.4.1.1. 単一データソースの例

test-postgresql=TESTDB_SERVICE_PREFIX_MAPPING 環境変数の値として指定すると、次の名前でデータソースが作成されます。

java:jboss/datasources/test_postgresql

データソースの他の環境変数を指定する場合は、TESTプレフィックスを使用する必要があります。たとえば、ユーザー名とパスワードを設定するには、TEST_USERNAMETEST_PASSWORD を環境変数として使用します。

12.4.1.2. 複数のデータソースの例

cloud-postgresql=CLOUD,test-mysql=TEST_MYSQLDB_SERVICE_PREFIX_MAPPING 環境変数の値として指定すると、以下の名前で 2 つのデータソースが作成されます。

  • java:jboss/datasources/test_mysql
  • java:jboss/datasources/cloud_postgresql

データソースの他の環境変数を指定する場合には、TEST_MYSQL プレフィックスを使用して MySQL データソースを設定する必要があります。たとえば、TEST_MYSQL_USERNAME を環境変数として使用し、ユーザー名を指定します。

同様に、CLOUD プレフィックスを使用して PostgreSQL データソースを設定する必要があります。たとえば、CLOUD_USERNAME を環境変数として使用し、ユーザー名を指定します。