JPA Projekt Exception

Karkrau

Mitglied
Hallo,

ich habe ein Projekt angelegt welches mit MySQL verbunden ist.
Bei meinen Kollegen läuft es auch bei mir gibt es jedoch einen Fehler aus wenn ich zum Beispiel versuche Daten anzulegen.

Exception Description: A Exclusive Connection cannot be used for ClientSession reads without isolated data. Update the ConnectionPolicy used to remove ExclusiveConnection configuration or the project to set certain data to be exclusive.

Kann jemand mit dieser Exception was anfangen?
 
Hi,

dazu bräuchte man eine genauere Beschreibung. Zum Beispiel WANN tritt das Problem auf und vor allem solltest dur bitte die komplette Exception im CodeBlock posten. Danke 🙂
 
Die Exception tritt eigtl bei allem auf sobald ich versuche per EntityManager die Daten in den Tabellen zu verändern (anlegen, löschen etc.).
Außerdem funktioniert der exakte Code bei anderen auch.
Die Exception Description habe ich per System.err.println() bekommen als ich das ganze gecatched habe. Wenn ich den raus mache kommt folgender Fehler:

Code:
Exception in thread "AWT-EventQueue-0" Local Exception Stack:
Exception [EclipseLink-7115] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException
Exception Description: A Exclusive Connection cannot be used for ClientSession reads without isolated data.  Update the ConnectionPolicy used to remove ExclusiveConnection configuration or the project to set certain data to be exclusive.
    at org.eclipse.persistence.exceptions.ValidationException.clientSessionCanNotUseExclusiveConnection(ValidationException.java:664)
    at org.eclipse.persistence.sessions.server.ServerSession.acquireClientSession(ServerSession.java:390)
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.getActivePersistenceContext(EntityManagerImpl.java:1933)
    at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.begin(EntityTransactionImpl.java:93)
    at gui.GeschaeftsstelleUI.jButton3ActionPerformed(GeschaeftsstelleUI.java:566)
    at gui.GeschaeftsstelleUI.access$2(GeschaeftsstelleUI.java:559)
    at gui.GeschaeftsstelleUI$3.actionPerformed(GeschaeftsstelleUI.java:234)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Als Beispiel für Code:
Java:
try{
            EntityManagerFactory emf = Persistence.createEntityManagerFactory("wf_projekt");
            EntityManager em = emf.createEntityManager();
          
            em.getTransaction().begin();
            Geschaeftsstelle geschaeftsstelle = new Geschaeftsstelle();
          
            geschaeftsstelle.setStrasse(jTextField4.getText());
            geschaeftsstelle.setPlz(Integer.parseInt(jTextField5.getText()));
            geschaeftsstelle.setWohnort(jTextField6.getText());
          
            em.persist(geschaeftsstelle);
            em.getTransaction().commit();
          
            em.close();
            emf.close();
      
            JOptionPane.showMessageDialog(null, "Daten angelegt");
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null, "Fehler");
            System.err.println(e.getMessage());
        }
 
Zuletzt bearbeitet von einem Moderator:
Ok,

grundsätzliches ist es erstmal doof alle Eceptions zu catchen. Man sollte besser alle einzelnen Exceptions catchen um dann auf den Fehler zu reagieren.
Ich vermute es is tein Konfigurationsproblem. Da ja der Code bei anderen funktioniert, wirst du wahrscheinlich deine Persistence-Konfiguration anders angelegt haben...
 
hast du diesen Eintrag in der Config?

Code:
property name="eclipselink.jdbc.exclusive-connection.mode" value="Always"/>
 
Tut mir Leid ich habe das Forum bisher noch nicht benutzt

Aber in meiner persistence.xml gibt es folgende Properties:

Java:
<properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="eclipselink.jdbc.exclusive-connection.mode" value="Isolated"/>
        </properties>
 
Also ich habe das Problem gefunden als ich gerade die persistence datei mit der meines Kollegen verglichen habe. Ich musste die letzte Zeile rauslöschen.

Ich danke dir für deine Hilfe! 🙂
 

Neue Themen


Zurück
Oben