java ucp,java – 在Oracle ucp中找不到oracle.ucp.jdbc.PoolDataSourceFactory

我想使用以下代码创建Oracle UCP:

import oracle.ucp.jdbc.PoolDataSource;

import oracle.ucp.jdbc.PoolDataSourceFactory;

System.out.println("***** OracleDS_UCP -> start init of PoolDataSource");

PoolDataSource pool = PoolDataSourceFactory.getPoolDataSource();

pool.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");

pool.setURL("jdbc:oracle:thin:@localhost:1521:XE");

pool.setUser("test");

pool.setPassword("test");

pool.setMaxStatements(10); // the maximum number of statements that may be pooled or cached on a connection.

pool.setInitialPoolSize(2);

pool.setMinPoolSize(1);

pool.setMaxPoolSize(50);

pool.setLoginTimeout(60); // one minute

pool.setConnectionWaitTimeout(60); // one minute

pool.setAbandonedConnectionTimeout(30 * 60); // thirty minutes

pool.setMaxIdleTime(60 * 60); // one hour and kill inactive or idle connections

pool.setInactiveConnectionTimeout(60 * 60); // one hour and kill inactive or idle connections

pool.setConnectionWaitTimeout(0); // do not wait for a used connection to be released by a client.

pool.setConnectionHarvestTriggerCount(40);

pool.setConnectionHarvestMaxCount(10);

我正在使用

org.apache.felix

maven-bundle-plugin

2.4.0

true

ucp,ojdbc6

org.osgi.framework,

javax.sql,

javax.naming,

oracle.jdbc.pool.OracleDataSource,

oracle.ucp.jdbc.PoolDataSourceFactory,

oracle.ucp.jdbc.PoolDataSourceImpl,

javax.naming.spi,

javax.management,

javax.management.modelmbean,

oracle.jdbc.pool

ucp-11.2.0.3.jar,

ojdbc6-11.2.0.3.jar

ucp-11.2.0.3.jar,

ojdbc6-11.2.0.3.jar,

.

${project.artifactId}

org.test.ucp.activator.Activator

但是当我在独立包中启动代码时,我收到以下错误消息:

Test Oracle UCP

ERROR: Bundle ucpTest [21] Error starting inputstream:ucpTest-1.0.jar (org.osgi.framework.BundleExce

ption: Activator start error in bundle ucpTest [21].)

java.lang.IllegalArgumentException: interface oracle.ucp.jdbc.LabelableConnection is not visible fro

m class loader

at java.lang.reflect.Proxy$ProxyClassFactory.apply(Unknown Source)

at java.lang.reflect.Proxy$ProxyClassFactory.apply(Unknown Source)

at java.lang.reflect.WeakCache$Factory.get(Unknown Source)

at java.lang.reflect.WeakCache.get(Unknown Source)

at java.lang.reflect.Proxy.getProxyClass0(Unknown Source)

at java.lang.reflect.Proxy.newProxyInstance(Unknown Source)

at oracle.ucp.jdbc.proxy.ConnectionProxyFactory.createConnectionProxy(ConnectionProxyFactory

.java:78)

at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:919)

at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:863)

at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:855)

at org.test.osgi.ucp.impl.OracleDS_UCP.getConnection(OracleDS_UCP.java:26)

at org.test.ucp.activator.Activator.testOracleUCP(Activator.java:41)

at org.test.ucp.activator.Activator.start(Activator.java:17)

at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)

at org.apache.felix.framework.Felix.activateBundle(Felix.java:1977)

at org.apache.felix.framework.Felix.startBundle(Felix.java:1895)

at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)

at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)

at java.lang.Thread.run(Unknown Source)

也许我没有正确配置UCP.你能帮忙解决这个问题吗?

解决方法:

彼得,我没有在UCP工作过.因此,我可能无法给你一个完整的解决方案,但很少提示:

>尝试使用Apache Commons DBCP作为OSGi bundle.

>尝试从BND配置中删除Import-Package指令. BND非常聪明地识别出这一点.然后可以在以后优化您的导入.

>尝试将DynamicImport-Package:*指令放入您的BND配置:

&LT DynamicImport-包装及GT * LT; / DynamicImport-包装及GT;

尝试上述步骤,并可能结合2&如上所述,如果有效则报告.

标签:java,oracle,connection-pooling,pool,ucp

来源: https://codeday.me/bug/20190703/1366610.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值