1
0
-1
1 回答
- 210
DBはH2をご利用とのことですが、H2データベースは本番環境は Atlassian サポート対象外です。
H2データベース使用によりアプリケーションのパフォーマンス低下や動作不良を引き起こす可能性もありますので、外部データベースへ移行されることをおすすめいたします。ちなみに、アプリケーションログにはどのようなエラーが出ていますか?
- 小島
ご回答ありがとうございます。
アプリケーションログには下記が出力されています。
2019-08-26 10:12:21,456 WARN [C3P0PooledConnectionPoolManager[identityToken->2yh0ria41gk80xs9d8mx6|3fe59819]-HelperThread-#1] [mchange.v2.resourcepool.BasicResourcePool] log com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@4b301ce6 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: org.h2.jdbc.JdbcSQLException: General error: "java.lang.ArrayIndexOutOfBoundsException" [50000-196] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:168) at org.h2.message.DbException.convert(DbException.java:295) at org.h2.engine.Database.openDatabase(Database.java:307) at org.h2.engine.Database.<init>(Database.java:270) at org.h2.engine.Engine.openSession(Engine.java:64) at org.h2.engine.Engine.openSession(Engine.java:176) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154) at org.h2.engine.Engine.createSession(Engine.java:137) at org.h2.server.TcpServerThread.run(TcpServerThread.java:148) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.ArrayIndexOutOfBoundsException at org.h2.engine.SessionRemote.done(SessionRemote.java:629) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:144) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:453) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:334) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:116) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:100) at org.h2.Driver.connect(Driver.java:69) at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203) at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138) at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125) at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44) at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696) 2019-08-26 10:12:21,456 WARN [C3P0PooledConnectionPoolManager[identityToken->2yh0ria41gk80xs9d8mx6|3fe59819]-HelperThread-#1] [mchange.v2.resourcepool.BasicResourcePool] log Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@4026c8d9 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests. 2019-08-26 10:12:21,456 ERROR [http-nio-8090-exec-10] [engine.jdbc.spi.SqlExceptionHelper] logExceptions Connections could not be acquired from the underlying database! 2019-08-26 10:12:21,457 WARN [http-nio-8090-exec-10] [confluence.impl.vcache.SynchronousExternalCache] lambda$get$11 Failed to read entry from cache 'com.atlassian.bandana.BandanaPersister': Failed due to UNCLASSIFIED_FAILURE 2019-08-26 10:12:21,458 ERROR [http-nio-8090-exec-10] [engine.jdbc.spi.SqlExceptionHelper] logExceptions An SQLException was provoked by the following failure: com.mchange.v2.resourcepool.ResourcePoolException: A ResourcePool cannot acquire a new resource -- the factory or source appears to be down.
- RAB
いただいたログからですと、おっしゃる通りDBに接続できていないエラーのようですね。
以下のエラーが出ていますので、
Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30).
Community にもありますように、<confluence_home>confluence.cfg.xml を編集して
データベース接続プールを60に増やして再起動してみてください。あとは基本的な確認事項ですが、以下ドキュメントに記載の項目に問題がないかご確認ください。
それでも解決しない場合、お手数ですがサポート へ聞いてみてください。
- 小島
再度ご回答ありがとうございます。
confluence.cfg.xml のチューニングや設定の再確認、tomcat(setenv.sh)のチューニングも行いましたが解決できませんでした。
コメントを追加...
Confluenceを利用していますが、ある日突然画面が見れなくなりました。
Webサーバーはnginxと使用していますが、
「504 Gateway Time-out」と表示され、Confluence(tomcat)からnginxにレスポンスが戻ってこない状態です。
何度か試している中で、一度Confluenceの画面が出たのですが、DB接続エラーのメッセージが表示されていました(その際のキャプチャは取れずでした)。
また、catalina.outには下記のログが出力されています。
"H2 TCP Server (tcp://XXX.XXX.XXX.XXX:9092) thread" #114674 prio=5 os_prio=0 tid=0x00007fd1440d4000 nid=0x671a waiting for monitor entry [0x00007fd114c39000]
java.lang.Thread.State: BLOCKED (on object monitor)
バージョンは以下です。
Apache Tomcat/9.0.12
Confluence 6.14.1
なにか原因について思い当たる方はいらっしゃいますでしょうか?