Credits go to Father Ron at my work.
The following may look like a lot of xml code, but after pasting it into one of your creation policy rules on the Subscriber channel it is only 2 conditions and 2 actions, this is by far the easiest quickest way to load balance the creation of exchange accounts across the different homeMDBs.
We have 16 Exchange homeMDBs and we are using the xpath operation of mod and the variable of ($time (we are using the number of milliseconds) mod 16 + 1). So if you had 25 MDB’s then you would modify the below code to read ($time mod 25) + 1. You will also need to update the exchange rule in the command policy as well.
<rule> <description>default Exchange assignment</description> <comment>Provision Exchange mailbox</comment> <conditions> <and> <if-global-variable mode="nocase" name="drv.exchMailboxMethod" op="equal">policy</if-global-variable> <if-class-name op="equal">User</if-class-name> </and> </conditions> <actions> <do-set-local-variable name="time" scope="policy"> <arg-string> <token-time format="!JTIME" tz="UTC"/> </arg-string> </do-set-local-variable> <do-set-dest-attr-value name="homeMDB"> <arg-value type="string"> <token-text xml:space="preserve">CN=DB</token-text> <token-xpath expression="$time mod 16 + 1"/> <token-text xml:space="preserve">,CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=EXCHANGE,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=ad,DC=georgiahealth,DC=edu</token-text> </arg-value> </do-set-dest-attr-value> </actions> </rule> </policy>