1 22 23 package org.continuent.sequoia.controller.loadbalancer.policies; 24 25 import org.continuent.sequoia.common.xml.DatabasesXmlTags; 26 27 33 public class WaitForCompletionPolicy 34 { 35 36 public static final int FIRST = 0; 37 38 41 public static final int MAJORITY = 1; 42 43 44 public static final int ALL = 2; 45 46 47 private int policy = FIRST; 48 49 50 private boolean enforceTableLocking; 51 52 53 private long deadlockTimeoutInMs; 54 55 63 public WaitForCompletionPolicy(int policy, boolean enforceTableLocking, 64 long deadlockTimeoutInMs) 65 { 66 this.policy = policy; 67 this.enforceTableLocking = enforceTableLocking; 68 this.deadlockTimeoutInMs = deadlockTimeoutInMs; 69 } 70 71 76 public final long getDeadlockTimeoutInMs() 77 { 78 return deadlockTimeoutInMs; 79 } 80 81 86 public final void setDeadlockTimeoutInMs(long deadlockTimeoutInMs) 87 { 88 this.deadlockTimeoutInMs = deadlockTimeoutInMs; 89 } 90 91 96 public boolean isEnforceTableLocking() 97 { 98 return enforceTableLocking; 99 } 100 101 106 public int getPolicy() 107 { 108 return policy; 109 } 110 111 116 public void setPolicy(int policy) 117 { 118 this.policy = policy; 119 } 120 121 126 public String getInformation() 127 { 128 switch (policy) 129 { 130 case FIRST : 131 return "return when first node completes"; 132 case MAJORITY : 133 return "return when a majority of nodes completes"; 134 case ALL : 135 return "return when all nodes have completed"; 136 default : 137 return "unknown policy"; 138 } 139 } 140 141 146 public String getXml() 147 { 148 StringBuffer info = new StringBuffer (); 149 info.append("<" + DatabasesXmlTags.ELT_WaitForCompletion + " " 150 + DatabasesXmlTags.ATT_policy + "=\""); 151 switch (policy) 152 { 153 case FIRST : 154 info.append(DatabasesXmlTags.VAL_first); 155 break; 156 case ALL : 157 info.append(DatabasesXmlTags.VAL_all); 158 break; 159 case MAJORITY : 160 info.append(DatabasesXmlTags.VAL_majority); 161 break; 162 default : 163 } 164 info.append("\" " + DatabasesXmlTags.ATT_enforceTableLocking + "=\"" 165 + enforceTableLocking + "\" " 166 + DatabasesXmlTags.ATT_deadlockTimeoutInMs + "=\"" 167 + deadlockTimeoutInMs + "\"/>"); 168 return info.toString(); 169 } 170 } 171 | Popular Tags |