配置资源适配器

您可以配置符合 Java™ EE 连接器体系结构 (JCA) 规范 V1.6、V1.5 或 V1.0 的资源适配器。

关于此任务

您可以安装和配置资源适配器和各种连接工厂、受管对象以及 JCA 规范中定义的激活规范。

过程

  1. 更新 server.xml 文件以在 featureManager 标记下添加 jca-1.6 功能部件。 server.xml 文件位于 [path_to_liberty\wlp\usr\servers\server_name] 中。
     <featureManager>
      <feature>jca-1.6</feature>
     </featureManager>
  2. (可选)根据系统的需要来启用下列其他功能部件:
    • 如果您的资源适配器提供了 JMS 规范接口,请启用 jms-1.1 功能部件。
      <feature>jms-1.1</feature>
    • 如果您想要从应用程序中查询连接工厂和受管对象,请启用 jndi-1.0 功能部件。
      <feature>jndi-1.0</feature>
    • 如果资源适配器提供了消息驱动的 Bean 的激活规范,请启用 mdb-3.1 功能部件。
      <feature>mdb-3.1</feature>
    • 如果您的资源适配器支持入站安全性,请启用 jcaInboundSecurity-1.0 功能部件。
      <feature>jcaInboundSecurity-1.0</feature>
    • 如果您的资源适配器支持 Bean 验证且希望验证 Bean,那么可以启用 beanValidation-1.0 功能部件。

      <feature>beanValidation-1.0</feature>
  3. 在服务器中配置一个或多个资源适配器。可以使用下列其中一种方法来配置资源适配器。
    • 通过编辑 server.xml 文件来配置独立资源适配器。
      <resourceAdapter location="C:/adapters/MyAdapter.rar"/>
    • 通过编辑 server.xml 文件来配置嵌入式资源适配器,以安装将嵌入一个或多个资源适配器模块的应用程序。以下示例假定 app1.ear 文件包含一个或多个嵌入式 RAR 文件:
       <application location="C:/applications/app1.ear"/>
    • 允许服务器通过删除服务器 drop-ins 文件夹中的 RAR 文件来自动配置独立资源适配器。
       wlp/usr/servers/your-server-name/dropins/MyDropinAdapter.rar
    • 允许服务器通过删除服务器 drop-ins 文件夹中的 EAR 文件来自动配置包含一个或多个嵌入式资源适配器的应用程序。以下示例假定 app2.ear 文件包含一个或多个嵌入式 RAR 文件:
      wlp/usr/servers/your-server-name/dropins/app2.ear
  4. 启动应用程序服务器。启动服务器后,会在 console.log 文件中显示类似以下内容的消息:
    [AUDIT ] J2CA7001I: Resource adapter MyAdapter installed in 0.495 seconds. 
    [AUDIT ] J2CA7001I: Resource adapter MyDropinAdapter installed in 0.311 seconds. 
    [AUDIT ] J2CA7001I: Resource adapter app1.MyEmbeddedAdapter installed in 0.247 seconds.
    [AUDIT ] J2CA7001I: Resource adapter app2.anotherEmbeddedAdapter installed in 0.518 seconds.

示例

需要资源适配器的唯一标识,以将所配置的连接工厂、受管对象和激活规范的实例标识为与已安装的资源适配器相关联。对于独立资源适配器,将模块名称用作标识。对于嵌入在应用程序中的资源适配器,将应用程序名称与模块名称的组合用作标识(应用程序名称与模块名称之间用句点字符定界)。

  • 要使用包含资源适配器标识 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>
  • 要使连接工厂与资源适配器 MyEmbeddedAdapter(在 app1 应用程序中已启用)相关联,请使用 properties.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


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

文件名:twlp_jca_config_resadapters.html