Configuring Non-Interactive Installation
In non-interactive mode, the install function runs silently. Installation messages are logged in the audit trail as normal. Any errors which relate to the install process itself, e.g. configuration and set-up errors, are logged in the audit trail under a pseudo-object called vcm$install/1 which can be viewed within the top-level Objects folder.
The install process uses the user name of the current user. If the code is to be
run from a background process (see below), discover the Deltanji userid that will
be used (which the process determines by calling $$getuser^%vc
) and set up a Deltanji user account with appropriate access rights.
Batch Mode
The following call is used to run the install process non-interactively and load the first fileset:
do ^%vc490("XFER",installLocation,liveLocation,backupLocation,1,0,1)
The above code can be called from a scheduled background job.
If the hot backup feature of Deltanji Deploy is not being used, pass backupLocation as "".
Install Daemon
To start a Deltanji install daemon, run the following in the DELTANJI namespace on the Deltanji Deploy machine:
job ^%vc490("XFER",installLocation,liveLocation,backupLocation,1,0,2)
By default the daemon checks for work every 60 seconds. This can be adjusted systemwide
by setting a global node. For example, to check every 5 minutes (300 seconds): set ^%vcvc("installInterval")=300
and then restart the daemon(s) to make the new setting effective.
On Caché and similar platforms you can use suitable code in the %ZSTART routine in the %SYS namespace to launch one or more install daemons during startup. For example, to launch two daemons, one installing into LiveA and the other into LiveB:
%ZSTART ;
q
SYSTEM ;
n $et,$es
s $et="i '$es d $zu(9,"""",""SYSTEM^%ZSTART error: ""_$ze) s $ec="""""
j ^%vc490("XFER","Inbox","LiveA","Backup",1,0,2)|"DELTANJI"|
j ^%vc490("XFER","Inbox","LiveB","Backup",1,0,2)|"DELTANJI"|
q
If you are using InterSystems mirroring it is preferable to place code in the ZMIRROR routine in %SYS instead of using %ZSTART, so that the startup only happens on the primary mirror member and only when the databases are ready. The example below is suitable only if your servers do not already have a ZMIRROR routine (MAC or INT). Where the routine exists, incorporate the relevant parts into it:
ZMIRROR ; Custom logic for specific mirroring events
q
;
NotifyBecomePrimary() PUBLIC {
#;This procedure is called as a notification when this system becomes Primary.
#;It does not return any value.
#;Start the Deltanji Deploy daemons on the primary system.
try {
j ^%vc490("XFER","Inbox","LiveA","Backup",1,0,2)|"DELTANJI"|
j ^%vc490("XFER","Inbox","LiveB","Backup",1,0,2)|"DELTANJI"|
}
catch e {
d ##class(%SYS.System).WriteToConsoleLog("NotifyBecomePrimary^ZMIRROR error: "_e.AsSystemError(),,1)
}
q
}
To signal all install daemons to stop:
do stop^%vc490