bluemix 中带有 DashDB 的 ejbTimer 功能
Posted
技术标签:
【中文标题】bluemix 中带有 DashDB 的 ejbTimer 功能【英文标题】:ejbTimer feature with DashDB in bluemix 【发布时间】:2016-11-01 08:07:53 【问题描述】:如果您选择在 Bluemix 中将 ejbTimer 功能与 DashDB 一起使用,您最终会遇到错误。我们分析了这个问题,得出了 ejbTimer 特性在其创建阶段创建了一组表(WLPTASK、WLPPART、WLPPROP)的分析。这些假定为“按列组织”(DashDB 上的默认设置)。
作为一种解决方法,我们发现如果我们在独立(非云)Liberty 服务器中使用该功能,则让它创建表。从中获取 DDL,并使用“ORGANIZE BY ROW”进行调整。在 DashDB 中手动创建表。然后在 Bluemix 中使用该功能不需要创建表,并且可以使用这些手动创建的表。
我认为这不是预期的行为 - 有解决办法吗?
【问题讨论】:
当您在独立(非云)环境中创建表时,您是否也在此处使用 DashDB?还是其他数据库? 我为此使用了德比。其中两个表是在创建崩溃之前在 DashDB 中创建的,因此将这些信息与从 derby 中获得的信息相结合 - 就足够了。 【参考方案1】:您为解决此问题所做的工作很好。开箱即用的原因是 Liberty 使用 EclipseLink (ECL) 为 EJB 计时器创建表,而 ECL 不完全支持 DashDB。
ECL 支持所有兼容的 SQL 和 JDBC 驱动程序。但是,ECL 仅支持为一组选定的数据库生成模式。不幸的是,DashDB 不在 list of databases that ECL supports 模式生成中。
我建议您继续使用这种手动编辑为 Derby 生成的 DDL 的解决方法,同时 open a Request For Enhancement(应该需要 10 分钟或更短时间)让 IBM 将 DashDB 模式生成支持添加到 ECL。
【讨论】:
以上是关于bluemix 中带有 DashDB 的 ejbTimer 功能的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Bluemix dashDB 操作会引发 SQLCODE=-1667 的 SqlSyntaxErrorException?