1

実行中の設定例を持っている人はいますか:

  • Apache Tomcat (TomEE)/8.5.6 (7.0.2) PLUME
  • Oracle 11g (ojdbc7.jar)

EE/JPA 2.1-Development に可能な限り一致させるには?

現在、データソースを使用しようとすると、TomEE のユーザー データベースを取得します。ログエントリ「org.apache.openejb.config.AutoConfig.deploy Found matching datasource: jdbc/jKgvDS but this one is not a JTA datasource」が原因で、最後に実行されていた既知のデータソースにフォールバックしたことが原因だと思います。では、有効な JTA データソースを構成するにはどうすればよいでしょうか?

サーバー.xml:

<Resource id="jKgvDS" name="jdbc/jKgvDS" 
                      jtaManaged="true"
                      auth="Container"
                      type="oracle.jdbc.xa.client.OracleXADataSource" 
                      
driverClassName="oracle.jdbc.xa.client.OracleXADataSource"
                      factory="oracle.jdbc.pool.OracleDataSourceFactory"
                      url="jdbc:oracle:thin:@db:1521:db"
                      username="myuser" 
                      password="mypass" 
                      maxActive="20"
                      maxIdle="30"
                      maxWait="-1"
                      validationQuery="SELECT 1 FROM DUAL"
            />

context.xml (conf および app-file で試行)

<ResourceLink global='jdbc/jKgvDS' 
name='jdbc/jKgvDS' type="javax.sql.XADatasource" 
auth="Container" />

persistence.xml

<persistence-unit name="jKgvPU" transaction-type="JTA">
        <jta-data-source>jdbc/jKgvDS</jta-data-source>        
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <validation-mode>NONE</validation-mode>
        <properties>
            <property
                name="openjpa.jdbc.DBDictionary"  
value="org.apache.openjpa.jdbc.sql.OracleDictionary" />
            <property
                name="openjpa.jdbc.DBDictionary"
value="oracle(maxEmbeddedBlobSize=-1,maxEmbeddedClobSize=-1)" />
            <property
                name="openjpa.jdbc.SynchronizeMappings"
                value="buildSchema(ForeignKeys=true)" />
        </properties>
    </persistence-unit>

4

1 に答える 1