MID サーバーが JDBCProbe 要求/ECC レコードを処理していません。Issue <!-- /*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: ; } } 症状 MID サーバーが JDBCProbe 要求を処理していません リリース 原因 JDBC 接続を行っている MID サーバーがある場合、特定の条件下で、1 つの複数の JDBC プローブが同時に実行され、それぞれのドライバーがロードされると、ネイティブレベルでデッドロックが発生する可能性があります MID デバッグパラメーターを追加しましたhttps://docs.servicenow.com/csh?topicname=mid-server-parameters.html&version=latest その後、エラーが表示されます。10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: STANDARD threadpool キューが満杯です!このメッセージをスキップします (後でもう一度試します)。10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: イベント: GenericCounterMetricEvent10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: スキップされたメッセージ: コマンド /ms/dist/entmgt/PROJ/netcoolusers/prod/common/bin/nco_alert -Manager ServiceNow -Agent '${agent}' -AlertGroup '${alert_group}' -AlertKey '${alert_key}' -Severity '${severity}' -summary '${summary}' 4778e490db056784056d79578c9619eb10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: 現在のポーリングサイクルでスレッドプールキューに追加されたメッセージの数: 0エラーは次のように見ています:STANDARDスレッドプールキューがいっぱいです!このメッセージをスキップします (後でもう一度試します)。 MID サーバースレッドのスタックトレースは以下のとおりです|場所:com.service_now.mid.connections.jdbc.JDBCConnection.establishConnection(JDBCConnection.java:97)|com.service_now.mid.connections.jdbc.JDBCConnection.connect(JDBCConnection.java:74) で|at com.service_now.mid.connections.jdbc.JDBCConnectionFactory.create(JDBCConnectionFactory.java:52)|場所:com.service_now.mid.connections.ConnectionCachePool.getAvailableConnection(ConnectionCachePool.java:82)|- ロックされた<0x00000000c2626700> (com.service_now.mid.connections.ConnectionCachePool)|com.service_now.mid.connections.ConnectionCache.get(ConnectionCache.java:94) で|com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:710) で|com.service_now.mid.probe.JDBCProbe.probe で (JDBCProbe.java:107)|com.service_now.mid.probe.AProbe.process(AProbe.java:81)で|com.service_now.mid.queue_worker で。AWorker.runWorker(AWorker.java:123)|com.service_now.mid.queue_worker で。AWorkerThread.run(AWorkerThread.java:20)|java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)で|java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)で 解決 0.MID サーバーの停止 1.古い JDBC プローブレコードをすべてクリーンアップ [ECC レコードのステータスを「エラー」に設定]2.スクリプトインクルード [添付ファイルにあります] をインポートします3.スクリプトを実行し、バックグラウンドスクリプトを使用してドライバーをロードしますこれにより、ドライバーロードメッセージの優先度を「インタラクティブ」に設定できます。変更されたスクリプトインクルードがこのタスクに添付されます。次のスクリプトでは、優先度を 0 に設定します。var midName = 'thanh-eclipse';MID サーバーの名前var jspr = new JavascriptProbe(midName);jspr.setName('LoadJDBCDrivers');jspr.setPriority('0');jspr.addParameter('skip_sensor', 'true');jspr.setJavascript('Packages.java.sql.DriverManager.getDrivers();');jspr.create();また、MID サーバーがダウンしたときにこのスクリプトを自動的に実行するビジネスルールまたはスクリプトアクションのいずれかを作成する必要があります。そうすれば、復旧したときに、ドライバーをロードするためのメッセージが表示されます。4.MID サーバーを再起動する5.JDBC 統合を実行します 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: ; } } Kingston パッチ 10 以前 Cause<!-- /*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: ; } } JDBC 接続を行う MID Server が存在する場合、特定の条件下において、複数の JDBC Probe が同時に実行され、それぞれのドライバーをロードしようとすると、ネイティブレベルでデッドロックが発生する可能性があります。 MID Debug パラメーターを追加しました。 https://docs.servicenow.com/csh?topicname=mid-server-parameters.html&version=latest その後、次のエラーを確認できます。 10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: STANDARD threadpool queue is full! Skipping this message (will try again later). 10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: Event: GenericCounterMetricEvent 10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: Skipped message: Command /ms/dist/entmgt/PROJ/netcoolusers/prod/common/bin/nco_alert -Manager ServiceNow -Agent '${agent}' -AlertGroup '${alert_group}' -AlertKey '${alert_key}' -Severity ' ${severity}' -Summary '${summary}' 4778e490db056784056d79578c9619eb 10/05/18 12:28:35 (556) ECCQueueMonitor.5 DEBUG: Number of messages added to threadpool queue in current polling cycle: 0 エラーは次のように見ています:STANDARD thread pool queue is full! Skipping this message (will try again later).MID サーバースレッドのスタックトレースは以下のとおりです| at com.service_now.mid.connections.jdbc.JDBCConnection.establishConnection(JDBCConnection.java:97) | at com.service_now.mid.connections.jdbc.JDBCConnection.connect(JDBCConnection.java:74) | at com.service_now.mid.connections.jdbc.JDBCConnectionFactory.create(JDBCConnectionFactory.java:52) | at com.service_now.mid.connections.ConnectionCachePool.getAvailableConnection(ConnectionCachePool.java:82) | - locked <0x00000000c2626700> (a com.service_now.mid.connections.ConnectionCachePool) | at com.service_now.mid.connections.ConnectionCache.get(ConnectionCache.java:94) | at com.service_now.mid.probe.JDBCProbe.getJDBCConnection(JDBCProbe.java:710) | at com.service_now.mid.probe.JDBCProbe.probe(JDBCProbe.java:107) | at com.service_now.mid.probe.AProbe.process(AProbe.java:81) | at com.service_now.mid.queue_worker.AWorker.runWorker(AWorker.java:123) | at com.service_now.mid.queue_worker.AWorkerThread.run(AWorkerThread.java:20) | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) Resolution<!-- /*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: ; } } 0. MID Server を停止します。 1. 古い JDBC Probe レコードをすべてクリーンアップします。[ECC レコードの state を「error」に設定します] 2. Script Include をインポートします [添付ファイルに含まれています] 3. Background Scripts を使用してドライバーをロードするスクリプトを実行します。 これにより、ドライバーロードメッセージの優先度を「interactive」に設定できます。変更済みの Script Include はこのタスクに添付されています。以下のスクリプトは優先度を 0 に設定します。 var midName = 'thanh-eclipse'; // Name of the MID Servervar jspr = new JavascriptProbe(midName); jspr.setName('LoadJDBCDrivers'); jspr.setPriority('0'); jspr.addParameter('skip_sensor', 'true'); jspr.setJavascript('Packages.java.sql. DriverManager.getDrivers();'); jspr.create(); また、MID Server が停止した場合にこのスクリプトを自動的に実行するために、Business Rule または Script Action を作成する必要があります。そうすることで、MID Server が再起動した際に、ドライバーをロードするためのメッセージが存在する状態になります。 4. MID Server を再起動します。 5. JDBC Integration を実行します。