【问题标题】:Play 2.5 application(deadbolt?) becomes unresponsivePlay 2.5 应用程序(死栓?)变得无响应
【发布时间】:2017-02-05 21:38:29
【问题描述】:

我最近升级到玩 2.5。一切正常,直到系统忙于生成报告(在单独的线程中),而我突然无法访问 Web 应用程序中的任何页面。我在日志中看不到任何错误。 play 2.3.8 版本在相同的环境/负载下工作正常。除了移除锁舌以查看它是否解决了问题之外,我没有看到其他解决方案,就像它对下面列出的用户所做的那样。 TIA

死锁 2.5.4 "play-authenticate_2.11" % "0.8.1"

我看到其他几个用户遇到了类似的问题,不得不移除锁舌来解决它。

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

Play 2.5 application requests hang

(2017 年 2 月 8 日)我仍在处理这个问题,因为它在两台生产机器上失败,但在两台开发机器上工作。开发机器是物理的,并且具有稍新的 Java 版本。生产机器都是虚拟的并且运行 Java build 1.8.0_66。一旦我解决了这个问题,我将致力于调整线程池。我已经发布了两个解决方案,它们都适用于两台开发机器(Java > 1.8.0_66 的物理机器)。

请参阅https://www.coalliance.org/play-25-upgrade 了解更多信息。

【问题讨论】:

  • 默认情况下,Deadbolt 使用HttpExecution.defaultContext() 作为其执行上下文。如果您编写自己的 DeadboltExecutionContextProvider 实现以使用自定义线程池并将其绑定到模块中,Deadbolt 将使用它。你能试着让我知道吗?您可以找到有关配置线程池的详细信息here
  • 默认线程池配置在 Play 2.3 和 2.4 之间发生了变化,因此您可能会看到这样做的副作用。详情请见here
  • 感谢您的回复,我会按照您的建议去做并通知您。
  • 我安装了默认的 akka 配置(在上面的链接中)并解决了问题。我还创建了一个 CustomDeadboltExecutionContextProvider 并将使用默认的 play 2.5 配置来使用它。如果我发现更好的东西,我会在这里发布。
  • 太好了,谢谢!

标签: playframework play-authenticate deadbolt-2


【解决方案1】:

我遇到了类似的问题,在我的情况下,应用程序在此错误后变得无响应:

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

我发现在 play-authenticate 的 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();
}

【讨论】:

  • 感谢您的回复,这是非常好的信息,我将其归档以备将来使用。我首先处理了史蒂夫的回复,这似乎正是我正在处理的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多