使用JDK 1.8.0_121在Windows Server 2012上运行EI 6.1.1 ESB配置文件
这个奇怪的问题! :
我有一个API,它以“正常”方式调用后端服务,其中一个端点调用代理服务(在同一个ESB服务器上运行),然后将请求代理回后端系统。所有这些只是内部网络。
如果我将端点作为CAR文件的一部分部署到生产服务器,那么端点的行为几乎就像它不存在一样。没有错误被记录,并且通过端点发送的有效负载以某种方式通过API作为响应返回给客户端。(不确定如何调用故障序列并且没有记录错误)
它必然会被命中的代理服务(通过将完整的日志中介作为代理中的第一个中介进行检查),并且端点没有显示任何失败或暂停状态。
如果我通过管理控制台使用相同的XML创建端点,那么一切正常。重新启动ESB配置文件。重启后,其行为如上所述。
我发现在上述任何一种情况下 - 如果我通过管理控制台编辑端点,MAKE NO CHANGES并立即保存 - 那么一切都会再次运行 - 显然直到下一次ESB配置文件重新启动。
这是关注的终点:
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="Sworks">
<wsdl uri="http://intapi.mycompany.co.uk/services/SworksPxy?wsdl" service="SworksPxy" port="SworksPxyHttpSoap11Endpoint">
<suspendOnFailure>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
</wsdl>
</endpoint>
任何帮助非常感谢。显然这很令人沮丧,因为这意味着每次服务器重新启动或ESB配置文件重新启动时我们的应用程序都会失败,直到有人可以通过控制台进入并编辑/保存端点。
更新:这似乎与端点有关,它的目标位于同一个ESB服务器上。如果我将碳应用程序未修改部署到我的本地运行时环境(通过eclipse) - 一切正常。然后,端点仍在引用生产服务器上的代理服务。 如果我更新端点以指向部署在本地运行时环境中的代理服务,则会再现其失败行为。再次 - 编辑/保存修复它。
答案 0 :(得分:0)
您可以检查端点是否在文件系统上创建? std::atomic_signal_fence(std::memory_order_seq_cst)
,如果端点在那里,则删除端点,删除CAR文件并重启服务器,然后在重新启动服务器后应用CAR文件,然后检查