Transaktion zu lange / zu viel Speicher (JEE, JPA)

JanHH

Top Contributor
Hallo,

in einer Servicemethode eines Objektes einer seam-Anwendung (egal ob EJB oder nicht) wird eine Datenbanktransaktion ausgeführt, bei der etliche tausend Zeilen gelesen, verarbeitet und diverse tausend neue Zeilen in der Datenbank angelegt werden. Das geht grundsätzlich, aber irgendwann kommen Grenzen, wo die Transaktion abstürzt/rollback. So ab ca. 10.000 Zeilen.

Was da tun?

Am liebsten wärs mir, die Transaktion nach n (z.B. 1000) Zeilen zu committen und eine neue zu starten. Da der entityManager aber entweder von Seam oder vom AS gemanaged wird, besteht diese Möglichkeit nicht (oder doch? weiss jemand wie?) Ich benutze den Seam-EM, also

@In
private EntityManager em;

Dann habe ich noch probiert, mit einer zweiten (non-jta, RESOURCE-LOCAL) persistence unit eine eigene EntityManagerFactory zu erzeugen, von dieser einen EM zu bekommen und mit dem dann "per Hand" die Transaktionen zu steuern (an ANDERER Stelle der Anwendung, in einem simplen Servlet, funktioniert das!). Dann kommt seltsamerweise die Fehlermeldung "java.sql.SQLException: You cannot commit during a managed transaction!". Verstehe ich nicht, denn die Transaction sollte nicht gemanaged sein!?

Weiss jemand rat? Möglichst noch heute nacht? ;-) Eilt etwas..

Gruß+Danke
Jan
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y [openJPA] Problem mit Transaktion? Data Tier 2

Ähnliche Java Themen

Neue Themen


Oben