This page contains all the information you require for branding your DP4 system so that it can be installed safely on any suitable machine without the risk of other DP4 systems already present, or to be installed later interfering with it, or your system with them.
The [branding] section of the DP4 configuration file contains entries that affect compatibility with existing DP4 installations. Most of them must be changed if you want to make your DP4 installation completely independent of any other DP4 installation that might be present on the machine, and most of the others you will want to change to "badge engineer" your DP4 system (this is the primary reason the various entries are included in this section rather than one of the others). If you are supplying any kind of "shrink-wrapped" application which is based on DP4 you are highly recommended to make use of this section to ensure that installing your application does not affect any other DP4 installations that might already be present on the machine. There are also a number of other things you may need to do beyond changing the [branding] entries. These are described later on.
Please refer to the page Names and Locations of Configuration Files for information about the dp4.ini entry.
The home_name entry is the name of the environment variable that contains the location of the DP4 licence file. If this is set to an empty string no environment variable will be used or defined for this location. The old DATAFIT environment variable is no longer used by any standard DP4 components, and neither is the value of this variable, except in new releases of legacy (16 bit) versions of DP4. However your application may well contain script or batch files that expect to be able to discover the location of DP4 via some environment variable.
On Unix and Linux you must change the value of this entry if the DP4 configuration file and the DP4 licence file are to be in different directories because DP4HOME is read initially to determine the location of dp4.ini, but otherwise there is very little reason to change the value. This variable will be defined automatically by the DP4 startup code on Windows and by the Unix terminal manager (so it will be visible to processes created by the terminal manager, including "Run another Program" programs in QAB for example.).
In legacy versions of DP4 it is not possible to configure the name of this environment variable and DP4HOME is always checked. On legacy versions of DP4 if DP4HOME is not defined and DATAFIT it then DATAFIT is used instead. The FlexOS version of DP4 has not been updated in this respect - DATAFIT: is used as before.
The actual value of the environment variable is specified in the [unix],[win32] or [wince] sections as the value of the dp4home entry (dp4home is used there regardless of the value of home_name). A value may be specified to over-ride the default location (refer to the page Names and Locations of Configuration Files for the default). DP4 will use this value to define the environment variable when you connect to the DP4 interface - any inherited value will always be over-ridden as a result. The value in the inifile is used directly by base DP4 components to determine the location of the DP4 licence file, and not the environment variable (if defined).
On Windows (but not Windows CE), you can also replace the icon srvw32.exe displays in the taskbar notification area by adding the line icon=filename to the [branding] section. filename must be the name of a Windows icon file, including the path.If the filename is blank the Itim Technology Solutions logo is displayed instead. See the icon_visible option for how to disable the icon when DP4 is run as a service.
You can control the name that appears for the DP4 ODBC driver in Control panel. Change the value of the odbc_name entry in the [branding] section. e.g. odbc_name="My ODBC driver name" in the DP4 configuration file. Run instutil -odbc to install the DP4 ODBC driver under this name. You can also use instutil -odbc driveranme (e.g. instutil -odbc DATAFIT ) to migrate existing DSNs for drivername to the new name (if you don't do this existing DSNs will continue to work, but will be shown as using the Datafit or DP4 driver.)
The prefix1 and prefix2 entries are string values that are prefixed to various strings in various places in order to create system wide unique names. There are two different prefixes, for historical reasons only, and the same value can be used for both. The default values "DP4" and "DP5" are chosen to maintain compatibility with previous releases (but are not particulary good choices). DP4 ADCs built up to DP4 version 4.619 may have hard coded references to these prefixes. Therefore if you want to take advantage of the multiple instance feature you must rebuild your ADCs using the new version of the ADC source code components available with DP4 Enterprise. A good prefix would be your company name, or your company's Internet domain name, followed by a product name or code. The prefixes must not contain characters "\" "/" or ":".
The service_name and service_title are used on Windows to name the DP4 service. (service_name is not actually used on Windows 9x or Windows CE, but service_title is always used to name the DP4 service in the taskbar notification area (or system tray)). The service name should be constructed in the same way as the prefix1 and prefix2 values (i.e. based on your company/product name and not containing illegal characters). The service title can be any descriptive name for the service. service_description is shown in the Control Panel Administrative Tools Services Applet on Windows 2000, XP and later. You need to run srvw32 -install after changing the service_title or service_description entries. If you change service_name, you must run srvw32 -uninstall and srvw32 -install
The remainder of this page discusses various other aspects of configuring DP4 so that it can co-exist with other DP4 installations on the same computer system.
The following discussion is confined to DP4 installation using TCP/IP protocol. Multiple installations on one machine are not supported for other network protocols.
For a machine to act as a DP4 network server or client for different DP4 installations it will be necessary to ensure that DP4 messages intended for one DP4 instance are not accidentally intercepted by another DP4 service and not accidentally sent to the wrong server because of host file or DNS problems.
DP4 uses TCP/IP port 5000 by default when creating sockets (and Windows servers use ports 5001 and 5002 also). If multiple DP4 installations use DP4 networking they should all use different port numbers. The network administrator for the system will have to decide on suitable port numbers for each application, and edit the appropriate [startup] sections in the various dp4.ini files to apply -socket command tails . Unfortunately there does not seem to be a more graceful way of doing this.
If possible use real machine names (specified with the -server_name command tail) to identify the location of DP4 servers. If you have to use the old server number scheme instead, for example because you are using auxdistr, then use a [tcpip_servers] section to convert the dp4servernn names into real machine names. Currently the "dp4servernn" type names remain hard-coded into the DP4 network programs when you use server numbers.
On Unix the inter-process communication (IPC)used to communicate with the DP4 interface is built directly into application programs. Unfortunately this means that the changes to this mechanism to permit simultaneous operation of multiple DP4 systems on the same machine require you to relink your C application programs and ADCs with the DP4 Enterprise C library. Until you have done this you must continue to use one of the old IPC mechanisms supported by previous releases of DP4.
The newest and now preferred IPC mechanism is enabled for programs built with the new library if there is an accessible file named dp4ftok in the directory where the initial dp4.ini file is located. The Unix ftok() routine is then used to construct the various DP4 IPC keys based on this file. If this file does not exist but /etc/dp4ftok does that file is used instead in the same way (this requires your program to be built with 4.522 or later libraries). Finally if neither file exists the pre 4.522 scheme of hard coded IPC keys is used instead.