Websockets / threads / DB连接在Wildfly上

时间:2016-11-25 10:26:11

标签: java mysql multithreading wildfly wildfly-10

我目前正在开发部署在Wildfly 10上的Java Websocket应用程序。我无法发布代码,但这是逻辑:

多个线程每5秒轮询一次数据库(选择查询,在关闭前一个ResultSet后重用PreparedStatement)并通过Websocket发送到所有连接的客户端。

已配置连接到MYSQL服务器(localhost)的数据源。

应用程序运行正常,直到一段时间后,它崩溃并且日志已满,并且“无法从数据源获得托管连接”#39;错误。此外,Websocket因“ClosedChannelException”而失败。

打开连接并立即关闭它的同一服务器上的服务可以正常工作。但是,相关代码中有5-6个线程必须在5秒后使用连接,因此线程被赋予专用连接,该连接仅在应用程序上下文被销毁时被拆除。

另一件事是当应用程序失败时,它在禁用启用时工作的时间较短。只有重新启动才能让它更好地工作。

相同的项目在Glassfish上没有错误。

不知何故,Wildfly似乎会定期重置数据库连接或所有TCP连接。

是否存在与Wildfly对线程的行为相关的设置?我已经验证了实际上只创建了与预期一样多的线程。

任何帮助都将不胜感激。

编辑:此应用程序在我的本地计算机上运行良好。当我在远程服务器上部署它时,它会工作一段时间(最多3小时),然后完全失败。

我使用Netbeans 8进行编译,如果有帮助的话。

0 个答案:

没有答案