データソース接続を設定する

このガイドでは、JNDI データソース接続をデータベースに設定する方法を説明します。この種の接続では、Confluence はアプリケーション サーバー (Tomcat) にユーザーのデータベース接続情報を問い合わせます。

JDBC 接続を使用したい場合は、ご使用のデータベースのガイドを参照してください。

Confluence のアップグレード時には、Confluence をデータベースに接続する方法としてダイレクト JDBC が最も一般的で、最も簡単です。 

このページの内容:

関連ページ:

新規の Confluence インストール

Confluence セットアップ ウィザードは、Tomcat 構成でデータベースを検出した場合にデータソースを使用するオプションのみを提供します。データソースを使用したい場合は、次の手順に従います。 

1.Confluence を停止します

Confluence セットアップ ウィザードで、データベースを選択するようにプロンプトが出されます。この時点で、以下を実行します。

  1. Confluence を停止します
  2. 変更を元に戻す場合に備えて、次のファイルをバックアップします。
    • <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 に追加します。 

  1. <installation-directory>/conf/server.xml を編集します。
  2. 以下の行を見つけます。

    <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 -->
  3. 利用しているデータベースに対応した次のデータソース Resource 要素を、上記の行の直後 (Context 要素内で、<Context.../> 行の開始直後、Manager) の前)に挿入します。

    PostgreSQL...
    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
        username="<database-user>"
        password="<password>"
        driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://<host>:5432/<database-name>"
        maxTotal="60"
        maxIdle="20"
        validationQuery="select 1"/>  
    Microsoft SQL Server...
    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
        username="<database-user>"
        password="<password>"
       driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
        url="jdbc:sqlserver://<host>:1433;database=<database-name>"
        maxTotal="60"
        maxIdle="20"
        validationQuery="select 1"/>

    Confluence 6.3 以前を使用している場合、SQL Server 用に jTDS ドライバーを指定する必要があります。サンプル構成については、6.3 ドキュメントの「Apache Tomcat で SQL Server データソースを設定する」を参照してください。

    MySQL...
    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
        username="<database-user>"
        password="<password>"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://<host>:3306/<database-name>?useUnicode=true&amp;characterEncoding=utf8"
        maxTotal="60"
        maxIdle="20"
        defaultTransactionIsolation="READ_COMMITTED"
        validationQuery="Select 1"/>
    Oracle...
    <Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.OracleDriver"
        url="jdbc:oracle:thin:@<host>:1521:<SID>"
        username="<database-user>"
        password="<password>"
        connectionProperties="SetBigStringTryClob=true"
    	accessToUnderlyingConnectionAllowed="true"
        maxTotal="60"
        maxIdle="20"
        maxWaitMillis="10000"/>

    Oracle URL の検索方法」を参照してください。 


    <database-user><password><host> および <database-name> (Oracle の場合は <SID>) をご使用のデータベースの詳細と置き換えます。データベース サーバーが既定のポートで実行されていない場合は、ポートも変更する必要がある場合もあります。 

  4. 接続プールおよびその他のプロパティを設定します。詳細は、「Apache Tomcat 8 データソース ドキュメント」を参照してください。

    設定可能なプロパティ...

    以下は、Tomcat の標準のデータソース リソース ファクトリ (org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory) の設定プロパティです。

    • driverClassName – 使用される JDBC ドライバの完全修飾 Java クラス名。
    • maxTotal - このプールから同時に割り当てることができる、アクティブ インスタンスの最大数。
    • maxIdle – このプールで同時にアイドル可能なコネクションの最大数。
    • maxWaitMillis — 利用可能なコネクションが存在しない場合、例外をスローするまでにコネクションの返却をプールが待機する最大時間 (ミリ秒)。
    • password – JDBC ドライバに渡されるデータベースのパスワード。
    • url - JDBC ドライバに渡される接続 URL (後方互換性のため、プロパティの driverName も認識されます)。
    • user – JDBC ドライバに渡されるデータベース ユーザー名。
    • validationQuery – コネクションがアプリケーションに戻される前にプールでコネクションの検証に使用できる SQL クエリ。指定する場合、クエリは 1 つ以上の行を返す SQL SELECT 文である必要があります。データベース サーバーのリブートまたはネットワーク障害の発生時、コネクション プールのすべてのコネクションは切断されます。この場合、通常はアプリケーション サーバーのリブートが必要になります。しかし、Tomcat が使用する Commons DBCP (データベース コネクション プール) は、接続を割り当てる前に単純な SQL クエリを実行して、コネクションを検証できます。切断されたコネクションが検出された場合、それを置き換える新しいコネクションが作成されます。これを実行するには、データベース コネクション プールで "validationQuery" オプションを設定する必要があります。
  5. 共同編集を使用する場合は、以下を確認する必要があります。
    • サポートされているデータベース ドライバを使用していること。サポートされていないドライバやカスタム JDBC ドライバを使用している場合、またはデータソースで driverClassName を使用している場合、共同編集は失敗します。サポートされているドライバの一覧については、「データベース JDBC ドライバ」を参照してください。
    • データベース接続プールは、Confluence と Synchrony の両方をサポートできる十分な接続数を許可する (既定値は最大プールサイズの 15)。
    • データベースには、単純なユーザー名およびパスワード認証を使用している。  

4.Confluence Web アプリケーションを設定する

次のデータソースを使用するように Confluence を設定します。

  1. <CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml を編集します。
  2. ファイルの末尾の近くで、</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 を再起動してセットアップ プロセスを続行する

これでデータソースが設定されたので、セットアップ ウィザードを続行できます。 

  1. Confluence を起動します
  2. http://localhost:8090 に進み、セットアップ ウィザードに戻ります。 
  3. プロンプトが出されたら、独自データベース (データソース) を選択します。
  4. データソースの JNDI 名を入力します (例: java:comp/env/jdbc/confluence)。
  5. プロンプトに従って、Confluence のセットアップを完了します。 

既存の Confluence のインストール

JDBC 直接接続からデータソースへ切り替える場合:

  • Confluence を停止します。
  • 変更を元に戻す場合に備えて、次のファイルをバックアップします。
    • <installation-directory>/conf/server.xml
    • <installation-directory>/confluence/WEB-INF/web.xml
    • <home-directory>/confluence.cfg.xml
  • 上記の手順に従って、新しいインストールを実行し、ドライバをコピーしてデータソースを適切なファイルに追加します。現在のデータベース コネクションの詳細は、<home-directory>/confluence.cfg.xml で確認できます
  • <home-directory>/confluence.cfg.xml ファイルを編集し、hibernate で始まるプロパティを含むすべての行を削除します。

  • <properties>  セクションの先頭に以下を挿入します。

    PostgreSQL...
    <property name="hibernate.setup"><![CDATA[true]]></property>
    <property name="hibernate.dialect"><![CDATA[net.sf.hibernate.dialect.PostgreSQLDialect]]></property>
    <property name="hibernate.connection.datasource"><![CDATA[java:comp/env/jdbc/confluence]]></property>
    
    Microsoft SQL Server...
    <property name="hibernate.setup"><![CDATA[true]]></property>
    <property name="hibernate.dialect"><![CDATA[net.sf.hibernate.dialect.SQLServerIntlDialect]]></property>
    <property name="hibernate.connection.datasource"><![CDATA[java:comp/env/jdbc/confluence]]></property>
    
    MySQL...
    <property name="hibernate.setup"><![CDATA[true]]></property>
    <property name="hibernate.dialect"><![CDATA[com.atlassian.hibernate.dialect.MySQLDialect]]></property>
    <property name="hibernate.connection.datasource"><![CDATA[java:comp/env/jdbc/confluence]]></property>
    
    Oracle...
    <property name="hibernate.setup"><![CDATA[true]]></property>
    <property name="hibernate.dialect"><![CDATA[com.atlassian.confluence.impl.hibernate.dialect.OracleDialect]]></property>
    <property name="hibernate.connection.datasource"><![CDATA[java:comp/env/jdbc/confluence]]></property>
    
  • 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.
最終更新日 2018 年 9 月 20 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.