在WebSphere 7中定义了一个JNDI名称为“jdbc / project / SimpleDS”的数据源。在管理控制台中,我更改了数据源属性:db_name,db_port,db_host,login和password。
因此,引用“jdbc / project / SimpleDS”数据源的已部署应用程序将引发异常:
java.sql.SQLInvalidAuthorizationSpecException: [jcc][t4][2013][11249] [4.8.87] Connection authorization failure occurred. Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000DSRA0010E: SQL State = 28000, Error Code = -4,214 at com.ibm.db2.jcc.am.gd.a(gd.java:674) at com.ibm.db2.jcc.am.gd.a(gd.java:60) at com.ibm.db2.jcc.am.gd.a(gd.java:120) at com.ibm.db2.jcc.t4.b.p(b.java:2060) at com.ibm.db2.jcc.t4.b.c(b.java:1649) at com.ibm.db2.jcc.t4.db.r(db.java:799) at com.ibm.db2.jcc.t4.db.k(db.java:353) at com.ibm.db2.jcc.t4.db.c(db.java:133) at com.ibm.db2.jcc.t4.b.Wc(b.java:1263) at com.ibm.db2.jcc.t4.b.b(b.java:1184) at com.ibm.db2.jcc.t4.b.a(b.java:5175) at com.ibm.db2.jcc.t4.b.d(b.java:743) at com.ibm.db2.jcc.t4.b.c(b.java:685) at com.ibm.db2.jcc.t4.b.a(b.java:368) at com.ibm.db2.jcc.t4.b.<init>(b.java:308) at com.ibm.db2.jcc.t4.c.<init>(c.java:32) at com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnection.java:192) at com.ibm.db2.jcc.DB2XAConnection.<init>(DB2XAConnection.java:56) at com.ibm.db2.jcc.DB2XADataSource.getXAConnection(DB2XADataSource.java:168) at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.run(InternalGenericDataStoreHelper.java:1338) at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java:1375) at com.ibm.ws.rsadapter.spi.InternalDB2UniversalDataStoreHelper.getPooledConnection(InternalDB2UniversalDataStoreHelper.java:1855) at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:2624) at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:1695) at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:2086) at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1761) at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2636) at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1064) at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:701) at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:668) at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:635)我使用Ubuntu 14.04
如何在运行时替换数据源属性?
There is a data source with JNDI name "jdbc/project/SimpleDS" defined in WebSphere 7. In admin console I changed the data source properties: db_name, db_port, db_host , login and password.
Whereby the deployed applications which references to "jdbc/project/SimpleDS" data source throws the exception:
java.sql.SQLInvalidAuthorizationSpecException: [jcc][t4][2013][11249] [4.8.87] Connection authorization failure occurred. Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000DSRA0010E: SQL State = 28000, Error Code = -4,214 at com.ibm.db2.jcc.am.gd.a(gd.java:674) at com.ibm.db2.jcc.am.gd.a(gd.java:60) at com.ibm.db2.jcc.am.gd.a(gd.java:120) at com.ibm.db2.jcc.t4.b.p(b.java:2060) at com.ibm.db2.jcc.t4.b.c(b.java:1649) at com.ibm.db2.jcc.t4.db.r(db.java:799) at com.ibm.db2.jcc.t4.db.k(db.java:353) at com.ibm.db2.jcc.t4.db.c(db.java:133) at com.ibm.db2.jcc.t4.b.Wc(b.java:1263) at com.ibm.db2.jcc.t4.b.b(b.java:1184) at com.ibm.db2.jcc.t4.b.a(b.java:5175) at com.ibm.db2.jcc.t4.b.d(b.java:743) at com.ibm.db2.jcc.t4.b.c(b.java:685) at com.ibm.db2.jcc.t4.b.a(b.java:368) at com.ibm.db2.jcc.t4.b.<init>(b.java:308) at com.ibm.db2.jcc.t4.c.<init>(c.java:32) at com.ibm.db2.jcc.DB2PooledConnection.<init>(DB2PooledConnection.java:192) at com.ibm.db2.jcc.DB2XAConnection.<init>(DB2XAConnection.java:56) at com.ibm.db2.jcc.DB2XADataSource.getXAConnection(DB2XADataSource.java:168) at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper$1.run(InternalGenericDataStoreHelper.java:1338) at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118) at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledConnection(InternalGenericDataStoreHelper.java:1375) at com.ibm.ws.rsadapter.spi.InternalDB2UniversalDataStoreHelper.getPooledConnection(InternalDB2UniversalDataStoreHelper.java:1855) at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:2624) at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:1695) at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:2086) at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1761) at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2636) at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1064) at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:701) at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:668) at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:635)I use Ubuntu 14.04
How can I replace the data source properties in runtime?
最满意答案
您使用JNDI获取与DB的连接。
您不应该担心数据源的设置\凭据是什么。 这就是JNDI的想法。
如果您需要在动态中更改连接的设置,也许您最好限制JNDI并使用自定义连接创建机制。
如果您正在使用z / OS,那么您可以在WebSphere Application Server V7.0安全指南中阅读“使用JDBC Type 2驱动程序将用户凭据传播到DB2 ”
You use JNDI to get the connection to DB.
You shouldn't be worried about what are the settings\credentials of datasource. That's the idea of JNDI.
If you need to change the settings of connection in dynamic, perhaps you'd better to restrain from JNDI and use custom connection creation mechanism.
If you are working on z/OS, then you can read "Propagating user credentials to DB2 using JDBC Type 2 driver" in WebSphere Application Server V7.0 Security Guide
更多推荐
发布评论