繁体   English   中英

如何在WAS 6.1中获取数据源的属性

[英]how to get the properties of a datasource in WAS 6.1

我正在将一个应用程序从WAS4迁移到WAS6.1

一段代码如下:

javax.naming.Context ctx = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup(JNDI_NAME);                       
dsvalue_data   = new Hashtable(); 
confvalue_data = new Hashtable();

// Parse the datasource string and get the properties
// writeInfo will return the name of the datasource and will populate the
// dsvalue_data and confvalue_data hashtables with datasource and 
// connection pool properties

String tableHeader = writeInfo(ds.toString());

aResultHandler.addObject(CV_ABOUT_DESC,tableHeader);
aResultHandler.addObject(CV_ABOUT_PAGE,dsvalue_data);
.....
.....

问题出在WAS6.1中,此ds.toString()并未提供数据源的人类可读属性

当我尝试打印时,它只是给出对象名称(例如com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource@a21fg7 )。

我应该怎么做才能获取并打印数据源的所有属性?

获得数据源ds ,您可以获取如下数据库信息:

DatabaseMetaData md = ds.getConnection().getMetaData();

有很多方法可以使用,您可以从官方文档中获取列表。

您的主要目标是什么? 这样的DataSource不会公开您要查找的属性。 可能是您对aResultHandler API感到困惑。

我首先要说的是,您需要摆脱aResultHandler API或对其进行重构以利用DataSource。

如果出于任何疯狂原因您没有该选项,则下面是另一个选项。 不知道这是否有效。

依赖于toString()是一个错误的选择,因此您会遇到麻烦。 我建议您尝试将从JNDI查找返回的数据源强制转换为WAS实现类(执行ds.getClass()以查看实际的impl类),并查看这些属性是否以某种方式公开。

@Pangea

在Was4中,ds.toString()以可读格式提供数据源的详细信息

然后将其格式化以显示属性..like

 errorMap   =  null 
 logOrphan   =  false 
 connTimeout   =  180 
 TransactionBranchesLooselyCoupled  =  false 
 resetReadOnly   =  false 
 maxConnectionPoolSize   =  10 
 autoConnectionCleanupDisabled   =  false 
 minConnectionPoolSize   =  1 
 secureXACredential   =  false 
 surgeThreshold   =  -1 
 informixLockModeWait   =  0 
 dataBaseVersion   =  0 
 validationSQL   =  null 
 oracleStmtCacheSize   =  0 
 orphanTimeout   =  1800 
 stuckThreshold   =  -1 
 surgeTime   =  20 
 stuckTime   =  30 
 diagOptions   =  0 
 connectionValidation   =  false 
 maxStatementCacheSize   =  10 
 stuckTimerTime   =  5 
 idleTimeout   =  1800 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM