![[8.5.5.2 或更高版本]](../ng_v8552.gif)

配置资源适配器
您可以配置符合 Java™ EE 连接器体系结构 (JCA) 规范 V1.6、V1.5 或 1.0 的资源适配器。
关于此任务
您可以根据 JCA 规范所定义安装和配置资源适配器和各种连接工厂、受管对象和激活规范。
过程
示例
需要资源适配器的唯一标识以将连接工厂、受管对象和激活规范相关联的已配置实例标识为与已安装资源适配器相关联。对于独立资源适配器,将模块名称用作标识。对于应用程序中嵌入的资源适配器,将应用程序名称和模块名称的组合(使用句点字符分隔)用作标识。
要使用包含资源适配器标识 MyAdapter 的 properties.MyAdapter 子元素指定独立资源适配器的属性:
<resourceAdapter location="C:/adapters/MyAdapter.rar"> <properties.MyAdapter logFile="${server.output.dir}/logs/myAdapter.log"/> </resourceAdapter>
要使用包含资源适配器标识 MyAdapter 的 properties.MyAdapter 子元素将连接工厂与独立资源适配器关联:
<resourceAdapter location="C:/adapters/MyAdapter.rar"/> <connectionFactory jndiName="eis/cf"> <properties.MyAdapter serverName="localhost" portNumber="1234"/> </connectionFactory>
要使用 properties.app1.MyEmbeddedAdapter 子元素将连接工厂与 app1 应用程序中嵌入的资源适配器 MyEmbeddedAdapter 关联:
<application location="C:/applications/app1.ear"/> <connectionFactory jndiName="eis/cf"> <properties.app1.MyEmbeddedAdapter serverName="localhost" portNumber="1234"/> </connectionFactory>
在某些情况下,模块名称不够唯一,无法充当标识。例如,如果安装相同资源适配器的两个不同版本,那么可能会发生此情况。或者,模块名称可能唯一,但配置时可能不需要使用,因为它较长或包含非字母数字字符。您可以通过指定 id 属性来覆盖资源适配器标识。
以下示例说明如何覆盖独立资源适配器的标识:
<resourceAdapter id="MyAdapterV1" location="C:/adapters/version-1.0/MyAdapter.rar"/> <resourceAdapter id="MyAdapterV2" location="C:/adapters/version-2.0/MyAdapter.rar"/> <connectionFactory jndiName="eis/cf1"> <properties.MyAdapterV1 serverName="localhost" portNumber="1234"/> </connectionFactory> <connectionFactory jndiName="eis/cf2"> <properties.MyAdapterV2 serverName="localhost" portNumber="1234"/> </connectionFactory>
以下示例说明如何覆盖应用程序中嵌入的资源适配器的标识。示例将标识更改为 MyEmbeddedRA:
<application location="C:/applications/app1.ear"> <resourceAdapter id="MyEmbeddedAdapter" alias="MyEmbeddedRA"/> </application><connectionFactory jndiName="eis/cf"> <properties.app1.MyEmbeddedRA serverName="localhost" portNumber="1234"/> </connectionFactory>
要计算嵌入的资源适配器的模块名称,资源适配器部署描述符 (ra.xml) 中的 <module-name> 条目优先作为模块名称。例如,在 ra.xml 中提供以下定义:
<connector ...> <module-name>MyRARModule</module-name> </connector>
模块名称将设置为“MyRARModule”。
如果连接器部署描述符中缺少模块名称,那么使用引用了应用程序部署描述符 (application.xml) 中资源适配器模块的 URI 的简短格式。例如,在 application.xml 中提供以下模块定义:
<module> <connector>connectors/MyRARModule.rar</connector> </module>
模块名称将计算为“MyRARModule”。
如果应用程序中嵌入了多个资源适配器,并定义相同 <module-name> 值,那么 application.xml 中列出的第一个资源适配器会使用此模块名称。根据完整格式的 URI(所有正斜杠 / 字符转换为句点 .)计算具有此相同冲突名称的另一个连接器的模块名称。. 例如,如果在一个应用程序中嵌入了两个连接器,且这两个连接器都包含 ra.xml 中的以下定义:
<connector ...> <module-name>MyRARModule</module-name> </connector>
和 application.xml 中的以下定义:
<module> <connector>subfolder1/connector1.rar</connector> </module> <module> <connector>subfolder2/connector2.rar</connector> </module>
第一个连接器的模块名称将为“MyRARModule”,第二个连接器的模块名称将为“subfolder2.connector2.rar”