用 Slice 扩展 OpenJPA 应用程序
2010-10-09 08:13:28 来源:WEB开发网主片的显式指定并不是强制的。如果这个属性没有指定,第一个片将被指定为主片。当然这时的有效词是 first。这里假设这些片需要进行排序。这些片的排序在 openjpa.slice.Names 显式指定时,由此列表施加。否则,这些片会按其标识的字母顺序进行排序(虽然是试探式的,但的确是一种排序)。为了避免这类隐式的试探,建议显式指定 openjpa.slice.Names 和 openjpa.slice.Master。
每个片的可用性
在一个多数据库场景中,可能会有一个或多个数据库不可用。当 Slice 不能连接到一个或多个分区时,就由如下的属性支配行为:
<property
name="openjpa.slice.Lenient"
value="true"/>
将这个属性设置为 true 就可以让 Slice 在一个或多个片不可用时仍可继续。默认情况下,这个值是 false,并且如果这些已配置的片中有一个片是不可连接的,Slice 将不能启动。正如本例所展示的,第三个片指向的是一个无效的数据库 URL。这时,若将这个属性设为 true,就能让 Slice 在有两个有效的片的情况下也能启动并会忽略那个不能获取的片。
配置各物理数据库
每个由逻辑标识符标识的片必须指定其物理数据库 URL 和其他的一些属性。如下的例子显示了一个片的特定于片的配置,逻辑上标识为 One:
<property
name="openjpa.slice.One.ConnectionURL"
value="jdbc:derby:target/database/slice1"/>
这个属性将逻辑上标识为 One 的分区分配给一个 URL 为 jdbc:derby:target/database/slice1 的 Derby 数据库的一个物理实例。
如前面所提到的,每个特定于片的配置属性名均以 openjpa.slice.<logical slice identifier> 开头,后跟原始 OpenJPA 属性键后缀,比如 ConnectionURL。这种命名约定让用户可以用任意的 OpenJPA 属性独立配置每个片。另一方面,一些跨片常见的配置属性可以被简单地指定为原始的 OpenJPA 属性。这样一来,在这个示例配置中,此 JDBC 数据库驱动器就可以被指定为常见属性并应用到所有片,如下所示:
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接