设为首页 收藏本站
查看: 949|回复: 0

[经验分享] 转:IBM WAS5.x "无法定位资源引用 jdbc/DSName,因此使用下列缺省值"问题解决方案

[复制链接]

尚未签到

发表于 2017-5-27 09:53:49 | 显示全部楼层 |阅读模式
  转自:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1236159
  ConnectionFac I J2CA0122I: 无法定位资源引用 jdbc/DSName,因此使用下列缺省值:[Resource-ref settings]
  res-auth:                 1 (APPLICATION)
 res-isolation-level:      0 (TRANSACTION_NONE)
 res-sharing-scope:        true (SHAREABLE)
 res-resolution-control:   999 (undefined)
[Other attributes]
  isCMP1_x:                 false (not CMP1.x)
isJMS:                 false (not JMS)


公司一直用WSAD开发,服务器总是System.out这个问题,虽然不是错误,但是很烦人,想去掉了,问了不少人,也google了很多次,没有找到解决办法。今天百度了一下,终于解决了(看来还是多个搜索引擎并存的好,至少多了一个选择)。
  准备写一个,但是原来写得很好,就转一下吧,希望这个帖子能尽快收录到google,帮助不明白此问题的网友找到答案。
  ==>>>以下为转帖内容:
  那天他们把43的数据库连接改成了缓冲池,在WAS上调程序的时候发现LOG里老有如下信息:
  ConnectionFac I J2CA0122I: 无法定位资源引用 jdbc/DSName,因此使用下列缺省值:[Resource-ref settings]
  res-auth:                 1 (APPLICATION)
 res-isolation-level:      0 (TRANSACTION_NONE)
 res-sharing-scope:        true (SHAREABLE)
 res-resolution-control:   999 (undefined)
[Other attributes]
  isCMP1_x:                 false (not CMP1.x)
isJMS:                 false (not JMS)
  是在每一次连接数据库时,为什么呢?数据库的连接没有问题,对数据库的操作也没有受到一点儿影响……?
后来到网上SEARCH了一下,发现好多人都遇到了这个问题,当然也找到了解决的办法。但,不行!
因为事儿多所以就耽误了下来,正好今天IBM软件部的胡鹏飞来给我们讲WAS6(好家伙,5天的课程,今天一天全都突击出来)。
下午讲完课后我问他这个问题如何解决,他告诉我如何如何解决。他的方法与我的一样,可我的为什么不行呢?
  解决方法如下:
  J2EE 1.3的规范里面是推荐通过引用来访问各种资源,而不是直接使用资源的名字。对于数据源而言,虽然可以通过InitialContext的lookup ("jdbc/DSName")来使用,但这不是推荐的做法,而且在SystemOut.log日志中出现上述信息。如果为应用程序模块定义相应的数据源 引用,然后在代码中用InitialContext的lookup("java:comp/env/DSRefName")就不会出现上述信息。
主要是要把web.xml中的resource-ref标记设为
<resource-ref id="ResourceRef_#">
  <res-ref-name>jdbc/DSName</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>CONTAINER</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
在JAVA使用缓冲池连接数据库时这样写:
...........
Context ctx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/DSName");
connection = ds.getConnection();
............
  我 在WAS的控制管理器中说什么也没有找到设置resource-ref的地方,后来我想是不是应该重新部署一下应用呢?我嫌麻烦就没有做,胡鹏飞告诉我要 设置resource-ref只能重新部署应用。如果手工改文件比较麻烦,因为在ibm-web-bnd.xmi和ibm-web-ext.xmi都要做 绑定。他建议我先在WSAD中设置完再把这三个文件复制到WAS里。并且在应用服务器的config目录里也要有相应的修改,因为WAS读的是 config目录下的配置,不是企业应用。
sigh,恍然大悟啊,明白了,MD因为WAS还牵扯到集群方面,所以它不能从企业应用读配置文件。我 还是懒,所以我要手工改。嘿嘿!web.xml早就改好了:D,我把ibm-web-bnd.xmi和ibm-web-ext.xmi打开,将与 resource-ref所对应该的地方改好,当然config目录也是同样。重起了服务器后,再试。如然好了!:p
  ibm-web-bnd.xmi和ibm-web-ext.xmi里绑定代码分别是:
  [ibm-web-bnd.xmi]
.......
<resRefBindings xmi:id="ResourceRefBinding_#" jndiName="jdbc/DSName">
  <bindingResourceRef href="WEB-INF/web.xml#ResourceRef_#"/>
</resRefBindings>
.......
  [ibm-web-ext.xmi]
.......
<resourceRefExtensions xmi:id="ResourceRefExtension_#" connectionManagementPolicy="Default">
  <resourceRef href="WEB-INF/web.xml#ResourceRef_#"/>
</resourceRefExtensions>
.......
  note:代码基本上是放在<webApp href="WEB-INF/web.xml#WebApp_ID"/>标记的下面。
有几项注意的就是,
一、如果企业应用已经部署好了要对resource-ref,换句话说要改web.xml的设置,最好在外面改好比如WSAD里,再重新部署进WAS里。
二、如要手工改的话别忘了ibm-web-bnd.xmi和ibm-web-ext.xmi这两个问题要做关联的设置,还有应用服务的config目录。
三、为什么我在JAVA连数据库时没有在getConnection时加入用户名和密码呢,嘿嘿,因为在WAS的JAAS下的J2C设好了用户,并在设置JDBC缓冲池时在"组件受管认证别名"和"容器受管的认证别名"已经选中了我设置的数据库用户。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-381619-1-1.html 上篇帖子: 理解 pureQuery:IBM 最新的 Java 数据库应用编程范例 下篇帖子: 我曾经玩过的系统恩信ERP、JEECMS、财政部财政系统应用支撑平台、IBM Portal
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表