過去2日間から、SQL Serverのエラーログで以下を確認できます。
AppDomain 2 (mssqlsystemresource.dbo[runtime].1) unloaded.
&
AppDomain 2 (mssqlsystemresource.dbo[runtime].1) is marked for unload due to memory pressure.
私はこのようなシステム環境を持っています:
OS- microosft windows server 2012 R2 Standard
processors - Intel(R) Xeon(R) CPU E5-2670 0 @2.60 GHz
Installed Memory (RAM) - 8GB
Hardware Information - VMWare, Inc. VMware Virtual Platform
SQL Server - Microsoft SQL Server Enterprise (64-bit)
昨日のイベントログをローカルサーバーでチェックアウトしました。これらのイベントを見つけました
Server Name ID Severity Source Log Date and Time
ABC 1008 Error Microsoft-Windows-Perflib Application 10/01/2015 2:21
ABC 2 Error TeamCentral Application 9/30/2015 4:20:41 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 4:20:41 PM
ABC 10016 Error Microsoft-Windows-DistributedCOM System 9/30/2015 4:06:23 PM
ABC 10016 Error Microsoft-Windows-DistributedCOM System 9/30/2015 4:00:04 PM
ABC 10016 Error Microsoft-Windows-DistributedCOM System 9/30/2015 4:00:02 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:55:13 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:55:13 PM
ABC 10016 Error Microsoft-Windows-DistributedCOM System 9/30/2015 3:40:06 PM
ABC 10016 Error Microsoft-Windows-DistributedCOM System 9/30/2015 3:40:03 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:23:54 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:23:54 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:22:48 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:22:48 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:21:43 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:21:43 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:18:24 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:18:24 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:16:49 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:16:49 PM
ABC 1309 Warning ASP.NET 4.0.30319.0 Application 9/30/2015 3:15:43 PM
ABC 2 Error TeamCentral Application 9/30/2015 3:15:43 PM
ABC 1010 Error Microsoft-Windows-Perflib Application 9/30/2015 10:42:00 AM
そしてイベントでは私はそのようなタイプのメッセージを得ています:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 9/30/2015 4:20:41 PM
Event time (UTC): 9/30/2015 1:20:41 PM
Event ID: 72c24cb89beb4d7f80bec250aaa686e3
Event sequence: 757
Event occurrence: 17
Event detail code: 0
Application information:
Application domain: /XX/XXXX/1/ROOT/TeamCentral-2-130850431401577570
Trust level: Full
Application Virtual Path: /TeamCentral
Application Path: C:\XXXX\wwwroot\TeamCentral\
Machine name: ABC
Process information:
Process ID: 2180
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: HttpException
Exception message: The remote Host closed the connection. The error code is 0x800704CD.
at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
at System.Web.HttpResponse.Flush(Boolean finalFlush, Boolean async)
at System.Web.HttpWriter.WriteFromStream(Byte[] data, Int32 offset, Int32 size)
at DevExpress.Web.ASPxClasses.Internal.HttpUtils.WriteFileToResponse(Page page, MemoryStream stream, String fileName, Boolean saveAsFile, String fileFormat, String contentType)
at DevExpress.Web.ASPxClasses.Internal.HttpUtils.WriteFileToResponse(Page page, MemoryStream stream, String fileName, Boolean saveAsFile, String fileFormat)
at DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter.WriteToResponse(String fileName, Boolean saveAsFile, String fileFormat, ExportToStream getStream, ExportOptionsBase options)
at DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter.WriteXlsxToResponse(String fileName, Boolean saveAsFile)
at DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter.WriteXlsxToResponse(String fileName)
at InfoArch.Web.Grid.ExportHelper.Response(ExportFileType fileType, Grid structure)
at InfoArch.Web.Grid.GridManager.SaveToXlsx(String filename)
at System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e)
at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Request information:
Request URL: http://ABC/TeamCentral/Reporting/GridView.aspx?layoutid=38&mf=report&where=&description=PZF6Q0PKJzWQDHkN08mydZNuJ3fZ(:#cd6TgCAL0hv4u4=&screenheight=618
Request path: /TeamCentral/Reporting/GridView.aspx
User Host address:XXX.XXX.XX.XXX
User: rafeek
Is authenticated: True
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 190
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: False
Stack trace: at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
at System.Web.HttpResponse.Flush(Boolean finalFlush, Boolean async)
at System.Web.HttpWriter.WriteFromStream(Byte[] data, Int32 offset, Int32 size)
at DevExpress.Web.ASPxClasses.Internal.HttpUtils.WriteFileToResponse(Page page, MemoryStream stream, String fileName, Boolean saveAsFile, String fileFormat, String contentType)
at DevExpress.Web.ASPxClasses.Internal.HttpUtils.WriteFileToResponse(Page page, MemoryStream stream, String fileName, Boolean saveAsFile, String fileFormat)
at DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter.WriteToResponse(String fileName, Boolean saveAsFile, String fileFormat, ExportToStream getStream, ExportOptionsBase options)
at DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter.WriteXlsxToResponse(String fileName, Boolean saveAsFile)
at DevExpress.Web.ASPxGridView.Export.ASPxGridViewExporter.WriteXlsxToResponse(String fileName)
at InfoArch.Web.Grid.ExportHelper.Response(ExportFileType fileType, Grid structure)
at InfoArch.Web.Grid.GridManager.SaveToXlsx(String filename)
at System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e)
at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Custom event details:
質問をする前にStackexchangeを調べましたが、ref アプリドメインはメモリ不足のためにアンロード用にマークされています ですが、いくつかの観点から、イベントログメッセージを理解できません。
select @@version
の出力;
Microsoft SQL Server 2012(SP1)-11.0.3000.0(X64)2012年10月19日13:38:57 Copyright(c)Microsoft Corporation Enterprise Edition(64-bit)on Windows NT 6.2(Build 9200:)(Hypervisor)
およびexec sp_configure
の出力;
Name minimum maximum config_value run_value
max server memory (MB) 128 2147483647 2147483647 2147483647
任意の提案をいただければ幸いです。
@Shankyの回答で述べられていることを何も割り引かずに、アンロードされる特定のAppDomainが[mssqlsystemresource]
データベースにあることに注意してください。これは、組み込みのSQL Server機能を格納する内部データベースです。その他の組み込み機能は[master]
データベースにあります。 "CLR有効"のサーバーレベルの構成オプションがオフになっていても、次のいずれかを使用すると、これらのAppDomainの一方または両方が読み込まれていることを確認できます(これに含まれないCLRの他の内部使用がある可能性があります)リスト):
以下を実行します。
SELECT * FROM sys.dm_clr_appdomains;
SELECT * FROM sys.dm_clr_loaded_assemblies;
行が返されない場合は、次を実行します。
SELECT FORMAT(GETDATE(), 'dd');
SELECT * FROM sys.dm_clr_appdomains;
SELECT * FROM sys.dm_clr_loaded_assemblies;
これで、「master.sys [runtime] .xx」(xx
はいくつかの数字です)のエントリが表示されますが、読み込まれたアセンブリはまだありません。今実行します:
DECLARE @Test [HierarchyID];
SET @Test = '/1/';
SELECT * FROM sys.dm_clr_appdomains;
SELECT * FROM sys.dm_clr_loaded_assemblies;
また、読み込まれたアセンブリも表示されます。これはAssembly_id 1である必要があり、すべてのデータベースで同じエントリです:Microsoft.SqlServer.Types
。このアセンブリは、SELECT * FROM sys.assemblies;
を実行するとすべてのデータベースに表示されますが、[master]
にのみ存在します。
まず、SQL Server 2012にSP1のパッチを適用します。できるだけ早く、SQL Serverに SQL Server 2012 SP2 をパッチしてください。
SQl Server 2012 Sp2には、メモリに関連するいくつかの顕著な修正がありました。 OOMエラー修正を文書化したKB記事 のいずれかをお読みください。よく見ると、修正も対象です
メモリ不足のため、AppDomain 3181()はアンロード用にマークされています。 AppDomain 3181()がアンロードされました。エラー:9602、重大度:16、状態:1。
詳細な分析が必要なため、上記のバグに遭遇する可能性があることを確実に言っているわけではありません。
2回だけです。過去2日間の最初のステートメントですでに書いています。このエラーが発生します。
2日以内にこのメッセージtwice
のみが表示されることを確認したので、これはそれほど心配する必要はないと思います。 Sometimes such messages are benign when CLR is loaded and unloaded
。これはmessage is frequent
。この場合、さらに分析が必要になります。
アプリドメインのメッセージは、VASの制限のため、32ビットシステムでは実際に問題でした。 64ビットシステムのアプリドメインのアンロードされたメッセージの主な原因は、corrupt .net framework
またはincorrectly set max server memory value
。しかし、SQL Server 2008 r2まではそれが真実でした。 CLRのメモリは2012年以降、設定した最大サーバーメモリから割り当てられるため、これはそれほど問題にはなりません。したがって、.Netフレームワークに関連するメッセージも確認することをお勧めします。 .netトラブルシューティングの進め方はあまり経験がありません。
Do you use SQLCLR objects ?
。 SQLCLRを使用するとログに記録されるさまざまなエラーメッセージ を参照してください。 SQL Serverのエラーログにそのようなメッセージが多数表示された場合の対処方法について、 Bob by Bob Dorr があります。
と
ABC 1008エラーMicrosoft-Windows-Perflibアプリケーション10/01/2015 2:21 ABC 2エラーTeamCentralアプリケーション9/30/2015 4:20:41 PM。
私はこれが.Netフレームワークに関連していると思います。