首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时更改WebSphere dataSource模式

在运行时更改WebSphere dataSource模式
EN

Stack Overflow用户
提问于 2017-09-13 18:01:26
回答 1查看 978关注 0票数 1

是否可以在运行时更改WebSphere数据源的默认架构?

例如,我将以下jndi配置为:

代码语言:javascript
复制
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/test" lookup-on-startup="true" resource-ref="true" />

在ibm-web-bnd.xml中:

代码语言:javascript
复制
<resource-ref name="jdbc/test" binding-name="jdbc/test" id="TEST_db"/>

在我的IBM-web-ext.xml中:

代码语言:javascript
复制
<resource-ref name="jdbc/test" connection-management-policy="DEFAULT" isolation-level="TRANSACTION_READ_COMMITTED" id="TEST_db"/>

我为dataSource创建了一个包装器,定义为:

代码语言:javascript
复制
<bean id="schemaAwareDataSource" class="com.util.SchemaAwareDataSource" >
    <property name="dataSource" ref="dataSource" />
    <property name="schemaValue" value="${modifiableSchema}" />
</bean>

这门课看起来是:

代码语言:javascript
复制
public class SchemaAwareDataSource implements DataSource {

     private DataSource dataSource;
     private String schemaValue;

     @Override
     public Connection getConnection() throws SQLException {

         if(dataSource.getConnection().getSchema().equals(schemaValue)) {
             return dataSource.getConnection();
         }

         dataSource.getConnection().setSchema(schemaValue);
         return dataSource.getConnection();     
     }

     //other implemented methods not shown
}

但是,当应用程序启动并在我的包装器类中的java.sql.SQLFeatureNotSupportedException ()中调用dataSource.getConnection().getSchema()时,这将引发一个getConnection错误。

当我调试getConnection()方法时,dataSource是一个对象。

不管怎么说我能完成我在这里想做的事吗?我希望能够在调用getConnection()时在运行时更改模式值。

EN

回答 1

Stack Overflow用户

发布于 2017-09-13 18:27:38

如果JDBC驱动程序或WebSphere应用服务器级别(或两者都不支持)不支持JDBC4.1,就会引发JDBC4.1。如果使用WebSphere应用服务器自由,您将希望启用jdbc-4.1或jdbc-4.2特性,而不是jdbc-4.0。如果使用传统的WebSphere应用服务器,则需要确保您的最新版本足以支持JDBC4.1(或更高版本)。在这两种情况下,检查您的JDBC驱动程序是否符合JDBC4.1或更高版本,这是通过调用connection.getMetaData().getJDBCMajorVersion和connection.getMetaData().getJDBCMinorVersion (在应用服务器之外)实现的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46204110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档