Tag: connection pooling

帮助我避免与JPA,Hibernate和MySQL的连接超时

我正在使用JPA(Hibernate作为提供者),Glassfish和MySQL。 一切都在开发中很好用,但是当我将应用程序部署到测试服务器并让它在一夜之间运行(大部分空闲)时,我通常会在早上受到欢迎: [#|2011-03-09T15:06:00.229+0000|INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=23;_ThreadName=Thread-1;|ERROR [htt\ p-thread-pool-8080-(1)] (JDBCTransaction.java:91) – JDBC begin failed com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 41,936,868 milliseconds ago. The last packet \ sent successfully to the server was 41,936,868 milliseconds ago. is longer than the server configured value of ‘wait_timeout’. You should consider either expirin\ g and/or testing connection validity […]

获取连接池中的空闲连接数

在我的项目中,Spring使用org.apache.commons.dbcp.BasicDataSource类管理连接池。 是否可以获得当前时间内有多少个免费或使用的连接? 谢谢。

如何为具有多个数据源的grails 2.X应用程序配置c3p0?

我正在尝试找到一个易于理解的解决方案(可能是这个问题的答案),用于在具有多个数据源的grails 2.X Web应用程序上配置c3p0连接池。 我一直无法通过谷歌搜索找到任何明确和简单的帮助。 我正在寻找的答案将说明以下内容: 1)需要什么jar子 2)需要修改哪些grails文件 3)放入这些grails文件的内容示例,包括import语句和示例代码。 假设我的应用程序中有两个数据源,DataSource和DataSource_A在DataSource.groovy中配置。 如何在grails 2.X Web应用程序中为多个数据源配置c3p0连接池?

BoneCP正确用法

我刚刚开始使用BoneCP并从作者站点中提取示例JDBC代码。 我有一个名为getConnection()的函数返回一个连接,这里是一个片段: // setup the connection pool BoneCPConfig config = new BoneCPConfig(); // Config goes here. connectionPool = new BoneCP(config); // setup the connection pool return connectionPool.getConnection(); // fetch a connection 现在,我的问题:1)当我完成使用从上面的函数返回的连接时,我是否调用connection.close(),以便将它返回到池中,还是完全关闭连接? 如何返回池连接? 2)如何在应用程序退出时清理池? 我结束时会调用connectionPool.shutdown()吗? 而且,我读到某个地方我需要单独关闭所有池化连接? 这是真的? 谢谢。

来自DUAL的SELECT 1:MySQL

在查看我的查询日志时,我看到一个奇怪的模式,我没有解释。 在几乎所有查询之后,我都“从DUAL中选择1”。 我不知道它来自何处,我当然不会明确地进行查询。 日志基本上如下所示: 10 Query SELECT some normal query 10 Query select 1 from DUAL 10 Query SELECT some normal query 10 Query select 1 from DUAL 10 Query SELECT some normal query 10 Query select 1 from DUAL 10 Query SELECT some normal query 10 Query select 1 from DUAL 10 Query SELECT […]

“Tomcat 7 JDBC连接池”是否足以用于生产? 它与BoneCP相比如何?

我们的网站每天大约获得1M PV,我们肯定会使用Tomcat。 我找不到有关jdbc-pool的更多信息,不确定它是否足够稳定以供生产。 有人有经验吗? 以及任何配置/调整内容供参考? 正如有人提到的, BoneCP可能是另一种选择。 但似乎它已经停止了(太可悲了……)。 这会是一个更好的选择吗? 顺便说一句, HikariCP太年轻了,我会留意它,因为它是迄今为止我发现的最新/最快的CP。 谢谢你的建议。

在dbcp中使用PreparedStatement池

有人可以解释如何使用dbcp准确准备连接池吗? (如果可能,使用一些示例代码)。 我已经想出如何打开它 – 将KeyedObjectPoolFactory传递给PoolableConnectionFactory。 但是之后应该如何定义具体的准备陈述呢? 现在我只使用PoolingDataSource从池中获取连接。 如何使用池中的预准备语句?

在Spring / JPA / Mysql / Tomcat应用程序中分析Connection Closed Exception

问题 我最近负责Java Web应用程序,代码已经编写完成。 该应用程序获得适度的高流量,每天上午11点至下午3点的交通高峰时段。 该应用程序使用Spring,JPA(Hibernate),MYSQL DB。 Spring已配置为使用tomcat jdbc连接池来建立与DB的连接。 (post末尾的配置细节) 在过去几天,在应用程序的高峰负载时间内,由于tomcat对请求没有响应,应用程序一直在停止运行。 它需要多次重启tomcat。 通过tomcat catalina.out日志,我注意到了很多 Caused by: java.sql.SQLException: Connection has already been closed. at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117) at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109) at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80) at com.sun.proxy.$Proxy28.prepareStatement(Unknown Source) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423) at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547) at org.hibernate.loader.Loader.doQuery(Loader.java:673) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.loadCollection(Loader.java:1994) … 115 more 这些经常在崩溃之前出现。 在这些exception之前更进一步,我注意到在Connection Closedexception之前放弃了很多Connections。 WARNING: Connection has been abandoned […]

独立Java程序中的Initialcontext

我正在使用JNDI来创建tomcat连接池。 它在Web应用程序中运行良好。 我相信InitialContext是由tomcat服务器提供的。 Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup(“java:/comp/env”); dataSource = (DataSource)envContext.lookup(“jdbc/testdb”); 但是当我尝试从独立的Java程序调用相同的实用程序时,initContext对象为null。 如何显式提供Context对象期望的所有必要属性。 错误:javax.naming.NoInitialContextException:需要在环境或系统属性或applet参数或应用程序资源文件中指定类名:java.naming.factory.initial

Apache PoolingHttpClientConnectionManager抛出非法状态exception

这是我如何使用它 – private static final PoolingHttpClientConnectionManager connPool; static { connPool = new PoolingHttpClientConnectionManager(); // Increase max total connection to 200 connPool.setMaxTotal(200);//configurable through app.properties // Increase default max connection per route to 50 connPool.setDefaultMaxPerRoute(20);//configurable through app.properties } CloseableHttpClient httpClient = HttpClients.custom() .setConnectionManager(connPool) .build(); 另外我在http GET周围放了一个finally块 – finally { try { httpClient.close(); } catch (IOException e) { […]