对同一个数据源配置两个资源引用文件
可以对同一个数据源配置两个资源引用文件。这允许您扩展数据源的定制属性以使其包括两个不同的模式名(z/OS® 上的 currentSQLId 或者定制属性中的 currentSchema 名称),您可以通过这两个模式名来利用应用程序服务器的功能。
关于此任务

property name="openjpa.jdbc.TransactionIsolation" value="read-committed"
为了满足此请求,Java™ Persistence API (JPA) 将获取连接并立即调用
setTransactionIsolation(READ_COMMITTED)。当有两个 EntityManager
共享与数据库的单一物理连接时,第一个 EntityManager 将创建与该数据库的连接并将该连接包括在事务中。第二个
EntityManager 创建连接时,它无法更改隔离级别。
通过在同一个数据源中创建两个资源引用文件,可以避免此问题。您可以使用 Rational® Application Developer 或者通过编辑 XML 文件来创建
资源引用。您将需要对 ejb-jar.xml、ibm-ejb-jar-bnd.xml、ibm-ejb-jar-ext.xml 和
persistence.xml 文件进行更改。
注: 对于 IBM® Optim™ PureQuery Runtime,如果这是 XA 数据源,那么必须对此数据源定义
property_name 为 downgradeHoldCursorsUnderXa 且布尔值为 true 的新定制属性。
有关如何完成此任务的信息,请参阅下列各节:
过程
- 使用 Rational Application Developer 对同一个数据源配置两个资源引用文件。
- 编辑 ejb-jar.xml 文件。
- 如果部署描述符尚未存在,请进行创建:
- 访问 Enterprise Java Bean (EJB) 项目的上下文菜单并选择 Java EE > 生成部署描述符存根。
- 编辑部署描述符:
- 转到项目的 META-INF 目录并选择 ejb-jar.xml 文件。
- 如果在部署描述符中还不存在该企业 Bean 的元素,请添加该元素:
- 选择 EJB 项目节点。单击添加。
- 在对话框中,选择企业 Bean。单击确定。
- 如果在部署描述符中还不存在会话 Bean,请进行添加:
- 选择企业 Bean。单击添加。
- 选择会话 Bean。单击确定。
- 在对话框中输入该会话 Bean 的名称。单击确定。
- 输入 EJB 类、业务本地接口和业务远程接口。
- 对该会话 Bean 添加资源引用元素:
- 选择会话 Bean 并单击添加。
- 选择资源引用。单击确定。
- 在添加资源引用对话框中,输入“名称”、“类型”、“认证”和“共享范围”字段。单击确定。
- 对第二个资源引用重复以上过程。
- 保存编辑器。
- 如果部署描述符尚未存在,请进行创建:
- 编辑 ibm-ejb-jar-bnd.xml 文件。
- 如果 WebSphere® EJB 绑定描述符尚未存在,请进行创建:
- 访问 Enterprise JavaBeans (EJB) 项目的上下文菜单并选择 Java EE > 生成 WebSphere 绑定部署描述符。
- 编辑绑定描述符:
- 在项目的 META-INF 目录中,选择 ibm-ejb-jar-bnd.xml 文件。
- 在绑定描述符中添加该会话 Bean 的绑定元素:
- 选择 EJB Jar 绑定节点并单击添加。
- 在对话框中,选择会话,然后单击确定。
- 输入会话 Bean 的名称。
- 对该会话 Bean 添加资源引用绑定:
- 选择会话 Bean 并单击添加。
- 在对话框中,选择资源引用,然后单击确定。
- 选择该资源引用。
- 输入引用的名称和绑定名称
- 对第二个资源引用重复以上过程。
- 保存编辑器。
- 如果 WebSphere® EJB 绑定描述符尚未存在,请进行创建:
- 编辑 ibm-ejb-jar-ext.xml 文件。
- 如果 WebSphere EJB 扩展描述符尚未存在,请进行创建:
- 访问 Enterprise JavaBeans (EJB) 项目的上下文菜单并选择 Java EE > 生成 WebSphere 扩展部署描述符。
- 编辑扩展描述符:
- 在项目的 META-INF 目录中,选择 ibm-ejb-jar-ext.xml 文件。
- 在扩展描述符中添加该会话 Bean 的扩展元素:
- 选择 EJB Jar 扩展节点并单击添加。
- 在对话框中,选择会话,然后单击确定。
- 输入会话 Bean 的名称。
- 定义资源引用的隔离级别:
- 选择会话 Bean 并单击添加。
- 在对话框中,选择资源引用,然后单击确定。
- 选择该资源引用。
- 输入名称和隔离级别。
- 对第二个资源引用重复以上过程。
- 保存编辑器。
- 如果 WebSphere EJB 扩展描述符尚未存在,请进行创建:
- 编辑 persistence.xml 文件。
- 对 EJB 项目添加 JPA 支持,这将创建 persistence.xml 文件:
- 从项目的上下文菜单中,选择属性。
- 选择项目构面节点。
- 选中 Java 持久性旁边的框。
- 单击确定。
- 编辑 persistence.xml 文件:
- 在项目的 META-INF 目录中,选择 persistence.xml 文件。
- 创建的 persistence.xml 文件已包含持久性单元定义。请对这个 persistence.xml 文件进行编辑。
- 选择持久性单元节点。请设置“名称”、“JTA 数据源”和“排除未列示的类”字段。
- 在此文件中创建新的持久性单元定义:
- 选择持久性节点,然后单击添加。
- 在对话框中,选择持久性单元,然后单击确定。
- 选择持久性单元节点。请设置“名称”、“JTA 数据源”和“排除未列示的类”字段。
- 对持久性单元添加类:
- 选择持久性单元节点,然后单击添加。
- 在对话框中,选择类,然后单击确定。
- 输入类名。
- 对每个类重复以上过程。
- 对持久性单元添加属性。
- 如果文件中还没有 Properties 元素,请选择持久性单元节点,然后单击添加。
- 在对话框中,选择属性,然后单击确定。
- 选择属性节点,然后单击添加。
- 在对话框中,选择属性,然后单击确定。
- 输入该属性的名称和值。
- 重复前三个步骤,以便添加其他属性。
- 保存编辑器。
- 对 EJB 项目添加 JPA 支持,这将创建 persistence.xml 文件:
- 编辑 ejb-jar.xml 文件。
- 通过编辑 XML 文件对同一个数据源配置两个资源引用文件。
- 编辑 ejb-jar.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar id="ejb-jar_ID" metadata-complete="false" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"> <enterprise-beans> <session> <ejb-name>NewOrderSessionFacadeBean</ejb-name> <business-local>newordersession.ejb3.NewOrderSessionFacade</business-local> <business-remote>newordersession.ejb3.NewOrderSessionFacadeRemote</business-remote> <ejb-class>newordersession.ejb3.NewOrderSessionFacadeBean</ejb-class> <session-type>Stateless</session-type> <resource-ref> <description></description> <res-ref-name>jdbc/ERWWDataSourceV5</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <resource-ref> <description></description> <res-ref-name>jdbc/ERWWDataSourceV5_HP</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> </session> </enterprise-beans> </ejb-jar>
- 编辑 ibm-ejb-jar-bnd.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" version="1.0"> <session name="NewOrderSessionFacadeBean" simple-binding-name="ejb/session/NewOrderSessionFacadeBean"> <resource-ref name="jdbc/ERWWDataSourceV5" binding-name="jdbc/ERWWDataSourceV5"></resource-ref> <resource-ref name="jdbc/ERWWDataSourceV5_HP" binding-name="jdbc/ERWWDataSourceV5"></resource-ref> </session> </ejb-jar-bnd>
- 编辑 ibm-ejb-jar-ext.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar-ext xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-ext_1_0.xsd" version="1.0" metadata-complete="true"> <session name="NewOrderSessionFacadeBean"> <resource-ref name="jdbc/ERWWDataSourceV5" isolation-level="TRANSACTION_READ_COMMITTED" /> <resource-ref name="jdbc/ERWWDataSourceV5_HP" isolation-level="TRANSACTION_READ_COMMITTED" /> </session> </ejb-jar-ext>
- 编辑 persistence.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation= "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="NewOrderSessionEJB3"> <jta-data-source>java:comp/env/jdbc/ERWWDataSourceV5</jta-data-source> <class>warehouseejb3.WarehouseJPA</class> <class>districtejb3.DistrictJPA</class> <class>customerejb3.CustomerJPA</class> <class>stockejb3.StockJPA</class> <class>orderejb3.OrderJPA</class> <class>orderlineejb3.OrderlineJPA</class> <class>neworderejb3.NewOrderJPA</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="openjpa.LockManager" value="pessimistic"/> <property name="openjpa.ReadLockLevel" value="read"/> <property name="openjpa.WriteLockLevel" value="write"/> <property name="openjpa.LockTimeout" value="30000"/> <property name="openjpa.FetchBatchSize" value="1" /> <property name="openjpa.jdbc.TransactionIsolation" value="read-committed" /> <property name="openjpa.Log" value="none"/> </properties> </persistence-unit> <persistence-unit name="ItemEJB3"> <jta-data-source>java:comp/env/jdbc/ERWWDataSourceV5_HP</jta-data-source> <class>itemejb3.ItemJPA</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="openjpa.LockManager" value="pessimistic"/> <property name="openjpa.ReadLockLevel" value="read"/> <property name="openjpa.WriteLockLevel" value="write"/> <property name="openjpa.LockTimeout" value="30000"/> <property name="openjpa.FetchBatchSize" value="1" /> <property name="openjpa.jdbc.TransactionIsolation" value="read-committed" /> <property name="openjpa.Log" value="none"/> </properties> </persistence-unit> </persistence>
- 编辑 ejb-jar.xml 文件:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_purequeryresref
文件名:tdat_purequeryresref.html