Confluence のインストール時に Confluence is vacant エラーが生成される
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
atlassian-confluence.log
と catalina.out.
に次の内容が記録される。
2015-09-09 16:41:24,964 ERROR [http-nio-8090-exec-4] [[Standalone].[localhost].[/].[jsp]] log Servlet.service() for servlet jsp threw exception com.atlassian.confluence.tenant.VacantException: Confluence is vacant, a call to tenanted [public abstract net.sf.hibernate.connection.ConnectionProvider net.sf.hibernate.engine.SessionFactoryImplementor.getConnectionProvider()] is not allowed.
診断
環境
- クリーン インストールを行った Linux オペレーティング システム
ホスト名が IP アドレスに解決されない。これは次のコマンドを実行することで確認できます (マシンのホスト名が
ubuntu
の場合)。$ ping `cat /etc/hostname` ping: unknown host ubuntu
Diagnostic Steps
- クリーンな Linux 仮想マシンをインストールします
- ホスト名を
/etc/hostname
に追加するか、sudo hostname <hostname>
経由で追加します /etc/hosts
にホスト名が存在する場合はそれを取り除き、次の情報のみが残るようにします127.0.0.1 localhost
- 最新の Confluence をインストールします
<confluence_install>/bin/start-confluence.sh
を実行します- ブラウザでホームページを開きます
- [Trial version] を選択します
- [No add-ons] を選択します
- トライアル用のライセンス キーを入力します
この時点でログにエラーが記録されます。外部データベースが利用されている場合や他のオプションが提供されている場合はエラーとともに他のクラスが表示されます。ただし、Confluence is vacant
は一貫して記録されます。
原因
ホスト名が IP アドレスに解決されない。
ソリューション
この問題は、ホスト名を IP アドレスに解決できるようにすることで修正できます。
Do one of the following:
/etc/hosts
を編集してホスト名を追加します127.0.0.1 localhost <hostname>
DNS にホスト名を追加します
ホスト名が IP アドレスに解決されるのを確認するには、ホスト名 (ここでは ubuntu
) を ping します。
$ ping `cat /etc/hostname`
PING ubuntu (127.0.1.1) 56(84) bytes of data.
64 bytes from somepc (127.0.1.1): icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from somepc (127.0.1.1): icmp_seq=2 ttl=64 time=0.041 ms
その他の注意事項
エラーが次のようになる場合があります。
2018-03-06 15:42:15,612 ERROR [http-nio-6641-exec-3] [[Standalone].[localhost].[/c641].[noop]] log Servlet.service() for servlet [noop] in context with path [/c641] threw exception
com.atlassian.confluence.tenant.VacantException: Confluence is vacant, a call to tenanted [public abstract org.hibernate.Session org.hibernate.SessionFactory.getCurrentSession() throws org.hibernate.HibernateException] is not allowed.
Which just shows that Confluence is unable to connect to its database. Further analysis of the atlassian-confluence.log
will highlight other reasons for this error.
This error can also appear if the encoding of the database is not set correctly. If you suspect that this is the case, check the documentation for your database system: