java – 在Oracle ucp中找不到oracle.ucp.jdbc.PoolDataSourceFactory
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 在Oracle ucp中找不到oracle.ucp.jdbc.PoolDataSourceFactory,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3990字,纯文字阅读大概需要6分钟。
内容图文
我想使用以下代码创建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);
我正在使用
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>ucp,ojdbc6</Embed-Dependency>
<Import-Package>
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
</Import-Package>
<Include-Resource>
ucp-11.2.0.3.jar,
ojdbc6-11.2.0.3.jar
</Include-Resource>
<Bundle-ClassPath>
ucp-11.2.0.3.jar,
ojdbc6-11.2.0.3.jar,
.
</Bundle-ClassPath>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Activator>org.test.ucp.activator.Activator</Bundle-Activator>
</instructions>
</configuration>
</plugin>
但是当我在独立包中启动代码时,我收到以下错误消息:
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配置:
< DynamicImport-包装及GT * LT; / DynamicImport-包装及GT;
尝试上述步骤,并可能结合2&如上所述,如果有效则报告.
内容总结
以上是互联网集市为您收集整理的java – 在Oracle ucp中找不到oracle.ucp.jdbc.PoolDataSourceFactory全部内容,希望文章能够帮你解决java – 在Oracle ucp中找不到oracle.ucp.jdbc.PoolDataSourceFactory所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。