「統合セマフォ (SOAP/API_INT) が <インスタンス> で使い果たされました」のアラート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: ; } } 内部モニタリングにより、調査中のインスタンスの問題が検出されたことを示すこの通知を受け取ります。これは、キューの使用状況に関する単なる警告です。 「Integration Semaphore (SOAP/API_INT) Exhausted on 'instance'」という件名のアラートが表示されることがあります。 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: ; } } 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: ; } } インスタンスには複数のアプリケーションノードがあります。デフォルト設定では、各アプリケーションノードは最大 50 個のセマフォを持ち、一度に 4 個のアクティブなスレッドがあります。トランザクションが速すぎたり、時間がかかりすぎたりすると、キューに入れられる可能性があります。キューが最大設定値に達すると、そのキュー上の新しいトランザクションは拒否されます。 たとえば、1 ノードあたり、4 つのスレッドと 50 のキューがある場合、トランザクションに 10 秒かかるとすると、アプリケーションノードはキュー上で 10 秒ごとに 4 つのトランザクションを並列処理することができます。また、5 番目のトランザクションが開始されるまで最大 10 秒待機することも意味します。一度に 100 件のトランザクションが来ると、46 件 (50 - 4 件) がキューに入り、残りは拒否されます。 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: ; } } 長い Web サービス呼び出しや短期間の呼び出しが多すぎることでノードが過負荷にならないようにします。 次のアクションを実行します。 アクティブなノードを確認します。 各ノードについて、API_INT キューを検証します。たとえば、セマフォの一覧を次に示します。 AMB API_INT Debug Default Presence-------------- --- ------- ----- ------- --------node________01 0/4 1/4 0/4 2/16 0/8node________02 0/4 0/4 0/4 3/16 0/8 この例では、 問題はもう発生していません。 問題が引き続き発生する場合は、 4/4 と表示されます。 各ノードの stats.do を確認します。 各ノードで stats.do を確認し、API_INT に設定されたセマフォを検索します。利用可能な情報は次のように表示されます。 node________01 - Available semaphores: 4 - Queue depth: 4 - Max queue depth: 50node________02 - Available semaphores: 4 - Queue depth: 4 - Max queue depth: 50 この例では、キューは正常に見えます。最大セットの 4 に達していないため、一部のクエリがキューに入れられていることに注意してください。ただし、「最大キュー深度:50」の存在は、キューが最大に達したことを示します。 問題が引き続き発生する場合は、使用可能なセマフォが 0 になっていることがわかります。その場合は、セマフォキューのスレッドスタックトレースリンクを確認して、詳細情報を確認してください。 問題の原因を見つけるには、トランザクションログを確認します。 問題の根本原因を見つけるには、問題が発生した時点のトランザクションログを確認します。 長いトランザクションまたは短期間で大量のトランザクションを探します。 次のリンクで確認できます。 <instance>/syslog_transaction_list.do?sysparm_filter_only=true&sysparm_query=sys_created_onONToday@javascript:gs.daysAgoStart(0)@javascript:gs.daysAgoEnd(0)%5EGROUPBYsys_created_by&sysparm_first_row=1&sysparm_view= アラートの結果と一致するように検索例を変更します。たとえば、キューを中断したイベントのタイミングを変更します。 結果を「作成者」でグループ化し、より多くの呼び出しがあるユーザーを見つけて、問題に関連している可能性のあるトランザクションを検証してみます。 最後に、利用可能な情報の全体像を分析します。 最も一般的なソリューションは次のとおりです。 クライアント Web サービスアプリケーションの呼び出しが多すぎる場合は、スループットを下げてみます。呼び出しに時間がかかりすぎる場合は、長い処理を非同期にすることで Web サービスの実行を高速化します。呼び出しが多すぎる場合は、それらをグループ化してデータソースで処理するか、Web サービスへの複数の更新呼び出しを行います。ユーザーがシステムを悪用している場合は、そのユーザーを active = false にして連絡します。クライアントの Web サービスによるトランザクションの再試行の頻度が高すぎたり、多すぎたりしていないか (たとえば、応答が拒否されたなど) を確認します。クライアントアプリケーションがインスタンス上でフルクロール (たとえば、Web サービスアプリケーションのミラーリングやインデックス作成など) を実行しているかどうかを確認し、並列クエリが少ないオフピーク時に時間を計ります。