2

GWTアプリケーションをTomcatにデプロイし、数時間使用した後(2つのQAが一般的なテストを実行)、JavaプロセスがすべてのCPUの使用を開始し、アプリが遅くなります。

tomcat managerを調べたところ、長時間実行されているHTTPリクエストが多数あり、それらはすべてRequestFactoryサーブレットである「/gwtRequest」を指していることがわかりました。

その後、スレッドダンプを取得し、ダンプ内のすべてのRUNNABLE httpスレッドが「AutoBeanCodexImpl.doCoderFor()」を指していることを確認しました。

"http-8080-51" daemon prio=10 tid=0x00007f23d8b81800 nid=0x4981 runnable [0x00007f23d4285000]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(HashMap.java:303)
at com.google.web.bindery.autobean.shared.impl.AutoBeanCodexImpl.doCoderFor(AutoBeanCodexImpl.java:519)
at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.setProperty(AbstractAutoBean.java:276)
at com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.setProperty(ProxyAutoBean.java:253)
at com.google.web.bindery.autobean.vm.impl.BeanPropertyContext.set(BeanPropertyContext.java:44)
at com.google.web.bindery.requestfactory.server.Resolver$PropertyResolver.visitValueProperty(Resolver.java:155)
at com.google.web.bindery.autobean.vm.impl.ProxyAutoBean.traverseProperties(ProxyAutoBean.java:289)
at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:166)
at com.google.web.bindery.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:101)
at com.google.web.bindery.requestfactory.server.Resolver.resolveClientValue(Resolver.java:414)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.processInvocationMessages(SimpleRequestProcessor.java:493)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:235)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:137)
at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)

誰かが私が見るべき領域を親切に教えてもらえますか?ありがとう

4

1 に答える 1

2

ああ、痛い!HashMap同期なしでスタティックを使用しているようです。これは、AutoBeansが最初にシングルスレッドのブラウザでのみ動作するように設計されたためだと思います。

これはトランクで修正されており、数日でリリースされる2.5.0-rc2になるはずです。問題のステータスを追跡できます。

于 2012-09-13T10:29:51.237 に答える