...
...
...
...
...
...
...
...
...
...
System overview
The EDMserver consists of one EDM database server and optionally one or more EDM application servers. The main task for the EDM database server is to maintain the persistent EDM database and to perform concurrency control of all the EDM clients. All operations that effect common resources, i.e., creation/opening/closing/deletion of repositories, models, schemata, etc., locking of data, transaction controls, etc., are performed by the EDM database server. Hence, the compilers are running in the EDM database server. But the clients normally perform all low-level data manipulation operations.
The EDM application server is an application interface needed to obtain access to the EDM database server using the EDMI Remote Interface. EDM clients using the EDMI Remote Interface can access any EDM database, both remote and locally using the same interface. The EDMI Remote Interface is transaction oriented and makes it easier to implement applications using the EDM database. Repositories and models will be opened in the correct mode automatically.
EDMsupervisor is a client delivered to supervise any EDM database.
EDM Server Context
...
Using the EDMI Remote Interface one may define as many server contexts as wanted.
The server contexts are distinguished by their unique context name and can be defined in the EDMsupervisor with the command
- Remote Systems->Server Context->Define Context
or with the EDMI functions
- edmiDefineServerContext()
- edmiDefineServerContextEx()
The client can use these server contexts to communicate with databases on different hosts and with different user accounts and access rights. This feature is possible because the EDMI Remote functions are transaction oriented and stateless. Each function operates within a transaction, and is either successful (with commit) or abortive (with abort and no change).
Using HTTP-communication
...
The HTTP (Hypertext Transfer Protocol) is an application protocol that runs on top of the TCP/IP suite of protocols. The HTTP protocol is using port number 80 and this port number is normally accepted by firewalls, because normal web browsing is using HTTP. The disadvantage with this communication is that it is a bit slower and requires a tunnel servlet in between, to pack/unpack all messages between client and server into HTTP-packets. This calls for additional parameters to be set. The required parameters are tunnel program name, tunnel host name and tunnel port number (normally 80). In addition it is possible to define a proxy host if it necessary to go through another host to obtain the communication.
...
-s<port-number> specify server port number
-l<db-location> specify database location (directory containing database)
-n<db-name> database name
-p<db-password> database password
-c create database
-d delete database (will destroy old database!)
-o open database
-t trace message headers
-w trace message body
-? display the complete options list
Examples of EDMserver startup commands:
start %EDM_HOME%\bin\edmserver.exe s9090 t w
or
start %EDM_HOME%\bin\edmserver s4530 Lc:\home\db -Nmydb Ppwd o
There is also implemented command line options for scheduled online backups, please see EDMserver Scheduled Online Backup if you want to use these options.
Automatic restart of EDMappServer
EDMappServers may be automatically restarted when abnormally terminated. There are two methods for enabling this ability.
Using the EDMserver command line options:
Use the "-ar" option to enable the "automatic restart of abnormally terminated EDMappServers".
Use the "-an" option to define the EDMappServer executable
Example:
.... " -ar -anC:\edm\edmsix.2.100.17\bin\edmappserver.exe"
Using the EDMconfigurationVariable
Set AUTOMATIC_RESTART_OF_ABNORMAL_TERMINATED_APPSERVER to TRUE to enable this option and to FASLE to disable it.
Use EDM_APPSERVER_EXECUTABLE_NAME. to define the EDMappServer executable
Optionally, the command line arguments to the EDMappServers can be specified by the EDMserver command line options "-ac" or by
the EDMconfigurationVariable EDM_APPSERVER_COMMAND_LINE_ARGUMENTS.
Example:
... "-ac"-w -t""
NOTE:
When an EDMappServer is "out of virtual memory" it will be terminated and a new EDMappServer will restarted by the EDMserver, provided the "automatic restart of EDMappServers" facility is enabled. Such events will be recorded on the EDMserverReportFile.
A command line command "-NS" is implemented to avoid starting the EDMappServer with "catching signals". The purpose of this functionality is to enable catching a "system crach in MM Visual C++". When an EDMappServer is started with the "-NS" command option, the "automatic restarting of EDMappServer on abnormal termination" is disabled.