9.2. Fabric Child Containers
Creating child containers
You create a new child container using the
fabric:container-create-child
console command, which has the following syntax:
karaf@root> fabric:container-create-child parent child [number]
Where parent is the name of an existing container in the fabric and child is the name of the new child container. If you create multiple child containers (by specifying the optional number argument), the new child instances are named
child1
, child2
, and so on.
For example, assuming the container, root, already belongs to your fabric, you can create two new child containers as follows:
karaf@root> fabric:container-create-child root child 2 The following containers have been created successfully: child1 child2
Listing all container instances
To list all of the containers in the current fabric (including child instances), use the
fabric:container-list
console command. For example:
JBossFuse:karaf@root> fabric:container-list [id] [version] [alive] [profiles] [provision status] root 1.0 true fabric, fabric-ensemble-0000-1 child1 1.0 true default success child2 1.0 true default success
Assigning a profile to a child container
By default, a child is assigned the
default
profile when it is created. To assign a new profile (or profiles) to a child container after it has been created, use the fabric:container-change-profile
console command.
Note
You can assign a profile other than
default
to a newly created container by using the fabric:container-create-child command's --profile
argument.
For example, to assign the
example-camel
profile to the child1
container, enter the following console command:
JBossFuse:karaf@root> fabric:container-change-profile child1 example-camel
The command removes the profiles currently assigned to
child1
and replaces them with the specified list of profiles (where in this case, there is just one profile in the list, example-camel
).
Connecting to a child container
To connect to a child container, use the
fabric:container-connect
console command. For example, to connect to child1
, enter the following console command:
JBossFuse:karaf@root>
fabric:container-connect -u admin -p admin child1
You should see output like the following in your console window:
Connecting to host YourHost on port 8102 Connected _ ____ ______ | | _ \ | ____| | | |_) | ___ ___ ___ | |__ _ _ ___ ___ _ | | _ < / _ \/ __/ __| | __| | | / __|/ _ \ | |__| | |_) | (_) \__ \__ \ | | | |_| \__ \ __/ \____/|____/ \___/|___/___/ |_| \__,_|___/\___| JBoss Fuse (6.0.0.redhat-xxx) http://www.redhat.com/products/jbossenterprisemiddleware/fuse/ Hit '<tab>' for a list of available commands and '[cmd] --help' for help on a specific command. Hit '<ctrl-d>' or 'osgi:shutdown' to shutdown JBoss Fuse. JBossFuse:admin@child1>
To terminate the session, enter
Ctrl-D
.
Starting a child container
To start a child container that was previously stopped, use the fabric:container-start command, providing the child container's name as the command argument—for example, to restart
child1
:
JBossFuse:karaf@root>
fabric:container-start child1
This command starts up the child in a separate JVM.
Stopping a child container
To stop a child instance, use the fabric:container-stop command, providing the child container's name as the command argument—for example, to stop
child1
:
JBossFuse:karaf@root>
fabric:container-stop child1
This command kills the JVM process that hosts the
child1
container.
Destroying a child container
To completely destroy a child container use the fabric:container-delete command. For example, to destroy the
child1
container instance, enter the following console command:
JBossFuse:karaf@root> fabric:container-delete child1
Destroying a child container does the following:
- stops the child's JVM process
- physically removes all files related to the child container