Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Normally you run the ECFLOW server in the background and the stderr and stdout is redirected to /dev/null by executing the following command in a start-up script:
ecflow_server > /dev/null 1>&2
When learning how to use ECF, you may open a window and run ecFlow in that window interactively. Notice that server still writes the log file (into ECF_LOG.)

ECFLOW log server

The default behaviour of the ecflowview client is to access the output file directly (case 1 in Figure 7 2).
When this is not possible, e.g. when the ecflowview host cannot see the relevant file system, the ecFlow server is asked to request the output (case 2 in Figure 7 2). If the output file is large the ecFlow server will supply the last 10000 lines of the output. You can use the following command to get the relevant file associated with a given node:
ecflow_client –file=node_path [script, | job | jobout | manual |stat]
This will output the file to standard output. This capability uses ecFlow to get the file. The original file can be located in a directory that is visible to the ECF, but not to the client.
To view output from a server where the ecFlow server does not have access to the file systems we can use a log server (case 3 in Figure 7 2).
Using ecflowview, you click on the manual, script, output or job buttons. If you configured your ecflowview to retrieve files locally (Edit/preferences/SMS) ecflowview first looks if the required file is directly accessible. If not, it looks into the suite definition for the variables ECF_LOGHOST and ECF_LOGPORT to retrieve the file from the ecFlow log server. If the log server does not respond it contacts the ecFlow server and retrieves the file from it. This consumes available resources for the ecFlow server, so the log server is useful in reducing ecFlow server load when many users try to get large output files.
  Figure 7 2. Accessing job output, using ecflowview.
Image Added
The log server consists in a Perl script logsvr.pl launched by a shell script. These are available in the ecFlow distribution. The log server uses three variables set by the shell script:

  • ECF_LOGHOST: the name of the log server host
  • ECF_LOGPORT : the port used by the log server (typically we use 9316)
  • ECF_LOGPATH : main path where the scripts may be found below, on the target host e.g. export ECF_LOGPATH=path1:path2:path3
  • ECF_LOGMAP : indicates the log server how to transform the file name to retrieve the file locally, e.g. export ECFLOGMAP=path1:path1:path1:local1:path2:path2:path2:local2 This indicates that a mapping between local1 by path1 from the file name when name fits, or local2 by path2 ..., path1 is local to the target host, and local1 is local to the ecFlow server. The log server is launched on the target host (ECFLOGHOST).

You can contact the log server manually using
telnet <host> <port> get_file_path