2011-01-12 2 views
1

우리는 LiquidOffice 6.2.4를 실행 중입니다. 우리는 때로는 웹 서비스 작업을 중단시키는 일부 네트워크 문제를 겪고 있습니다. 우리는이 문제가 너무 커지지 않도록 재시도 작업을하고 있습니다.쿼리 LiquidOffice의 중단 된 프로세스

그러나 우리는 알맞은 작업을 수행 할 수 있도록 중단 된 작업이있는 LO 프로세스가 있는지 알아야합니다 (이는 관리 콘솔에서 수행 할 수 있지만 경고는 없습니다). 나는 LiquidOffice SOAP API를 통해 무언가를 찾으려고했지만 지금까지는 짧게 보였다. 실행 가능한 솔루션을 확보하고 나면이 수표를 SCOM 경고에 통합 할 것입니다.

아무도 비슷한 작업을하지 않았습니까 (SOAP를 통해 프로세스 검색을 실행 했습니까)? 모든 지침이나 힌트를 크게 주시면 감사하겠습니다. 우리는 C#에서 SOAP 호출을 구현할 계획입니다.

답변

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, 프로세스 이름을 제공하고, 날짜/프로세스가 시작된 시간 그것은 완벽하지는 않지만 우리를 위해 일합니다!