我配置了一个BAM服务器配置文件和一个流,以便将我的一个代理服务连接到我的BAM,我错误地配置了我的BAM的IP地址。
当我向我的代理服务发送请求时,呼叫失败,因为无法访问BAM服务器。这是否意味着ESB和BAM之间的转换不是异步的,可能意味着我的代理服务失败了?
答案 0 :(得分:0)
Nicolas,每个调解员都是同步的。 如果要异步调用BAM,您需要做的是:
1)使用clone mediator创建异步线程(Sequential Mediation:NO,Continue Parent:YES)。 http://wso2.org/project/esb/java/4.0.0/docs/mediators/clone.html
2)在克隆目标中,执行所有异步工作并放置BAM代理中介。
通过这种方式,您的中介工作不仅更安全,而且性能更佳(因为在准备发送给BAM的信息时,您可能需要的所有转换都是异步发生的。)
答案 1 :(得分:0)
没有。虽然BAM中介是同步的,因为它是中介,但是对BAM侧的数据发送操作是异步完成的。这意味着如果由于某种原因(例如,不正确的IP,BAM不可用)无法访问BAM服务器,则ESB仍然可以正常工作而没有任何问题。只有转储到BAM的消息才会失败。这意味着中介序列将在服务器未找到异常的情况下正常运行,但不会发生消息记录。
在BAM调解器的开发期间,我们考虑克隆整个消息并异步发送到BAM端,但是我们拒绝了这个想法,因为内存克隆将花费大量时间和处理,这将减慢ESB。但仍然数据发送部分(数据桥)如上所述异步工作。