お世話になっております。
現在、外部のスケジューラを使用して夜間にバッチ処理のPowershellを実行しているのですが
あるときから以下のようなOutOfMemoryExceptionが発生するようになりました。
[Error] System.OutOfMemoryException: 種類 'System.OutOfMemoryException' の例外がスローされました。
場所 System.Collections.Hashtable..ctor(Int32 capacity, Single loadFactor)
場所 Microsoft.PowerShell.Commands.Internal.Format.MshExpression.ResolveNames(PSObject target, Boolean expand)
場所 Microsoft.PowerShell.Commands.Internal.Format.MshExpression.GetValues(PSObject target, Boolean expand, Boolean eatExceptions)
場所 Microsoft.PowerShell.Commands.OrderByPropertyEntryEvaluationHelper.EvaluateSortingExpression(MshParameter p, PSObject inputObject, List
1 orderValues, List1 errors, String& propertyNotFoundMsg)場所 Microsoft.PowerShell.Commands.OrderByPropertyEntryEvaluationHelper.ProcessObject(PSObject inputObject, List
1 mshParameterList, List1 errors, List`1 propertyNotFoundMsgs, Boolean isCaseSensitive, CultureInfo cultureInfo)場所 Microsoft.PowerShell.Commands.OrderByProperty.CreateOrderMatrix(PSCmdlet cmdlet, List
1 inputObjects, List1 mshParameterList)場所 Microsoft.PowerShell.Commands.OrderByProperty..ctor(PSCmdlet cmdlet, List`1 inputObjects, Object[] expr, Boolean ascending, CultureInfo cultureInfo, Boolean caseSensitive)
場所 Microsoft.PowerShell.Commands.SortObjectCommand.EndProcessing()
場所 System.Management.Automation.Cmdlet.DoEndProcessing()
場所 System.Management.Automation.CommandProcessorBase.Complete()
バッチ処理で使用しているインプットファイルのサイズは日々増加していますが、エラーが発生するようになった前後で
大きな変化はありませんでした。
また、バッチ処理中にもメモリには数GBの余裕があります。
バッチ処理のスクリプトを手動で実行すると、エラーが発生せずに正常に終了するため
スケジューラで実行する場合に何かしらメモリ使用量に制限がかかっているのではないかと考えています。
Powershellが使用するメモリの設定値は以下のようになっていました
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Shell
Type Name SourceOfValue Value
---- ---- ------------- -----
System.String MaxMemoryPerShellMB 2147483647
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\microsoft.powershell\Quotas
Type Name SourceOfValue Value
---- ---- ------------- -----
System.String MaxMemoryPerShellMB 2147483647
上記を踏まえて
①手動実行とスケジューラ実行でPowershellが使用可能なメモリに差はあるのか
②MaxMemoryPerShellMBのValue 2147483647は設定値として有効(実質無制限)なのか
についてご教示いただけますでしょうか。
マイクロソフト コミュニティは一般ユーザー向けのフォーラムなので Technet フォーラム が適当かと
Microsoft フォーラム を参照
移動した場合は移動した旨とそのスレッドのリンクをレス願います