Ich habe eine Frage zu Transaktionsleistung und / oder Kosten in folgenden Szenarien.
Umgebung: JBoss 7.1.1 / Oracle 11G / Java 6
Szenario A - 1 EJB:
Ich habe ein EJB erstellt, das einen Datensatz in einer Datenbank mit CMP (Transaktion REQUIRES_NEW) speichert:
%Vor%Dieser EJB wird von einem externen EJB-Client (ohne JTA trx) aufgerufen und funktioniert gut (1000 Einsätze / Sek.). JBoss dokumentiert auch die genaue Anzahl der Transaktionen in der JPA-Messung.
Szenario B - 2 EJBS:
Ich habe die Anwendung geändert und einen weiteren EJB hinzugefügt, der den EJB aus Szenario A aufruft, obwohl ich hier eine "gemeinsame" Transaktion haben möchte, die vom neuen EJB geöffnet wird. Also habe ich das bestehende EJB wie folgt geändert (Transaktion ERFORDERLICH):
%Vor%Im neuen EJB starte ich dann die neu benötigte Transaktion und rufe das (lokale) EJB:
auf %Vor%Nun, wieder funktioniert alles wie erwartet (gleiche Anzahl von Transaktionen usw.), obwohl die Performance dramatisch von 1000 auf 200 Einfügungen pro Sekunde gesunken ist, was sehr stört, da die Transaktionsabwicklung zwischen diesen beiden EJBs etwa 4 mal kostet einfügen :(
Weitere Informationen:
Fragen:
Wenn mehr Informationen benötigt werden, posten wir gerne mehr.
Danke für Hinweise oder Gedanken zu diesem Thema.
Bernhard