ECC Queue で Mid Server リクエストが processing 状態のままスタックするSummary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ECC Queue で Mid Server リクエストが processing 状態のままになります。 MID Server が稼働中 (up)、検証済み (validated)、および実行中 (running) であるにもかかわらず、ECC Queue が processing 状態で停止している場合があります。また、Agent ログに以下のようなエラーが表示されます。 2021-05-14 09:36:38 (559) ECCSender.1 WARNING *** WARNING *** Method failed: (https://<your-instance>.service-now.com/ecc_queue.do?SOAP&displayvalue=all&redirectSupported=true)HTTP/1.1 500 Internal Server Error with code: 5002021-05-14 09:36:38 (606) ECCSender.1 WARNING *** WARNING *** Error executing business rule 'XXXX_XXXX'2021-05-14 09:36:38 (606) ECCSender.1 WARNING *** WARNING *** RemoteGlideRecord failed to send data to https://<your-instance>.service-now.com/ with (Error executing business rule 'XXXX-XXXX')2021-05-14 09:36:38 (606) ECCSender.1 SEVERE *** ERROR *** Error executing business rule 'XXXX-XXXX'com.service_now.mid.MIDRemoteGlideRecord$RetryableException: Error executing business rule 'XXXX-XXXX' Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } すべて Instructions<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 1. MID Server の設定パラメーターに "mid.log.level" を追加し、値を 'debug' に設定します。 2. Agent ログを取得します。 3. ログを調査し、以下のようなエラーが見つかるか確認します。 2021-05-14 00:00:54 (369) Worker-Standard:Command-51f712ae1b883010eae23197cc4bcb94 Enqueuing: D:\MidServer1\agent\work\monitors\ECCSender\output_2\ecc_queue.51f712ae1b883010eae23197cc4bcb94.xml2021-05-14 00:00:54 (371) Worker-Standard:Command-51f712ae1b883010eae23197cc4bcb94 Worker completed: Command source: INC2080130-vpn time: 0:00:15.026 2021-05-14 09:36:38 (559) ECCSender.1 WARNING *** WARNING *** Method failed: (https://<your-instance>.service-now.com/ecc_queue.do?SOAP&displayvalue=all&redirectSupported=true)HTTP/1.1 500 Internal Server Error with code: 5002021-05-14 09:36:38 (606) ECCSender.1 WARNING *** WARNING *** Error executing business rule 'XXXX_XXXX'2021-05-14 09:36:38 (606) ECCSender.1 WARNING *** WARNING *** RemoteGlideRecord failed to send data to https://<your-instance>.service-now.com/ with (Error executing business rule 'XXXX-XXXX')2021-05-14 09:36:38 (606) ECCSender.1 SEVERE *** ERROR *** Error executing business rule 'XXXX-XXXX'com.service_now.mid.MIDRemoteGlideRecord$RetryableException: Error executing business rule 'XXXX-XXXX' 2021-05-14 00:09:26 (155) ECCSender.1 WARNING *** WARNING *** MIDRemoteGlideRecord.insert failed, retrying in 10 seconds 4. 上記のエラーを注意深く確認すると、Worker はジョブを完了していますが、ECCSender で失敗していることがわかります。 5. ECC Queue テーブル上のカスタム Business Rule を確認します。 6. ECCSender は、各 XML ファイルに対して ECC Queue Input を挿入する役割を担います。 7. このケースでは、顧客が Incident テーブルを更新するロジックを記述した before insert Business Rule が ecc_queue テーブル上に存在していました。 8. Business Rule が async ではないため、すべてのロジックの実行が完了するまでトランザクションは保持されます。しかし、そのトランザクションでエラーが発生し、そのエラーが ECCSender に返されます。そのため ECCSender はレスポンスを送信したことを認識できず、送信を再試行しますが、常に失敗します。 9. このため、ECC Queue Output は常に processing 状態で停止します。 10. この問題を解決するには、Business Rule を before insert または after insert ではなく Async として実行するよう変更する必要があります。これにより ECCSender スレッドはブロックされず、ecc_queue テーブルへ ECC Queue Input を挿入するという本来の処理のみを実行できます。