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