A server group is a collection of server instances that are managed and configured as one. In a managed domain, every application server instance belongs to a server group, even if it is the only member. The server instances in a group share the same profile configuration and deployed content.
A domain controller and a host controller enforce the standard configuration on all server instances of every server group in its domain.
A domain can consist of multiple server groups. Different server groups can be configured with different profiles and deployments. A domain can be configured with different server tiers providing different services, for example.
Different server groups can also have the same profile and deployments. This can, for example, allow for rolling application upgrades where the application is upgraded on one server group and then updated on a second server group, avoiding a complete service outage.
The following is an example of a server group definition:
<server-group name="main-server-group" profile="default">
<deployment name="foo.war_v1" runtime-name="foo.war"/>
<deployment name="bar.ear" runtime-name="bar.ear"/>
A server group includes the following mandatory attributes:
name: the server group name.
profile: the server group profile name.
socket-binding-group: the default socket binding group used for servers in the group. This name can be overridden on a per-server basis in
host.xml. However, this is a mandatory element for every server group and the domain can not start if it is missing.
A server group includes the following optional attributes:
deployments: the deployment content to be deployed on the servers in the group.
system-properties: the system properties to be set on servers in the group
jvm: the default JVM settings for all servers in the group. The host controller merges these settings with any other configuration provided in
host.xml to derive the settings used to launch the server's JVM.