java - JBoss AS/Wildfly 中的多用户数据库连接池

标签 java jboss datasource connection-pooling

我正在开发需要访问 postgresql 数据库的 Web 应用程序。

出于某种原因,我需要为每个经过身份验证的用户建立单独的连接。

我当前的数据源设置如下所示:

<datasource jndi-name="java:jboss/ds" pool-name="ds-pool" enabled="true">
                    <connection-url>jdbc:postgresql://192.168.1.2:5432/springdb</connection-url>
                    <driver>postgresql-driver</driver>
                    <pool>
                        <min-pool-size>5</min-pool-size>
                        <max-pool-size>30</max-pool-size>                       
                    </pool>
                    <security>
                        <user-name>postgres</user-name>
                        <password>postgres</password>
                    </security>
                </datasource>

在java代码中我这样做:

@Resource(lookup = "java:jboss/ds")
DataSource ds;
conn = ds.getConnection(username, password);

这就是问题所在。每个 getConnection 调用都会在 jboss 控制台中产生以下 WARN:

> 14:07:48,665 WARN 
> [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (default
> task-11) IJ000612: Destroying connection that could not be
> successfully matched:
> org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@7de0e076[state=NORMAL
> managed
> connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@763ace0a
> connection handles=0 lastUse=1382422068665 trackByTx=false
> pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@36c78449
> mcp=SemaphoreArrayListManagedConnectionPool@64bdf0b7[pool=ds-pool]
> xaResource=LocalXAResourceImpl@ead2f2a[connectionListener=7de0e076
> connectionManager=26e60dae warned=false currentXid=null
> productName=PostgreSQL productVersion=9.3.3 jndiName=java:jboss/ds]
> txSync=null]

我尝试将 allow-multiple-users 添加到 pool 配置中,但在 jboss 7 中我遇到了 xml 解析错误,而在 wildfly 8 中它确实如此什么都没有。

那么在jboss中有没有办法获取多用户连接池呢?

最佳答案

看来我想通了。因此,要在一个连接池中启用多个用户,您需要在数据源定义中添加以下内容:

<allow-multiple-users>true</allow-multiple-users>

代替:

<allow-multiple-users/>

野蝇 8.0.0

关于java - JBoss AS/Wildfly 中的多用户数据库连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591348/

相关文章:

java - 级联类型 : ALL, MERGE 等

java - spring mvc hibernate 锁定表的行

Java 谷歌警报 API

java - 如果连接重新启动,则重新连接到数据库

jvm - 需要服务器 VM 但在 JRE 中不可用。那我需要什么包: JRE, JDK呢?

java - 使用 LDAP 验证特定请求的凭据

spring - 如何验证数据源有效且配置正确?

java - 在 Java 中从 DataSource 获取 Connection 对象

java - Java应用程序中的数据源连接

java - 使用 WildFly 中另一个模块的 JAXBContext 进行解码