# CHAPTER 7: Hints and Suggestions

1. Even if a server is not running, you should use the logical database name (set `MSDBSERVERNAME=LOCAL` in the Global Data Dictionary file) to free your application from the actual location of the database. So instead of changing the applications each time the database is moved, all you have to do is modify the Global Data Dictionary file.

2. If the server does not seem to respond to a particular entry in the Server Configuration File, for example the `MSSERVERREJECTHOST` entry, you should use the `empsvutl` utility with the `-chk` option to check the Server Configuration File. It is very possible that the entry is misspelled or the syntax is incorrect.

3. One quick way to find the Data Format Code for a particular machine is to create a temporary database on that machine and look up the Empress variable `MSDBDFC` in the `tabzero` file of the temporary database.

4. Avoid bringing down the server process by the UNIX kill command. Always use the `empsvadm` command with the `svshut` option to bring down the server. If the server does not respond to `empsvadm` with the `svinfo` option, then either the server has not been started or the server has died. If the server has died then you will have to bring the server down by the UNIX `kill` command.

5. To create a secure Empress database on a network, the Server Configuration File should always contain the server security entries. This prevents users from impersonating proper users by creating login IDs on their own machines which duplicate valid IDs on the other machines.

6. The variable `MSNFSSHARE` in the `tabzero` file must be set to nothing when accessing the database via a server.

7. If your system supports using shared memory then you should use the Empress shared memory feature in conjunction with the database server.

8. If all the users access the database via the Empress server then all the database read and write operations will be controlled by the server rather than by the user's ID. Therefore, only the server administrator needs to have the operating system permissions on the database directory and all database files. If the server administrator and the database administrator have the same user ID, then the database directory permission can be set to read, write and execute for the owner only.

9. The Server Configuration File is read every time the server is started. As a result, the server must be shut down and started again after this file is modified.

10. In the case of multiple networks configuration, there may be more than one route through which the client and the server can communicate. That is, the client and the server can communicate via network A or via network B. It is in the client's best interest to find out the best route to communicate to the server. To search for this optimal route, all network names of the server must be included in the Server Configuration File and a separate server must be started for each network name. The client can then choose the best network route by simple performance comparison. An example will clarify the point.

    A machine "copper" is connected to two networks and it is known as "copper" in one network and "copper1" in another network. The Server Configuration File would contain:

        MSSERVERNAME=server1
           MSSERVERHOSTNAME=copper
           MSSERVERNPROCS=1
           MSSERVERADMINISTRATOR=dba
           MSSERVERNETTYPE=INET_SOCKET
              MSINETPORT=13018
           MSSERVERNETEND
        MSSERVEREND

        MSSERVERNAME=server2
           MSSERVERHOSTNAME=copper1
           MSSERVERNPROCS=1
           MSSERVERADMINISTRATOR=dba
           MSSERVERNETTYPE=INET_SOCKET
              MSINETPORT=13019
           MSSERVERNETEND
        MSSERVEREND

    The Global Data Dictionary would contain:

        MSDBLOGICALNAME=ldb1
           MSDBLOCATION=/usr/empress/db
           MSDBSERVERNAME=server1
        MSDBLOGICALEND

        MSDBLOGICALNAME=ldb2
           MSDBLOCATION=/usr/empress/db
           MSDBSERVERNAME=server2
        MSDBLOGICALEND

    The client can then compare the performance between the two networks by comparing the performance between the Empress servers "server1" and "server2".

11. A quick way of telling if a server is running is to issue the following command:

    `empsvadm server_name svinfo`

    If the server is running, there should be a fairly quick response.

12. If a server will be accessing multiple databases which reside in different disk drives, then a possible performance improvement may be achieved by setting `MSSERVERNPROCS` to the number of disk drives that the server will access.