1

我们正在运行 LiquidOffice 6.2.4。我们遇到了一些网络问题,这些问题有时会导致我们的 Web 服务任务中止。我们正在研究重试序列,以防止这成为一个太大的问题。

但是,我们需要知道何时有任务中止的 LO 进程,以便我们可以采取适当的措施(这可以通过管理控制台完成,但没有警报)。我一直在查看 LiquidOffice SOAP API 以尝试找到一些东西,但到目前为止还不够。一旦我有了一个可行的解决方案,我们就会将此检查集成到 SCOM 警报中。

有没有其他人做过类似的事情(通过 SOAP 进行流程搜索)?任何指导或提示将不胜感激。我们计划在 C# 中实现 SOAP 调用。

4

1 回答 1

1

虽然我可以看到来自管理控制台的 SOAP 查询和响应,但我找不到端点以便自己连接到它。总的来说,这似乎很麻烦。于是我想出了直接打数据库的想法。我们将 LiquidOffice 数据库存储在 SQL 2005 实例中,因此我编写了以下查询:

SELECT  P.PROC_ID AS [ID],
        REVERSE(LEFT(REVERSE(PDef.PROC_DFN_PATH),CHARINDEX('/',REVERSE(PDef.PROC_DFN_PATH))-1)) AS [Process],
        T.TASK_NAME AS [Task],
        DATEADD(millisecond, DATEDIFF(millisecond,GETUTCDATE(),GETDATE()), DATEADD(MINUTE, (P.START_DATE/60000), '1/1/1970')) AS [Started]
    FROM dbo.CS_PROCESSES AS P
        INNER JOIN dbo.CS_TASKS AS T
            ON P.PROC_ID = T.PROC_ID
        INNER JOIN dbo.CS_PROCESS_DFN AS PDef
            ON P.PROC_DFN_ID = PDef.PROC_DFN_ID
    WHERE T.[STATE] = 3

这将返回所有失败的任务,并为您提供进程 ID、进程名称、失败的任务名称以及进程启动的日期/时间。它并不完美,但它对我们有用!

于 2011-01-13T14:25:16.323 回答