配置 JCA 受管对象

您可以配置符合 Java™ EE 连接器体系结构 (JCA) 规范的受管对象。

关于此任务

您可以配置安装的资源适配器提供的受管对象的一个或多个实例。
注: 要对 Liberty 配置 JCA 支持,必须使用 WebSphere® Application Server Developer Tools for Eclipse 的服务器配置编辑器的“源代码”视图或某个其他文本编辑器来编辑 server.xml 文件。本主题假定在服务器中已配置具有唯一标识 MyAdapter 的资源适配器,请参阅有关配置资源适配器的文档以获取更多详细信息。以下步骤中提供了配置基本场景的端到端示例。
注: 不支持在 WebSphere® Development Tools (WDT) 的“设计”视图中编辑连接工厂、管理对象、激活规范和资源适配器的服务器配置的属性子元素。

过程

  1. 更新 server.xml 文件以在 featureManager 标记下添加 jca-1.6 功能部件。
    <featureManager>
    	<feature>jca-1.6</feature> 
    	<feature>jndi-1.0</feature>  <!-- Add the jndi feature to enable look up of connection factories and administered objects. -->   
    		... 
    </featureManager>
  2. 安装资源适配器。 例如,按如下所示更新 server.xml 文件:
    <resourceAdapter location="C:/adapters/MyAdapter.rar"/>
  3. 配置一个或多个受管对象实例。 当您配置受管对象实例时,必须提供 properties 子元素(即使您不想覆盖任何配置属性也是如此),以将 adminObject 元素与特定资源适配器所提供的受管对象类型相关联。在以下示例中,MyAdapter 资源适配器仅提供一种类型的受管对象:
    <adminObject jndiName="eis/interactionSpec">
     <properties.MyAdapter functionName="find" executionTimeout="5000"/>
    </adminObject>
  4. (可选)如果需要,请标识可用的受管对象属性子元素名称。
    • 如果资源适配器仅提供一个受管对象接口,且不包含任何 JMS 目标、队列和主题,那么子元素名称为:properties.<rar_identifier>

    • 如果接口名称是唯一的,且不具有软件包名称,那么子元素名称为:properties.<rar_identifier>.<InterfaceName>

    • 如果实现名称是唯一的,并且不具有软件包名称,那么子元素名称为:properties.<rar_identifier>.<ImplementationName>

    • 如果接口名称和实现名称的组合是唯一的,且不具有软件包名称,那么子元素名称为:properties.<rar_identifier>.<InterfaceName>-<ImplementationName>

    • 在其他情况下,子元素名称为:properties.<rar_identifier>.<fully.qualified.InterfaceName>-<fully.qualified.ImplementationName>

示例

使用以下示例来了解如何配置具有两个受管对象且接口类名唯一的资源适配器。

ra.xml 文件的以下片段中,MyAdapter 资源适配器提供了具有唯一接口类名的两个受管对象:

<adminobject>
<adminobject-interface>javax.resource.cci.ConnectionSpec</adminobject-interface>
<adminobject-class>com.vendor.adapter.ConnectionSpecImpl</adminobject-class>
<config-property> 
 <config-property-name>isolationLevel</config-property-name>
 <config-property-type>java.lang.Integer</config-property-type>
</config-property>
... 
</adminobject>

<adminobject>
<adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
<adminobject-class>com.vendor.adapter.InteractionSpecImpl</adminobject-class>
<config-property>
 <config-property-name>FunctionName</config-property-name>
 <config-property-type>java.lang.String</config-property-type>
</config-property>
... 
</adminobject>
以下是此方案的服务器配置的示例:
<adminObject jndiName="eis/connectionSpec">
 <properties.MyAdapter.ConnectionSpec isolationLevel="4"/>
</adminObject>

<adminObject jndiName="eis/interactionSpec">
 <properties.MyAdapter.InteractionSpec functionName="find"/>
</adminObject>

使用以下示例来了解如何配置具有两个受管对象且实现类名唯一的资源适配器。

ra.xml 文件中的以下片段中,MyAdapter 资源适配器提供了具有唯一实现类名的两种受管对象:

<adminobject>
<adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
<adminobject-class>com.vendor.adapter.FinderInteractionSpec</adminobject-class>
<config-property>
 <config-property-name>ResultSetType</config-property-name>
 <config-property-type>java.lang.Integer</config-property-type>
</config-property> 
... 
</adminobject>

<adminobject>
<adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
<adminobject-class>com.vendor.adapter.UpdaterInteractionSpec</adminobject-class> 
<config-property> 
 <config-property-name>ExecutionTimeout</config-property-name>
 <config-property-type>java.lang.Long</config-property-type> 
</config-property>
...
</adminobject>
以下是此方案的服务器配置的示例:
<adminObject jndiName="eis/finder">
 <properties.MyAdapter.FinderInteractionSpec resultSetType="1003"/>
</adminObject>

<adminObject jndiName="eis/updater">
 <properties.MyAdapter.UpdaterInteractionSpec executionTimeout="3000"/>
</adminObject>

使用以下示例来了解如何配置具有两个受管对象,而简单接口类名和实现类名都不唯一的资源适配器。

ra.xml 文件的以下片段中,MyAdapter 资源适配器提供了两个受管对象,而简单接口类名和实现类名都不唯一:

<adminobject>
<adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
<adminobject-class>com.vendor.adapter.finder.InteractionSpecImpl</adminobject-class>
<config-property> 
 <config-property-name>ResultSetType</config-property-name>
 <config-property-type>java.lang.Integer</config-property-type>
</config-property>
... 
</adminobject>

<adminobject>
<adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
<adminobject-class>com.vendor.adapter.updater.InteractionSpecImpl</adminobject-class>
<config-property> 
 <config-property-name>ExecutionTimeout</config-property-name>
 <config-property-type>java.lang.Long</config-property-type>
</config-property>
...
</adminobject>
以下是此方案的服务器配置的示例:
<adminObject jndiName="eis/finder">
 <properties.MyAdapter.javax.resource.cci.InteractionSpec-com.vendor.adapter.finder.InteractionSpecImpl resultSetType="1003"/>
</adminObject> 

<adminObject jndiName="eis/updater"> 
 <properties.MyAdapter.javax.resource.cci.InteractionSpec-com.vendor.adapter.updater.InteractionSpecImpl executionTimeout="3000"/>
</adminObject>

可以覆盖配置元素名称的后缀。请参阅有关定制 JCA 配置元素的信息,以了解如何覆盖配置元素名称的后缀。


用于指示主题类型的图标 任务主题

文件名:twlp_jca_config_admobj.html