In this article I am trying to explain object disposal in Power Shell. Most of us are aware of object disposal in SharePoint object model. In scenarios in which we use SharePoint objects extensively-for example, in SharePoint sites that use custom Web Parts or event handler etc.it can cause the following unusual behaviors if we are not disposing of SharePoint objects once we finished with the operation. The following are the main causes if you don't dispose SharePoint objects properly in custom coding.
-
Frequent recycles of the Windows SharePoint Services application pool,
especially during peak usage
-
Application crashes that appear as heap corruption in the debugger
-
High memory use for Microsoft Internet Information Services (IIS) worker
processes
- Poor system and application performance
We have two methods for disposal practice
-
Explicitly dispose every object you create
- Use SpAssignmentGlo
Please find one example for explicit dispose
$template = Get-SPWebTemplate "STS#0"
New-SPSite -Url "your Site collection URL" -OwnerAlias "domain\user" -Template $template
$template.dispose()
SpAssignment
Any objects defined between the Start-SPAssignment –Global and Stop-SPAssignment –Global commands will be automatically disposed of by PowerShell.You don't have to explicitly dispose each object you created
Start-SPAssignment –Global
$template = Get-SPWebTemplate "STS#0"
New-SPSite -Url "your Site collection URL" -OwnerAlias "domain\user" -Template $template
Stop-SPAssignment –Global
Reference:
http://www.c-sharpcorner.com/uploadfile/Roji.Joy/object-disposal-in-power-shell-scripting-for-sharepoint-2010/
No comments:
Post a Comment