数据源的直接和间接 JNDI 查询方法

您可以使用 Java™ 命名和目录接口 (JNDI) 名称(例如 jdbc/DataSource)的直接或间接方法来查找数据源。

直接

使用 JNDI 名称(例如 jdbc/myDatasource)时,应用程序服务器会将缺省值指定给资源引用数据。 将记录类似如下的参考消息以说明缺省值:
[10/5/07 11:40:38:468 CDT] 0000002e ConnectionFac W   J2CA0294W: Direct JNDI lookup of resource jdbc/myDatasource.
   The following default values are used:

[Resource-ref CMConfigData key items]  	
res-auth:                 1 (APPLICATION)
res-isolation-level:      0 (TRANSACTION_NONE)
res-sharing-scope:        true (SHAREABLE)
loginConfigurationName:   null 	
	loginConfigProperties:    null

[Resource-ref non-key items]  	
isCMP1_x:                 false (not CMP1.x)
isJMS:                 false (not JMS)
commitPriority            0 	
Java EE Name:                not set 	
Resource ref name:        not set 	
isCMP:                    false (not set)

这些属性中的第一个 res-auth 指示执行了哪种认证类型。此缺省设置指出,如果不指定激活规范或者不在 getConnection 调用上指定用户名和密码,那么就会使用组件管理的认证别名。它指出不使用容器管理的别名。

这些设置中的第二个 res-isolation-level 指出将隔离级别设置为“缺省”设置。对于企业 Bean,可在 Enterprise JavaBeans (EJB) Bean 本身中设置此项。对于获取连接的 Servlet,这导致隔离级别为 Repeatable_Read。这是相当严格的隔离级别。这可能会导致降低性能,因为与没这么严格的隔离级别相比,应用程序请求将锁定更多的行。

最后,res-sharing-scope 设置为可共享,表示使用可共享连接。对于某些应用程序,可共享连接相当好。但对于其他应用程序,特别是在单个 service() 方法中获取多个连接的那些 Servlet,共享连接就不是很好。

为了避免可能会伴随这些设置出现的任何意外,应将您的应用程序更改为使用间接 JNDI 名称而不是直接 JNDI 名称,并且应创建资源引用。

间接

要使用缺省值以外的值,请使用组装工具来定义您的资源引用。也可以使用组装工具在 EJB 部署描述符 (ejb-jar.xml)、Web 部署描述符 (web.xml) 或 Application Client 部署描述符 (application-client.xml) 编辑器中创建资源引用。定义了资源引用之后,您就可以执行间接 JNDI 查询(使用 java:comp/env 上下文)。然后就可使用在资源引用中定义的资源引用属性的值,并且 J2CA0122I 消息不再出现。请参阅有关创建资源引用的主题以获取更多信息。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_directlookup
文件名:cdat_directlookup.html