-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Problem mit mehreren Threads! brauche Hilfe!
PostPosted: Fri Jan 20, 2006 5:16 am 
Newbie

Joined: Fri Jan 20, 2006 4:47 am
Posts: 2
Hallo ich habe wirklich große Problme mit meiner Multi-Thread-Anwendung und Hibernate. Ich habe eine Anwendung geschrieben die von einer entfernten Message-Queue XML-Nachrichten abholt und danach in eine Datenbank speichert, von woaus sie danach von eimem Fremdsystem verarbeitet werden.

Um möglichst viele Messages pro Sekunde zu verarbeiten arbeite ich mit mehren Threads.

Folgender Code wird von jedem Thread zum speichern der XML-Nachricht ausgeführt:

Code:
// Session starten
session = sessionFactory.openSession();

// Transaktion starten
tx = session.beginTransaction();
            
dom4jSession = session.getSession(EntityMode.DOM4J);   
            
// Schreibe Message in die DB
Node rootNode = document.getRootElement();
dom4jSession.save(entity, rootNode);
         
// Beende Transaktion und Session
tx.commit();
session.close();


Nun geschieht folgendes:
Starte ich die Anwendung mit 1,2,3 oder 4 Threads ist alles in ordnung und
läuft reibungslos. Doch sobeit ich mehr als 4 Threads starte bleiben ab und zu alle Threads im Aufruf dom4jSession.save(entity, rootNode); stecken und es dauert 4-5 Sekunden bis die Verarbeitung weitergeht.

Synchronisiere ich den Aufruf dom4jSession.save(entity, rootNode); läuft ebenfalls alles reibungslos selbst bei 5 Threads und mehr.

Es werden lediglich Daten durch inserts in die Datenbank gespeichert somit schliesse ich Deadlocks aus!

Ich suche wirklich schon seit 3 Tagen nach dem Fehler und hab mir wirklich sämtliche Logs angesehen und kann nichts finden.

Wenn jemand eine Idee hat ich bin für alles Dankbar!!!

Hibernate version: 3.1 final

Name and version of the database you are using: Oracle10
[/code]


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jan 20, 2006 7:23 am 
Expert
Expert

Joined: Tue Oct 05, 2004 9:45 am
Posts: 263
nachdem Du die wichtigen Informationen nicht gepostet hast, die man braucht um sagen zu können woran es scheitert, denke bitte daran, dass die Hibernate-Session _nicht_ threadsafe ist. Wenn Du also sicher stellst, dass für jeden Thread eine eigene Session verwendet wird, solltest Du auch keine Probleme haben ... (mal von der Anzahl der max. zur Verfügung stehenden Datenbankverbindungen etc. abgesehen).


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.