Ibm cloud 在bluemix中使用DashDB的ejbTimer功能

Ibm cloud 在bluemix中使用DashDB的ejbTimer功能,ibm-cloud,websphere-liberty,dashdb,Ibm Cloud,Websphere Liberty,Dashdb,如果您选择将ejbTimer功能与Bluemix中的DashDB一起使用,则最终会出现错误。我们已经分析了这个问题,并分析出ejbTimer特性在其创建阶段创建了一组表(WLPTASK、WLPPART、WLPPROP)。这些假设为“按列组织”(DashDB上的默认设置) 作为一种解决方法,我们发现如果我们在独立(非云)Liberty server中使用该功能,就让它创建表。从中获取DDL,并使用“按行组织”对其进行调整。在DashDB中手动创建表。然后,在Bluemix中使用该功能不需要创建表,

如果您选择将ejbTimer功能与Bluemix中的DashDB一起使用,则最终会出现错误。我们已经分析了这个问题,并分析出ejbTimer特性在其创建阶段创建了一组表(WLPTASK、WLPPART、WLPPROP)。这些假设为“按列组织”(DashDB上的默认设置)

作为一种解决方法,我们发现如果我们在独立(非云)Liberty server中使用该功能,就让它创建表。从中获取DDL,并使用“按行组织”对其进行调整。在DashDB中手动创建表。然后,在Bluemix中使用该功能不需要创建表,并且可以使用这些手动创建的表


我假设这不是预期的行为-有解决方法吗?

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

ECL支持所有兼容的SQL和JDBC驱动程序。但是,ECL只支持为一组选定的数据库生成模式。遗憾的是,DashDB不在的架构生成中


我建议您继续使用手动编辑为Derby生成的DDL的这种解决方法,同时(应该需要10分钟或更短时间)IBM向ECL添加DashDB模式生成支持。

在独立(非云)环境中创建表时,您是否也在这里使用DashDB?或者其他数据库?我用derby做的。其中两个表是在create崩溃之前创建到DashDB中的,因此将这些信息与从derby中获得的信息结合起来就足够了。