When reviewing the product documentation regarding the Provisioning Server load balancing it shows the Directory XML would look like the following:
<Connection host=“imps_srv01.gpc.net" port="20389" loadbalance=“imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389” failover=“imps_srv04.gpc.net:20389,imps_srv05.gpc.net:20389” />
But when I then export the IM Prov Dir XML it will show the following instead
<Connection host=“imps_srv01.gpc.net" port="20389" loadbalance=“imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389” failover=“imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389,imps_srv04.gpc.net:20389,imps_srv05.gpc.net:20389” />
Identity Manager 14.3 CP2 and later
Identity Manager 14.4 and later
When importing the following Connection string in the XML
<Connection host="imps_srv01.gpc.net" port="20389" failover="imps_srv04.gpc.net:20389,imps_srv05.gpc.net:20389" loadbalance="imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389"/>
the result would be three pools of virtual servers with the primary servers in each bank consisting of imps_srv01, imps_srv02, and imps_srv03 where the remaining server pool for each would be the the other two non-primary server for that bank (i.e. between imps_srv01, imps_srv02, and imps_srv03) as well as additional servers for that server pool that are listed as failover (i.e. imps_srv04.gpc.net and imps_srv05.gpc.net)
The the IM objectstore database is updated with the HOSTNAME column of the IM_DIR_CONNECTION table getting the primary server (imps_srv01) followed by all the loadbalance servers (imps_srv02 and imps_srv03) and failover servers (imps_srv04 and imps_srv05) while the IM_DIR_CONNECTION_LD table contains the LOAD_SERVER_LIST value which would contain just the loadbalance servers (imps_srv02 and imps_srv03).
So now when you export out the XML the result will be that the failover property will contain not just imps_srv04 and imps_srv05 but will also contain imps_srv02 and imps_srv03 as all servers do act as failovers for any connection bank it is not the primary server of.
<Connection host="imps_srv01.gpc.net" port="20389" failover="imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389,imps_srv04.gpc.net:20389,imps_srv05.gpc.net:20389" loadbalance="imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389"/>
In order to remove imps_srv04 and imps_srv05 from the failover list you would need to import an XML which would like like the following:
<Connection host="imps_srv01.gpc.net" port="20389" failover="imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389" loadbalance="imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389"/>
which really means the same as
<Connection host="imps_srv01.gpc.net" port="20389" loadbalance="imps_srv02.gpc.net:20389,imps_srv03.gpc.net:20389"/>
but having the explicit failover value with the list of servers will force the database to be updated to remove imps_srv04 and imps_srv05