2011-06-07 59 views
1

当我在Ubuntu 10.10服务器(openjdk 1.6.0_20 64bit)上运行于tomcat7(也在tomcat6中测试过)中的servlet中使用以下代码时,java进程使用100%连接建立一次后,cpu及以上。在建立连接后使用100%cpu的Orientdb客户端

ODatabaseObjectTx db = ODatabaseObjectPool.global().acquire("remote:localhost/test", "test", "test"); 
db.getEntityManager().registerEntityClass(BlogPost.class); 
List<BlogPost> posts = db.query(new OSQLSynchQuery<BlogPost>("select * from BlogPost order by date desc")); 
db.close(); 

有谁知道如何解决这个问题?编号: 该问题也发生在获得后。有一个线程“ClientService”正在产生,导致高负载。 我带着几个线程转储,它总是显示这个线程相同:

"ClientService" daemon prio=10 tid=0x00007f4d88344800 nid=0x558e runnable [0x00007f4d872da000] 
    java.lang.Thread.State: RUNNABLE 
     at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:127) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1239) 
     at java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:431) 
     at com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryAsynch.endResponse(OChannelBinaryAsyn 
ch.java:73) 
     at com.orientechnologies.orient.client.remote.OStorageRemoteServiceThread.execute(OStorageRemoteServiceThread 
.java:59) 
     at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:48) 

当我暂停在调试器线程,高负荷停止,直到我按下去。

回答

1

acquire()或查询后会发生什么?

+0

我只是完全删除了查询,它仍然发生=>它发生在acquire()之后。 – csupnig 2011-06-08 10:39:59

+0

你可以试试最新的SVN中继?该类别的问题修复了另一个问题。 – Lvca 2011-06-08 15:10:08

+0

我检查了干线的最新静音,问题似乎得到解决。你知道这个版本何时会在Maven仓库中可用吗? – csupnig 2011-06-08 16:22:46