コード 429 の「Too Many Requests」MID Server エラーIssue MID Server がインスタンスと通信するときに、コード 429 の「Too Many Requests」エラーが返されます。 Symptoms MID Server ログに次のエラーが表示されます。 ECCQueueMonitor.5 WARNING *** WARNING *** Method failed: (https://<instance-name>.service-now.com/ecc_queue.do?SOAP&displayvalue=all&redirectSupported=true)HTTP/1.1 429 Too Many Requests with code: 429 ECCQueueMonitor.5 SEVERE *** ERROR *** getRecords failed (Method failed: (https://<instance-name>.service-now.com/ecc Release サポート対象のすべてのリリース Cause API_INT は、MID Server がインスタンスと通信するときに使用するセマフォの 1 つです。API_INT セマフォが枯渇し、キュー深度が最大キュー深度に達すると、インスタンスは通信を試みるすべての MID Server クライアントにコード 429 の「Too Many Requests」エラーを返します。使用可能なセマフォがないため、インスタンスは MID Server からの入力やハートビートを受信できません。 Resolution 解決策は、セマフォを占有し続けているものによって異なります。 API_INT セマフォが枯渇しているかどうかを確認するには: ブラウザーウィンドウで、.service-now.com/stats.do に移動します。API_INT を検索します。使用可能なセマフォがなく、キュー深度が最大キュー深度と等しいことを確認します。 枯渇した API_INT は、次の例のようになります。 API_INT Available semaphores: Queue depth: 50 Max queue depth: 50 0:<sys_id> #<transaction_number> /api/now/table/sys_audit (API_INT-thread-2) (2:05:30.388) 1:<sys_id> #<transaction_number> /api/now/table/sys_audit (API_INT-thread-4) (1:57:30.087) 2:<sys_id> #<transaction_number> /api/now/table/sys_audit (API_INT-thread-1) (1:55:29.678) 3:<sys_id> #<transaction_number> /api/now/table/sys_audit (API_INT-thread-3) (1:28:03.004) この例では、sys_audit テーブルに対する長時間実行クエリが、使用可能なすべての API_INT セマフォを使用しています。長時間実行クエリの対象は、別のテーブルである場合もあります。 即時に問題を緩和するには: ユーザー管理 > すべてのアクティブなトランザクションに移動します。セマフォを占有し続けている長時間実行トランザクションを特定します。トランザクションを終了しても問題が発生しないことを、そのトランザクションの担当チームに確認します。トランザクションを終了して、セマフォを解放します。 長期的に問題を緩和するには: 長時間実行トランザクションの担当チームに連絡し、そのチームと協力してトランザクションを改善します。