2012-03-26 7 views
1

私はGlassFish 3.1.2サーバーを使用しています。私のWebアプリケーションはJPAプロバイダとしてEclipseLink 3.1.2を使用しています。 GlassFishはローカルで実行されていますが、MySQLサーバーはリモートです。EclipseLinkの接続遅延を診断しますか?

問題は、サーバーを起動するとサーバーが長い間ハングし、次の行がログの最後の行であることです。

[#|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分間待ってからは、通常はすべてが正常であるため、通常は動作し続けます。私のweb-appは、期待していた方法でデータベースと連携します。

NetBeansがサーバーを起動しようとすると、開始が失敗したと考えて、ほとんどの場合タイムアウトになります。 asadminコマンドでドメインを起動すると、同じ時間がかかりますが成功します。

私は自宅でこれをしない同じMySQLサーバに接続する同じシステムを持っています。

それでは、EclipseLinkが待っていることについてもっと教えてください。

UPDATE:

はここに私の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> 

+0

最後にログに記録された行_before_は、その理由であってはなりません。おそらくログエントリ_遅延_が原因です。 –

答えて

1

WindowsでキルまたはCtrlブレークを実行する場合、Javaは現在のスレッドをダンプする必要があるので、あなたはそれが待っているかを見ることができます。または、デバッガでスレッドを一時停止します。

persistence.xmlを含めます。接続プールのサイズと、ネットワークがデータベースに正しくアクセスできるかどうかを確認します。 jarファイルにはいくつのクラスがありますか?織り方やクラスの一覧表示を無効にしようとしましたか?

+0

コメントを追加しました。私はWindowsを使用していませんが、MacOSではスレッドダンプを取得できるかどうかを確認する信号を送信できます。提案していただきありがとうございます。 – AlanObject