Worklight:我们可以在从 JS 适配器调用的 Java 代码中使用两阶段提交吗?

Posted

技术标签:

【中文标题】Worklight:我们可以在从 JS 适配器调用的 Java 代码中使用两阶段提交吗?【英文标题】:Worklight:Can we use two-phase commit in Java code which called from JS adapter? 【发布时间】:2014-10-30 13:50:16 【问题描述】:

根据下面,我们可以从javascript适配器调用Java代码。

从 JavaScript 适配器调用 Java 代码http://www-01.ibm.com/support/knowledgecenter/?lang=en#!/SSZH4A_6.2.0/com.ibm.worklight.dev.doc/devref/t_calling_java_code_from_a_javas.html

我们计划在 WAS 完整配置文件上安装 Worklight 服务器。 WAS 完整配置文件支持两阶段提交。

WebSphere Application Server 中的事务支持 http://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/cjta_trans.html?cp=SSAW57_8.5.5%2F3-2-7-3&lang=en

要从适配器调用 java 代码,我们需要将其部署在“Worklight 服务器”上。我们可以在 java 代码中使用两阶段提交吗?在 worklight 服务器上使用 java 代码有什么限制吗?

提前致谢!

【问题讨论】:

【参考方案1】:

我知道的唯一限制是 WAS 安全上下文不会传播到 Worklight 适配器的线程。但一般来说,存在相同的功能并且可以使用相同的 servlet API。

您可以阅读更多关于适配器中 Java Vs JavaScript 的信息,请参阅以下问题:Worklight Adapters - Java vs JavaScript

也就是说,两阶段提交从未在实践中进行过测试,因此它可能有效,也可能无效……原因与上述安全上下文相同。因为事务通常与线程相关联,并且该线程不适用于使用自己的线程池的 Worklight 适配器。

上述限制可能会在 Worklight 的未来版本中删除,这反过来又可能使使用两阶段提交功能成为可能。

【讨论】:

以上是关于Worklight:我们可以在从 JS 适配器调用的 Java 代码中使用两阶段提交吗?的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.1 - 成功调用适配器后如何调用 angular.js 的“ng-controller”方法?

如何通过 Web Worker 中的 Worklight 适配器调用 Web 服务

worklight 多线程/servletcontext 调用适配器

IBM Worklight 6.1 - 升级到 v6.1 后,iOS 5 中的适配器调用失败

Worklight 轮询适配器 - 调用另一个适配器

Worklight 适配器性能