1
0
-1

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


なにか原因について思い当たる方はいらっしゃいますでしょうか?


    Commentコメントを追加...

    1 回答

    1.  
      2
      1
      0

      DBはH2をご利用とのことですが、H2データベースは本番環境は Atlassian サポート対象外です。
      H2データベース使用によりアプリケーションのパフォーマンス低下や動作不良を引き起こす可能性もありますので、外部データベースへ移行されることをおすすめいたします。

      ちなみに、アプリケーションログにはどのようなエラーが出ていますか?

      1. 小島

        ご回答ありがとうございます。


        アプリケーションログには下記が出力されています。


        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.
      2. 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に増やして再起動してみてください。

        あとは基本的な確認事項ですが、以下ドキュメントに記載の項目に問題がないかご確認ください。


        それでも解決しない場合、お手数ですがサポート へ聞いてみてください。

      3. 小島

        再度ご回答ありがとうございます。

        confluence.cfg.xml のチューニングや設定の再確認、tomcat(setenv.sh)のチューニングも行いましたが解決できませんでした。

      Commentコメントを追加...