【发布时间】:2015-02-04 16:12:06
【问题描述】:
我有一个使用 ExecutorService(15 个线程)的多线程 java 进程。每个线程调用存储过程将数据插入表中,我的连接将跨 15 个线程池化,以便我可以同时看到表上的多个提交,但即使通过 15 个线程,我也只看到为一个活动线程建立了一个连接准备好等待。
尝试使用以下代码建立连接并跨所有线程池化
Class.forName(DB_DRIVER);
DataSource oracleDataSource = new DriverManagerDataSource(DB_CONNECTION, DB_USER,DB_PASSWORD);
ObjectPool objectPool = new GenericObjectPool();
DataSourceConnectionFactory datasourceConnectionFactory = new DataSourceConnectionFactory(oracleDataSource);
PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(datasourceConnectionFactory, objectPool, null, null, false, true);
objectPool.setFactory(poolableConnectionFactory);
PoolingDataSource datasource = new PoolingDataSource(objectPool);
但它仍然没有工作。我的线程仍然只使用一个连接,而其他线程正在等待活动的连接完成。
【问题讨论】:
标签: java multithreading oracle connection-pooling