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 调用适配器