0

我有状态完整的石英作业,由 JBoss 调度程序安排。它们每 20-30 秒发射一次。其中 4 个是 jax-ws 客户端。1 是轴 2 客户端,2 只是 http 客户端。

问题只发生在 jax-ws 客户端上。一段时间后,它们在执行过程中堆叠——当客户端尝试初始化soap服务时:

        soap = new MyService(new URL(targetEndpoint), new QName(
        "http://www.catmancer.com/Service", "myservice"))
        .getMyServiceSoap();

并且它们不再启动,直到服务器重新启动。甚至不会抛出石英作业超时异常。日志中也不例外。

预先感谢

4

1 回答 1

0

好吧,如果连接被卡住(网络故障,防火墙,...)并挂起,Quartz 工作永远不会结束。它一直占用 Quartz 工作线程。我不认为 Quartz 内置了任何超时 - 工作只要它想要运行就可以运行。

由于您的工作是有状态的,Quartz 不会在旧的触发器完成之前启动新的触发器(这是有状态工作的定义)。

您可以做的最好的事情是对您的 SOAP 调用应用一些超时。它应该很简单。

于 2012-11-20T19:42:10.533 回答