2012-04-10 8 views
1

Ich bin konsequent auf JPA geschlossenen Verbindungsprobleme. Ich benutze Frühling 3.0.5 mit Hibernate 3.0. Ich verwende JPA-Transaktionsmanager, um meine Dienste zu verwalten und REQUIRED-Propagierung zu verwenden. GESCHLOSSEN Verbindungsprobleme mit JPA-Transaction-Manager

Hier ist mein Szenario.

Table A 
id  
desc (LAZY) 

Table B 
a_id 

a_id in Table B refers to id of Table A. 

Ich möchte Entität A gegeben ein Unternehmen B.

Here is what I am doing (roughly) inside the controller: 
List<B> list = serviceB.find() ; 

for each element - itemB in above list : itemA = serviceA.find(itemB.a_id); 
convert itemA to UI bean and set it in model. 

ich davon aus laden bin, dass jeder der find() Methoden in meinem Dienst wird innerhalb einer Transaktion ausgeführt werden, die aufgrund einer Erforderliche Verbreitung. Für die zweite find() -Methode wird jedoch eine Exception ausgegeben, und dies auch nur zeitweise. Manchmal heißt es CLOSED connection und zu anderen Zeiten heißt es 'Transaction not active' und seltsamerweise funktioniert es manchmal wie erwartet! Fahr mich verrückt ..

Hilfe geschätzt!

Antwort

0

Problem war mit mehreren Threads Zugriff auf die gleichen Service-Methoden. Wenn ich meine UI-Seiten so ändere, dass sie einen seriellen Zugriff statt parallel (mit AJAX) herstellen, tritt dies nicht auf. Muss Entity Manager mit Multi-Thread-Szenario arbeiten.

Verwandte Themen