我在Windows服务器上运行了java SE jar文件。应用程序处理一些记录并提交数据库中的记录,并且我正在使用ORM收费eclipselink.Application计划按时间间隔运行。我面临的问题是应用程序在运行一到两天后停止并且处理停止。以下是应用程序卡住时的完整线程转储。如果有人能够阅读那个转储并帮助我。
Full thread dump Java HotSpot(TM) Client VM (23.25-b01 mixed mode, sharing):
"DestroyJavaVM" prio=6 tid=0x0095b000 nid=0x5ce8 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"pool-1-thread-1" prio=6 tid=0x049a4800 nid=0x5a1c runnable [0x041ae000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.NSProtocol.connect(Unknown Source)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:706)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:228)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:361)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:151)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:595)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:98)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:579)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:380)
- locked <0x24306260> (a org.eclipse.persistence.sessions.server.ServerSession)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:157)
- locked <0x24390e88> (a org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:214)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:202)
at com.warid.bs.posttoprebalanceshare.PostToPreBalnaceShareTask.run(PostToPreBalnaceShareTask.java:50)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Service Thread" daemon prio=6 tid=0x01fb8400 nid=0x386c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread0" daemon prio=10 tid=0x01fb3800 nid=0x37e4 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x01fb2c00 nid=0x5f30 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x01fa8000 nid=0x748 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x01f93800 nid=0x15b4 in Object.wait() [0x0445f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x296ccd30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x296ccd30> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" daemon prio=10 tid=0x01f92000 nid=0x296c in Object.wait() [0x042ef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x296cc8f8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x296cc8f8> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x01f90c00 nid=0x3210 runnable
"VM Periodic Task Thread" prio=10 tid=0x01fd2c00 nid=0x5d78 waiting on condition
JNI global references: 301
Heap
def new generation total 33984K, used 5349K [0x24170000, 0x26640000, 0x296c0000)
eden space 30272K, 8% used [0x24170000, 0x243d0ad8, 0x25f00000)
from space 3712K, 78% used [0x262a0000, 0x26578990, 0x26640000)
to space 3712K, 0% used [0x25f00000, 0x25f00000, 0x262a0000)
tenured generation total 75280K, used 50183K [0x296c0000, 0x2e044000, 0x34170000)
the space 75280K, 66% used [0x296c0000, 0x2c7c1c18, 0x2c7c1e00, 0x2e044000)
compacting perm gen total 12288K, used 10668K [0x34170000, 0x34d70000, 0x38170000)
the space 12288K, 86% used [0x34170000, 0x34bdb1a8, 0x34bdb200, 0x34d70000)
ro space 10240K, 42% used [0x38170000, 0x385b4240, 0x385b4400, 0x38b70000)
rw space 12288K, 54% used [0x38b70000, 0x391f4d58, 0x391f4e00, 0x39770000)
答案 0 :(得分:1)
您的申请中没有任何内容。您的应用程序线程 pool-1-thread-1 实际上正在忙于查询您的数据库:
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.NSProtocol.connect(Unknown Source)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:706)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:228)
我宁愿检查你的数据库。