2015-06-29 100 views
0

在WebSphere 7中定義了一個JNDI名稱爲「jdbc/project/SimpleDS」的數據源。在管理控制檯中,我更改了數據源屬性:db_name,db_port,db_host,登錄名和密碼。WebSphere中的數據源

藉助於此,其引用爲「jdbc /項目/ 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

我怎樣才能在運行時替換數據源的屬性?

+0

也許您正在使用認證別名,而您忘記將其更新爲正確的用戶/密碼。最好的方法是在更改數據源屬性後重新啓動服務器。 – Gas

回答

0

您使用JNDI獲取與數據庫的連接。

你不應該擔心數據源的設置\憑證是什麼。這就是JNDI的想法。

如果您需要更改動態連接的設置,也許您最好限制JNDI並使用自定義連接創建機制。在WebSphere Application Server V7.0 Security Guide

0

您需要停止並啓動節點才能生效。您可以通過運行下面的命令做到這一點:

cd <was_home>/profiles/<node_name>/bin 

對於Linux:

要停止節點

./stopNode.sh 

啓動的節點

./startNode.sh 

對於Windows

要停止節點

stopNode.bat 

要另外啓動節點

startNode.bat 

,請確認您提供的用戶名和密碼是否正確。

0

如果您在z/OS的工作,那麼你可以閱讀「使用JDBC類型2驅動器傳播用戶的憑據DB2」 Ripplestart是假的這樣的事情的唯一途徑。這樣用戶影響最小。除非擁有A和B羣集模型,其中羣集B已處於脫機狀態,否則會在聯機之前等待此類更改。我沒有辦法知道在運行時更改憑據,而沒有至少應用程序服務器的滾動回收。

相關問題