2011-06-07 71 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

相關問題