CutServer Overview

 

CutServer is an application that pushes updates to the DAD Library database to each Client. DAD in turn runs on a constantly updated copy of the Library database which resides on it's local drive. This can greatly improve the performance for Searches, Library database reads and writes and overall speed within DAD when running in a network environment. 0

 

Setting up the Client:

The CutServer program must be run from a dedicated Windows server. The DAD Library database must be on this same server. IP must be enabled and working on the DAD Network.  The server OS is used because the numbers of clients can exceed the maximum numbers of clients a workstation OS will allow.  The network structure for CutServer must support TCP/IP. The CutServer clients will communicate via IP and will use port 8500 by default.

 

Any workstation on the network that is to be a CutServer Client must have its security key programmed for CutServer Client.

 

One must add or modify the following lines to the Client workstation CFI files.

[OPTIONS]

CUTSERVER_IP_ADDRESS=<IP Address of the CutServer Server>

CUTSERVER_IP_PORT=8500

CUTSERVER_STANDALONE=FALSE

 

[RECORD]

CREATE_CUT_ON_NEXT_RECORD=TRUE

 

 

 

 

 

 

IMPORTANT:  CutServer 8.1.d must be used with DAD version 8.1.d. 

All workstations must also have the workstation [RECORD] CFI line option: CREATE_CUT_ON_NEXT_RECORD=TRUE

This automatically creates a cut in the database when a user prepares to record a new cut. This prevents other workstations or users from using that same cut number. Failure to enable this option will result in invalid cuts or duplicate cuts created within the library database. 

 

Note: Administrators should also note that Rebuild.exe version 8.1 or greater will be placed within the C:\DAD\Progs directory by the SetupENCO program. CutServer no longer uses the Rebuild.exe from within it's own directory. 

 

Fine Tuning the CutServer.INI

 

The CutServer.INI file lives in the \CUTSERVER directory. Details about the settings in the CutServer.INI are as follows: 

Configuration Setting Defaults  Configurations Definition 
[CONFIG]
Enable Scanning= TRUE TRUE / FALSE - Toggles from Enable Scanning check box within the CutServer program. 
Enable Connections= TRUE TRUE/FALSE Toggles from Enable Connections check box within the CutServer program. 
File Scan Delay= 60000 Length of time between when CutServer will wait to scan the network database for changes made by NON-Clients. This value is in milliseconds. 
Delete Scan Delay= 360000 Length of time between when CutServer will scan the network for cuts that have been deleted by a NON-Client.  This value is in milliseconds.
Record Scan Delay= 500 Length of time between scans of the database. When CutServer begins a scan, it will use this parameter and the Record Scan Length parameter to scan the entire database. This value is in milliseconds. 
Record Scan Length= 100 This defines the number of records the scan will perform.
Event Processing Rate= 300 Length of delay the Event Processing window will wait before processing another event
Purge Scan Delay= 10 Length of delay time used between the Purge Scan Length value when one performs a PURGE within DAD. This value is in milliseconds.
Purge Scan Length= 1000 Number of records that will be processed at a time when one performs a PURGE in DAD. 
IP Port= 8500 The IP Port used by DAD and CutServer to communicate. 
Max Heartbeat Timeout= 60 This time in Seconds CutServer will wait before disconnecting a Client from a lack of a Heartbeat. 
External Agent Update Scan Period=  10 This value in Seconds will cause CutServer to scan for updated database requests in the \External directory. 
Capture Input = FALSE This option should only be set to TRUE when instructed by ENCO for advanced debugging. 
Shutdown Weekly On =  Day of the week to have CutServer automatically shutdown and restart itself. Valid entries are MON, TUE, WED, THU, FRI, SAT and SUN. 
Shutdown Daily At =  Time of day CutServer will be shutdown. Time is entered using the 24-hour format such as 14:30:00 for 2:30 PM.  
Shutdown Process Delay = Amount of disconnect time given between each CutServer Client. This time is in milliseconds. 
Shutdown Force Rebuild = 

TRUE = Just before Shutdown, a Rebuild can be forced. 

FALSE - Rebuild will NOT be run as part of this process. 

[DATABASE]
Location= F: Location of the network database that CutServer will use.
Aux Location=F: Auxiliary location for the DAD Library database. 

  

Examples of configuration:

 

If one has 10,000 cuts in the DAD Library database, the default settings above will scan the network database every 60 seconds. When CutServer starts a scan it will process the first 100 records, wait 500 milliseconds then scan the next 100 records. For 10,000 cuts, scanning 100 records <Record Scan Length> will take 100 total sub-scans. At an interval of 500 milliseconds <Record Scan Delay> will take 50 seconds total. 

One should make sure of the following:

<number of records total> /  <number of records scanned in 1 second> = total time for complete scan.

This should be less than the value defined in the File Scan Delay. A new scan will not start until the current scan in progress completes.

These values are used to throttle the amount of network traffic and should be changed with careful consideration in regards to the performance of the network.

 

 

 

 

 

IMPORTANT DETAILS ON DRIVE MAPPINGS:  CutServer should be installed and run on the Server that is being used as the DAD server. CutServer will need a mapping on this server set to the same drive letter as the DAD workstations. For example: if the DAD workstations map the server's DATA share for the DAD Library database as F:, then the server should also have an F: drive mapping. 

 

One must also map the AUDIO share as the drive letter used by the DAD workstations. For example, if the DAD workstations map the AUDIO share as G:, then the server should also have a G: mapping. This becomes important as CutServer will perform the Library Purges and needs the same drive letter access as the DAD workstations to properly remove the audio file. 

 

Administrators should consider using the old DOS command SUBST to create a local drive. Doing so is preferred over network drive mapping. SUBST will not utilize network resources. An example of this would be: SUBST F: C:\DATA

This string along with a command to start CutServer can be placed in a BAT file to run when the Server starts.  

 

Automatic Shutdown and Rebuild

 

One of the benefits of using CutServer is to automate the process of getting a Unique Rebuild on the Library database. 

 

CutServer can be configured to automatically shutdown and have a unique rebuild performed on the network database.  Users can define the day of the week (MON, WED, SUN etc) using along with the time of day they wish to have CutServer shutdown. This allows one to also have NON-Client workstations out of DAD, Gateway or other applications so a rebuild can be performed.  Users can also set the Shutdown Process Delay time between each workstation. 

This process disables any processing of events to the network database. During the shutdown event, CutServer clients will play from their local database. If any database updates from the clients are passed to CutServer, they are held by the CutServer application until the rebuild has completed. After completion, all events will be processed and written to the database. Following the rebuild, all clients will then be automatically disconnected one by one. The clients will utilize the network database like a normal non-CutServer client. CutServer will then restart itself and allow all clients to automatically reconnect. When the workstations reconnect, they will pull the rebuilt copy of the database back to their local drive. 

For example: 

Shutdown Weekly On = SUN

Shutdown Daily At = 04:20:00

Shutdown Process Delay = 500

Shutdown Force Rebuild = TRUE

 

In the above example, CutServer will perform the automatic rebuild on Sunday's at 4:20 AM. Each workstation will have a 500 millisecond between each of them when disconnecting from CutServer and reverting back to the network database. 

 

Manually performing a Rebuild

 

Administrators can force a Client to disconnect from CutServer via the Disconnect Client button. This forces the selected Client to return to the network database. That same client will then reconnect to CutServer within a few seconds. When the workstation returns to Client mode, it will recopy the network database to its local drive. This allows an administrator to perform a manual Rebuild.

 

To perform a Rebuild manually, within the CutServer application, stop [uncheck] scanning and stop [uncheck] processing. This will leave the CutServer Clients playing from their local databases. They just will not update any records until the rebuild has been performed. Close all NON-CutServer applications such as production workstations that are not a CutServer client, Gateway or any other application that is attached to the network database. Press Rebuild Database to have CutServer perform the rebuild. After the rebuild is done, re-enable scanning and processing. One should then select a Client and press Disconnect. This will force that workstation to return to the network temporally then reconnect to CutServer with the rebuilt database.

 

Other Details about CutServer: 

DAD as a Client and performing a Library Purge

When a User presses PURGE from within the Library in DAD, that Client will send the Purge request to CutServer. CutServer will then perform the Purge of the database and the audio file. CutServer becomes responsible for removal of the audio file and one should verify that the Server that CutServer is running on has proper drive mappings set up to allow access. Details about the Server's mappings are discussed here.  

Other Applications such as Gateway, DropBox, CoolDAD and AudioCVT

All other ENCO applications have the ability to update and notify CutServer of an updated record in the database. This can reduce the amount of time one would wait for that record to be displayed by the DAD Clients. For example, one can configure DropBox to send an event notification to CutServer directly. Instead of waiting for CutServer to scan the network database for changes, CutServer would ingest the notification and update all Clients at that time. These applications send a notifications file directly to the External folder found within the Servers CutServer directory. Typically on the server this is F:\CutServer\External. 

NOTE: Administrators should verify that workstation users have proper rights to this folder. Some might need to Share the External folder explicitly. 

 

Details about ENCO Applications that can notify CutServer. 

For DropBox:

One can modify the DropBox2.INI file with the following settings.  

[DROPBOX A] 

NotifyCutServer = 1   
NotifyCutServerPath = Q:\cutserver\external

 

Whereas:

NotifyCutServer = 1 allows DropBox to update CutServer ( 0 is disabled)

NotifyCutServerPath = Path to the Cutserver\External directory. 

 

For CoolDAD

[Settings]
CutServerDrive = Q: 

Whereas the value for this line would be the Drive mapping to location of CutServer. 

For Gateway

In Gateway, select the Database Location. Here one can check the Notify CutServer checkbox and enter a Path in the filed below. 

NOTE: In general one would only use this option when Gateway is using a Cut Range Rule to update another Server location that is actively running CutServer. For example, Gateway running on a server in New York might be updating the Los Angeles system. If LA is running CutServer, then one would use the Notification Option. 

 

 

 

For AudioCVT

In AudioCVT, select the Program Options button. Here one can check the Notify CutServer checkbox and enter a Path in the filed below. 

Once enabled, when new cuts are added to the DAD Library via AudioCVT, CutServer will be notified immediately. 

 

 

 

 

The CutServer Program Features:

 

 

A:    Title Bar 

The Title bar of CutServer will display the version along with the total time the CutServer application has been running.

 

 

B:     Enable List Updates  

This checkbox turns ON or OFF screen updates to the list of Clients connected. When checked, the list of Clients will be updated. 

        Enable Connections  

This checkbox allows or prevents workstations from connecting to CutServer. When checked, workstations will be allowed to connect to CutServer as a Client.  

        Enable Scanning  

When checked, CutServer will scan the network database for any updates or changes made by NON-Client applications. A progress bar is to the right of this checkbox, showing the progress of the network scan. 

 

C:     Client Connection screen 

This section of CutServer allows one to see the Stream number, workstation Locations (Connection), the workstations IP Address, the length they have been connected (UpTime) and their status. 

 

One can select a Clients Stream from this display area and use the Send DCL to Client, Disable/Enable or Disconnect functions to directly interact with that stream. 

 

NOTE: All workstations that are connected as a Client will be given a Stream Number. For workstations or applications that are NON-Clients, they will not display a Stream number in this screen but will display as Stream 999 in the Event and Debug logs. For applications such as Gateway, DropBox, CoolDAD and AudioCVT which have the ability to Notify CutServer about updates, their Stream number will be listed as 998. 

 

D:     DCL Field entry and Send DCL to Client 

One can enter a valid DCL into the field and send that command to the selected Client.  

        Disable Client  

When one selects a Client and presses Disable Client, that stream will no longer send Library database update messages to CutServer. The client will remain connected but will not 'talk' to CutServer. 

        Disconnect Client 

Selecting a Client and pressing the Disconnect Client button will clear the connection between CutServer and the workstation. Once disconnected, the workstation will then attempt to re-connect a short time later. 

 

 

E:     Enable List Updates 

This checkbox turns ON or OFF screen updates to the list of Processed Events. When checked, the list of Processed Events will be updated. 

        Max Log Items field

This field will allow CutServer to maintain the entered value amount of records displayed in the Processed Events screen. 

        Flush To and Flush Event Filename

Users can flush the details and records of all Processed Events to a file. This file will saved in the C:\CutServer directory by default. One can enter their own path and file to flush to. 

        Debug Info Checkbox

When checked, CutServer will display additional debug information such as Heartbeats between Clients and CutServer. 

 

F:     Processed Events Screen

This screen displays the Date and Time of the event. The number following the Time is the Stream number for the Client. The remaining details will be specific to the event issued by the Client. These could be $CS_UPDATES$ for an update to a Cut Record, $CS_NEXTCUTID$ for a request for a new Cut Number to Record to, $CS_DELETE$ is the act of CutServer removing a record and $CS_PURGE$ is a request to Purge the Database from a Client. $LS_ events relate to CutServer dealing with a LiveList playlist and all associated events. 

 

G:     Enable List Updates 

This checkbox turns ON or OFF screen updates to the list of Incoming Events. When checked, the list of Incoming Events will be updated. 

        Enable Processing

To allow Incoming events to be processed, keep this box checked. When un-checked, Incoming events will not be processed and passed to CutServer Clients. In this case, the Incoming events will queue up. When re-enabled, all events will be processed in the order they were received. 

        Delete Event

In the event that Enable Processing is unchecked, one could select a specific event in the Incoming events screen and Delete it. 

 

H:     Incoming Event screen

As clients update or make requests to CutServer, the event message is queued in this screen. Typically CutServer processes these requests very quickly and keeps this screen empty. 

 

I:     Library Database Drive Letter

CutServer must have a drive mapping that is the same at the DAD workstations. For example: if the DAD workstations map the server's DATA share for the DAD Library database as F:, then the server should also have an F: drive mapping. 

 

J:     Active Libraries

When used with Multiple Libraries in DAD, CutServer will open the additional Libraries as needed. As each Library is opened, it will be displayed here with a number relating to the number of Clients using the Library at that time. 

        Active LiveLists

When used with a LiveList Playlist, CutServer will display each LiveList Playlist Name as it is loaded. The number relating to the number of Clients using the LiveList will also be displayed to the right of the Playlist name. 

 

K:     Re-Init

Pressing Re-Init will reload the CutServer.INI file. This allows one to make changes to the CutServer.INI file without having to exit and restart CutServer. 

        Config

Pressing the Config button will open and display the CutServer.INI file. 

        View Log

Pressing View Log will display the contents of the Processed Events screen. 

        Clear List

This will clear the Processed Events screen. 

 

L:     Rebuild Database

This button allows an administrator to manually perform a Unique Rebuild of the Network Database. Details on performing a manual Rebuild can be found here.