诊断EclipseLink连接延迟?

时间:2012-03-26 21:48:04

标签: eclipselink glassfish-3

我使用的是GlassFish 3.1.2服务器,我的Web应用程序使用EclipseLink 3.1.2作为JPA提供程序。 GlassFish在本地运行,MySQL服务器是远程的。

问题是,当我启动服务器时,服务器会挂起很长时间,并将以下行作为日志中的最后一行。

[#|2012-03-26T14:37:31.765-0700|INFO|glassfish3.1.2|org.eclipse.persistence.session.file:/Users/alan/NetBeansProjects/MyApp/target/MyApp/WEB-INF/classes/_com.myapp|_ThreadID=10;_ThreadName=Thread-3;|EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461|#]

在这里等待2-3分钟后,通常会继续,然后一切正常。我的网络应用程序以我期望的方式使用数据库。

如果NetBeans尝试启动服务器,它通常会超时,认为启动失败。如果我使用 asadmin 命令启动域,则需要相同的时间但成功。

我在家里有一个相同的系统连接到不执行此操作的同一个MySQL服务器。

那么我如何告诉EclipseLink告诉我更多关于它等待的内容?

更新:

这是我的persistence.xml文件 - 没什么了不起的。是否有可用于帮助的特定于EclipseLink的命令?

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="com.myapp" transaction-type="JTA">
    <jta-data-source>jdbc/MyApp</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>

1 个答案:

答案 0 :(得分:1)

如果在Windows上运行kill或ctrl break,Java应该转储当前线程,这样你就可以看到它在等待什么。或者在调试器中暂停线程。

包含你的persistence.xml。检查连接池的大小,以及网络是否可以正确访问数据库。 jar文件中有多少个类?您是否尝试过禁用编织或列出类?