Regola della raccolta per il processo di backup

SCDPM.BackupJobCollection.Rule (Rule)

Knowledge Base article:

Regola della raccolta per i processi di backup DPM

Regola della raccolta per i processi di backup DPM

Element properties:

TargetMicrosoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer
CategoryEventCollection
EnabledTrue
Alert GenerateFalse
RemotableTrue

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedScript.EventProvider Default
BulkWA1 WriteAction DPM.Backup.DW.WA.XmlBulkInsertModule Default

Source Code:

<Rule ID="SCDPM.BackupJobCollection.Rule" Enabled="true" Target="DPM!Microsoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.EventProvider">
<IntervalSeconds>14400</IntervalSeconds>
<SyncTime/>
<ScriptName>CollectBackupJob.js</ScriptName>
<Arguments>"$Target/Property[Type="DPM!Microsoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer"]/BackupJobLastUpdateTime$"</Arguments>
<ScriptBody><Script>
var SCRIPT_NAME = "CollectBackupJob.js";
var SEVERITY_ERROR = 1;
var SEVERITY_WARNING = 2;
var SEVERITY_INFO = 4;
var EVENT_ID = 90100;
var ARGUMENT_COUNT = 1;
if (WScript.Arguments.length != ARGUMENT_COUNT) {
WScript.Quit(0);
}
var lastUpdateTimeStr = WScript.Arguments(0)
var dotpos = lastUpdateTimeStr.lastIndexOf(".");

if (dotpos != -1)
{
lastUpdateTimeStr = lastUpdateTimeStr.substring(0, dotpos);
}

lastUpdateTimeStr = lastUpdateTimeStr.replace("T", " ");
lastUpdateTimeStr = lastUpdateTimeStr.replace("-", "/");
var lastUpdateTime = new Date(lastUpdateTimeStr);
lastUpdateTime.setDate(lastUpdateTime.getDate() - 1);

function getValue(str) {
if(str==null) str=" ";
return str;
}

var momApi = new ActiveXObject("MOM.ScriptAPI");
var pBag = momApi.CreatePropertyBag();

try {

var wsh = new ActiveXObject("WScript.Shell");

var sqlServer = wsh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Microsoft Data Protection Manager\\DB\\SqlServer");
var sqlInstance = wsh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Microsoft Data Protection Manager\\DB\\InstanceName");
var dbName = wsh.RegRead("HKLM\\SOFTWARE\\Microsoft\\Microsoft Data Protection Manager\\DB\\DatabaseName");

var connString = "Data Source=" + sqlServer + "\\" + sqlInstance + ";Initial Catalog=" + dbName + ";Integrated Security=SSPI;Provider=SQLOLEDB";

var connection = new ActiveXObject("ADODB.Connection");
connection.Open(connString);

var rs = new ActiveXObject("ADODB.Recordset");
var query = "SELECT DPMServerName \
, TaskID \
, VerbID \
, ProtectionServer \
, ProtectedGroupId \
, ProtectionGroup \
, DataSourceId \
, DataSourceName \
, StartedDateTime \
, StoppedDateTime \
, ExecutionState \
, ErrorCode \
, ErrorString \
, 'Other' As ErrorCategoryString \
, TransferredBytes \
, BackupType \
, IsDPM \
, IsAdhoc \
FROM vw_RPT_BackupJobs WHERE StartedDateTime &gt; '" + lastUpdateTime.getFullYear() + "-" + (lastUpdateTime.getMonth() + 1) + "-" + lastUpdateTime.getDate() + "'" + " ORDER BY StartedDateTime DESC";
rs.Open(query, connection);

rs.MoveFirst;
/* columns[] array stores the name of columns which will be present in views */
/* THIS REPRESENTATION MAKES THE TASK OF CHANGING COLUMNS NAME EASY */

var columns = ["DPMServerName"
,"TaskID"
,"VerbID"
,"ProtectionServer"
,"ProtectedGroupId"
,"ProtectionGroup"
,"DataSourceId"
,"DataSourceName"
,"StartedDateTime"
,"StoppedDateTime"
,"ExecutionState"
,"ErrorCode"
,"ErrorString"
,"ErrorCategoryString"
,"TransferredBytes"
,"BackupType"
,"IsDPM"
,"IsAdhoc"] ;

var noOfColumns = columns.length;

while(!rs.eof)
{
pBag = null;
var pBag = momApi.CreatePropertyBag();

for(i=0;i&lt;noOfColumns;i++)
pBag.AddValue(columns[i],getValue(rs.fields(i).Value));



momApi.AddItem(pBag);

rs.movenext;
}
rs.close;
connection.close;
}
catch (e) {
momApi.LogScriptEvent(SCRIPT_NAME, EVENT_ID, SEVERITY_ERROR, e.Message);
}
finally {
momApi.ReturnItems();
}
</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
<EventOriginId>$MPElement$</EventOriginId>
<PublisherId>$MPElement$</PublisherId>
<PublisherName>CustomScript</PublisherName>
<Channel>CustomScript</Channel>
<LoggingComputer>$Target/Property[Type="DPM!Microsoft.SystemCenter.DataProtectionManager.2011.Library.DPMServer"]/DPMServerName$</LoggingComputer>
<EventNumber>555</EventNumber>
<EventCategory>0</EventCategory>
<EventLevel>4</EventLevel>
<UserName/>
<Params/>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="BulkWA1" TypeID="DPM.Backup.DW.WA.XmlBulkInsertModule" Target="MSDL!Microsoft.SystemCenter.DataWarehouseConnectorServer">
<spname>SCDPM.BackupJobInsert</spname>
</WriteAction>
</WriteActions>
</Rule>