(转)"无法定位资源引用 jdbc/***,,因此使用下列缺省值:[Resource-ref settings] "的解释
WebSphere Application Server v5 的应用中,当lookup数据源时,日志中出现如下信息,但数据源却能够使用,这是怎么回事?
ConnectionFac I J2CA0122I: 无法定位资源引用 jdbc/testdb,因此使用下列缺省值:[Resource-ref settings]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: true (SHAREABLE)
res-resolution-control: 999 (undefined)
解答:
WebSphere Application Server v5 中,所有连接器的访问都是通过J2C实现的。数据库访问提供了对 JCA 1.0 规范的完整支持,例如,对连接共享的支持,这是通过支持部署描述符中资源引用(resource-ref)的res-sharing-scope标记来实现的。
当创建数据源时,会指定一个的JNDI名称,它可以被其它组件(例如servlet等)用来查找(lookup)该数据源。
当然,直接使用数据源的JNDI名称也是支持的。这种情况下,会使用默认的资源引用属性。您会在日志文件中看到如下类似信息:
J2CA0122I: 无法定位资源引用 jdbc/testdb,因此使用下列缺省值:[Resource-ref settings]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: true (SHAREABLE)
res-resolution-control: 999 (undefined)
也就是说,当上述信息出现时,说明应用中是通过数据源的JNDI名称直接查找(lookup)数据源的,并且使用了上述默认属性。如果不想使用默认属性或不想输出上述提示信息,则需要在部署描述符中定义该数据源的资源引用,相应的,应用中需要使用间接的JNDI查找,即在java:comp/env上下文中查找。
浙公网安备 33010602011771号