0

如何在 Oracle Service Bus 中使 WEB-Service 异步。请指导开发它!

http://www.html2xml.nl/Services/Calculator/Version1/Calculator.asmx?wsdl

这是计算器的网络服务,我必须在osb中调用异步网络服务。

4

5 回答 5

0

如果我错了,请纠正我,但对代理服务的每次调用都是同步的。如果您希望它是异步的,您应该将来自第一个服务的消息放在 JMS 队列中,并让它们被另一个服务读取。

于 2014-02-18T14:01:41.790 回答
0

阅读有关 OSB线程模型的信息。如果你通过路由调用一个webservice,那么这个服务调用就是异步的:你的线程不会阻塞,请求发送后返回线程池。多路复用器(muxer)用于等待响应。当服务接受并返回响应时,复用器将响应移交给用于执行响应管道的新线程。

于 2014-02-20T13:40:38.357 回答
0

我还认为将初始调用放入 JMS 队列是使 WS 异步并在 OSB 或目标系统出现问题时启用事务安全性的好方法。

异步工作台

于 2015-11-06T09:03:24.007 回答
0

确保在您的 WSDL 中启用/强制执行 WS-Addressing。将 replyTo 和 operation 值保存在 WS-Addressing 标头中。执行您的内部处理。如果这需要调用另一个异步服务,则使用 JMS 队列或 DB 表来临时存储响应,并轮询该队列/表以获取响应。当您收到响应和/或完成内部处理时,使用动态路由节点调用客户端。您将需要使用之前的 replyTo 和操作来构造动态路由的 XML。而已!

于 2016-04-15T12:44:46.467 回答
0

使用带有 jms 协议的业务服务将请求发布到 JMS 队列中。现在在同一个队列上构造一个 jms 代理。在消息流中转换消息并调用要异步的 Web 服务。最后,将响应发布到另一个队列中。

于 2015-12-13T22:04:45.297 回答