2017-02-05 7 views
1

私は最近2.5を再生するようにアップグレードしました。私が突然Webアプリケーションのページにアクセスできないときにシステムがビジー状態になるまで(別のスレッドで)レポートを生成するまで、すべてが機能します。ログにエラーはありません。プレイ2.3.8バージョンは、同じ環境/負荷の下でうまく動作します。私は以下のリストのユーザーの場合と同様に、デッドボルトを削除して解決策が見つからない場合、問題を解決するかどうかを確認しません。 TIAPlay 2.5アプリケーション(deadbolt?)が応答しなくなる

デッドボルト2.5.4 「PLAY-authenticate_2.11を」%「0.8.1」

私は他のユーザーのカップルが同様の問題を持っていたし、それを解決するために、デッドボルトを削除する必要がありました参照してください。

Play 2.5 application requests hang

Play framework [2.5.0 java] - Blocked netty-event-loop threads resulting in timeout

('17 2月8日)には2台の生産マシン上で失敗したので、私はまだ、この問題に取り組んでいますが、まだ2台の開発マシン上で動作します。開発マシンは物理的で、若干新しいJavaバージョンを持っています。本番マシンは仮想であり、Javaビルド1.8.0_66を実行します。この問題を解決したら、スレッドプールのチューニングを行います。私は2つのソリューションを投稿しました。どちらも2つの開発マシン(Java> 1.8.0_66の物理マシン)で動作しました。

詳細については、https://www.coalliance.org/play-25-upgradeを参照してください。

+0

を、デッドボルトは 'HttpExecution.dを使用していますefaultContext() 'を実行コンテキストとして使用します。独自の 'DeadboltExecutionContextProvider'実装を記述してカスタムスレッドプールを使用し、それをモジュールにバインドする場合、Deadboltは代わりにそれを使用します。私に教えてもらえますか?スレッドプールの設定に関する詳細はこちら[https://www.playframework.com/documentation/2.5.x/ThreadPools#Many-specific-thread-pools] –

+0

デフォルトのスレッドプール設定は、Play 2.3と2.4の間で変更されています。あなたはこれの副作用を見ているかもしれません。詳細については、[here](https://playframework.com/documentation/2.5.x/Migration24#thread-pool-configuration)を参照してください。 –

+1

あなたの返事をありがとう、私はあなたが提案し、あなたに知らせるようにします。 – Chet

答えて

0

私は私の場合、アプリは、このエラーの後に応答しなくなった、同様の問題を持っていた:

PersistenceException: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms. 

私はそれが遊び認証からTokenActionクラスのEbeanの静的な使用法に問題だったが分かりましたこれに

public static void deleteByUser(final User u, final Type type) { 
    QueryIterator<TokenAction> iterator = find.where() 
      .eq("targetUser.id", u.id).eq("type", type).findIterate(); 
    Ebean.delete(iterator); 
    iterator.close(); 
} 

::、私はこの変更しなければならなかったデフォルトでは

public static void deleteByUser(final User u, final Type type) { 
    QueryIterator<TokenAction> iterator = find.where() 
      .eq("targetUser.id", u.id).eq("type", type).findIterate(); 
    while(iterator.hasNext()) { 
     iterator.next().delete(); 
    } 
    iterator.close(); 
} 
+0

ありがとう本当に良い情報です、私は将来の問題のためにそれを提出します。私はSteveの返事に最初に取り組みました、そして、それは私が扱っていた正確な問題であるようでした。 – Chet

関連する問題