Users Guide

else {
echo 'TransferConfiguration:' $TransferJobRequestObject.TransferConfiguration;
echo 'StorageConfiguration:' $TransferJobRequestObject.StorageConfiguration;
}
echo 'LatestEpochSeenByCore:' $LatestEpochSeenByCore;
break;
}
}
PostNightlyJobScript.ps1
O PostNightlyJobScript é executado após cada trabalho noturno no Core. Ele contém o parâmetro $JobClassName, que ajuda a lidar com
os trabalhos subordinados separadamente.
Amostra de PostNightlyJobScript
# receiving parameters from Nightlyjob
param([System.String]$JobClassMethod , [object]$NightlyAttachabilityJobRequest, [object]
$RollupJobRequest, [object]$Agents, [object]$ChecksumCheckJobRequest, [object]
$TransferJobRequest, [int]$LatestEpochSeenByCore, [object]$TakeSnapshotResponse)
# building path to Core's Common.Contracts.dll and loading this assembly
$regLM = [Microsoft.Win32.Registry]::LocalMachine
$regLM = $regLM.OpenSubKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\AppRecovery
Core 5')
$regVal = $regLM.GetValue('InstallLocation')
$regVal = $regVal + 'CoreService\Common.Contracts.dll'
[System.Reflection.Assembly]::LoadFrom($regVal) | out-null
$regVal2 = $regLM.GetValue('InstallLocation')
$regVal2= $regVal2 + 'CoreService\Core.Contracts.dll'
[System.Reflection.Assembly]::LoadFrom($regVal2) | out-null
# Nightlyjob has four child jobs: NightlyAttachability Job, Rollup Job, Checksum Check Job
and Log Truncation Job. All of them are triggering the script, and $JobClassMethod (contain
job name that calls the script) helps to handle those child jobs separately
switch ($JobClassMethod) {
# working with NightlyAttachability Job
NightlyAttachabilityJob {
$NightlyAttachabilityJobRequestObject = $NightlyAttachabilityJobRequest -as
[Replay.Core.Contracts.Sql.NightlyAttachabilityJobRequest];
echo 'Nightly Attachability job results:';
if($NightlyAttachabilityJobRequestObject -eq $null) {
echo 'NightlyAttachabilityJobRequestObject parameter is null';
}
else {
echo 'AgentIds:' $NightlyAttachabilityJobRequestObject.AgentIds;
echo 'IsNightlyJob:' $NightlyAttachabilityJobRequestObject.IsNightlyJob;
}
break;
}
# working with Rollup Job
RollupJob {
$RollupJobRequestObject = $RollupJobRequest -as
[Replay.Core.Contracts.Rollup.RollupJobRequest];
echo 'Rollup job results:';
if($RollupJobRequestObject -eq $null) {
echo 'RollupJobRequestObject parameter is null';
}
else {
echo 'AgentIds:' $RollupJobRequestObject.AgentIds;
echo 'IsNightlyJob:' $RollupJobRequestObject.IsNightlyJob;
}
$AgentsCollection = $Agents -as "System.Collections.Generic.List``1[System.Guid]"
if($AgentsCollection -eq $null) {
echo 'AgentsCollection parameter is null';
}
else {
echo 'Agents GUIDs:'
foreach ($a in $AgentsCollection) {
echo $a
Prolongamento dos trabalhos do Rapid Recovery usando scripts
457