全ノードにLiferay DXPデータベース(またはデータベースクラスター)を指すデータソースが必要です。よって、Liferay DXPはバンドルに付属されているHQSLデータベースは使用できません。またデータベースサーバーはLiferay DXPが起動しているサーバーとは別のシステム上に配置する必要があります。
Read-Writer型データベースの構成
よりパフォーマンスを重視する場合は、Read-Writer型データベース設定を利用できます。この方法では、読み取り、書き込み専用と2種類のデータソースを割り当てることができます。これにより、データベースインフラストラクチャー1つは読み込み用、もう1つは書き込み用としてを2つに分割して最適化できます。Liferayがサポートする全てのデータベースはレプリケーションをサポートしているので、現在ご使用のデータベースのレプリケーション構造を引き続き利用して、データベースノードを同期することができます。
レプリケーション用にデータベースを構成します。
そして、portal-ext.properties
ファイル内でRead-Writer型のデータベースを有効にします。
-
JNDIを使用していない場合は、デフォルトのデータベース接続プールのプロバイダを
dbcp
、tomcat
またはc3po
に設定します。プロバイダHikariCPは読み書きの分割をサポートしていません。 以下が設定例です:jdbc.default.liferay.pool.provider=dbcp
ポータルJDBCのすべての設定プロパティはここに記載されています。
JNDIを使用するには、手順3に進みます。
-
次に、読み取り用と、書き込み用に個別のデータソースを設定します。
jdbc.read.driverClassName=com.mysql.jdbc.Driver jdbc.read.url=jdbc:mysql://dbread.com/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.read.username=**your user name** jdbc.read.password=**your password** jdbc.write.driverClassName=com.mysql.jdbc.Driver jdbc.write.url=jdbc:mysql://dbreadwrite.com/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.write.username=**your user name** jdbc.write.password=**your password**
-
JDBCデータソースの代わりにJNDIを使用するには、手順2の
*.username
、*.password
プロパティを自分のJNDIユーザー名とパスワードに設定し、次の追加プロパティを設定します。jdbc.read.jndi.name=**your read JNDI name** jdbc.write.jndi.name=**your read-write JNDI name**
-
これを設定して、
default
データソースの使用を避けます。counter.jdbc.prefix=jdbc.write.
dbcp
またはtomcat
データベース接続プールプロバイダを使用している場合は、次のように設定します。jdbc.default.validationQuery= jdbc.read.validationQuery=SELECT releaseId FROM Release_ jdbc.write.validationQuery=SELECT releaseId FROM Release_
これらの設定は問題LPS-64624に関連しています。
-
spring.configs
およびspring.infrastructure.configs
プロパティから、次のSpring設定ファイルのコメントを外して、読み書き可能データベースの設定を有効にします。spring.configs=\ [..] META-INF/dynamic-data-source-spring.xml,\ [..] spring.infrastructure.configs=\ [..] META-INF/dynamic-data-source-infrastructure-spring.xml,\ [..]
Spring構成ポータルのプロパティーはここに記載されています。
次回Liferay DXPを起動するときには、定義した2つのデータソースが使用されます。