Java Heap Space Fehler in glassfish
Ich bin mit einem frischen Glassfish installieren mit sehr wenig Anpassungen.
Habe ich eine Message-Driven Bean (ObjectUpdateMDB) das hört sich ja ein Thema, dann aktualisiert das Objekt, das es erhält, in einer Datenbank. Es gibt eine Menge der Objekte, die aktualisiert werden. Nach einer Weile des Laufens bekomme ich diese exception:
SCHWERER: JTS5031: Ausnahme [org.omg.CORBA.INTERN: vmcid: 0x0 minor code: 0 completed: Vielleicht] an Ressource [rollback] - Betrieb. SCHWERE: MDB00049: Message-driven bean [Persistenz:ObjectUpdateMDB]: Exception in postinvoke : [javax.die Transaktion.SystemException: org.omg.CORBA.INTERN: JTS5031: Ausnahme [org.omg.CORBA.INTERN: vmcid: 0x0 minor code: 0 completed: Vielleicht] an Ressource [rollback] - Betrieb. vmcid: 0x0 minor code: 0 completed: No] SCHWERE: javax.die Transaktion.SystemException javax.die Transaktion.SystemException: org.omg.CORBA.INTERN: JTS5031: Ausnahme [org.omg.CORBA.INTERN: vmcid: 0x0 minor code: 0 completed: Vielleicht] an Ressource [rollback] - Betrieb. vmcid: 0x0 minor code: 0 completed: No bei com.Sonne.jts.jta.TransactionManagerImpl.rollback(TransactionManagerImpl.java:350) bei com.sun.enterprise.distributedtx.J2EETransactionManagerImpl.rollback(J2EETransactionManagerImpl.java:1144) bei com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.rollback(J2EETransactionManagerOpt.java:426) bei com.Sonne.ejb.Container.BaseContainer.completeNewTx(BaseContainer.java:3767) bei com.Sonne.ejb.Container.BaseContainer.postInvokeTx(BaseContainer.java:3571) bei com.sun.ejb.containers.MessageBeanContainer.afterMessageDeliveryInternal(MessageBeanContainer.java:1226) bei com.Sonne.ejb.Container.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1197) bei com.Sonne.ejb.Container.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:79) bei com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:139) bei $Proxy98.Nachlieferung(Quelle Unbekannt) bei com.Sonne.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:324) bei com.Sonne.enterprise.- Anschlüsse.Arbeit.OneWork.doWork(OneWork.java:76) bei com.Sonne.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555) INFO: MDB00037: [Persistence:ObjectUpdateMDB]: Message-driven-bean invocation exception: [java.lang.OutOfMemoryError: Java heap space] INFO: java.lang.OutOfMemoryError java.lang.OutOfMemoryError: Java heap space
Aussieht, ist es ein Problem mit dem Heap Space. Was muss ich anpassen der heap-space für? Der App-Server selbst oder der Makler? Wie mache ich das?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie auf zuweisen von mehr RAM auf Ihrem Glassfish-installation.
Sehen http://spaquet.blogspot.com/2006/07/liferay-glassfish-part-ii-configuring.html
und http://docs.sun.com/app/docs/doc/820-4495/gepzd?a=view.
Benutzt habe ich die folgenden
asadmin
Befehle zum Sortieren das problem auf Glassfish 3.1:Es ist eine variation auf Michael Myers Hinweis. Mit
asadmin
Befehle macht den Wechsel leicht wiederholbar.Auch ich eingeschaltet, um die neue G1 Sammler, die viel besser als die normalen Sammler. Hilft mit Eclipse als gut 😉
Beachten Sie, dass die syntax ist für TakeCommand auf Windows. Wenn Sie verwenden eine andere Kombination von shell und OS müssen Sie möglicherweise unterschiedliche Escapezeichen (ich.E. strait Zecken anstelle von backticks für die meisten unix-shells).
Wenn Sie sich Durcheinander Ihre Einrichtung mit der
*-jvm-options
Befehle, dann kann man es mitdomain.xml
Datei.Ich habe einen post auf meinem blog über VM-tuning und ich zeige den Lesern den Java-Tuning-White Paper.
Sowieso, um Ihnen eine schnelle Antwort sollte man sich wahrscheinlich in ein paar Grundeinstellungen:
-Xms: ursprüngliche heap-Größe
-Xmx: maximale heap-Größe
Erhalten eine schnelle Beschreibungen für diese ausgeführt werden: java -X.
./alex
Ich weiß nicht, ob dies ist verwandt, aber wir haben einige seltsame Ausnahmen bei der Verwendung von XA-Transaktionen geführt, die in CORBA-Ausnahmen. Der Grund war die MySQL-Treiber und wir ein Upgrade auf die neueste MySQL-JDBC-Treiber (5.1.7) und dann diese XA Probleme verschwunden.