相关疑难解决方法(0)

为防止内存泄漏,JDBC驱动程序已被强制取消注册

我运行我的Web应用程序时收到此消息.它运行正常,但我在关机期间收到此消息.

严重:Web应用程序注册了JBDC驱动程序[oracle.jdbc.driver.OracleDriver],但在Web应用程序停止时无法注销它.为防止内存泄漏,JDBC驱动程序已被强制取消注册.

任何帮助赞赏.

java tomcat jdbc

316
推荐指数
9
解决办法
34万
查看次数

为什么必须将JDBC驱动程序放在TOMCAT_HOME/lib文件夹中?

我有一个奇怪的问题,其中两个带有Oracle JDBC驱动程序的Web应用程序会相互冲突.我必须将JDBC驱动程序JAR放在公共文件夹TOMCAT_HOME/lib中.这是什么原因?

tomcat jdbc

41
推荐指数
1
解决办法
6万
查看次数

Web应用程序[]似乎已启动名为[Abandoned connection cleanup thread]的线程com.mysql.jdbc.AbandonedConnectionCleanupThread

在我的web开发过程中,我只是在我的eclipse IDE中关闭我的web应用程序,大约一分钟,我刚刚在我的eclipse控制台中看到了一个警告.

WARNING: The web application [/Spring.MVC] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Sep 06, 2014 8:31:55 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
WARNING: The web application [/Spring.MVC] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native …
Run Code Online (Sandbox Code Playgroud)

mysql spring memory-leaks jdbc

23
推荐指数
1
解决办法
5万
查看次数

如何配置Tomcat以连接MySQL

有人可以提供一些关于如何配置Tomcat来访问MySQL的细节吗?

  1. 我在Tomcat中的哪个目录中放置mysql-connector-java-5.1.13-bin?我应该把它放在Tomcat 6.0\webapps\myapp\WEB-INF\lib

  2. 我需要添加配置context.xml还是server.xml

  3. 我应该创建一个web.xml文件并将其放置Tomcat 6.0\webapps\myapp\WEB-INF?如果是这样,那么这个文件的内容应该是什么样的?

java mysql tomcat servlets jdbc

18
推荐指数
2
解决办法
7万
查看次数

Servlet"已启动一个线程但未能阻止它" - Tomcat中的内存泄漏

Apache Tomcat多次说:

Web应用程序[/ MyServlet]似乎已启动名为[pool-61-thread-2]的线程,但未能将其停止.这很可能造成内存泄漏.

这有危险吗?servlet应该能够处理10.000个请求/天.完成后如何关闭线程?

class Worker {

        private final CountDownLatch startSignal;
        private final CountDownLatch doneSignal;
        private final int threadNumber;

        Worker(
                CountDownLatch startSignal,
                CountDownLatch doneSignal,
                int threadNumber
        ){

            this.startSignal = startSignal;
            this.doneSignal = doneSignal;
            this.threadNumber = threadNumber;

        }

        public String[][] getSomeStrArrArr() {

            String[][] isRs = new String[8][20];
            String[][] inRs = new String[8][20];
            String[][] iwRs = new String[8][20];

            try {

                startSignal.await();

                if (threadNumber == 1) {
                    // get String[][] result for thread number 1
                    isRs = getIS(erg1, erg2, request);

                }

                if …
Run Code Online (Sandbox Code Playgroud)

java multithreading tomcat memory-leaks servlets

15
推荐指数
1
解决办法
5万
查看次数

内存泄漏停止或重新部署 - Spring 3.1.2,Hibernate 4.1.0,Spring Data-Jpa 1.1.0,Tomcat 7.0.30

编辑1

2013/06/07 - 虽然我仍然遇到这个问题,但它仍然只会影响重新部署.自最初的问题发布以来,我们已经升级了一些东西.这是我们的新版本(仍然展示了手头的问题):

<properties>
    <!-- Persistence and Validation-->
    <hibernate.version>4.1.0.Final</hibernate.version>
    <hibernate.jpa.version>1.0.1.Final</hibernate.jpa.version>
    <javax.validation.version>1.0.0.GA</javax.validation.version>
    <querydsl.version>2.2.5</querydsl.version>
    <spring.jpa.version>1.2.0.RELEASE</spring.jpa.version>
    <spring.ldap.version>1.3.1.RELEASE</spring.ldap.version>

    <!-- Spring and Logging -->
    <spring.version>3.1.3.RELEASE</spring.version>
    <spring.security.version>3.1.3.RELEASE</spring.security.version>
    <slf4j.version>1.6.4</slf4j.version>
    <jackson.version>1.9.9</jackson.version>

    <cglib.version>3.0</cglib.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它基本上只是一个Spring Framework bump和Spring(Data)Jpa bump.我们也升级到Tomcat 7.0.39.CGLIB(之前未提及但被包括在内)也被提升至3.0

以下是我试图解决手头问题但没有运气的一些事情:

  1. 更改了我们的POM(使用Maven)将我们的数据库驱动程序设置为提供其范围
  2. 为了包含jul-to-slf4j而增加了对SLF4J的依赖性,因为它提到可能存在潜在泄漏
  3. 试过Classload Leak Protector(https://github.com/mjiderhamn/classloader-leak-prevention).这看起来很有效(因为它在取消部署/关闭期间通过列出大量正在清理的东西来发送我的日志)但是在使用VisualVM之后,我的perm gen空间没有被回收.这可能对其他人有用......
  4. 试图通过使用Maven的依赖关系分析工具列出我的POM中的所有排除项(在Maven Projects窗口的In IntelliJ中,您可以右键单击依赖关系并选择'Show Dependencies'和Shift-Delete所有红色依赖关系).这没有用,但它将我的WAR文件大小减少了大约MB左右.
  5. 根据Spring(https://jira.springsource.org/browse/SPR-9274)中未解决的错误报告,重构JPA Persistence配置如下(注意注释):

    @Bean
    public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { // Important line (notice entityManagerFactory is 'provided/autowired'
        return new JpaTransactionManager(entityManagerFactory);
    }
    
    @Bean
    public EntityManagerFactory getEntityManagerFactory(DataSource dataSource) { // Important line (notice dataSource is 'provided/autowired'
    
        LocalContainerEntityManagerFactoryBean factoryBean …
    Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-mvc tomcat7

14
推荐指数
1
解决办法
9752
查看次数

由于JDBC驱动程序关闭后,Tomcat抱怨因打开连接导致内存泄漏

我有一个Servlet,它覆盖了以下init()方法:

@Override
public void init() throws ServletException {
    BookDAO bookDAO = new BookDAOImpl();
    List<Category> categoryList = bookDAO.findAllCategories();
    getServletContext().setAttribute("categoryList", categoryList);
}
Run Code Online (Sandbox Code Playgroud)

而BookDAO#findAllCategories是:

@Override
public List<Category> findAllCategories() {

    List<Category> result = new ArrayList<>();
    String sql = "select * from category";

    Connection connection = null;

    try {
        connection = getConnection();
        PreparedStatement statement = connection.prepareStatement(sql);
        ResultSet resultSet = statement.executeQuery();
        while (resultSet.next()) {
            Category category = new Category();
            category.setId(resultSet.getLong("id"));
            category.setCategoryDescription(resultSet
                    .getString("category_description"));
            result.add(category);
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    } finally {
        closeConnection(connection); …
Run Code Online (Sandbox Code Playgroud)

java mysql apache tomcat

5
推荐指数
1
解决办法
7906
查看次数

删除石英相关代码后,tomcat服务器中的内存泄漏错误

我正在开发基于spring hibernate的web项目.我使用c3p0进行连接池化.有时服务器会自动停止并显示

"Web应用程序注册了JDBC驱动程序但未能注销"

.还有以下错误.

"Web应用程序似乎已启动DefaultQuartzSchelduler_Worker_1但未能停止" 在此输入图像描述

在我的项目中删除了与Quartz作业相关的代码之后,仍然会出现此错误.我已关闭导致内存泄漏的所有流,但我仍然不知道为什么会发生这种情况.请帮我解决这个问题因为项目正在进行中.谢谢

java spring hibernate jdbc quartz-scheduler

5
推荐指数
0
解决办法
1688
查看次数