Backup brocker startup OutOfMemoryError

Posted by appmath on 24-Jan-2012 20:47

We noticed that for some of our most environments, it takes a couple of attempts before we can start/restart the backup broker. After looking at the logs we noticed the exception below.

I have looked at a few files looking for "-Xms" and "-Xmx" and they are all the same in the env's with or without the startup error.

What's the best way to fix this issue? Which file should I modify to increase the heap?

Thanks

[12/01/12 16:45:04] ID=BackupBroker (severe) Insufficient memory detected by thread UserIDMappingDynSyncer
java.lang.OutOfMemoryError: Java heap space
        at progress.message.util.LongHashTable.<init>(LongHashTable.java:86)
        at progress.message.util.LongHashTable.<init>(LongHashTable.java:60)
        at progress.message.broker.BaseClientContext$GuarDoubtManager.<init>(BaseClientContext.java:9182)
        at progress.message.broker.BaseClientContext$GuarDoubtManager.<init>(BaseClientContext.java:9168)
        at progress.message.broker.BaseClientContext.<init>(BaseClientContext.java:335)
        at progress.message.broker.ClientContextCreator.createCC(ClientContextCreator.java:74)
        at progress.message.broker.AgentRegistrar.createContext(AgentRegistrar.java:2912)
        at progress.message.broker.AgentRegistrar.lockContext(AgentRegistrar.java:2983)
        at progress.message.broker.AgentRegistrar.lockContext(AgentRegistrar.java:2931)
        at progress.message.broker.AgentRegistrar.registerAndLock(AgentRegistrar.java:2387)
        at progress.message.broker.AgentRegistrar.redoConnect(AgentRegistrar.java:2416)
        at progress.message.ft.UserIDMappingSyncOp.execute(UserIDMappingSyncOp.java:125)
        at progress.message.ft.UserIDMappingDynSyncer.doStandbySync(UserIDMappingDynSyncer.java:119)
        at progress.message.ft.UserIDMappingDynSyncer.threadMain(UserIDMappingDynSyncer.java:69)
        at progress.message.zclient.DebugThread.run(DebugThread.java:255)

[12/01/12 16:45:06] ID=BackupBroker (severe) There is not enough memory available to run the SonicMQ broker.  Please increase the amount of heap memory available to the Java Virtual Machine, and if necessary increase the amount of virtual memory available in your system.
[12/01/12 16:45:06] ID=BackupBroker (severe) Trace follows...
java.lang.OutOfMemoryError: Java heap space
        at progress.message.util.LongHashTable.<init>(LongHashTable.java:86)
        at progress.message.util.LongHashTable.<init>(LongHashTable.java:60)
        at progress.message.broker.BaseClientContext$GuarDoubtManager.<init>(BaseClientContext.java:9182)
        at progress.message.broker.BaseClientContext$GuarDoubtManager.<init>(BaseClientContext.java:9168)
        at progress.message.broker.BaseClientContext.<init>(BaseClientContext.java:335)
        at progress.message.broker.ClientContextCreator.createCC(ClientContextCreator.java:74)
        at progress.message.broker.AgentRegistrar.createContext(AgentRegistrar.java:2912)
        at progress.message.broker.AgentRegistrar.lockContext(AgentRegistrar.java:2983)
        at progress.message.broker.AgentRegistrar.lockContext(AgentRegistrar.java:2931)
        at progress.message.broker.AgentRegistrar.registerAndLock(AgentRegistrar.java:2387)
        at progress.message.broker.AgentRegistrar.redoConnect(AgentRegistrar.java:2416)
        at progress.message.ft.UserIDMappingSyncOp.execute(UserIDMappingSyncOp.java:125)
        at progress.message.ft.UserIDMappingDynSyncer.doStandbySync(UserIDMappingDynSyncer.java:119)
        at progress.message.ft.UserIDMappingDynSyncer.threadMain(UserIDMappingDynSyncer.java:69)
        at progress.message.zclient.DebugThread.run(DebugThread.java:255)

All Replies

Posted by pmeadows on 25-Jan-2012 04:43

To set -Xms and -Xmx for a broker use the Sonic Management Console's 'Configure' view.  Right-click the container hosting the broker in question, select 'Properties', and switch to the 'Environment' tab.

What -Xms and -Xmx settings are in use currently?

What version and build of the SonicMQ broker are you running?  To check this, look for "SonicMQ" in the container log, e.g.:

  SonicMQ xxx Edition [Serial Number xxxxxxxx]

  Release 8.5.0 Build Number 377 Protocol P32

Recent versions of Sonic report Java settings such as -Xms and -Xmx in the container log.  This is a good way to check what's really being picked up.  Look for "Configured Arguments".

Posted by appmath on 25-Jan-2012 13:51

What -Xms and -Xmx settings are in use currently:

-Xms32m -Xmx256m

What version and build of the SonicMQ broker are you running:

SonicMQ Professional Developer Edition [Serial Number 3939726]

Release 7.6 Build Number 357 Protocol P30

Sonic Management
        Release 7.6.0 Build Number 351
        Copyright (c) 1999-2008 Progress Software Corporation.
        All rights reserved.

        Local host: xxxxxx (Linux - 2.6)

        Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_18-b02)
        Sun Microsystems Inc. (home /xncpkgs/jdk1.5.0_18/jre, version 1.5.0_18)
        Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_18-b02, mixed mode)

        Configured Arguments : -Xms32m -Xmx256m
        Configured Properties:

Posted by pmeadows on 26-Jan-2012 04:04

Has increasing -Xmx allowed you to start the backup broker?

Note: when you increase -Xmx for the backup broker I'd recommend doing the same for the primary broker to keep the configurations in sync.

Posted by appmath on 27-Jan-2012 16:04

I found a big difference between the primary and the backup broker. As soon as I increased the backup's memory allocation to bring it to the same level as the backup, I was able to start it without any problems.

One more question, I have noticed this issue everywhere, how come I can stop the backup using the Sonic Management Console but I can't seem to be able to restart it, even when I reload the container; it freezes then shows me the "Request Failure" error dialogue. At that point I have to use the command line to do the job.

Thanks a lot for your help.

Posted by sfritz on 27-Jan-2012 16:06

I am currently out of the office. I'll read your mail when I'm back on the 6th of February 2012. Should you have any matters that need attention prior to my return please contact customer support:

http://web.progress.com/support/contact-support.html

Your eMail will not be forwarded.

Stefan Fritz

Progress Software

Posted by davila on 27-Jan-2012 18:31

Hi,

You can't restart the container from the SMC directly because you cannot communicate with it - because it's not running. You can restart it through an activation daemon (or, in 8.0 and beyond, through a host manager)running in a different MF container. If you don't have an activation daemon, then you have to use the scripts to restart the container

Mari

Posted by appmath on 30-Jan-2012 12:07

It makes sense. Thank you Maria and Stefan.

This thread is closed