VirtualDatabaseConfiguration.java の 43 行で定義されています。
Public メソッド | |
VirtualDatabaseConfiguration (DistributedVirtualDatabase dvdb) | |
boolean | isCompatible (DistributedVirtualDatabase localDvdb) |
Static Public メソッド | |
Message | getMessage (Object msg) |
Private 変数 | |
String | controllerName |
String | vdbName |
String | groupName = null |
ArrayList | vLogins |
int | schedulerRAIDbLevel |
int | loadBalancerRAIDbLevel |
DatabaseSchema | dbs |
ArrayList | backends |
HashMap | backendPolicies |
|
|
Builds a JGroups message from the given object. Src and dest are filled with null.
CJDBCGroupMessage.java の 47 行で定義されています。
00048 { 00049 return new Message(null, null, (Serializable) msg); 00050 } |
|
Check if the local distributed virtual database is compatible with this virtual database configuration.
VirtualDatabaseConfiguration.java の 83 行で定義されています。 参照先 org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.equals(), 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.controller.backend.DatabaseBackend.getName(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getName(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.getScheduler(), org.objectweb.cjdbc.controller.authentication.AuthenticationManager.getVirtualLogins(), org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.isCompatibleBackend(), org.objectweb.cjdbc.common.sql.schema.DatabaseSchema.isCompatibleWith(), org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.loadBalancerRAIDbLevel, org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.logger, org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.schedulerRAIDbLevel, org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.vdbName, org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.vLogins, と org.objectweb.cjdbc.common.log.Trace.warn().
00084 { 00085 try 00086 { 00087 if (controllerName.equals(localDvdb.getControllerName())) 00088 { 00089 localDvdb.logger 00090 .warn(Translate 00091 .get("virtualdatabase.distributed.configuration.checking.duplicate.controller.name")); 00092 return false; 00093 } 00094 00095 // Sanity checks for virtual database name and group name 00096 if (!vdbName.equals(localDvdb.getName())) 00097 { 00098 localDvdb.logger 00099 .warn(Translate 00100 .get("virtualdatabase.distributed.configuration.checking.mismatch.name")); 00101 return false; 00102 } 00103 if (!groupName.equals(localDvdb.getGroupName())) 00104 { 00105 localDvdb.logger 00106 .warn(Translate 00107 .get("virtualdatabase.distributed.configuration.checking.mismatch.groupname")); 00108 return false; 00109 } 00110 00111 // Authentication managers must contains the same set of elements but 00112 // possibly in different orders (equals require the element to be in the 00113 // same order). 00114 if (!vLogins.containsAll(localDvdb.getAuthenticationManager() 00115 .getVirtualLogins()) 00116 || !localDvdb.getAuthenticationManager().getVirtualLogins() 00117 .containsAll(vLogins)) 00118 { 00119 localDvdb.logger 00120 .warn(Translate 00121 .get("virtualdatabase.distributed.configuration.checking.mismatch.vlogins")); 00122 return false; 00123 } 00124 00125 // Scheduler and Load Balancer checking 00126 if (schedulerRAIDbLevel != localDvdb.getRequestManager().getScheduler() 00127 .getRAIDbLevel()) 00128 { 00129 localDvdb.logger 00130 .warn(Translate 00131 .get("virtualdatabase.distributed.configuration.checking.mismatch.scheduler")); 00132 return false; 00133 } 00134 00135 if (loadBalancerRAIDbLevel != localDvdb.getRequestManager() 00136 .getLoadBalancer().getRAIDbLevel()) 00137 { 00138 localDvdb.logger 00139 .warn(Translate 00140 .get("virtualdatabase.distributed.configuration.checking.mismatch.loadbalancer")); 00141 return false; 00142 } 00143 00144 // Checking backends 00145 int size = backends.size(); 00146 for (int i = 0; i < size; i++) 00147 { 00148 DatabaseBackend b = (DatabaseBackend) backends.get(i); 00149 if (!localDvdb.isCompatibleBackend(b)) 00150 { 00151 localDvdb.logger 00152 .warn(Translate 00153 .get( 00154 "virtualdatabase.distributed.configuration.checking.mismatch.backend.shared", 00155 b.getName())); 00156 return false; 00157 } 00158 } 00159 00160 // Database schema checking (if any) 00161 if (dbs == null) 00162 { 00163 localDvdb.logger 00164 .warn(Translate 00165 .get("virtualdatabase.distributed.configuration.checking.noschema")); 00166 } 00167 else 00168 { 00169 // Check database schemas compatibility 00170 switch (loadBalancerRAIDbLevel) 00171 { 00172 case RAIDbLevels.RAIDb0 : 00173 // There must be no overlap between schemas 00174 if (dbs.equals(localDvdb.getRequestManager().getDatabaseSchema())) 00175 { 00176 localDvdb.logger 00177 .warn(Translate 00178 .get("virtualdatabase.distributed.configuration.checking.mismatch.databaseschema")); 00179 return false; 00180 } 00181 break; 00182 case RAIDbLevels.SingleDB : 00183 case RAIDbLevels.RAIDb1 : 00184 // Schemas must be identical 00185 if (!dbs.equals(localDvdb.getRequestManager().getDatabaseSchema())) 00186 { 00187 localDvdb.logger 00188 .warn(Translate 00189 .get("virtualdatabase.distributed.configuration.checking.mismatch.databaseschema")); 00190 return false; 00191 } 00192 break; 00193 case RAIDbLevels.RAIDb2 : 00194 // Common parts of the schema must be identical 00195 if (!dbs.isCompatibleWith(localDvdb.getRequestManager() 00196 .getDatabaseSchema())) 00197 { 00198 localDvdb.logger 00199 .warn(Translate 00200 .get("virtualdatabase.distributed.configuration.checking.mismatch.databaseschema")); 00201 return false; 00202 } 00203 break; 00204 default : 00205 localDvdb.logger.error("Unsupported RAIDb level: " 00206 + loadBalancerRAIDbLevel); 00207 return false; 00208 } 00209 } 00210 00211 // Ok, all tests succeeded, configuration is compatible 00212 return true; 00213 } 00214 catch (Exception e) 00215 { 00216 localDvdb.logger.error(Translate 00217 .get("virtualdatabase.distributed.configuration.checking.error"), e); 00218 return false; 00219 } 00220 } |
|
VirtualDatabaseConfiguration.java の 53 行で定義されています。 |
|
VirtualDatabaseConfiguration.java の 52 行で定義されています。 |
|
VirtualDatabaseConfiguration.java の 45 行で定義されています。 |
|
VirtualDatabaseConfiguration.java の 51 行で定義されています。 |
|
VirtualDatabaseConfiguration.java の 47 行で定義されています。 |
|
VirtualDatabaseConfiguration.java の 50 行で定義されています。 参照元 org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.isCompatible(). |
|
VirtualDatabaseConfiguration.java の 49 行で定義されています。 参照元 org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.isCompatible(). |
|
VirtualDatabaseConfiguration.java の 46 行で定義されています。 参照元 org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.isCompatible(). |
|
VirtualDatabaseConfiguration.java の 48 行で定義されています。 参照元 org.objectweb.cjdbc.controller.virtualdatabase.protocol.VirtualDatabaseConfiguration.isCompatible(). |