legacy-knowledge-base
公開されました Sep. 10, 2025

読み取り/書き込みデータベース分割構成を使用しようとすると、Liferay の起動ログで Hypersonic が使用中であることが警告されます

written-by

Isaac Wilson

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 読み取り/書き込みデータベース分割を使用する環境をセットアップする場合、Liferay は構成されたデータベースの代わりに Hypersonic (HSQL) を使用しようとするように見えます。起動ログには次のように記載されています。
    WARN  [main][DialectDetector:100] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demonstration purposes. The database settings can be changed in portal-ext.properties.
    INFO [main][DialectDetector:158] Using dialect com.liferay.portal.dao.orm.hibernate.HSQLDialect for HSQL Database Engine 2.3
    INFO [main][DialectDetector:158] Using dialect org.hibernate.dialect.MySQLDialect for MySQL 5.7
  • Hypersonic は本番環境ではサポートされていないため、Liferay が現在この環境で HSQL を使用しているか MySQL を使用しているかを知ることはできますか? /hyperonic ディレクトリが作成されず、起動時にこのログが表示されないようにする構成変更はありますか?

Environment

  • DXP 7.1

解決策

  • /hypersonic ディレクトリが作成されないようにし、HSQL メッセージがログに記録されないようにするには、 jdbc.default.* で始まるプロパティを portal-ext.properties ファイルから削除する代わりに 読み取り/書き込み構成手順を実行します。jdbc.read.* および jdbc.write.* プロパティを追加するときに、そのプロパティ セットをそのまま (コメントなし) にします。したがって、3 つのセットすべてが含まれます。 例:
    jdbc.default.driverClassName=com.mysql.jdbc.Driver
    jdbc.default.url=jdbc:mysql://localhost:port/WriteDatabaseName?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true
    jdbc.default.username=username
    jdbc.default.password=password

    jdbc.read.driverClassName=com.mysql.jdbc.Driver
    jdbc.read.url=jdbc:mysql://localhost:port/ReadDatabaseName?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true
    jdbc.read.username=username
    jdbc.read.password=password

    jdbc.write.driverClassName=com.mysql.jdbc.Driver
    jdbc.write.url=jdbc:mysql://localhost:port/WriteDatabaseName?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true
    jdbc.write.username=username
    jdbc.write.password=password
    ...
  • または、 jdbc.read.* および jdbc.write.* プロパティ がポータルによって取得されると Hypersonic は使用されないため、ログ内の HSQL メッセージは無視できます。 この方法を選択する場合、初めてバンドルを起動するときに、portal-ext.properties ファイル で setup.wizard.enabled=false を設定することをお勧めします。これにより、バンドルがセットアップを起動できなくなります。最初の起動時にウィザードを起動し、その最初の起動の UI 内で「既定のデータベース (Hypersonic)」というメモが表示されます。

追加情報

  • この動作は、 DBInitUtil クラスの現在の設計が原因で観察されます。これは、 jdbc.default.* で始まるポータル プロパティを ( infrastructure-spring.xml ファイルが読み込まれるときに) 明示的に検索します。起動時に (読み取り/書き込み分割を使用する環境の構成済みプロパティ内に必ずしも存在するとは限りません)。 その後すぐに dynamic-data-source-infrastructure-spring.xml 追加で読み込まれると、ポータルは追加の jdbc.read.* および jdbc.write.* プロパティを認識できるようになり、ポータル操作用のこれらのプロパティで定義されたデータベース。
  • これを行う方法はデータベースベンダーによって異なりますが、必要に応じて、読み取りおよび書き込みデータベース (Liferay の外部) の両方でトランザクションログを有効にして、読み取りおよび書き込みトランザクションが関連するそれぞれのデータベースを期待どおりに使用しているかどうかを確認できます。
  • DBInitUtil クラス dynamic-data-source-infrastructure-spring.xml ファイルが追加でチェックされるのを待ってから、ポータルがデフォルトで HSQL に設定されるのを待つために、フィーチャー リクエストが開かれました。ここでフォローできます: LPS-129633

did-this-article-resolve-your-issue

legacy-knowledge-base