如何配置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)
.....................
也pt线程甚至变成了晕厥状态
"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)
请某些人帮帮我!!!
答案 0 :(得分:5)
默认连接池大小为32个连接。如果你有&gt; 32个活动事务,然后下一个请求将等待直到释放连接。你在EntityManager上调用close()并在事务上调用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中)