New font installation feature in DirectSmile Integration Server Part 2

This is a follow up of a post I wrote in back in 2011 regarding font installation on multiple servers in DSMI. While in this post I tried to paint a more general picture I now want to go a bit more into detail and shine a little light into configuration.


If you upload a DirectSmile Set to DSMI, the VDP Studio archives all fonts from your workstation and uploads them together with other resources to DSMI. DSMI unpacks the archive into the dsmusers/sets directory. While DSMI is unpacking the files DSMI recognizes the font files and stores an installation request in the [dsmodb].[dbo].[tblFonts] table. A typical record looks like this:


This table is constantly scanned by the DSMWatchDog application that runs on all DSMI machines that provide DirectSmile Production Servers.

Although we can have several watchdogs registered for the same DSMI, we can have just one watchdog per machine. So, each watchdog is responsible for the font installation on each machine.

To ensure that each watchdog can persist the installation result of the fonts, each watchdog gets a unique id in the system. This ID is later on persisted to each font installation record. In this way the watchdog can check if it already installed the font and we can check the result of the font installation at any time.

Installation Result

Installation results are persisted by the ID of the watchdog that tried to install the font in the InstallationResult[dsmodb].[dbo].[tblFonts] table. Here’s an example:

[100] -> CFR: OK, AFR: OK, SMR: 1, WPS: OK
[200] -> CFR: OK, AFR: OK, SMR: 1, WPS: OK
[201] -> CFR: OK, AFR: OK, SMR: 1, WPS: OK

In the example we see the result from three watchdogs (100,200,201) that all successfully installed the font.

This is what one a single InstallationResult line consists of:

Description WatchDog ID File system copy result Font Resource Add Result Send Message result Registry access result
Return Value N/A OK or exception message OK, or exception message Must be greater zero OK, or exception message

WatchDog configuration

The watchdog needs information to access the dsmodb database, where to find the dsmusers directory and a unique ID . We also can define a path where to write a log file. If we let the log file value empty, no log file will be written. Those settings are stored in the .net based application configuration file. You can find both files in the DirectSmile Online Backend directory.


Here’s an example of the user settings area of the DSMWatchDog.Exe.Config file:



Giving the different instances of the DSMWatchDog unique IDs we can run the font installation on different machines in a DSMI environment. The limitation that the watchdog can only install fonts on DSMI servers (master or client in replication scenarios) is over. That makes it possible that even servers that just provide Production Servers to a DSMI can profit from font installation. Despite the information in the application icon balloon, the InstallationResult gives the DSMI operator a detailed hint about what and where failed in case a font installation went wrong.