EDMserver Operation and Maintenance

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.

Communication Concepts

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.

Example parameters:

Communication type   HTTP
EDM server host name:  195.139.163.4
EDM server port number:  4530
EDMIhttpTunnelName  /pilot/servlet/EDMHttpTunnelServlet
EDMIhttpTunnelPortNumber 80
EDMIhttpTunnelHostName  195.139.163.4
Proxy server name:  
Proxy server port number:  
 
The HTTP tunnel is supplied as a Java servlet in a Java Archive (.jar) file. To use this servlet you need a webserver, or to be more precise a Servlet Container like the Apache Tomcat. It is outside the scope for this document how to set up a servlet container.

Using TCP-communication


 
The TCP (Transmission Control Protocol) protocol is used along with the IP (Internet Protocol). The TCP protocol requires only two parameters for the communication, the host name and the port number. The host name and port number must correspond to the host name where the EDMserver is running and the port number used when the EDMserver was started. Examples of EDMserver host names and port numbers:


Communication type:  TCP
EDM server host name:  dbhost
EDM server port number:  9090

Port numbers that are not used for any other communication may be used. The host may also be represented by its IP-address. This will increase communication performance. The local host name may also be given as localhost or 127.0.0.1.

Transactions in EDMserver


 
EDMserver can handle any number of concurrent read-only transactions and one write transaction to one model at the same time. Hence, a start of a write transaction to a model while another write transaction is open on the same model, will be forced to wait until the open write transaction to the model is terminated by commit or abort. A timeout will happen after a given amount of time (25 seconds). Write transactions to different models can be opened and operated simultaneously.
A write transaction must be started by one of the following EDMIinterface operations:
EdmiError edmiStartModelWriteTransaction (SdaiModel modelId);
EdmiError edmiStartModelsWriteTransaction (SdaiModel *modelIds);

  • where the argument modelIds is a zero terminated array of modelId’s.
    The actual model(s) to start write transaction on, must be open for sdaiRW access when the edmiStartModelWriteTransaction() or edmiStartModelsWriteTransaction() are performed.
    Transactions can be nested as in earlier EDM versions. The edmiStartModelWriteTransaction() and edmiStartModelsWriteTransaction() operation cannot be performed within an open write transaction, i.e., these operations must be used to start an outer transaction. However any number of edmiStartTransaction() operation can be performed within an open write transaction. Write transactions are terminated in the normal way, i.e., by one of the following EDMIinterface operations: edmiCommitTransaction(), edmiCommitAllTransactions(), edmiAbortTransaction(), edmiAbortAllTransactions().
    All access (also read only accesses) to an EDMserver should be inside an open transaction to ensure a consistent view of the EDM database within one “logical application operation”. One “logical application operation” may contain any number of EDMIinterface operations.
    There are many EDMI operation that cannot be performed within an open transaction, like sdaiOpenModel(), sdaiOpenModelBN() etc.
    A transaction client gets the "latest version" of a model when the model is opened and each time an outer transaction is started. A transaction client will update the EDMserver when a write transaction is committed.
    A transaction client will get the “latest version” of common resources, i.e., repositories, models, schemas, users, groups, etc., when required, i.e., when creating/opening/closing/deleting repositories, models, schemas, etc. A transaction client can explicitly get the latest version of the common resources by invoking the EDMI function: EdmiError edmiRefreshDB (void);

System shutdown

Automatic Server shutdown


 
For simplicity both the EDMserver and the _EDMappServer_ (s) can be stopped automatically using a command script calling another command script. The example below shows how to do it. The EDMconnector™ is used instead of the EDMsupervisor™, because the no license problem will be obtained. The command script can for example be named "stop_servers.cmd" and contain the line:
%EDM_HOME%\bin\Edms_connector.exe shutdown_edm.EDM_SCRIPT
The script "shutdown_edm.EDM_SCRIPT" must contain the lines:
RemoteSystems>Servercontext>DefineContext(shutdown, superuser, $, pwd, tcp, localhost, 9090, $, $, $, $, $, $, $, $)
RemoteSystems>Server>Terminate>(shutdown, pwd, $,"ALL_SERVERS,FORCE_TO_TERMINATE")
Exit>Exit()
 
The password named 'pwd' must be edited correctly. Before using the script "stop_servers.cmd", all users should be informed to log off from the database. See how the servers were started in Automatic Server start-up

EDM Server shutdown


 
The EDMsupervisor or EDMconnector should be used to stop the EDMserver and the EDMappServer(s) in a controlled way, either manually or automatically with a script (see next chapter). Before the EDMdatabase is stopped, it is advised that all clients (users) should complete their work and log out – or they are interrupted and may lose some of their work. The EDMserver™/ EDMappserver should not be handled as a simple application that can be started and stopped at any time by just shutting down the processes.
By default the configuration parameter EDM_TRANSACTION_SECURITY is set to BIM_LOG (Before Image Log). This normal setting should secure that all committed transactions are stored (safe) into the EDMdatabase. In case of an abnormal termination of the EDMserver™ no committed transaction should be lost with this option.
The EDMsupervisor is available both as an EDMfatClient & EDMremoteClient (edms_client.exe) and as an EDMstandAlone and & EDMremoteClient (edms.exe). Therefore a double set of commands is available. The EDMconnector only has the EDMremoteClient commands available. Both sets of commands are given below:
 

EDMfatClient

EDMremoteClient

Server>Terminate

Remote Systems>Server>Terminate

 
Note: These commands will stop the EDMserver and all EDMappServers if the option ALL_SERVERS is used. The option FORCE_TO_TERMINATE will force the servers to terminate even if some clients are connected.

System Startup

Automatic Server start-up


 
For simplicity both the EDM Server and the EDM Application Server(s) can be started automatically using a command script. This script can be written/modified by a person knowing a little about Windows script programming. An example is presented below to show how to do it. This script can for example be named "start_servers.cmd" and contain the lines:
start edmserver –s9090 –l../projabc/db -nabc –pabc –o
start edmappserver.exe –s9090
start edmappserver.exe –s9090
 
Then the servers needed to operate on database "abc" (with name "abc" and password "abc") can be started from the directory where this script is stored with the simple command: "start_servers".

EDM Application Server start-up


 
At least one EDM Application Server, called EDMappserver, is needed to use the EDMI Remote Interface. The EDMappserver allows multiple clients to access the EDMserver simultaneously, and encloses all work intensive operations to improve performance. The program is located in the %EDM_HOME%\bin directory. Due to performance reasons, the EDM Application Server(s) will normally run in the same system as the EDMserver. However, the configuration is so flexible that an EDMappserver may run in any system in the network. Some options are available when the EDMappserver is started. The only mandatory parameter is the server port number. Some of the trace output from the EDMappserver is added to the trace generated from the EDMserver to produce a complete trace list. Under normal conditions, no trace output should be used. Some of the options (can be lower or upper letter) are listed below:

-h<host-name> specify the server host name (default is localhost)
-s<port-number> specify the server port number
-ap<port-number> specify EDMappserver port number (By default, the EDMappserver™ port number is incremented by 1 for each EDMappserver process started, starting at the EDMserver port number +1)
-t trace message headers
-w trace message body
-?  display the complete options list


Usage : appserver [-h]<server host name> [-s]<server port number> [-ap]<appserver port number> [-t] [-w] [-tv] [-tb] [-tf]<trace file> [dd] [-?] [-ve] [-et]<console title>

NOTE: All parameters can be quoted to include delimiter characters as white space, comma, hyphen, etc. Example: -et"EDMappServer for AHUS".

Options:

-et      : Console title for this EDMappServer.         : Example: -et"EDMappServer for Statsbygg".
-h       : Specify server host name. (E.g. -hmyedmserver)
-s       : Specify server port number. (E.g. -s9090)
-ap      : Specify appserver port number. (E.g. -ap9091)
-ns      : No enabling of signal catching, i.e., EDMappserver may crash on fatal errors.
-dd      : Delete unused EDMfatClient databases on current EDMappServer database location on EDMappServer start-up.
-t       : Trace message headers
-w       : Trace message body
-tv      : Trace to standard output
-tb      : Brief trace. (Trace command code and name, reply code and name to stdout
-te      : edmi trace option as given in sdai.h. ([SRV_TRACE_BRIEF,SRV_TRACE_ALL_SERVERS]
-tf      : Trace to file (E.g. -tfc:\temp\server_trace.txt)
-x<max file size in MB>  : Soap message trace to 2 trace files named soap_trace_<app.srv. port no>_1|2.log in temp file directory.
-m<virtualMemoryLoggingFileName> :
        This option is only available when the EDMappServer is compiled with the option DEBUG_MEMORY_ALLOCATION set.
        Start virtual memory usage logging to the specified file.
        The specification of the <virtualMemoryLoggingFileName> is optional.
        The default value of the <virtualMemoryLoggingFileName> is
        VMloggingFor_EDMappServer_PortNNNN.txt in the actual temp directory.
        The NNNN in the file name is the port number of the EDMapplicationServer.
        The virtual memory logging will stop when the EDMapplicationServer is terminated and the result can be found in actual <virtualMemoryLoggingFileName>.
        The EDMsupervisor commands SetConfigParameter <START_APPSERVER_VIRTUAL_MEMORY_LOGGING> and
        SetConfigParameter <STOP_APPSERVER_VIRTUAL_MEMORY_LOGGING> can at any time be used to start and stop
        the virtual memory logging respectively.
-?       : Display this list.
-ve  : prints the actual EDMsix version. The actual running EDMappServer will immediately terminate when this command is completed.


 
Examples of EDMappserver startup commands:
    start %EDM_HOME%\bin\edmappserver – s4530
    start edmappserver.exe –s9090 –t -w

EDM Database Server start-up

 
The EDMserver may be installed on a dedicated host (PC) or on the same PC where the EDM client is running. The program is located in the $EDM_HOME\bin directory. EDMserver is started with a list of selected startup parameters. The only mandatory parameter is the server port number. For debugging purposes it is useful to use the trace output parameters, but under normal conditions no trace should be used. It is possible to connect to the database directly when the EDMserver is started, by giving database location, database name, database password and one of the database options, like -o.
Some of the options are listed below. Options are case insensitive. For a complete list, use the -? or –h option.

-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


From edmcore v602.131.32
All parameters (values) to command line arguments can be quoted to include delimiter characters as
white space, comma, hyphen, etc. Example: -et\"EDMserver for Jotne EPMT\".
Command line ""command characters"" are case insenitive. i.e., ""-t"" is equal to ""-T""
The order of the command line options are case incensitive.

List of available command line arguments:

Set EDMconfigurationVariable value :     -ae<configurationVariableName=configurationValue>
       Example: -ae\"EDM_APPSERVER1_TMP_DIR=c:\\AppServerTempDir1\"

Set console title for this EDMserver :   -et<console title>
       Example: -et\"EDMserver for JOTNE EPMT\".

Specify service port number :            -s<service port number>
       Example: -s9090

Specify database location :              -l<database location>
       Example: -l\"c:/EDMdatabase

Specify database password :              -p<databse password>
       Example: -p\"!MyPassword987\" 
 
Create database :                          -c
       The database location (-l<database location>) and database password (-p<database password>) must be specified
       if the \"-c\" option will be effective.
       Example: -c 
  
Open database :                          -o
       The database location (-l<database location>) and database password (-p<database password>) must be specified
       if the \"-o\" option will be effective.
       Example: -o 

Delete database :                          -d
       The database location (-l<database location>) and database password (-p<database password>) must be specified
       if the \"-d\" option will be effective.
       Example: -d 
  

Specify the EDMserver cache size in number of data base blocks: -ec<number of database blocks>
       Example: -ec25000 
  
Server trace can be written to the servers console and/or to a specified trace file.
Trace options can be specified individually for trace to standard output (console) and trace to file.

The trace file names are fixed and built by the following components: \"DataBaseLocationDatabaseName //!!!!!!!
The verion number in the trace file will be incremented each time the actual trace file is reaching the defined \"maxTraceFileSize\" 
and each time the actual database is opened by an EDMserver and the trace to file is specified.

   Specify max trace file size in megabytes  :   -fm<number of MB>
   When the actual trace file reach the specified max size, it will be closed and a new file with the \"version number\"
    incremented, will be opened.
       Example: -fm100

   Specify max number of trace file to be kept before the oldest will be deleted : -fv<max number of trace file to be kept>
   When no \"max number of trace file to be kept\" is defined, all trace will versions will be kept.
       Example: -fv50

Available trace options:
   Trace command and reply messages headers, and errors to standard out :  \"-t\" or \"-ts\"
   Trace command and reply messages headers, and errors to file :       :  \"-tf\"
   Trace command and reply messages headers and bodies, and errors, to standard out: \"-w\" or \"-tws\"
   Trace command and reply messages headers and bodies, and errors, to file:         \"-twf\"
   The \"-t\" and \"-w\" options are kept for backward compatibility.
   The rest of the server trace commands have the following format: \"-t<trace option | \"s/f\">
   In \"s/f\", \"s\" means stadard out and \"f\" means file. None, one or bothe of the \"s\" and \"f\" can be specified.
   The order of \"s\" and \"f\" are insignificant.
   If no \"s/f\" is spcified, the actual trace option is set for trace to standard out.

    Trace brief, i.e., trace only name of command and reply messages:
       Trace brief to standard out:          -tb , -tbs
       Trace brief to file:                  -tbf 

    Trace all, i.e., full trace:
       Trace all to standard out:            -ta , -tas
       Trace all to file:                    -taf

    Trace errors. 
       Trace errors to standard out:         -te or -tes
       Trace errors to file:                 -tef

    Trace events. 
       Trace events to standard out:         -ti or -tis
       Trace events to file:                 -tif


-ts  : Trace to standard output (stdout).
-tf[<traceFileName>] : Trace to specified file <traceFileName>. The <traceFileName> is optional.
       Default file name is ""DataBaseName-ServTrace-Date-Time-version.txt""
       Example: \"db1-ServTrace-20181213-08;04;00-v000001.txt\"
       The last part of the trace file name, \"v0000001\" in the above example, is the trace file version.
       The trace file version will be incremented with one for each new trace file version, independent of the server in the mean time has been
       stopped and restarted. Trace file version 000001 will only be used when the version number is fully exhausted or specifically
       set to 000001 by the -tv command line argument.
       The default location for the trace file is the actual data base location.
-th[<stdout/file>] : Specifying trace message headers,
       i.e., trace options [TRACE_CMD|TRACE_REPLY|TRACE_HEADER|TRACE_ERRORS]
       The optional parameter [<stdout/file>] specifys the \"stdout trace option\" and/or the \"file trace options\",
       The character \"s\" specifies  \"stdout trace option\" and the character \"f\" specifies the \"file trace options\",
       When the <stdout/file> is not specifyed, the actual trace options will be valid for both \"sdout\" and \"file\" trace options.
       Example: \"-ths\" set \"trace message header\" to \"sdout\" trace options.
                \"-thf\" set \"trace message header\" to \"file\" trace options.
       The ""-th"" options must be combined with the ""-ts"" and/or the ""-tf"" options.
-ta[<stdout/file>] : Full trace. i.e., using all trace options:
       See the argument \"-th\" for description of the optional parameter [<stdout/file>] 
       [TRACE_CMD|TRACE_REPLY|TRACE_HEADER|TRACE_BODY|TRACE_VERBOSE_LIGHT|TRACE_VERBOSE|TRACE_ERRORS]
       The ""-ta"" options must be combined with the ""-ts"" and/or the ""-tf"" options.
-tb[<stdout/file>] : Brief trace. Brief trace is [TRACE_CMD |TRACE_REPLY].
       See the argument \"-th\" for description of the optional parameter [<stdout/file>] 
-to[<stdout/file>] : Specify trace options by name. The characters space, colon and semicolon are delimiters between the options.
       See the argument \"-th\" for description of the optional parameter [<stdout/file>] 
       Example: -TOs\"TRACE_CMD,TRACE_REPLY]
       Available trace options are: TRACE_CMD, TRACE_HEADER, TRACE_BODY, TRACE_ERRORS, TRACE_VERBOSE, TRACE_VERBOSE_LIGHT,
                                    TRACE_TIME, TRACE_FLUSH_ON, TRACE_FULL, TRACE_BRIEF
-fm  : Define max size in MB of a trace file. Default value is 0 (zero),
       means no max file size is checked for
-fv  : Define max number of \"full\" trace file versions. Default value is 2, i.e., when the 3rd file 
       is filled up, the 1st file will be deleted
       This value is only effective when the \"max trace file size\" is unequal to 0 (zero).

 
-bs  : Define database backup start time within a day or within a week.
       Specification uses 24 hours clock.
       -bs03:30  means start backup first time the clock is 03:30.
       -bs1.23:00  means start backup at weekday #1, i.e., first sunday at 23:00.
       Weekday 1 - 7 : sunday - saturday.
-bi  : (Optional) Define backup interval. E.g. -bi24:00 means backup every day (every 24 hour).
       -bi7.00:00 means backup every week.
     : When backup start time is specified within a day,
       the default interval is 1 day (24 hours).
     : When backup start time is specified within a week, the default interval is 1 week.
-bl  : (Optional) Database backup location as absolute file path or relative to the
       actual database location.
       Default database backup location will be directly under the actual database location.
       -bl""c:\\edm-database-backups"" specifies the absolute file path of the backup to be 
       ""c:\\edm-database-backups""
       -bl""backups"" specifies the file path of the backup relative to the actual
       database location.
-bn  : (Optional) Database backup name. Default name is constructed from actual database name.
-bv  : (Optional) Database backup versions. -bv14 means 14 backup versions that will be
       cyclic used.
       Default is 10 versions.
-bo  : (Optional) Database backup options. -boCONTINUE_WITH_NEXT_VERSION means use
       oldest version
       on existing backup.
       Other available options: DELETING_EXISTING_BACKUP (require password with -bp command)
       and COMPRESS_BACKUP
       Default options are CONTINUE_WITH_NEXT_VERSION|COMPRESS_BACKUP
-bp  : Database backup password when a database backup with the same name already exhanists and 
     : option DELETING_EXISTING_BACKUP is specified. 

       The EDMdatabase backup commands: ""-bs00:00 -bnForsvarsbygg-DB1"" specifies:
       Start the backup process at first midnight, and run it every midnight.
       The database backup will be given the name ""Forsvarsbygg-DB1""
       and will be located on a directory directly under the actual EDMdatabase directory.
       If this database backup already exists with the same password as the password of the
       actual EDMdatabase,this existing EDMdatabase backup will be used 
       with the options CONTINUE_WITH_NEXT_VERSION|COMPRESS_BACKUP enabled.
       If no such database backup already exists, it will be created with 10 versions.
       The option COMPRESS_BACKUP will be enabled
       and the backup process will start at the given time.

-as<number of EDMappServers> : Defines the number of running EDMappServer for this EDMserver
-an<EDMappserver.exe name> : Defines the name of the actual EDMapplicationServer that will be
       initally started and/or automatically restarted by the EDMserver.
       Example: C:/EDM/edm5.00.0100.08/bin/edmappserver.exe  
-ac<EDMappserver command line arguments> : Command line arguments when starting an EDMappServer.
       Example: \"-s9090 -ts -th\".

-ab  : Abort backup thread.
-at  : close console (output window) when terminating server.
-ve  : print product name and version. Terminate server after operation.            

-ul|-EDMULONG  : Use license (E.g. -ul4325).



From edmcore v600.xxx.xx
Usage: edmserver [-s]<service port number> [-l]<db location> [-n]<db name>
[-ae]<configurationVariable=configurationValue>
[-ar] : Automatic restart of terminated EDMappServers
[-an]<EDMappserver.exe name> Example: O:/EDM/v5.0.xxx/output/win32/debug/edmappserver.exe
[-ac]<EDMappserver command line arguments. Example: -t -w
[-rd]<EDMserver report file directory. Example: c/databases/
[-p]<password> [-o] [-c] [-d]
[-t] [-w] [-tv] [-tm] [-tb] [-tc]
[-te]<trace options> [-tf]<trace file> [-fm]<max trace file size>
[-fv]<max trace file versions>
[-bs]<backup start time> [-bi]<backup interval time> [-bv]<backup versions>
[-bl]<backup location> [-bn]<backup name> [-bo]<backup options name>
[-bp]<backup database password>
[-eb]<database block size>> [-ec]<cache size in blocks> [-ec]<server chache size>
[-et]<console title>
[-as]<number of EDMappServers> [-ac]<EDMappservers command line>
[-m]<virtualMemoryLoggingFileName>
[-ab] [-h|-?]
[-ve]



NOTE: All parameters can be quoted to include delimiter characters as
white space, comma, hyphen, etc. Example: -et"EDMserver for Statsbygg".
Command line command characters are case insenitive.

Options:
-ae<configurationVariable=configurationValue>
       Set EDMconfigurationVariable value
       Example: -aeEDM_APPSERVER1_TMP_DIR=c:\AppServerTempDir1 .
-et  : Console title for this EDMserver.
     : Example: -et"EDMserver for Statsbygg".
-s   : Specify service port number. (E.g. -s9090)
-l   : Database location (E.g. -lc:\databases)
-n   : Database name (E.g. -ndb1)
-p   : Password (E.g. -pmypasswd)
-o   : Open database
-c   : Create database
-d   : Delete database
-eb  : Define database block size in bytes, i.e., configuration variable EDM_DB_BLOCK_SIZE.
       Legal values: 1024, 2048, 4096, 8192 or 16384.
       This option is only effective when the [-c|-C] option is specified.
-ec  : Define the EDMserver cache size in number of data base blocks.
-sd  : Enable system debugging, i.e., enable the xpxSystemTrap() functionality.

-t   : Trace message headers,
       i.e., [SRV_TRACE_CMD | SRV_TRACE_REPLY | SRV_TRACE_HEADER | SRV_TRACE_BODY]
-w   : Full trace.
           The -t and -w options must be combined by at least one of the -tv or -tm options.
-tv  : Trace to standard output (stdout).
-tm  : Trace to the defined trace output file.
-tb  : Brief trace to standard output (stdout).
       Brief trace is [SRV_TRACE_CMD | SRV_TRACE_REPLY].
       This option cannot be combined with the -tv option.
-tc  : Brief trace to file. Brief trace is [SRV_TRACE_CMD | SRV_TRACE_REPLY].
       This option cannot be combined with the -tm option.
-te  : EDMserver trace option as given in the file sdai.h.
       ([SRV_TRACE_CMD,SRV_TRACE_REPLY ...]
-tf  : Define the actual trace file name ( -tfc:/temp/server_trace.txt)
-fm  : Define max size in MB of a trace file. Default value is 0 (zero),
           means no max file size is checked for
-fv  : Define max number of trace file versions.

-bs  : Define database backup start time within a day or within a week.
       Specification uses 24 hours clock.
       -bs03:30  means start backup first time the clock is 03:30.
       -bs1.23:00  means start backup at weekday #1, i.e., first sunday at 23:00.
       Weekday 1 - 7 : sunday - saturday.
-bi  : (Optional) Define backup interval. E.g. -bi24:00 means backup every day (every 24 hour).
       -bi7.00:00 means backup every week.
     : When backup start time is specified within a day,
       the default interval is 1 day (24 hours).
     : When backup start time is specified within a week, the default interval is 1 week.
-bl  : (Optional) Database backup location as absolute file path or relative to the
       actual database location.
       Default database backup location will be directly under the actual database location.
       -blc:\edm-database-backups specifies the absolute file path of the backup to be
       c:\edm-database-backups
       -blbackups specifies the file path of the backup relative to the actual
       database location.
-bn  : (Optional) Database backup name. Default name is constructed from actual database name.
-bv  : (Optional) Database backup versions. -bv14 means 14 backup versions that will be
       cyclic used.
       Default is 10 versions.
-bo  : (Optional) Database backup options. -boCONTINUE_WITH_NEXT_VERSION means use
       oldest version
       on existing backup.
       Other available options: DELETING_EXISTING_BACKUP (require password with -bp command)
       and COMPRESS_BACKUP
       Default options are CONTINUE_WITH_NEXT_VERSION|COMPRESS_BACKUP
-bp  : Database backup password when a database backup with the same name already exists and
     : option DELETING_EXISTING_BACKUP is specified.

       The EDMdatabase backup commands: -bs00:00 -bnForsvarsbygg-DB1 specifies:
       Start the backup process at first midnight, and run it every midnight.
       The database backup will be given the name Forsvarsbygg-DB1
       and will be located on a directory directly under the actual EDMdatabase directory.
       If this database backup already exists with the same password as the password of the
       actual EDMdatabase,this existing EDMdatabase backup will be used
       with the options CONTINUE_WITH_NEXT_VERSION|COMPRESS_BACKUP enabled.
       If no such database backup already exists, it will be created with 10 versions.
       The option COMPRESS_BACKUP will be enabled
       and the backup process will start at the given time.
-as<number of EDMappServers> : Defines the number of running EDMappServer for this EDMserver
-an<EDMappserver.exe name> : Defines the name of the actual EDMapplicationServer that will be
       initally started and/or automatically restarted by the EDMserver.
       Example: C:/EDM/edm5.00.0100.08/bin/edmappserver.exe
-ac<EDMappserver command line arguments> : Command line arguments when starting an EDMappServer.
       Example: -t -w.
-m<virtualMemoryLoggingFileName> :

       This option is only available when the EDMserver is compiled with
       the option DEBUG_MEMORY_ALLOCATION set.

       Start virtual memory usage logging to the specified file.
       The specification of the <virtualMemoryLoggingFileName> is optional.
       The default value of the <virtualMemoryLoggingFileName> is
       VMloggingFor_EDMserver_PortNNNN.txt in the actual temp directory.
       The NNNN in the file name is the actual port number of the EDMserver.
       The virtual memory logging will stop when the EDMserver is terminated and the result
       can be found in the actual <virtualMemoryLoggingFileName>.
       The EDMsupervisor commands SetConfigParameter <START_SERVER_VIRTUAL_MEMORY_LOGGING> and
       SetConfigParameter <STOP_SERVER_VIRTUAL_MEMORY_LOGGING> can at any time be used
       to start and stop the virtual memory logging respectively.
-ab  : Abort backup thread.
-ve  : prints the actual EDMsix version. The actual running EDMserver will immediately terminate when this command is completed.

-ul|-EDMULONG  : Use license (E.g. -ul4325).
-h|-? : Display this list.
Please press CR to exit.



Examples of EDMserver startup commands:
    start %EDM_HOME%\bin\edmserver.exe -s9090 -t -w
    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.