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)
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".
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
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.
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.
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
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
It makes sense. Thank you Maria and Stefan.