基本的な JCA ResourceAdapter の構成およびデプロイ

基本的な Java™ EE Connector Architecture (JCA) の ConnectionFactory およびリソース・アダプターを構成し、デプロイすることができます。

このタスクについて

リソース・アダプターをインストールし、そのリソース・アダプターが提供するリソースのインスタンスを構成することができます。このタスクでは、ExampleRA.rar という名前のサンプル・リソース・アダプターを使用します。このサンプル・リソース・アダプターは、3 つのタイプのリソース (1 つの接続ファクトリーと 2 つのタイプの管理対象オブジェクト) を提供します。

手順

  1. server.xml ファイルで JCA フィーチャーを使用可能にします。 server.xml ファイルは、[path_to_liberty¥wlp¥usr¥servers¥server_name] にあります。
    <server>
      <featureManager>
        <feature>jca-1.6</feature>
        <feature>servlet-3.0</feature>
      </featureManager></server>
  2. リソース・アダプターの RAR ファイル (ExampleRA.rar) を、サーバーの dropins フォルダーに入れます。 サーバーが稼働中の場合、リソース・アダプターがインストールされたことを示す次のようなメッセージがコンソール・ログに含まれます。
    [AUDIT ] J2CA7001I: リソース・アダプター ExampleRA が 1.306 秒でインストールされました。
  3. リソース・アダプターのデプロイメント記述子、アノテーション、およびその他の資料を調べて、そのアダプターがどのようなタイプのリソースを提供しているか、および各アダプターが受け入れる構成プロパティーを判別します。 サンプル・リソース・アダプター ExampleRA.rar の場合、この情報は ra.xml デプロイメント記述子にあります。ra.xml ファイルは、[path_to_ExampleRA¥ExampleRA¥META-INF] にあります。このデプロイメント記述子は、構成可能な 3 つのタイプのリソースを特定しています。
    <connection-definition>
     <managedconnectionfactory-class>com.ibm.example.jca.adapter.ManagedConnectionFactoryImpl</managedconnectionfactory-class>
     <config-property>
      <config-property-name>tableName</config-property-name>
      <config-property-type>java.lang.String</config-property-type>
     </config-property>
     <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
     ...
    </connection-definition>
    
        <adminobject>
          <adminobject-interface>javax.resource.cci.ConnectionSpec</adminobject-interface>
          <adminobject-class>com.ibm.example.jca.adapter.ConnectionSpecImpl</adminobject-class>
          <config-property>
            <config-property-name>readOnly</config-property-name> 
            <config-property-type>java.lang.Boolean</config-property-type>
            <config-property-value>false</config-property-value> 
          </config-property>
        </adminobject>
    
        <adminobject>
          <adminobject-interface>javax.resource.cci.InteractionSpec</adminobject-interface>
          <adminobject-class>com.ibm.example.jca.adapter.InteractionSpecImpl</adminobject-class>
          <config-property>
            <description>Function name. Supported values are: ADD, FIND, REMOVE</description>
            <config-property-name>functionName</config-property-name> 
            <config-property-type>java.lang.String</config-property-type> 
          </config-property>
        </adminobject>
  4. server.xml ファイルで、使用可能なリソース・タイプのインスタンスを構成します。
    <server>
      <featureManager>
        <feature>jca-1.6</feature>
        <feature>servlet-3.0</feature>
      </featureManager>
      <connectionFactory jndiName="eis/conFactory">
        <properties.ExampleRA tableName="TABLE1"/>
      </connectionFactory> 
    
      <adminObject jndiName="eis/conSpec">
        <properties.ExampleRA.ConnectionSpec/>
      </adminObject>
    
      <adminObject jndiName="eis/iSpec_ADD">
        <properties.ExampleRA.InteractionSpec functionName="ADD"/>
      </adminObject>
    
      <adminObject jndiName="eis/iSpec_FIND">
        <properties.ExampleRA.InteractionSpec functionName="FIND"/>
      </adminObject>
    
    </server>
  5. リソース・インジェクションを使用して、サーブレット内のリソースにアクセスします。例えば、次のように指定します。
        @Resource(lookup = "eis/conFactory")
        private ConnectionFactory conFactory;
    
        @Resource(lookup = "eis/conSpec")
        private ConnectionSpec conSpec;
    
        @Resource(lookup = "eis/iSpec_ADD")
        private InteractionSpec iSpec_ADD;
    
        @Resource(lookup = "eis/iSpec_FIND")
        private InteractionSpec iSpec_FIND;
    
        ...
    
            MappedRecord input = conFactory.getRecordFactory().createMappedRecord("input");
            input.put("city", "Rochester");
            input.put("state", "Minnesota");
            input.put("population", 106769);
    
            Connection con = conFactory.getConnection(conSpec);
            try {
                Interaction interaction = con.createInteraction();
                interaction.execute(iSpec_ADD, input);
                interaction.close();
            } finally {
                con.close();
            }
    注: 注入を使用するのではなく、名前空間からリソースを検索する場合は、server.xml ファイル内で JNDI フィーチャーを使用可能にする必要があります。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_jca_config_dep.html