bluemix 中 DashDB 的 ejbTimer 特性

ejbTimer feature with DashDB in bluemix

如果您选择在 Bluemix 中将 ejbTimer 功能与 DashDB 结合使用,您最终会遇到错误。我们分析了这个问题,并提出了 ejbTimer 特性在其创建阶段创建一组表(WLPTASK、WLPPART、WLPPROP)的分析。这些假定 'ORGANIZE BY COLUMN'(DashDB 上的默认值)。

作为解决方法,我们发现如果我们在独立(非云)Liberty 服务器中使用该功能,则让它创建表。从中获取 DDL 并使用 'ORGANIZE BY ROW' 调整它们。在 DashDB 中手动创建表。然后使用 Bluemix 中的功能不需要创建表并使用这些手动创建的表。

我认为这不是预期的行为 - 是否有解决办法?

您为解决此问题所做的工作很好。这不是开箱即用的原因是 Liberty 使用 EclipseLink (ECL) 为 EJB 计时器创建表,而 ECL 不完全支持 DashDB。

ECL 支持所有兼容的 SQL 和 JDBC 驱动程序。但是,ECL 仅支持 select 数据库集的模式生成。不幸的是,DashDB 不在 list of databases that ECL supports 架构生成中。

我建议您继续使用手动编辑为 Derby 生成的 DDL 的解决方法,同时 open a Request For Enhancement(应该花费 10 分钟或更短时间)让 IBM 向 ECL 添加 DashDB 模式生成支持.