标签: connection-pooling

在lage数据库上生成SubSonic 3.0.0.3 t4模板会耗尽连接

当针对具有1400+表的数据库运行模板时,我收到以下错误.服务器显示数百个连接.有没有人知道这是一般的模板生成问题,还是具体使用这些模板.其他较小的DB对我来说也没问题.

正在运行转换:System.InvalidOperationException:超时已过期.从池中获取连接之前经过的超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.

在Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1的System.Data.SqlClient.SqlConnection.Open()处的System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)处的System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)处. C:\ POS\POS.Win\Templates\SQLServer.ttinclude中的GeneratedTextTransformation.GetCommand(String sql):c:\ POS\POS.Win\Templates中Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.LoadFKTables(String tableName)中的第13行\ SQLServer.ttinclude:第179行,Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.LoadTables(),位于c:\ POS\POS.Win\Templates\SQLServer.ttinclude:第131行,位于Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.TransformText()in c:\ POS\POS.Win\Templates\ActiveRecord.tt:第21行

subsonic connection-pooling subsonic3

2
推荐指数
1
解决办法
997
查看次数

在池中找到空闲连接的最佳算法是什么?

我需要编写一个管理连接池的应用程序。我想知道应该研究哪些算法。

algorithm connection-pooling

2
推荐指数
1
解决办法
1101
查看次数

Postgres与Glassfish连接池

我是Java EE World的新手,想在Web应用程序中使用PostgreSQL作为我的数据库.我使用Glassfish作为我的应用程序服务器,并通过管理界面添加了一个连接池(我使用此站点寻求帮助).现在我不知道在我的应用程序中使用连接池的"正确"方法是什么(实际上我目前还不知道如何从池中获取连接并编写简单的查询).

我们需要编写非常复杂的查询,因此我不知道是否应该为每个表创建映射并使用映射,或者只使用sql和某种行映射器来解析结果(之前我们使用过Spring RowMap) .

所以我的问题是:

  1. 有什么不同的方式来使用池中的连接?
  2. 这些模式的(dis)优势是什么?
  3. 如何创建一个可以处理复杂和性能密集型查询的聪明映射.
  4. 这适用于Hibernate吗?如果是这样,怎么样?

java postgresql connection-pooling glassfish java-ee

2
推荐指数
1
解决办法
2260
查看次数

Erlang中的Postgresql连接池

我正在为Postgresql寻找一个强大的连接池库.

类似于https://github.com/dweldon/riakpool的东西会很棒.

postgresql erlang connection-pooling

2
推荐指数
1
解决办法
1347
查看次数

BoneCP:getConnection方法是线程安全的还是我们必须处理它?

在使用BoneCP连接池时,我遇到了以下混淆,并希望听到一些建议:

  • getConnectionBoneCP 的方法是线程安全的吗?当有许多线程要求并行连接时,最好的方法是什么?
  • connection.close()每次使用连接后是否需要呼叫?
  • 如果需要调用connection.close(),它是否真的断开与DB的连接或只是将连接发送到池?

在此先感谢您的支持.

java connection-pooling thread-safety bonecp

2
推荐指数
1
解决办法
2133
查看次数

在Java SE应用程序中使用连接池的优缺点是什么?

我们正在开发Java SE应用程序,而我正在使用Hibernate与数据库进行通信。我的数据库是Oracle 11g Express Edition。到目前为止,我尚未在应用程序中使用连接池。但是我以前使用过c3p0连接池,但是我从未真正了解过它。

在Java SE应用程序中使用c3p0的优缺点是什么?我了解Java EE应用程序有用,但是Java SE吗?

这是我的休眠配置。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
  <property name="hibernate.connection.username">EP</property>
  <property name="hibernate.connection.password">123</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="hibernate.default_schema">EP</property>
  <property name="show_sql">true</property>

  <property name="hibernate.c3p0.min_size">5</property>
  <property name="hibernate.c3p0.max_size">20</property>
  <property name="hibernate.c3p0.timeout">300</property>
  <property name="hibernate.c3p0.max_statements">50</property>
  <property name="hibernate.c3p0.idle_test_period">3000</property>

  <mapping class="app.model.User"></mapping>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

java connection-pooling oracle11g

2
推荐指数
1
解决办法
1928
查看次数

100个用户的连接池 - 值得吗?

我正在开始研究一个位于Oracle 10g上的小型Java Web应用程序.预期的用户群最多可达100个用户.我不希望使用该应用程序一次看到超过50个用户.

现在,我正在考虑DBCP,C3P0或Tomcat JDBC连接池,但是这会为这么小的用户群增加真正的价值吗?我从来没有使用任何解决方案,所以存在引入复杂性的风险(我已经看到其他线程,人们面临着连接池的一些疯狂问题)而且我不确定这些好处会超过风险.或者还有其他方法吗?也许Oracle拥有自己的解决方案?

请帮忙.

谢谢.

java connection-pooling c3p0 apache-commons-dbcp

2
推荐指数
1
解决办法
430
查看次数

Java中的SQLite连接池 - 锁定数据库

我已经在多线程环境中阅读了几个关于SQLite的相关主题,但是我找不到一个明确的声明,所以请原谅我再次提出这个主题.

我需要从多个线程访问应用程序的数据库以执行更新语句.数据库本身可以是SQLite或MySQL,具体取决于用户的选择.对于MySQL处理程序,我使用tomcat-jdbc库实现了一个连接池.现在我正在搜索SQLite处理程序的最佳方法,因为正常的连接池不应该工作,因为SQLite一次只支持一个写入连接来锁定整个数据库.

我是否应该继续使用相同的连接(通过同步连接?)来创建所有线程?或者我应该使用已经存在的仅存在连接的tomcat库创建连接池?一个连接的连接池可能超大吗?

java sqlite multithreading connection-pooling

2
推荐指数
1
解决办法
6699
查看次数

Tomcat连接池:几种不释放连接的方法

我正在使用tomcat连接池.但我跟随例外 org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object

所以我在context.xml中输入以下行来查找泄漏: removeAbandoned="true" logAbandoned="true" removeAbandonedTimeout="3"

然后我开始得到以下异常org.apache.tomcat.dbcp.dbcp.AbandonedTrace$AbandonedObjectException: DBCP object created 2015-01-17 22:12:18 by the following code was never closed: 因此我发现导致这种泄漏的两个罪魁祸首方法.这两种方法有通用的连接方式,即调用unwrap来访问驱动程序特定的连接.

try (Connection conn = DataSourceConnectionPool.getConnection().unwrap(OracleConnection.class);
        OracleCallableStatement cstmt = (OracleCallableStatement) conn.prepareCall(MIGRATE_ACCOUNT)) {
        ...
        ....
)
Run Code Online (Sandbox Code Playgroud)

重要的是要注意的是我正在使用来自JDK7的try块,即自动资源管理,所以我不需要finally块.连接关闭由JDK自动处理.但为什么这个解开的连接没有关闭.当我试图做以下事情时:

try (Connection poolConn = DataSourceConnectionPool.getConnection();
    Connection conn = poolConn.unwrap(OracleConnection.class);
Run Code Online (Sandbox Code Playgroud)

我越来越java.sql.SQLException: Already closed.接近这种联系了.我是否必须手动完成而不使用try块?不应该尝试块手柄能够处理这个吗?

java tomcat connection-pooling jdbc

2
推荐指数
1
解决办法
3083
查看次数

对于使用tomcat数据库资源通过JNDI的Grails,应该pooled = true或pooled = false

当您使用Grails管理MySQL连接时,您需要(为了处理重新连接)DataSource.groovy中的属性部分:

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
    properties {
        maxActive = -1
        minEvictableIdleTimeMillis=1800000
        timeBetweenEvictionRunsMillis=1800000
        numTestsPerEvictionRun=3
        testOnBorrow=true
        testWhileIdle=true
        testOnReturn=true
        validationQuery="SELECT 1"
    }

environments {
    production{
        dataSource {
            dbCreate = "upate"
            url = "jdbc:mysql://127.0.0.1:3306/mydb"
            username = "myuser"
            password = "mypass"
        }

    }
Run Code Online (Sandbox Code Playgroud)

当您切换到使用Tomcat的连接池时,大多数示例都给出了:

production {
    dataSource {
        dbCreate = "update"
        jndiName = "java:comp/env/revolve"
    }
Run Code Online (Sandbox Code Playgroud)

问题1

对于这种类型的连接(即使用tomcat),应该在DataSource.grovvy中pooled = true或false,还是重要?有帖子说它必须是假的,帖子说它必须是真的,而有些则没有指明它.如果设置为True,则表示存在池池,但这是大多数示例推荐的.

问题2

属性部分是否被忽略?如果不是,建议的字段是什么.根据我的反复试验,属性似乎被忽略了,与此类帖子相反.

例如,使用JNDI时,DataSource.java属性中的validationQuery ="SELECT 1"似乎被忽略.即如果我重新启动数据库,Tomcat上的应用程序已永久失去与数据库的连接.如果我在Tomcat context.xml中添加相同的行:

<Resource name="revolve" auth="Container" type="javax.sql.DataSource"
    maxActive="50" maxIdle="5" maxWait="10000"
    username="myuser" password="mypass" driverClassName="com.mysql.jdbc.Driver"
    validationquery="SELECT …
Run Code Online (Sandbox Code Playgroud)

grails jndi connection-pooling

2
推荐指数
1
解决办法
1336
查看次数