Icon Starting and Configuring the ElevateDB Server

ElevateDB comes with a GUI ElevateDB Server called edbsrvr.exe for Windows and a command-line ElevateDB Server called edbsrvr for Linux. The GUI ElevateDB Server can be run as a normal application in Windows or as a Windows service. If running the ElevateDB Server as a normal application there is nothing else to do besides start up the ElevateDB Server from the directory in which ElevateDB was installed. You can find the GUI ElevateDB Server in the \servers\edbsrvr sub-directory under the main installation directory.

Information Before starting, please make note of the fact that there are two types of "configuration" files being discussed here. The first is the ElevateDB Server configuration file (EDBConfig.EDBCfg, by default). This file contains system-wide user, role, database, store, and job definitions and is used by the ElevateDB engine in all modes of operation. The second is the edbsrvr.ini file, which is used to store the configuration of the ElevateDB Server itself.

Installing the ElevateDB Server as a Windows Service
If you wish to run the ElevateDB Server as a Windows service you must install it as a service by running the ElevateDB Server with the /install command-line switch set. For example, to install the ElevateDB Server as a service using the Run command window under Windows (2000 or higher) you would specify the following command:

edbsrvr.exe /install

To uninstall the ElevateDB Server as a Windows service you must run the ElevateDB Server with the /uninstall command-line switch set. For example, to uninstall the ElevateDB Server as a service using the Run command window under Windows (2000 or higher) you would specify the following command:

edbsrvr.exe /uninstall

If you wish to install the ElevateDB Server so that it does not interact with the desktop at all, which is required in instances where the current user will be logged out of the system, then you should use the /nointeract flag along with the /install command-line switch:

edbsrvr.exe /install /nointeract

This will install the service as a non-interactive service and the ElevateDB Server will not display a user interface when it is started.

Finally, by default the service will display a "Service installed" dialog box when the service is installed successfully. This is sometimes not desired during installations, and in these cases you can use the /silent command-line switch to suppress the dialog box:

edbsrvr.exe /install /silent

Starting the ElevateDB Server
The main difference between starting the GUI or command-line ElevateDB Server as a normal application and starting the GUI ElevateDB Server as a Windows service is that the normal application can be started just like any other application via Run dialog, command-line, or via a Start Menu program link or desktop link, while the service must be either started via the Services dialog or by using the NET START command-line command.

Starting the ElevateDB Server as a Normal Application Under Windows

You can start and configure the GUI ElevateDB Server as a normal application by completing the following steps.

1. Start the ElevateDB Server (edbsrvr.exe) by clicking on the ElevateDB Server link in the Start menu.

Image

2. Make sure that the server is using the desired character set and configuration file folder (C:\Tutorial).

a. In the system tray, right-click on the ElevateDB Server icon to bring up the server menu, and click on the Restore option on the server menu.

Image

b. In the Tasks pane, click on the Stop Server link.

Image

c. In the Tasks pane, click on the Edit Server Options link.

Image

d. On the Server page, make sure that the Character Set is set to the desired value - either ANSI or Unicode.

Image

Information If you're not sure which character set to select and this is the first time using the ElevateDB Server, then leave the character set at the default of Unicode.

e. On the Configuration page, make sure that the Configuration File - File Folder is set to the desired folder for the ElevateDB Server configuration file (EDBConfig.EDBCfg).

Image

f. Click on the OK button.

g. In the Tasks pane, click on the Start Server link.

Image

e. Click on the close button in the upper-right-hand corner of the ElevateDB Server window to close the server window.

Image

Starting the ElevateDB Server as a Normal Application Under Linux

You can start and configure the command-line ElevateDB Server as a normal application by completing the following steps.

1. Make sure that the ElevateDB Server command-line server (edbsrvr) for Linux is copied into the desired location on the target system, and that its permissions are correctly set to executable (X) for the desired user accounts.

2. Make sure that an edbsrvr.ini file is present in the /etc/edbsrvr directory. You can create the file and copy and paste the following default contents into it in order to get started:

[Server]
Character Set=0
Configuration Folder=<Configuration Path>
Configuration Name=EDBConfig
Large File Support=0
Maximum Log File Size=1048576
Log Information Events=1
Log Warning Events=1
Log Error Events=1
Catalog Name=EDBDatabase
Configuration File Extension=.EDBCfg
Lock Files Extension=.EDBLck
Log File Extension=.EDBLog
Backup Files Extension=.EDBBkp
Catalog Files Extension=.EDBCat
Table Files Extension=.EDBTbl
Table Index Files Extension=.EDBIdx
Table BLOB Files Extension=.EDBBlb
Temporary Tables Folder=/tmp
Server Name=EDBSrvr
Server Description=ElevateDB Server
Server Run Jobs=1
Server Job Category=
Server Address=
Server Port=12010
Server Thread Cache Size=20
Server Encrypted Only=0
Server Session Timeout=60
Server Dead Session Interval=30
Server Dead Session Expiration=30
Server Maximum Dead Sessions=64
Server Authorized Addresses=*<#CR#><#LF#>
Server Blocked Addresses=<#CR#><#LF#><#CR#><#LF#>
Update Files Extension=.EDBUpd
Table Publish Files Extension=.EDBPbl
Signature=edb_signature
Licensed Sessions=4096
Encryption Password=elevatesoft
Configuration In Memory=0
Standard NULL Behavior=1
Exclusive File Access=0
Show User Passwords=0
Show Database Catalog Versions=0

Be sure to modify the Configuration Folder item so that it points to the desired location for the ElevateDB configuration file (EDBConfig.EDBCfg). Please see the Configuration Reference section below for more information on the various settings in the edbsrvr.ini file.

3. Using a terminal window, change to the directory where the ElevateDB Server command-line server is located, execute the following command:

./edbsrvr

Starting the ElevateDB Server as a Windows Service

To start the GUI ElevateDB Server as a Windows service, you can use the NET START command from the command-line:

net start edbsrvr

Information In order to start the GUI database server as a Windows service the database server must have already been installed as a service using the /install command-line switch (see above).

Configuration Reference
Both the GUI ElevateDB Server and the command-line ElevateDB Server store their configuration information in an .INI file that is, by default, located in the following directory:
  • Windows 2000/XP/2003 Server:

    C:\Documents and Settings\All Users\Application Data\Elevate Software\ElevateDB Server


  • Windows Vista or higher (including Windows 7 and Server 2008):

    C:\ProgramData\Elevate Software\ElevateDB Server


  • Windows 9x/ME:

    Same directory as the edbsrvr.exe application


  • Linux:

    /etc/edbsrvr
The name of the .INI configuration file is determined by the name of the application. For example, for the edbsrvr.exe application, the name of the .INI file would be edbsrvr.ini.

Information As of the 2.09 release of ElevateDB, if the ElevateDB Server finds an .ini with the proper name in the same directory as the server .exe, it will use it instead of the .ini file in the above directories.

All of the configuration entries in the ElevateDB Server .INI configuration files are stored under a section called "Server" (see below for how multiple server instances can change this). Each of the individual configuration entries in this section are as follows:

Configuration EntryDescription
No User InterfaceSpecifies that the server will run without a user interface. This is useful in situations where you don't want the server to display an interface or an icon in the system tray, such as when running the server as a Windows service. The default value is 0 (False). Setting this entry to 1 (True) will turn off the server UI.
Encryption PasswordSpecifies the encryption password used by the ElevateDB Server for all encryption purposes. The ElevateDB Server uses this password for all configuration file encryption, table files encryption (for encrypted tables), and for encrypting all communications with a remote session when it uses encryption for the session. Likewise, you can force the ElevateDB Server to only accept encrypted connections from remote sessions by setting the "Server Encrypted Only" configuration entry (below) to True. The default value is 'elevatesoft'.

ElevateDB uses the Blowfish block cipher encryption algorithm with 128-bit MD5 hash keys for encryption. Please see the Encryption topic for more information.
SignatureSpecifies the signature used by the ElevateDB Server for all communications and database access. The ElevateDB Server uses this signature for all configuration file access, table files access, and for encrypting all communications with a remote session. A signature is useful for "branding" a server so that it only communicates with sessions that are using a specific signature, rejecting any that do not use that signature. The default value is 'edb_signature'.
Licensed SessionsSpecifies that a certain maximum number of concurrent licensed sessions be allowed. The default value is 4096 sessions. Specifying a lower figure will allow no more than the specified number of sessions to concurrently access the same configuration.
Large File SupportSpecifies whether the large file support is enabled or not. Enabling large file support greatly increases the maximum file sizes permitted for ElevateDB table files. However, large file sizes are only usable under Windows NT 4 or higher, and cannot be used under Windows 9x/ME. The default value is 0 (False).
Character SetSpecifies the character set to use for the ElevateDB Server. The valid values are 0 for the ANSI character set, or 1 for the Unicode character set. If the ElevateDB Server is accessing an existing configuration file and the specified character set does not match the character set of the configuration file, then an error message will be displayed and/or logged when the ElevateDB Server is started. The default is 0 (ANSI) under Linux and 1 (Unicode) under Windows.
Configuration FolderSpecifies the path where the ElevateDB Server should look for the configuration file. The configuration file is used to store the information in the Configuration Database in ElevateDB. If the path specified does not exist, then an error will be raised when the ElevateDB Server is started. If the path exists, but the configuration file does not exist in the path, then the ElevateDB Server will create the configuration file as necessary.

Information It is very important that you do not have more than one instance of the ElevateDB Server using different configuration files and accessing the same database(s). Doing so will cause locking errors. All instances of the ElevateDB Server must use the same configuration file if they will be accessing the same database(s).

The default value is the current folder where the server application is running.
Configuration In MemorySpecifies that the configuration file will be "virtual" for all sessions in the ElevateDB Server, and reside only in the process's memory. The default value is 0 (False).
Configuration NameSpecifies the root name (without extension) used by the ElevateDB Server for the configuration file. The extension used for the configuration file is determined by the "Configuration File Extension" configuration entry (below). The location of the configuration file is determined by the "Configuration Folder" configuration entry (above). The default value is 'EDBConfig'.
Configuration File ExtensionSpecifies the extension to be used for the configuration file. The deafult value is '.EDBCfg'.
Lock Files ExtensionSpecifies the extension to be used for the configuration and catalog lock files. The default value is '.EDBLck'.
Log File ExtensionSpecifies the extension to be used for the log file. The default value is '.EDBLog'.
Maximum Log File SizeSpecifies the maximum log file size. The default value is 1048576 bytes.
Log Information EventsSpecifies that information events should be logged in the log file. The default value is 1 (True).
Log Warning EventsSpecifies that warning events should be logged in the log file. The default value is 1 (True).
Log Error EventsSpecifies that error events should be logged in the log file. The default value is 1 (True).
Catalog NameSpecifies the root name (without extension) used by the ElevateDB Server for all database catalog files. The extension used for the catalog files is determined by the "Catalog Files Extension" configuration entry (below). The location of the catalog file is determined by the path designated for the applicable database when the database was created. Please see the CREATE DATABASE topic for more information. The default value is 'EDBDatabase'.
Catalog Files ExtensionSpecifies the extension to be used for database catalog files. The default value is '.EDBCat'.
Backup Files ExtensionSpecifies the extension to be used for database backup files. The default value is '.EDBBkp'.
Update Files ExtensionSpecifies the extension to be used for database update files. The default value is '.EDBUpd'. Update files are used to store logged updates for the purposes of synchronizing two different copies of the same database.
Table Files ExtensionSpecifies the extension to be used for database table files. The default value is '.EDBTbl'.
Table Index Files ExtensionSpecifies the extension to be used for database table index files. The default value is '.EDBIdx'.
Table BLOB Files ExtensionSpecifies the extension to be used for database table BLOB files. The default value is '.EDBBlb'.
Table Publish Files ExtensionSpecifies the extension to be used for database table publish files. The default value is '.EDBPbl'. Publish files are used to store the logged updates for a table.
Temporary Tables FolderSpecifies where the ElevateDB Server creates any temporary tables that are required for storing query result sets. The default value is the user-specific temporary tables path for the operating system.
Show User PasswordsSpecifies whether the server will include user passwords when populating the Users system information table. The default value is True.
Show Database Catalog VersionsSpecifies whether the server will include database catalog version numbers when populating the Databases system information table. The default value is True.

Information Setting this configuration item to False can significantly improve the performance of the loading of the Databases system information table when there are a lot of databases in a configuration. This is because ElevateDB has to open the database catalog for each database in order to read the version number.
Server NameIdentifies the ElevateDB Server to external clients once they have connected to the ElevateDB Server. The default value is 'edbsrvr' for the GUI ElevateDB Server. This configuration item is not used for named server instances (see below Multiple Server Instances for more information on named server instances).
Server DescriptionUsed in conjunction with the "Server Name" configuration entry to give more information about the ElevateDB Server to external clients once they have connected to the ElevateDB Server. The default value is 'ElevateDB Server'.
Server AddressSpecifies the IP address that the ElevateDB Server should bind to when listening for incoming connections from remote sessions. The default value is blank (""), which specifies that the ElevateDB Server should bind to all available IP addresses.
Server PortSpecifies the port that the ElevateDB Server should bind to when listening for incoming connections from remote sessions. The default value is 12010.
Server Thread Cache SizeSpecifies the number of threads that the ElevateDB Server should actively cache for connections. When a thread is terminated in the server it will be added to this thread cache until the number of threads cached reaches this value. This allows the ElevateDB Server to re-use the threads from the cache instead of having to constantly create/destroy the threads as needed, which can improve the performance of the ElevateDB Server if there are many connections and disconnections occurring. The default value is 10.
Server Encrypted OnlySpecifies whether all incoming connections from remote sessions should be encrypted or not. If this configuration entry is set to 1 (True), then all incoming connections to the ElevateDB Server that are not encrypted will be rejected with an error. The default value is 0 (False).

Information If you intend to use encrypted connections to an ElevateDB Server over a public network then you should always use a different "Encryption Password" configuration entry (above) from the default password.
Server Session TimeoutSpecifies how long the ElevateDB Server should wait for a request from a connected remote session before it disconnects the session. This is done to keep the number of concurrent connections at a minimum. Once a session has been disconnected by the ElevateDB Server, the session is then considered to be "dead" until either the remote session reconnects to the session in the server, or the server removes the session according to the parameters specified by the "Server Dead Session Interval", "Server Dead Session Expiration", and "Server Maximum Dead Sessions" configuration entries (below). A remote session may enable pinging in order to prevent the ElevateDB Server from disconnecting the remote session due to this configuration entry.

The default value is 180 seconds, or 3 minutes.
Server Dead Session IntervalSpecifies how often the ElevateDB Server will poll the disconnected sessions to see if any need to be removed according to the "Server Dead Session Expiration" or "Server Maximum Dead Sessions" configuration entries (below). The default value is 30 seconds.
Server Dead Session ExpirationSpecifies how long a session can exist in the ElevateDB Server in a disconnected, or "dead", state before the server removes the session. This is done to prevent a situation where "dead" sessions accumulate from client applications whose network connections were permanently interrupted.

Information If all of the remote sessions accessing the ElevateDB Server are using pinging, then you should set this property to the minimum value of 10 seconds so that sessions are removed as soon as they stop pinging the server.

The default value is 300 seconds, or 5 minutes.
Server Maximum Dead SessionsSpecifies how many "dead" sessions can accumulate in the ElevateDB Server before the server begins to remove them immediately, irrespective of the "Server Dead Session Expiration" configuration entry (above). If the "Server Maximum Dead Sessions" configuration entry is exceeded, then the server removes the "dead" sessions in oldest-to-youngest order until the number of "dead" sessions is at or under the setting for this configuration entry. The default value is 64.
Server Authorized AddressesSpecifies which IP addresses are authorized to access the ElevateDB Server. This is commonly referred to as a "white list". There is no limit to the number of addresses that can be specified, and the IP address entries may contain the asterisk (*) wildcard character to represent any portion of an address.

Information Due to the way that .INI file entries must be specified, multiple addresses must be separated with the literal value "<#CR#><#LF#>" (without the quotes) instead of actual line feeds.
Server Blocked AddressesSpecifies which IP addresses are not allowed to access the ElevateDB Server. This is commonly referred to as a "black list". There is no limit to the number of addresses that can be specified, and the IP address entries may contain the asterisk (*) wildcard character to represent any portion of an address.

Information Due to the way that .INI file entries must be specified, multiple addresses must be separated with the literal value "<#CR#><#LF#>" (without the quotes) instead of actual line feeds.
Server Run JobsSpecifies whether the ElevateDB Server is allowed to schedule and run jobs that are defined in the Configuration Database. If this property is set to 1 (True, and the default), then the "Server Job Category" configuration entry (below) determines which category of jobs that the server will schedule and run.
Server Job CategorySpecifies which job category the ElevateDB Server will schedule and run if the "Server Run Jobs" configuration entry is set to 1 (True). This configuration entry can contain any value, and the default value is blank (''), which indicates that the server can run all job categories. A job category is assigned to each job when it is created via the CREATE JOB DDL statement.

Multiple Server Instances
Multiple instances of the ElevateDB Server can be run on the same physical machine through named server instances. Named server instances are simply instances of the ElevateDB Server that were executed using two special command-line switches:

edbsrvr.exe /name=<Server Instance Name> /desc=<Server Instance Description>

Named server instances use the passed name and description to provide the name of the ElevateDB Server instance, as well as the description. The name parameter is also used to determine which section of the edbsrvr.ini file is used for configuration purposes. Instead of just the normal "Server" section being used in the edbsrvr.ini file, the section is named using the provided server name. For example, if the named server instance is called "MyServer", then the section in the edbsrvr.ini file where the configuration is stored will be the following:

[Server_MyServer]

The description parameter, if also specified, is immediately written to the named server instance section of the edbsrvr.ini file. All other configuration options described above in the Configuration Reference must be modified using the Edit Server Options in the GUI ElevateDB Server. You can run the GUI ElevateDB Server as a normal application in order to modify the configuration of a named server instance. For example, to modify the MyServer configuration you would use the following from the command-line:

edbsrvr.exe /name=MyServer"

In order to use a named server instance as a Windows service, the /name parameter must be specified during the installation of the service. For example, if the named server instance is called "MyServer", then the service installation would be accomplished using the following from the command-line:

edbsrvr.exe /install /name=MyServer /desc="My Server"

When you want to start the named server instance as a service, you would simply just use the following from the command-line:

net start MyServer

The following example shows how you would install two ElevateDB Server named server instances as Windows services, and then start them:

edbsrvr.exe /install /name=MyFirstServer /desc="My First Server"

edbsrvr.exe /install /name=MySecondServer /desc="My Second Server"

net start MyFirstServer

net start MySecondServer

Warning You will need to verify that the port being used by each named server instance is unique, or one or more named server instance will not start due to a port conflict. As mentioned above, you can use the GUI ElevateDB Server run as a normal application to modify the configuration of any named server instance.
Image