Configuring Beyond Compare

Beyond Compare is a tool developed by Scooter Software that allows you to compare the contents of files and folders. Deltanji can collaborate with Beyond Compare, enabling you to diff the contents of two object versions. For more information, see the article on Comparing Two Object Versions.

Preparing to Use Beyond Compare

Installing the Client

If you do not already have a Beyond Compare installed on your system, visit to download the installer.

Each Deltanji license you purchase comes bundled with a license for a copy of Beyond Compare. If you do not have a license, or you are using the 30-day evaluation version of Deltanji, you can use Beyond Compare for a trial period of 30 days.

Starting the service for the first time

Deltanji collaborates with Beyond Compare by sending it files by FTP or FTPS. To start the Deltanji ftp(s) server, open a Caché/M terminal, change to the Deltanji namespace and run the following command: d ^%vc830. When prompted, choose a port it will listen on. The default is 21 (the standard FTP port), but if the server hosting Deltanji is running another FTP service you will have to choose a different port. In addition, on AIX servers a security restriction typically prevents the Deltanji ftp(s) server from listening on any port number lower than 1024. Choose a higher one, such as 2121 or 8021.

Starting the service automatically on Caché or Ensemble restart

On Caché or Ensemble if the %SYS namespace contains a routine called %ZSTART with a subroutine called SYSTEM, that code will be run on startup. Here is an example %ZSTART routine that will start Deltanji's Beyond Compare server:

 n $et,$es
 s $et="i '$es d $zu(9,"""",""SYSTEM^%ZSTART error: ""_$ze) s $ec="""""
 j StartUp^%vc830|"DELTANJI"|

The code above assumes Deltanji was installed in a namespace called DELTANJI. It is deliberately written using commands that are available on all versions of Caché and Ensemble that Deltanji is supported on. Any startup error is written to cconsole.log. The example code can be copied and pasted into an editor window.

If your server already has a %ZSTART routine (either a MAC or an INT) that was created for other purposes, add extra code to launch StartUp^%vc830 in Deltanji's namespace. Take care not to affect other things your %ZSTART does.

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
NotifyBecomePrimary() PUBLIC {
 #;This procedure is called as a notification when this system becomes Primary.
 #;It does not return any value.
 #;Start the Deltanji diff server on the primary system.
 try {
  j StartUp^%vc830|"DELTANJI"|
 catch e {
  d ##class(%SYS.System).WriteToConsoleLog("NotifyBecomePrimary^ZMIRROR error: "_e.AsSystemError(),,1)

Security Settings

Integrating Beyond Compare with InterSystems Security

By default on a newly installed Deltanji site, when a Beyond Compare user connects to the Deltanji server their password is checked against the password hash stored on their Deltanji user record. Where the Deltanji web UI has been configured to use InterSystems security, credentials provided by Beyond Compare can instead be validated using that mechanism, as follows.

Open a Caché/Ensemble Terminal, change to namespace where Deltanji is installed and enter the following:

s ^%vcvc("authenticateInCache")=1

Note: If the Deltanji service is started manually (see above) when Beyond Compare is integrated with InterSystems security, the user that starts the service will need to have the %Service_Login:Use right. However, if the Deltanji FTP server is started from %ZSTART, this shouldn't be an issue because it is typically run as the %System pseudo-user.

Securing Beyond Compare traffic with FTPS

Regular FTP passes credentials across the network in plaintext. To avoid this, consider using FTPS.

Note: FTPS requires Caché or Ensemble, together with Beyond Compare Professional Edition version 3 or later which is normally bundled with Deltanji editions apart from Solo.

1. In Caché/Ensemble System Manager Portal [Home] > [Security Management] > [SSL/TLS Configurations], define a configuration named "VC/m:ftps".

2. Set its Type to "Server". Provide an X.509 certificate file and a private key file for the server. Make sure the TLSv1 protocol is enabled.

Note: See Caché documentation for more information about SSL/TLS Configurations.

3. Test the connection by connecting from Beyond Compare using ftps:// address instead of ftp:// one.

4. Optional: To disable unencrypted FTP support in the Beyond Compare server, open a Caché/Ensemble terminal and enter the following:

s ^%vcvc("ftpServer","requireSecure")=1

Note: Unless you are using HTTPS to secure the Deltanji browser interface, or are using Windows Integrated Authentication instead of InterSystems security or Deltanji native authentication, protecting the Beyond Compare login credentials using FTPS is of limited benefit because your credentials are likely to travel as plaintext when authenticating to Deltanji in the web browser.

See Also: Comparing Two Object Versions, Beyond Compare Tips and Tricks