Java Dropwizard应用程序中出现断管异常

Java Dropwizard应用程序中出现断管异常,java,jdbc,heap,dropwizard,broken-pipe,Java,Jdbc,Heap,Dropwizard,Broken Pipe,当服务器在没有任何http请求的情况下长时间运行时,我遇到了“断管”异常。经过一些调查,我发现出现这种异常是因为服务器关闭了数据库连接,而客户端在连接关闭时请求资源。为了解决这个问题,我在jdbc conenction url中添加了以下内容 ?autoReconnect=true 为了以防万一,我还增加了机器上的堆内存。此外,没有太多http客户端从dropwizard服务器请求资源。还有其他可能发生的事情吗 错误消息以供参考 You should consider either expir

当服务器在没有任何http请求的情况下长时间运行时,我遇到了“断管”异常。经过一些调查,我发现出现这种异常是因为服务器关闭了数据库连接,而客户端在连接关闭时请求资源。为了解决这个问题,我在jdbc conenction url中添加了以下内容

?autoReconnect=true
为了以防万一,我还增加了机器上的堆内存。此外,没有太多http客户端从dropwizard服务器请求资源。还有其他可能发生的事情吗

错误消息以供参考

You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
有没有办法在dropwizard应用程序中配置连接池?
或者将mysqld的“交互超时”和“等待超时”属性更改为8小时以上是一种好做法吗?

根据您是使用还是其他方式,我建议使用提供的捆绑包来设置连接。这些bundle附带了一个内置池,可以很容易地进行配置,正如链接上的示例所示


如果您使用普通JDBC或其他或映射程序,您可以自己编写一个或适当的捆绑包,或者在启动时尝试直接利用。

感谢您的帮助,我通过将以下内容添加到
yaml
文件中修复了此问题

  • checkConnectionWhileIdle
    true
  • checkconnectionnReturn
    true
  • checkConnectionOnBorrow
    true
  • 确保所有事务都已提交,在出现异常时回滚,并在使用后关闭会话