Public Member Functions | |
String | getControllerName () |
String | getControllerJmxName () |
VirtualDatabaseConfiguration (DistributedVirtualDatabase dvdb) | |
String | getRmiHostname () |
String | getRmiPort () |
boolean | isCompatible (DistributedVirtualDatabase localDvdb) |
HashMap | getBackendPolicies () |
Definition at line 47 of file VirtualDatabaseConfiguration.java.
|
|
Returns the backendPolicies value.
Definition at line 284 of file VirtualDatabaseConfiguration.java. 00285 {
00286 return backendPolicies;
00287 }
|
|
Returns the controllerJmxName value.
Definition at line 77 of file VirtualDatabaseConfiguration.java. 00078 {
00079 return controllerJmxName;
00080 }
|
|
Definition at line 67 of file VirtualDatabaseConfiguration.java. Referenced by org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.handleMessageMultiThreaded(). 00068 {
00069 return controllerName;
00070 }
|
|
Definition at line 120 of file VirtualDatabaseConfiguration.java. Referenced by org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.handleMessageMultiThreaded(). 00121 {
00122 return rmiHostname;
00123 }
|
|
Definition at line 128 of file VirtualDatabaseConfiguration.java. Referenced by org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.handleMessageMultiThreaded(). 00129 {
00130 return rmiPort;
00131 }
|
|
Check if the local distributed virtual database is compatible with this virtual database configuration.
Definition at line 140 of file VirtualDatabaseConfiguration.java. References org.objectweb.cjdbc.common.log.Trace.error(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getAuthenticationManager(), org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.getControllerName(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.getDatabaseSchema(), org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.getGroupName(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.getLoadBalancer(), org.objectweb.cjdbc.common.shared.BackendInfo.getName(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.getScheduler(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getVirtualDatabaseName(), org.objectweb.cjdbc.controller.authentication.AuthenticationManager.getVirtualLogins(), org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.isCompatibleBackend(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.logger, and org.objectweb.cjdbc.common.log.Trace.warn(). 00141 { 00142 try 00143 { 00144 if (controllerName.equals(localDvdb.getControllerName())) 00145 { 00146 localDvdb.logger 00147 .warn(Translate 00148 .get("virtualdatabase.distributed.configuration.checking.duplicate.controller.name")); 00149 return false; 00150 } 00151 00152 // Sanity checks for virtual database name and group name 00153 if (!vdbName.equals(localDvdb.getVirtualDatabaseName())) 00154 { 00155 localDvdb.logger 00156 .warn(Translate 00157 .get("virtualdatabase.distributed.configuration.checking.mismatch.name")); 00158 return false; 00159 } 00160 if (!groupName.equals(localDvdb.getGroupName())) 00161 { 00162 localDvdb.logger 00163 .warn(Translate 00164 .get("virtualdatabase.distributed.configuration.checking.mismatch.groupname")); 00165 return false; 00166 } 00167 00168 // Authentication managers must contains the same set of elements but 00169 // possibly in different orders (equals require the element to be in the 00170 // same order). 00171 if (!vLogins.containsAll(localDvdb.getAuthenticationManager() 00172 .getVirtualLogins()) 00173 || !localDvdb.getAuthenticationManager().getVirtualLogins() 00174 .containsAll(vLogins)) 00175 { 00176 localDvdb.logger 00177 .warn(Translate 00178 .get("virtualdatabase.distributed.configuration.checking.mismatch.vlogins")); 00179 return false; 00180 } 00181 00182 // Scheduler and Load Balancer checking 00183 if (schedulerRAIDbLevel != localDvdb.getRequestManager().getScheduler() 00184 .getRAIDbLevel()) 00185 { 00186 localDvdb.logger 00187 .warn(Translate 00188 .get("virtualdatabase.distributed.configuration.checking.mismatch.scheduler")); 00189 return false; 00190 } 00191 00192 if (loadBalancerRAIDbLevel != localDvdb.getRequestManager() 00193 .getLoadBalancer().getRAIDbLevel()) 00194 { 00195 localDvdb.logger 00196 .warn(Translate 00197 .get("virtualdatabase.distributed.configuration.checking.mismatch.loadbalancer")); 00198 return false; 00199 } 00200 00201 // Checking backends 00202 int size = backends.size(); 00203 for (int i = 0; i < size; i++) 00204 { 00205 BackendInfo b = (BackendInfo) backends.get(i); 00206 if (!localDvdb.isCompatibleBackend(b)) 00207 { 00208 localDvdb.logger 00209 .warn(Translate 00210 .get( 00211 "virtualdatabase.distributed.configuration.checking.mismatch.backend.shared", 00212 b.getName())); 00213 return false; 00214 } 00215 } 00216 00217 // Database schema checking (if any) 00218 if (dbs == null) 00219 { 00220 localDvdb.logger 00221 .warn(Translate 00222 .get("virtualdatabase.distributed.configuration.checking.noschema")); 00223 } 00224 else 00225 { 00226 // Check database schemas compatibility 00227 switch (loadBalancerRAIDbLevel) 00228 { 00229 case RAIDbLevels.RAIDb0 : 00230 // There must be no overlap between schemas 00231 if (dbs.equals(localDvdb.getRequestManager().getDatabaseSchema())) 00232 { 00233 localDvdb.logger 00234 .warn(Translate 00235 .get("virtualdatabase.distributed.configuration.checking.mismatch.databaseschema")); 00236 return false; 00237 } 00238 break; 00239 case RAIDbLevels.SingleDB : 00240 case RAIDbLevels.RAIDb1 : 00241 // Schemas must be identical 00242 if (!dbs.equals(localDvdb.getRequestManager().getDatabaseSchema())) 00243 { 00244 localDvdb.logger 00245 .warn(Translate 00246 .get("virtualdatabase.distributed.configuration.checking.mismatch.databaseschema")); 00247 return false; 00248 } 00249 break; 00250 case RAIDbLevels.RAIDb2 : 00251 // Common parts of the schema must be identical 00252 if (!dbs.isCompatibleWith(localDvdb.getRequestManager() 00253 .getDatabaseSchema())) 00254 { 00255 localDvdb.logger 00256 .warn(Translate 00257 .get("virtualdatabase.distributed.configuration.checking.mismatch.databaseschema")); 00258 return false; 00259 } 00260 break; 00261 default : 00262 localDvdb.logger.error("Unsupported RAIDb level: " 00263 + loadBalancerRAIDbLevel); 00264 return false; 00265 } 00266 } 00267 00268 // Ok, all tests succeeded, configuration is compatible 00269 return true; 00270 } 00271 catch (Exception e) 00272 { 00273 localDvdb.logger.error(Translate 00274 .get("virtualdatabase.distributed.configuration.checking.error"), e); 00275 return false; 00276 } 00277 }
|