SQL認証(接続プールの数を減らすため)と.NET 4.0接続文字列を使用して、Windows 2008 R2 Enterprise Server上のSQL Server Enterprise Edition 2012 SP1に接続しています。
Microsoft SQL Server 2012(SP1)-11.0.3000.0(X64)
2012年10月19日13:38:57
Copyright(c)Microsoft Corporation
Enterprise Edition(64ビット)on Windows NT 6.1(Build 7601:Service Pack 1)
Webサイトの異なる部分にある8つの異なるグループに分割された約50台のサーバーを使用します。
当社のWebサイトでは、このSQL Serverを使用して訪問追跡データを記録しています。過去数日間にわたって、接続プールのリセットに関する次のメッセージが吐き出されました。
クライアントは、接続プーリング用にリセットされたSPID 1327のセッションを再利用できませんでした。失敗IDは46です。このエラーは、以前の操作が失敗したことが原因である可能性があります。このエラーメッセージの直前に、失敗した操作のエラーログを確認します。
エラーログの読み取り:
エラー:18056、重大度:20、状態:46
。クライアントは、接続プーリング用にリセットされたSPID 959のセッションを再利用できませんでした。失敗IDは46です。このエラーは、以前の操作が失敗したことが原因である可能性があります。このエラーメッセージの直前に、失敗した操作のエラーログを確認します。
ユーザー 'xxxx'のログインに失敗しました。理由:接続でのログインの再検証中に、ログインオブジェクトで構成されたデータベース 'xxxxxxxx'を開くことができませんでした。[クライアント:10.xx.xx.xxx]
:いくつかの掘削後、私はCSSのブログにこの文書を発見したエラー18056 -クライアントが接続プーリングのためにリセットされたSPIDとのセッション##、再利用することができませんでした:それはしくみとアーロン・ベルトランこの1:トラブルシューティングエラー18456を。私はエラー番号が異なることを知っていますが、障害IDは同じであり、メッセージの数は同じです)。
失敗ID 46は、ログインに権限がなかったことを示しています。ログインはデフォルトでmasterデータベースになり、db名は接続文字列で指定されます。
接続文字列プールなどの数を確認したいと思い、Perfmonのすべてのカウンターを確認しました.Net Data Provider for SqlServer
。defaultdomain9675
インスタンスのオプションしか提供されなかったため、Datacentreネットワークのシステム生成ID名を想定しています。残念ながら、すべてのカウンターはゼロを読み取っています。他のメインサーバーの1つでは、接続プールは約10をホバリングしています。
私の質問は3倍です
Windows 2008 R2 Serverが表示されない理由を誰でも提案できます
.Net Data Provider for SqlServer
か?私が明らかに権限を持たないログインは赤いニシンであると信じているので、誰もこれを経験しましたか?
Webサーバーの異なるグループが同じ接続文字列構文を使用しているが、空白がわずかに異なる場合、サーバーは別の接続プールを使用しますか?
最小および最大メモリ設定は、それぞれ20GBおよび58GBです。サーバーは、64GBのRAMを備えた専用のデータベースサーバーです。ボックスには十分なページ期待があるように見えるので、メモリが問題だとは思わない。自動クローズは有効になっていません。サーバーは常に稼働しています。これは、使用率の高い24時間365日のWebサイトです。