问题描述
我必须管理WS2 BPS(3.6.0),它对内部异常不是很了解. 有关问题排查的文档中有一小章 ,但是此设置仅记录传递到端点的消息.
I have to admin the WS2 BPS (3.6.0) is not very revealing about internal exceptions. There's a small chapter in the documentation about troubleshooting, however this setup logs only messages passed to the endpoints.
问题:
- 是否可以查看是在处理还是未处理的BPEL执行期间引发的内部异常? (例如表达式或脚本中的错误).也许在Apache-ODE级别上?
- 有什么方法可以访问"catchAll"故障处理程序捕获的故障?
谢谢大家的提示
推荐答案
1)解决问题的一种方法是启用BPEL运行时调试日志,您可以在其中查看执行流程.
1) One way troubleshoot is, enable BPEL Runtime debug logs, where you can see the execution flow.
log4j.logger.org.apache.ode.bpel.runtime =调试
log4j.logger.org.apache.ode.bpel.runtime=DEBUG
如果需要更多信息,还可以为ODE引擎启用调试日志.
If you need further information, you can enable debug logs for ODE engine as well.
log4j.logger.org.apache.ode.bpel.engine =调试
log4j.logger.org.apache.ode.bpel.engine=DEBUG
2)没有OTB方法可以实现这一目标.这是BPEL 2.0规范中的限制.在BPEL 2.0中,您只能捕获在伙伴服务WSDL中定义的故障.此外,您可以为错误消息分配一个变量.由此,您可以访问有关故障的信息.
2) There is no OTB way to achieve this. This is a limitation in BPEL 2.0 spec. In BPEL 2.0, you can catch only faults that are defined in the partner service WSDL. Additionally, you can assign a variable for the error message. From that, you can access information about the fault.
但是CatchAll不与变量关联.它是一个通用的故障处理程序.
But CatchAll doesn't associate with a variable. It is a generic fault handler.
我建议使用基于标志的解决方案来处理catchall中的错误. (这是我在大多数解决方案中所看到的.)
I would suggest using flag based solution to handle errors within catchall. (That is what I have seen in most of the solutions.)
这篇关于wso2 bps bpel日志记录和故障排除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!