データソース接続を設定する
新規の Confluence インストール
Confluence セットアップ ウィザードは、Tomcat 構成でデータベースを検出した場合にデータソースを使用するオプションのみを提供します。データソースを使用したい場合は、次の手順に従います。
1. Confluence を停止します
Confluence セットアップ ウィザードで、データベースを選択するようにプロンプトが出されます。この時点で、以下を実行します。
- Confluence を停止します。
- 変更を元に戻す場合に備えて、次のファイルをバックアップします。
<installation-directory>/conf/server.xml
<installation-directory>/confluence/WEB-INF/web.xml
<home-directory>/confluence.cfg.xml
2. データベース ドライバーを追加する
データベース ドライバを <installation-directory>/lib
ディレクトリにコピーします。
以下は、ご使用のデータベースのドライバーがある場所です。
- PostgreSQL: Confluence にバンドル (
<installation-directory>/confluence/WEB-INF/lib/postgresql-x.x.x.jar
) - Microsoft SQL Server: Confluence にバンドル (
<installation-directory>/confluence/WEB-INF/lib/mssql-jdbc-x.x.x.x.jar
) - MySQL: データベース JDBC ドライバーに進み、ドライバーをダウンロードします。
- Oracle: データベース JDBC ドライバーに進み、ドライバーをダウンロードします。
3. Tomcat でデータソースを設定する
次に、データソース設定を Tomcat に追加します。
<installation-directory>/conf/server.xml
を編集します。
以下の行を見つけます。
<Context path="" docBase="../confluence" debug="0" reloadable="true"> <!-- Logger is deprecated in Tomcat 5.5. Logging configuration for Confluence is specified in confluence/WEB-INF/classes/log4j.properties -->
利用しているデータベースに対応した次のデータソース
Resource
要素を、上記の行の直後 (Context
要素内で、<Context.../>
行の開始直後、Manager)
の前)に挿入します。<database-user>
、<password>
、<host>
、<database-name>
(Oracle の場合は<SID>
) をご利用のデータベースの詳細と置き換えます。データベース サーバーが既定のポートで実行されていない場合は、ポートの変更も必要になる場合があります。接続プールおよびその他のプロパティを設定します。詳細は、「Apache Tomcat 9 データソースドキュメント」を参照してください。
- 共同編集を使用する場合は、以下を確認する必要があります。
- サポートされているデータベース ドライバを使用していること。サポートされていないドライバやカスタム JDBC ドライバを使用している場合、またはデータソースで
driverClassName
を使用している場合、共同編集は失敗します。サポートされているドライバの一覧については、「データベース JDBC ドライバ」を参照してください。 - データベース接続プールは、Confluence と Synchrony の両方をサポートできる十分な接続数を許可する (既定値は最大プールサイズの 15)。
- データベースには、単純なユーザー名およびパスワード認証を使用している。
- サポートされているデータベース ドライバを使用していること。サポートされていないドライバやカスタム JDBC ドライバを使用している場合、またはデータソースで
4.Confluence Web アプリケーションを設定する
次のデータソースを使用するように Confluence を設定します。
を編集します。<CONFLUENCE_INSTALLATION>/
confluence/WEB-INF/web.xml- ファイルの末尾の近くで、
</web-app>
の直前に次の要素を挿入します。
<resource-ref>
<description>Connection Pool</description>
<res-ref-name>jdbc/confluence</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
5. Confluence を再起動してセットアップ プロセスを続行する
これでデータソースが設定されたので、セットアップ ウィザードを続行できます。
- Confluence を起動します。
http://localhost:8090
に進み、セットアップ ウィザードに戻ります。- プロンプトが出されたら、独自データベース (データソース) を選択します。
- データソースの JNDI 名を入力します (例:
java:comp/env/jdbc/confluence
)。 - プロンプトに従って、Confluence のセットアップを完了します。
6. データソースを更新して自動コミットをオフにする
Confluence が起動していて稼働していることを確認したら、ページ編集の既知の問題を回避するために最終的な変更をデータソースに加える必要があります。 - CONFSERVER-59524課題情報を取得中... ステータス をご参照ください。
- Confluence を停止します。
<installation-directory>/conf/server.xml
を編集します。次のパラメーターをデータソースの Resource 要素に追加します。
defaultAutoCommit="false"
- Confluence を起動します。
- これをすべてのクラスター ノードで繰り返します。
既存の Confluence のインストール
JDBC 直接接続からデータソースへ切り替える場合:
- Confluence を停止します。
- 変更を元に戻す場合に備えて、次のファイルをバックアップします。
<installation-directory>/conf/server.xml
<installation-directory>/confluence/WEB-INF/web.xml
<home-directory>/confluence.cfg.xml
- 上記ステップの説明に従って、データベース ドライバーを
<installation-directory>/lib
ディレクトリにコピーします。現在のデータベース接続に関する詳細は、<home-directory>/confluence.cfg.xml
をご確認ください。
<installation-directory>/conf/server.xml
を編集して、次のDataSource
Resource 要素を特定のデータベース (Context
要素内で<Context.../>
行の開始直後、Manager
の前) に挿入します。<database-user>
、<password>
、<host>
、<database-name>
(Oracle の場合は<SID>
) をご利用のデータベースの詳細と置き換えます。データベース サーバーが既定のポートで実行されない場合は、ポートも変更する必要が生じる場合もあります。
ファイルを編集して、<home-directory>/
confluence.cfg.xmlhibernate
で始まるプロパティを含むすべての行を削除します。
<properties>
セクションの先頭に以下を挿入します。- Confluence を起動します。
データソースと共に Confluence をアップグレードする
Confluene をアップグレードする場合 (手動またはインストーラーを使用)、以下を実行する必要があります。
- Confluence を停止します (起動している場合)。
- データベース ドライバを
<installation-directory>/lib
ディレクトリにコピーします。 <installation-directory>/conf/server.xml
を編集してデータソース リソースを追加します。<installation-directory>/confluence/WEB-INF/web.xml
を編集して、このデータソースを使用するように Confluence を設定します。
これらの手順を忘れると、Confluence はアップグレード後に起動せず、次のエラーが表示されます。
HTTP Status 500 - Confluence is vacant, a call to tenanted [public abstract org.hibernate.Session org.hibernate.SessionFactory.getCurrentSession() throws org.hibernate.HibernateException] is not allowed.
既知の問題
- ログに多数の
ContentUpdatedEvent
エラーがある場合は、defaultAutoCommit="false"
をserver.xml
ファイルのデータソースに追加する必要が生じることがあります。詳細と完全な回避策については、 - CONFSERVER-59524課題情報を取得中... ステータス をご参照ください。 - Confluence がデータソースを使用してデータベースに接続されている場合、Synchrony が起動しないという問題が起こることが確認されています。詳細と回避策については、 - CONFSERVER-60120課題詳細を取得中... ステータス を参照してください。
- Oracle を Native Network Encryption で実行すると、Confluence が応答しなくなることがあるという既知の問題があります。詳細については、Getting issue details... (課題情報を取得中...) STATUS をご参照ください。「データベースへの接続に大きな遅延が発生しているために Confluence が応答しない」では、推奨される軽減戦略をご覧いただけます。