Loadbalance.xml: Catch-all phase is usually recommended to be placed at the bottom of the list.
search cancel

Loadbalance.xml: Catch-all phase is usually recommended to be placed at the bottom of the list.

book

Article ID: 43233

calendar_today

Updated On:

Products

CA Application Performance Management Agent (APM / Wily / Introscope) INTROSCOPE

Issue/Introduction

When using loadbalancing.xml, sometimes it would produce unexpected results.  The ordering of the agent-collector plays a crucial role.  The agent-collectors are  considered in order from top to bottom of the list.  A catch-all phase is usually best to be used at the bottom of the list.

By using loadbalancing.xml, we want to prevent all agents from connecting to a particular collector.  In addition, we would like to direct certain agents to be connected to a particular set of collectors.

 

 

Environment

APM 10.7 and 10.8

Resolution

If you use a catch-all agent-collector on the top in the following example, it would have the unintended effect of excluding ALL agents from connecting to the specified  collector, but at the same time it would connect ALL the agents to ANY collectors other than the specified one, rendering the second agent-collector at the bottom not executed (because the catch-all would have connected all agents to a collector already): 

 


<agent-collector name="CatchAll Exclude"> 

<agent-specifier>.*\|.*\|.*</agent-specifier> 

<exclude> 

<collector host="collectorExcluded" port="1234"/> 

</exclude> 

</agent-collector>

<agent-collector name="Agents Include"> 

<agent-specifier>Agent Server\|Application\|.*</agent-specifier> 

<include> 

<collector host="collectorIncluded" port="5678" /> 

</include> 

</agent-collector> 

 

However, if using the catch-all agent-collector at the bottom, then the specific agent can first connect to the specified collector.  Then ANY and ALL other agents would be connected to collectors EXCEPT the collector specified in the catch-all.

 

<agent-collector name="Agents Include"> 

<agent-specifier>Agent Server\|Application\|.*</agent-specifier> 

<include> 

<collector host="collectorIncluded" port="5678" /> 

</include> 

</agent-collector> 

 

<agent-collector name="CatchAll Exclude"> 

 

<agent-specifier>.*\|.*\|.*</agent-specifier>

<exclude> 

<collector host="collectorExcluded" port="1234"/> 

</exclude> 

</agent-collector>