我们正在运行Liquidoffice 6.2.4。我们一直存在一些网络问题,有时会导致我们的Web服务任务中止。我们正在制定重试序列,以防止这变得太大问题。

但是,我们需要知道何时有流产任务的流程,以便我们采取适当的措施(可以使用管理控制台执行此操作,但没有警报)。我一直在浏览Liquidoffice Soap API尝试找到一些东西,但是到目前为止却差得很远。一旦有了可行的解决方案,我们将将此支票集成到SCOM警报中。

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

有帮助吗?

解决方案

尽管我可以看到来自管理控制台的肥皂查询和响应,但我找不到端点以亲自连接。总的来说,无论如何,这似乎都很麻烦。因此,我想出了直接访问数据库的想法。我们将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,过程名称,失败任务名称以及启动的日期/时间。这不是完美的,但对我们有用!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top