Changing JVM settings for child containers

968 views
Skip to first unread message

jakub...@gmail.com

unread,
Mar 13, 2013, 11:44:12 AM3/13/13
to fusef...@googlegroups.com
Hi,

I am running out of Permgen space on one of my child containers, and wanted to increase it. From my poking around it seems that the way to do this is to the fabric:container-default-jvm-options command, so I tried:

fabric:container-default-jvm-options XX:MaxPermGen=192m

"-XX:MaxPermGen=192m" gives an error, so I'm assuming it's the right format.

I create a child, and start it only to see no change in its status. Am I going about this in the right way?

Jakub

Ioannis Canellos

unread,
Mar 13, 2013, 12:13:09 PM3/13/13
to fusef...@googlegroups.com
Hey Jakub,

It's really awesome to see you here!

Can you please attach a log file or something so that I can see the exact error?

-- 
Ioannis Canellos

--
You received this message because you are subscribed to the Google Groups "fusefabric" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fusefabric+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

jakub...@gmail.com

unread,
Mar 14, 2013, 5:24:28 PM3/14/13
to fusef...@googlegroups.com
Hi Ioannis,

Good to be here! :) I'm using FuseESB on this one, same version as latest Fabric download in main repo. Child is simply refusing to start.

Here's a list of the commands to recreate the issue:
FuseESB:karaf@root> fabric:create
No user found in etc/users.properties or specified as an option. Please specify one ...
...
FuseESB:karaf@root> fabric:container-default-jvm-options XX:MaxPermGen=192m
FuseESB:karaf@root> fabric:container-create-child root sub 1
The following containers have been created successfully:
    Container: sub.
FuseESB:karaf@root> container-list
[id]                           [version] [alive] [profiles]                     [provision status]
root*                          1.0       true    fabric, fabric-ensemble-0000-1, fuse-esb-medium success
  sub                         1.0       false   default

Logs attached for root only - child doesn't start, so there's nothing there. Everything works fine if that container-default-jvm-options command is not issued. Let me know if there are any logging levels that I should bump up if you can't recreate. I have reproduced this on another system.

Just guessing, but since the flag is usually set via -XX:MaxPermGen it may have to do with that. The command line complained when I tried to escape the '-' in a number of ways, but the console complained:

Error executing command fabric:container-default-jmv-options undefined option -XX:MaxPermGen=192m

I presumed XX:MaxPermGen was the way to go.

Jakub

Ioannis Canellos

unread,
Mar 15, 2013, 4:49:10 AM3/15/13
to fusef...@googlegroups.com

jakub...@gmail.com

unread,
Mar 15, 2013, 8:42:31 AM3/15/13
to fusef...@googlegroups.com
Thanks Ioannis,

Possibly, though it's a different command. Is 7.2.0 available for DL so I can check?

Jakub

On Friday, March 15, 2013 8:49:10 AM UTC, Ioannis Canellos wrote:
This looks like: http://fusesource.com/issues/browse/FABRIC-351

raul.kr...@gmail.com

unread,
Aug 18, 2014, 12:38:44 PM8/18/14
to fusef...@googlegroups.com
Hey guys,

I'm quite late to the party, but it seems like the issue persists and it hasn't been addressed in JBoss Fuse 6.1.0.

After digging a bit, I found a workaround via JMX to alter an existing container's JVM Opts. Here it goes:

1. Go to the Fabric Manager MBean.
2. Locate the "changeCreateOptionsField" JMX operation.
3. Arguments are in this sequence: 
       * container ID
       * field name, in this case "jvmOpts"
       * new value for the field, e.g. -Xmx2048m
4. Execute the operation.

Make sure to restart the affected containers.

Not sure if there's a way to change the global default JVM opts via JMX too. @Ioannis?

Hope that helps,
Raúl.
Reply all
Reply to author
Forward
0 new messages