質問

LiquidOffice 6.2.4を実行しています。 Webサービスタスクが中止される場合があるネットワークの問題がいくつかあります。私たちは、これが大きすぎる問題にならないようにするために、再試行シーケンスに取り組んでいます。

ただし、適切なアクションを実行できるように、中止されたタスクを備えたLOプロセスがいつあるかを知る必要があります(これは管理コンソールで実行できますが、警告はありません)。 LiquidOffice Soap APIを調べて、何かを見つけようとしていますが、これまでのところ短期間になりました。実行可能なソリューションができたら、このチェックをSCOMアラートに統合します。

他の誰かが似たようなことをしましたか(石鹸を通してプロセス検索を実行しました)?ガイダンスやヒントは大歓迎です。 C#に石鹸コールを実装する予定です。

役に立ちましたか?

解決

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、プロセス名、失敗したタスク名、およびプロセスが開始された日付/時刻が提供されます。完璧ではありませんが、私たちのために働きます!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top