我正在使用Apache Derby嵌入式数据库在Maven项目中进行单元测试.不幸的是,每当我运行测试时,我最终都会derby.log在项目的根目录中找到该文件.数据库本身是在target目录(jdbc:derby:target/unittest-db;create=true)中创建的,因此这不是问题.在查阅参考指南之后, 我尝试logDevice在JDBC url(jdbc:derby:target/unittest-db;create=true;logDevice=/mylogs)上设置参数,但这似乎是针对不同的日志,因此derby.log仍然会出现.
任何帮助深表感谢.
符合这个问题:如何获得线程的堆栈跟踪
我想知道是否有人可以指出有关解释提取的Java线程堆栈的信息jstack.
我的情况是我有一个在GlassFish v2.1.1上运行的Java EE 5应用程序,它定期挂起(每天至少2-3次).要让它再次运行,我必须杀死Glassfish进程并再次启动域.应用程序通常会变得越来越慢,直到它最终完全挂起.一旦挂起,我就无法获得线程堆栈.我已经能够获得一个线程堆栈,因为它越来越慢,但我看不到找到问题或挂起的线程.
这是最新的线程转储:http://issues.i2m.dk/attachments/66/threadstack.201103211046.txt
线程转储片段:
"p: thread-pool-1; w: 20" daemon prio=10 tid=0x00007efd18843800 nid=0x5f89 in Object.wait() [0x00007efd03381000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00007efd480fc228> (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171)
- locked <0x00007efd480fc228> (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528)
"TP-Processor83" daemon prio=10 tid=0x0000000043179000 nid=0x5f87 runnable [0x00007efd03583000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
- locked <0x00007efe72696090> (a java.io.BufferedInputStream)
at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:607)
at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:545)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:672)
at …Run Code Online (Sandbox Code Playgroud)