GlassFish 为防止内存泄漏,已强制注销 JDBC 驱动程序

Posted

技术标签:

【中文标题】GlassFish 为防止内存泄漏,已强制注销 JDBC 驱动程序【英文标题】:GlassFish To prevent a memory leak, the JDBC Driver has been forcibly unregistered 【发布时间】:2017-01-16 15:43:47 【问题描述】:

我知道这已经被问过很多次了,但没有一个解决方案对我有用。

我正在使用 GlassFish,尝试从连接池中获取数据库。尝试运行时,虽然输出的是Artifact is deploy successfully,但是在浏览器中返回错误页面,错误日志显示:

[警告] [] [javax.enterprise.web.util] [tid: _ThreadID=18 _ThreadName=RunLevelControllerThread-1473348595597] [timeMillis: 1473348603791] [levelValue: 900] [[ Web 应用程序 [unknown] 注册了 JDBC 驱动程序 [com.mysql.cj.jdbc.Driver] 但在 Web 应用程序停止时未能取消注册。为防止内存泄漏,已强制注销 JDBC 驱动程序。]] [/pre]

是的,我已经将 JDBC 驱动 jar 放入 glassfish-installation-folder/glassfish/lib/ 还是那个错误。甚至放到 glassfish-installation-folder/glasshfish/domains/domain-name/lib/.并且 web app/lib 中没有 JDBC 驱动程序

这是我的一些设置:

jdbc-连接池:

datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource" name="mysql_cinema_pool" res-type="javax.sql.ConnectionPoolDataSource"

我的实体的 1 个示例(包括错误):https://s9.postimg.org/wrsrysz27/Intelli_J_IDEA_Error.png

我整天都在为这个错误苦苦挣扎:(。

【问题讨论】:

你的炫耀只是一个警告。 链接对我来说还有效吗? 好的,它是标准 404 页面,所以我认为它已损坏 @Jens 我还需要描述什么信息?该链接对我有用,但我只是上传到 imgur 你可以检查:imgur.com/a/Vqch8。 404的可能原因有很多,可能是你的应用没有部署或者你使用了错误的url 【参考方案1】:

GlassFish 警告意味着您的应用程序注册了 JDBC 驱动程序,但在取消部署期间没有取消注册它。当您重新部署应用程序时,旧版本将被取消部署并引发上述警告。它应该不会影响新部署的应用程序。

如果您取消部署所有应用程序,重新启动服务器并部署您的应用程序,您应该不会看到警告。

【讨论】:

嗨。是的,因为有一个导致 404 错误的 url 问题,我认为是 JDBC 驱动程序导致它无法工作:(。现在一切都很好。我只是初学者学习新东西:-s。谢谢你的回答,我接受了这个答案。

以上是关于GlassFish 为防止内存泄漏,已强制注销 JDBC 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

注册了JDBC驱动程序 [com.alibaba.druid.proxy.DruidDriver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。

[XXX] 注册了JDBC驱动程 序 [oracle.jdbc.OracleDriver]

jpa hibernate中扫描太多实体时,glassfish启动很慢或内存泄漏

Netty防止内存泄漏措施

怀疑 Jdbc 和 Tomcat 的内存泄漏

Spring Boot - 内存泄漏 - H2 数据库 - 不注销驱动程序