Forum Discussion
patrickmamaid_1
Nimbostratus
Dec 25, 2008how do i force down a pool member in java?
help I'm trying to force down a pool member in java but I'm having some trouble.
here is my attempt:
private iControl.Interfaces interfaces = new iControl.Interfaces();
//interfaces initialized somewhere in a constructor
interfaces.initialize(S_BIGIPPROD_MIT, L_BIGIPPORT, username, password);
public void forceDownMember(PoolMember member) {
//PoolMember is a predefined class just stores the what poolname it belongs to, ip addr and hostname
String[] pool = {member.getPoolName()};
LocalLBPoolMemberMemberSessionState[][] b = null;
try {
b = interfaces.getLocalLBPoolMember().get_session_enabled_state(pool);
} catch (Exception ex) {
Logger.getLogger(PatricksBIGIPSOAPGrabberClass.class.getName()).log(Level.SEVERE, null, ex);
}
if (b != null) {
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b.length; j++) {
if (b[j].getMember().getAddress().equals(member.getHostip())) {
b[j].setSession_state(CommonEnabledState.STATE_DISABLED);
System.out.println("connections are being drained");
}
}
}
}
}
the function doesnt seem to drain the connections or change anything?
is this the right function to force down a pool member? I want to do this in
order to perform maintenance on a server
- patrickmamaid_1
Nimbostratus
I got it to work! partially however.. it now sets the pool member topublic void forceDownMember(PoolMember member) { //set up a sessionstate obj. iControl.LocalLBPoolMemberMemberSessionState sessionstate = new LocalLBPoolMemberMemberSessionState(); iControl.CommonIPPortDefinition ipportdef = new iControl.CommonIPPortDefinition(); ipportdef.setAddress(member.getHostip()); ipportdef.setPort(member.getHostport()); sessionstate.setMember(ipportdef); sessionstate.setSession_state(CommonEnabledState.STATE_DISABLED); iControl.LocalLBPoolMemberMemberSessionState[][] lbpoolmembersessionstateArray = {{sessionstate}}; try { String tmp[] = {member.getPoolName()}; interfaces.getLocalLBPoolMember().set_session_enabled_state(tmp, lbpoolmembersessionstateArray); System.out.println("Taking down "+member.getHostip()+" "+member.getHostname()); } catch(Exception e){ System.out.println("forceDownMember: "+e.toString()); } }//end of method
- patrickmamaid_1
Nimbostratus
I have got my force down the pool member code to work!public void forceDownMember(PoolMember member) { //set up a sessionstate obj. iControl.LocalLBPoolMemberMemberSessionState sessionstate = new LocalLBPoolMemberMemberSessionState(); iControl.CommonIPPortDefinition sessionipportdef = new iControl.CommonIPPortDefinition(); sessionipportdef.setAddress(member.getHostip()); sessionipportdef.setPort(member.getHostport()); sessionstate.setMember(sessionipportdef); sessionstate.setSession_state(CommonEnabledState.STATE_DISABLED); iControl.LocalLBPoolMemberMemberSessionState[][] lbpoolmembersessionstateArray = {{sessionstate}}; //set up member state obj iControl.LocalLBPoolMemberMemberMonitorState monitorstate = new LocalLBPoolMemberMemberMonitorState(); iControl.CommonIPPortDefinition monitoripportdef = new iControl.CommonIPPortDefinition(); monitoripportdef.setAddress(member.getHostip()); monitoripportdef.setPort(member.getHostport()); monitorstate.setMember(monitoripportdef); monitorstate.setMonitor_state(CommonEnabledState.STATE_DISABLED); iControl.LocalLBPoolMemberMemberMonitorState monitorstatArray[][] = {{monitorstate}}; try { String tmp[] = {member.getPoolName()}; interfaces.getLocalLBPoolMember().set_session_enabled_state(tmp, lbpoolmembersessionstateArray); interfaces.getLocalLBPoolMember().set_monitor_state(tmp, monitorstatArray); System.out.println("Took down " + member.getHostip() + " " + member.getHostname()); } catch (Exception e) { System.out.println("forceDownMember: " + e.toString()); } }
- Patrick, first of all, sorry for not getting back to you sooner. I've been off the last few weeks so I'm just now getting caught up on forum questions. Also, thanks for posting all your great code snippets - it makes helping out that much easier.
http://devcentral.f5.com/Default.aspx?tabid=53&forumid=1&tpage=1&view=topic&postid=860428711
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects