dcm:loadbalancergroup element - ibm-datapower/datapower-configuration-manager GitHub Wiki

DCM Definition File: dcm:loadbalancergroup element

The <dcm:loadbalancergroup> element defines a single Load Balancer Group object:

<dcm:loadbalancergroup name="..." 
  [ alg='...' ] 
  [ enabled="true|false" ]
  [ retrieve-info="true|false" ] 
  [ damp="n" ] 
  [ never-return-sick-member="true|false" ] 
  [ try-every-server-before-failing="true|false" ]
  [ masquerade-member="true|false" ] 
  [ application-routing="true|false" ] 
  [ transport="..." ] 
  [ websphere-cell-config="..." ] 
  [ wlm-group="..." ] >
  <dcm:member server="..." [ weight="n" ] [ enabled="true|false ] [ port="n" ] [ health-port="n" ] "/>
  ...
  [
    <dcm:health-checks [ enabled="true|false" ] 
      [ uri="..." ] 
      [ port="n" ]  
      [ ssl="Standard, LDAP, IMSConnect, on, off" ] 
      [ post="true|false" ]
      [ input="..." ]
      [ timeout="n" ]
      [ frequency="n" ]
      [ xpath = "..." ]
      [ filter = "..." ]
      [ ssl-proxy-profile = "..." ]
      [ enforce-timeout = "true|false" ] 
      [ independent-checks = "true|false" ] />
  ]
  [
    <dcm:affinity [ enabled="true|false" ]
      [ cookie-name="..." ]
      [ path="..." ]
      [ domain="..." ]
      [ wlm-override="true|false" ]
      [ mode="active|activeConditional" ]>
      <dcm:monitored cookie-name="..."/>
    </dcm:affinity>
  ]
</dcm:loadbalancergroup>

The number of optional elements and attributes exposes the underlying power and flexibility of load balancer groups, which you may not need very often. The simplest (and most common) load balancer group definition looks something like this:

<dcm:loadbalancergroup name="bob">
  <dcm:member server="10.11.12.13" port="8129"/>
  <dcm:member server="10.11.12.13" port="8130"/>
</dcm:loadbalancergroup>

Given this definition, https://bob will load balance across services on 10.11.12.13 listening on ports 8129 and 8130. The load balancer group and its members are enabled by default, and round robin by default.

The DP browser interface is the authoritative reference on the meanings of these various elements and attributes and is a good place to find explanations of their semantics.

Remember to reference the load balancer group object from the XML Manager object.


dcm:loadbalancergroup

<dcm:loadbalancergroup name="..." 
  [ alg='...' ] 
  [ enabled="true|false" ]
  [ retrieve-info="true|false" ] 
  [ damp="n" ] 
  [ never-return-sick-member="true|false" ] 
  [ try-every-server-before-failing="true|false" ]
  [ masquerade-member="true|false" ] 
  [ application-routing="true|false" ] 
  [ transport="..." ] 
  [ websphere-cell-config="..." ] 
  [ wlm-group="..." ] >
  <dcm:member .../> (0-N occurrences)
  ...
  [<dcm:health-checks .../>]
  [<dcm:affinity .../>]
</dcm:loadbalancergroup>

Child elements:

<dcm:member> - 0-N - servers to load balance across
<dcm:health-checks> - 0 or 1 - how to perform (optional) health checks
<dcm:affinity> - 0 or 1 - affinity of requests to particular backend servers

Required Attributes:

name - name of the load balancer group object

Optional Attributes:

alg - algorithm to follow for choosing backend servers:
    first-alive
    hash
    least-connections
    round-robin
    weighted-least-connections
    weighted-round-robin

enabled - true/false - default true

retrieve-info - true/false - default false

damp - number of seconds - default 120

never-return-sick-member - true/false - default false

try-every-server-before-failing - true/false - default false

masquerade-member - true/false - default false

application-routing - true/false - false

transport - protocol name - default http

websphere-cell-config - name of cell or something

wlm-group - name of work load manager group

dcm:member

A <dc:member> element may occur 0-N times as immediate children of a <dcm:loadbalancergroup> element.

<dcm:member server="..." [ weight="n" ] [ enabled="true|false ] [ port="n" ] [ health-port="n" ] "/>

Required Attributes:

service - hostname or IP address of backend server to load balance

Optional Attributes:

weight - weight of this server

enabled - true/false - default true

port - 0-65535 - default 0

health-port - 0-65535 - default 0

dcm:health-checks

A <dcm:health-checks> element may optionally occur once within a <dcm:loadbalancergroup> element.

<dcm:health-checks [ enabled="true|false" ] 
  [ uri="..." ] 
  [ port="n" ]  
  [ ssl="Standard, LDAP, IMSConnect, on, off" ] 
  [ post="true|false" ]
  [ input="..." ]
  [ timeout="n" ]
  [ frequency="n" ]
  [ xpath = "..." ]
  [ filter = "..." ]
  [ ssl-proxy-profile = "..." ]
  [ enforce-timeout = "true|false" ] 
  [ independent-checks = "true|false" ] />

Optional Attributes:

enabled - true/false - default true

uri - string (e.g. '/healthcheck') default '/'

port - 0-65535 - default 80

ssl - Standard, LDAP, IMSConnect, on, off - default Standard

post - true/false - default true

input - default store:///healthcheck.xml

timeout - seconds to wait for response - default 10

frequency - seconds between attempts - default 180

xpath - XPath for checking response - default '/'

filter - default store:///healthcheck.xml

ssl-proxy-profile - name of SSLProxyProfile object - no default

enforce-timeout - true/false - default false

independent-checks - true/false - default false

dcm:affinity

A <dcm:affinity> element may optionally occur once within a <dcm:loadbalancergroup> element.

<dcm:affinity [ enabled="true|false" ]
  [ cookie-name="..." ]
  [ path="..." ]
  [ domain="..." ]
  [ wlm-override="true|false" ]
  [ mode="active|activeConditional" ]>
  <dcm:monitored cookie-name="..."/>
</dcm:affinity>

Child Elements:

<dcm:monitored cookie-name="..."> - 1-N

Optional Attributes:

enabled - true/false - default true

cookie-name - name of cookie carrying affinity information - default DPJSESSIONID


path - XPath - default '/'

domain - default '.datapower.com'

wlm-override - true/false - default false

mode - active/activeConditional - default activeConditional
⚠️ **GitHub.com Fallback** ⚠️