How to Configure Internal Parameters of Exploratory Collaboration Server

This Note explains about internal parameters of Exploratory Collaboration Server and how to configure them.

Nginx Configurations

This section is about configurations for the Nginx server that receives HTTP requests at the front-end of Exploratory Collaboration Server.

You can configure these pararamers by editing the default.conf file, which is located under the exploratory directory that was created when you expanded the tar.gz file at the installation of the Collaboration Server.

client_max_body_size

If the HTTP request body size of a request from the client (Web browsers or Exploratory Desktop) exceeds this value, the HTTP request will be rejected.

By default, this is set to unlimited to accommodate upload of larger EDF file.

  • Default from Nginx: 1m (1 Mbyte)
  • Default of Collaboration Server: 0 (unlimited)

proxy_read_timeout

If Nginx's reading of response from the backend Express server halts longer than this length of time, the connection will be closed.

Collaboration Server's default is set longer so that it can accommodate upload of larger EDF files.

  • Default of Nginx: 60s (60 seconds)
  • Default of Collaboration Server: 1200s (1200 seconds = 20 minutes)

proxy_send_timeout

When Nnigx sends requests to the backend Express server, if writing of the request content halts longer than this duration of time, the connection will be closed.

Collaboration Server's default is set longer so that it can accommodate upload of larger EDF files.

  • Defalt from Nginx: 60s (60 seconds)
  • Default of Collaboration Server: 1200s (1200 seconds = 20 minutes)

Configurations of Interactive Session

This section is about the configurations of Interactive Session.

You can configure these pararamers by editing the docker-compose.yml file, which is located under the "exploratory" directory that was created when you expanded the tar.gz file at the installation of the Collaboration Server. The parameters are under the "environment" section under the "exploratory" section in the docker-compose.yml.

Example : Setting EXPL_INTERACTIVE_SESSION_USER_TIMEOUT to 1800000 (30 minutes) :

exploratory:
    ...
    environment:
      ...
      - EXPL_INTERACTIVE_SESSION_USER_TIMEOUT=1800000
      ...

EXPL_INTERACTIVE_SESSION_USER_TIMEOUT

If there is no interaction with the user for longer than the time specified here, the interactive session will be terminated. Also, if the refreshing of data and/or recalculation that takes place when the user changes the parameter takes more than this amount of time, the interactive session is terminated as well.

  • Unit: Millisecond
  • Default: 900000 (15 minutes = 15 * 60 * 1000)

EXPL_INTERACTIVE_SESSION_TIMEOUT

If any of the individual R command issued in an interactive session exceeds this amount of time, the interactive session will be terminated.

  • Unit: Millisecond
  • Default: 3000000 (50 minutes = 50 * 60 * 1000)

EXPL_INTERACTIVE_SESSION_INIT_TIMEOUT

If the refreshing of data and/or recalculation that takes place after the toggle switch for interactive session is turned on, before the interactive session becomes available to the user takes more than this amount of time, the interactive session is terminated.

  • Unit: Millisecond
  • Default: 1800000 (30 minutes = 30 * 60 * 1000)

EXPL_INTERACTIVE_SESSION_SHUTDOWN_TIMEOUT

If the time spent since the beginning of an interactive session exceeds this amount of time, the session will be terminated.

  • Unit: Millisecond
  • Default: 7200000 (2 hours = 2 * 60 * 60 * 1000)

EXPL_INTERACTIVE_SOCKET_PING_INTERVAL

This is a parameter for Socket.IO, which is a library that Interactive Session uses for the interactive connection with the user's web browser.

Socket.IO sends ping messages over the connection to check the health of the connection periodically, once in this amount of time.

  • Unit: Millisecond
  • Default: 25000 (25 seconds = 25 * 1000)

EXPL_INTERACTIVE_SOCKET_PING_TIMEOUT

This is a parameter for Socket.IO too.

If the response to the ping request from the browser does not come back for this amount of time, the connection will be closed.

If you need to change this value, so that you can avoid this issue of Socket IO, we recommend to pick a value longer than EXPL_INTERACTIVE_SOCKET_PING_INTERVAL.

  • Unit: Millisecond
  • Default: 60000 (1 minute = 60 * 1000)

Configuration of Scheduler

This section is about the configurations of the Scheduler.

EXPL_SCHEDULER_MAX_CONCURRENCY

This is the maximum number of jobs the Scheduler can run at the same time. If there are more jobs to run than this number, the jobs are queued to wait for its turn to be executed.

  • Default: 4