OutOfMemoryError
JBoss AS 7.2 で OSGi/Blueprint バンドルをデプロイする際に奇妙な現象が発生します。私のバンドルのいくつかは、JBoss の起動時にデプロイメント ディレクトリに存在する場合にこのエラーを引き起こしますが、互いに組み合わせた場合のみです。
私の現在の設定では、4 つのバンドルA
がB
ありC
ますD
。A
相互にB
依存しC
てD
いますが、相互に依存しておらず、それらはすべて、私がデプロイしたさまざまな外部ライブラリを使用しています。C
とがJBoss の開始時にとD
の 1 つだけでデプロイされている場合、すべて正常にデプロイされているように見えますが、との両方が存在する場合、次のスタック トレースが表示されます。A
B
A
B
16:42:30 ERROR [org.jboss.msc.service.fail] MSC00001: Failed to start service jbosgi.PersistentBundles.RESOLVE: org.jboss.msc.service.StartException in service jbosgi.PersistentBundles.RESOLVE: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.4.GA.jar:1.0.4.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.String.substring(String.java:1939) [rt.jar:1.6.0_45]
at java.util.StringTokenizer.nextToken(StringTokenizer.java:335) [rt.jar:1.6.0_45]
at org.apache.felix.resolver.ResolverImpl.mergeUses(ResolverImpl.java:911)
at org.apache.felix.resolver.ResolverImpl.mergeUses(ResolverImpl.java:957)
at org.apache.felix.resolver.ResolverImpl.mergeUses(ResolverImpl.java:957)
at org.apache.felix.resolver.ResolverImpl.calculatePackageSpaces(ResolverImpl.java:696)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:188)
at org.jboss.osgi.resolver.felix.StatelessResolver.resolve(StatelessResolver.java:56)
at org.jboss.osgi.framework.internal.ResolverImpl.resolveAndApply(ResolverImpl.java:137)
at org.jboss.osgi.framework.internal.PackageAdminImpl.resolveBundles(PackageAdminImpl.java:366)
at org.jboss.osgi.framework.spi.BootstrapBundlesResolve.start(BootstrapBundlesResolve.java:127)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA.jar:1.0.4.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA.jar:1.0.4.GA]
... 3 more
16:42:30 ERROR [stderr] java.lang.OutOfMemoryError: Java heap space
16:42:30 ERROR [stderr] at java.util.LinkedList.listIterator(LinkedList.java:667)
16:42:30 ERROR [stderr] at java.util.AbstractList.listIterator(AbstractList.java:284)
16:42:30 ERROR [stderr] at java.util.AbstractSequentialList.iterator(AbstractSequentialList.java:222)
16:42:30 ERROR [stderr] at org.jboss.sun.net.httpserver.ServerImpl$ServerTimerTask.run(ServerImpl.java:849)
16:42:30 ERROR [stderr] at java.util.TimerThread.mainLoop(Timer.java:512)
16:42:30 ERROR [stderr] at java.util.TimerThread.run(Timer.java:462)
そして少し後
16:42:40 INFO [org.jboss.as.controller] JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jbosgi.PersistentBundles.COMPLETE (missing) dependents: [service jboss.deployment.unit."com.springsource.org.jgroups-2.2.8.jar".CONFIGURE_MODULE, service jboss.deployment.unit."com.springsource.org.aopalliance-1.0.0.jar".CONFIGURE_MODULE, service jboss.deployment.unit."com.springsource.org.objectweb.asm-1.5.3.jar".CONFIGURE_MODULE, service jboss.deployment.unit."com.springsource.org.hibernate-3.3.1.GA.jar".CONFIGURE_MODULE, JBAS014799: ... and 54 more ]
JBAS014777: Services which failed to start: service jbosgi.PersistentBundles.RESOLVE: org.jboss.msc.service.StartException in service jbosgi.PersistentBundles.RESOLVE: Failed to start service
(ここにリストされているすべてのライブラリは、以前は正常にデプロイされたものとしてリストされていましたが、「54以上」がどれであるか、およびそれらがすべて存在するかどうかを確認できませんでした)
私はここで完全に途方に暮れています。この動作の原因は何ですか? トラブルシューティングはどこから始めればよいですか?