JTA-Data-Source und autocommit

xeal

Mitglied
Hallo zusammen,

ich bin gerade dabei eine Seam Applikation zu entwickeln. Innerhalb der Applikation benötige ich einen Zugriff auf eine DB2 Datenbank. Diese DB2 unterstützt keine Transaktion bzw. die Datenbank wird nicht jornalisiert. So weit bekomme ich die Datenbankverbindung hin. Ich kann über einen EntityManager Daten abfragen jedoch nicht schreiben.

In meiner Persistence.xml habe ich den Autocommit-Modus bereits eingestellt, leider ohne Erfolg.

Code:
<persistence> 
    <persistence-unit name="DB" transaction-type="RESOURCE_LOCAL">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:/Datasource</jta-data-source>
   
      <properties>
          <driver-class>com.ibm.as400.access.AS400JDBCDriver</driver-class>
         
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>
     
         <property name="hibernate.cache.use_query_cache" value="true"/>

         <property name="hibernate.connection.autocommit" value="true"/>

      </properties>
    </persistence-unit>
</persistence>

Habe vorhin den gesamten Vorgang im Debug Modus betrachtet. Habe aber nirgendwo eine autocommit Eigenschaft im EntityManager gefunden.

Meine Data-Source sieht wie folgt aus

Code:
<datasources>
   
    <local-tx-datasource>
        <jndi-name>Datasource</jndi-name>
			<connection-url>jdbc:as400://10.99.4.18/;translate binary=true</connection-url>
			<driver-class>com.ibm.as400.access.AS400JDBCDriver</driver-class>
	
			<user-name>user</user-name>
			<password>password</password>
			
        <metadata>
            <type-mapping>DB2</type-mapping>
        </metadata>
        
 
 	</local-tx-datasource>
</datasources>

Mache ich irgendwas falsch in meiner Konfiguration? Bin für jeden Tipp sehr dankbar!!

Gruß Xeal
 
Zuletzt bearbeitet:
Hallo!

Also in den Seam / Hibernate Examples steht in der hibernate.cfg.xml ein wenig mehr drin:
XML:
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory name="java:/bookingDatabase">
        <property name="show_sql">false</property>
        <property name="connection.datasource">java:/hibernateDatasource</property>
        <property name="hbm2ddl.auto">create-drop</property>
        <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
        <property name="transaction.flush_before_completion">true</property>
        <property name="connection.release_mode">after_statement</property>
        <property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
        <property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
        <mapping class="org.jboss.seam.example.hibernate.Hotel"/>
        <mapping class="org.jboss.seam.example.hibernate.User"/>
        <mapping class="org.jboss.seam.example.hibernate.Booking"/>
    </session-factory>
</hibernate-configuration>

Hier noch die Persistence.xml aus dem JPA Example der seam Distribution:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
             version="1.0">
   <persistence-unit name="bookingDatabase" transaction-type="JTA">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:/DefaultDS</jta-data-source>
      <properties>
         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
         <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
         <!-- alternative
         <property name="jboss.entity.manager.factory.jndi.name" 
              value="java:/jpaBookingEntityManagerFactory"/>
         -->
      </properties>
   </persistence-unit>
</persistence>

Gruß Tom
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück