eclipselink jpa 2.0 с заморозкой приложения j2se swing - PullRequest
2 голосов
/ 30 марта 2011

как настроить eclipselink для использования его в Swing-приложении для подключения к серверу базы данных непосредственно в среде рабочей группы.Я в настоящее время использую это, но мое приложение зависает после некоторых транзакций (после 20-30 транзакций).мой файл persistence.xml,

<property name="javax.persistence.jdbc.url" value="jdbc:mysql://192.0.0.1:3306/myhotel"/>
      <property name="javax.persistence.jdbc.password" value="123"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.user" value="root"/>

я прошел через дамп потока, он показывает ..

SwingWorker-pool-1-thread-10" daemon prio=6 tid=0x03143400 nid=0xbec in Object.wait() [0x052ff000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.eclipse.persistence.sessions.server.ConnectionPool.acquireConnection(ConnectionPool.java:102)
    - locked <0x27d6d7e0> (a org.eclipse.persistence.sessions.server.ConnectionPool)
    at org.eclipse.persistence.sessions.server.ServerSession.allocateReadConnection(ServerSession.java:477)
    at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:525)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:205)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:191)
.....................

также поток AWT даже стал в состоянии ожидания

"AWT-EventQueue-0" prio=6 tid=0x02c6d400 nid=0xfcc in Object.wait() [0x033ae000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.eclipse.persistence.sessions.server.ConnectionPool.acquireConnection(ConnectionPool.java:102)

пожалуйстакакое-то тело поможет мне !!!

1 Ответ

5 голосов
/ 30 марта 2011

Размер пула соединений по умолчанию составляет 32 соединения.Если у вас> 32 активных транзакции, то следующий запрос будет ждать, пока соединение не будет снято.Вы вызываете close () в EntityManager и commit () или rollback () в своей транзакции?

Включаете ли вы полный файл persistence.xml.

Вы также можете настроить время ожидания пула соединений, чтобывызвать исключение, если размер пула превышен,

"eclipselink.jdbc.connections.wait-timeout" или "eclipselink.connection-pool.default.wait" (в 2.2)

илиувеличить размер пула,

"eclipselink.jdbc.connections.max" или "eclipselink.connection-pool.default.max" (в 2.2)

...