Joe,
Sorry I didnt mean for it to be guess work.
Basically the order of events is this:
1.Create a monitor (in this case HTTP type)
2. Following is code +psuedocode:
LocalLBPoolBindingStub _binding...
LocalLBPoolMonitorAssociation monitors[] = new LocalLBPoolMonitorAssociation[1];
LocalLBMonitorRule rule = new LocalLBMonitorRule();
LocalLBServiceDownAction[] actions = new LocalLBServiceDownAction[1];
monitorNames[0] = + "_monitor";
//the above monitor is an HTTP monitor created successfully
rule.setMonitor_templates(monitorNames);
monitors[0] = new LocalLBPoolMonitorAssociation();
monitors[0].setPool_name(;
monitors[0].setMonitor_rule(rule);
poolNames[0] = ;
actions[0] = LocalLBServiceDownAction.SERVICE_DOWN_ACTION_RESELECT;
_binding.set_monitor_association(monitors);
_binding.set_action_on_service_down(poolNames, actions);
Hope this makes some sense!!