KB4540107 - 修正: SQL Server 2016、2017、および 2019 でセッション数が上限に達すると、システムまたはバックグラウンド タスクが失敗することがある

適用先
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows

現象

ユーザー接続とシステムまたはバックグラウンド タスクの両方で使用されるセッションの数が、Microsoft SQL Server 2016 または 2019 で上限 (ユーザー接続のサーバー構成オプションに応じて 32,767 以下) に達すると、必要なシステム タスクまたはバックグラウンド タスクは実行されません。 さらに、エラー 17300 がエラー ログに記録される場合があります。 SQL Server が期待どおりに実行し続けるためにこのタスクが必要な場合 (XE Dispatcher タスクなど)、SQL Server がシャットダウンすることがあります。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

解決策

この問題は、次の SQL Server の累積的な更新プログラムで修正されています。

SQL Server の累積的な更新プログラムについて:

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。

追加情報

SQL Server では、1 から 32,767 の一意の識別子を持つセッション内で、ユーザー接続またはシステム タスクが実行されている必要があります。 最初の 50 のセッションはシステム タスク用に予約されており、残りのセッションはユーザー接続とシステム タスクの間で共有される場合があります。 実際のシステム タスクの数は、可用性グループの使用、Full-Text 検索の実行など、サーバーやデータベースの構成によって異なります。 十分なユーザー接続が作成されているために、それ以上のシステム タスクのための領域が残っていない場合、追加のシステム タスクを作成しようとすると失敗する可能性があります。 管理者がサーバー構成を通じてユーザーの最大接続数を減らしても、50 個のシステム タスクのためのスペースのみが保証されます。

この修正プログラムにより、保証されるシステム タスクの数が 500 以上に増加します。 つまり、構成されたユーザー接続数が既定または 32,267 を超えている場合、500 個のシステム タスクを実行できることを保証するために、実際のユーザー接続数は 32,267 に制限されます。 ユーザーがユーザー接続数を 32,267 未満に設定した場合、32,767 までの残りの領域はすべてシステム タスクに使用できます (この修正プログラムを適用する前は 50 個のシステム タスクとは対照的に)。

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。