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 时出错

为啥 Bluemix dashDB 操作会引发 SQLCODE=-1667 的 SqlSyntaxErrorException?

如何将两个参数传递给来自 IBM Bluemix 的 Node-Red 的 dashDB 查询元素

IBM Cloud dashDB 时区

使用 DashDB 作为数据库(而不是数据仓库)

dashDB 控制台中 R-studio 的密码是啥?