(转)"无法定位资源引用 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)该数据源。    
   
  但是,通常情况下,建议使用带有java:comp/env前缀的间接名称。这样可以在连接管理的运行环境中把资源引用(resource-ref)的特定属性与应用结合起来,可以更好地基于设置res-auth、res-isolation-level、res-sharing-scope   和   res-resolution-control来管理资源。    
   
  当然,直接使用数据源的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上下文中查找。
posted on   blue  阅读(680)  评论(0编辑  收藏  举报
努力加载评论中...

点击右上角即可分享
微信分享提示