Daemon

All Change Log Daemon configuration settings are stored in one file called Daemon.properties.

The Daemon.properties can be found in the /opt/escenic/changelog-daemon-2.3.5-3/config/ folder. It contains the following property settings:

urls

Set this to point to the Content Store change log(s) you want to use. To monitor a single publication change log, for example, you would enter:

url=http://editorial-host-ip-address/webservice/escenic/changelog/publication/publicationName

Where editorial-host-ip-address is the host name or IP address of your editorial-host, and publicationName is either:

You can also configure the Change Log Daemon to monitor multiple change logs. For details, see Complex Configurations.

In order to maintain compatibility with previous versions of the Change Log Daemon, the following alternative forms of the urls property are accepted:

  • The property name url may be used instead of urls.

  • A publication ID may be used instead of a publication name in the specified URL.

username

A Content Store user name. This user name will be used log into the Content Store web service and access the change log.

password

The password for the specified user.

name

An optional publication name to be used in the Change Log Daemon's hit reports and output file paths (error files, for example). If no name is specified, then a default name is created from the change log URL.

types

An optional comma-separated list of type names, used to specify which type(s) of change log the change log daemon will listen to. Only used when the urls property is set to listen to all changelogs (see All Change Logs). The following type names may be specified:

publication

Records changes to the content of a publication, but does not record structural changes (moving a section or content item, for example).

person

Records changes to persons and users.

section

Records the same events as a publication change log, but is restricted to a specific section and its hierarchy.

publication-structural

Records structural changes to a publication (moving a section or content item, for example).

classification

Records changes to tags.

agent

The nursery path to the agent to use when consuming the change log. This defaults to /com/escenic/daemon/Agent, so you only need to have a classes/com/escenic/daemon/ directory and put your Agent.properties there.

executors

A positive number specifying the maximum number of threads that may be run in parallel to retrieve change logs from the Content Store.

The default value is 3.

agentExecutors

A positive number specifying th maximum number of agent executor threads that may be run in parallel. By default this option is set to 1. You may be able to improve performance in some cases by setting it to a higher value, allowing several change long entries to be processed simultaneously. You should only do this if:

  • The agent you are using to process the change log entries is thread-safe.

  • The sequence of the change log entries is not significant.

temporaryErrorsFolder

The folder in which temporary failures are stored. The default is .temporary-errors.

permanentErrorsFolder

The folder in which permanent failures are stored. The default is .permanent-errors.

direction

The direction in which log entries are to be read. Allowed values are:

previous (default)

From oldest to newest

next

From newest to oldest

pollInterval

The number of seconds between attempts to check the change log. The value must be larger than 0. The default is 10.

delayBeforeProcessingPage

The number of seconds to wait before processing a page. The delay will be applied after a page has been retrieved from the backend and before the entries in the page are processed. The default is 0.

This option is only needed if the configured agent is not using the Atom Entry from the changelog, but instead retrieves it from the backend.

bootstrapDelay

The number of seconds to wait after start-up before checking the change log for the first time. The value must be larger than 0. The default is 5.

temporaryErrorPollInterval

The number of seconds between attempts to check the temporary errors folder (in order to retry). The value must be larger than 0. The default is 60.

maxTotalConnections

The maximum number of concurrent HTTP requests that may be executed. The default is 10.

You should set maxTotalConnections to the same value in all your change log daemons. Specifying different values in different daemons will increase the number of HTTP worker threads and may also increase the load on the Content Store.

connectionTimeout

The timeout used when connecting to the Content Store (for each poll request), specified in milliseconds. The default is 60000. If the timeout expires then polling is abandoned until the next pollInterval expires.

You should set connectionTimeout to the same value in all your change log daemons. Specifying different values in different daemons will increase the number of HTTP worker threads and may also increase the load on the Content Store.

responseTimeout

The timeout used when waiting for a response to a poll request, specified in milliseconds. The default is 60000. If the timeout expires then polling is abandoned until the next pollInterval expires.

processAllRemainingPages

The Content Store change logs are paged: when the Change Log Daemon submits a request, the Content Store does not necessarily return all the unread entries in the log: it has a maximum page size (10 by default), and will not return more than 10 entries at a time. By default, the Change Log Daemon processes whatever is returned and then waits until the poll interval has expired before submitting a new request. This means that when the Change Log Daemon first starts up, it may take some time to clear a backlog of entries.

You can avoid this delay by setting processAllRemainingPages to true. The Change Log Daemon will then continue submitting requests in such a situation until the queue of unread entries is empty.

By default processAllRemainingPages is set to false. When running in SSE mode, however (see below), this property is implicitly set to true and cannot be switched off.

enableSSE

Set to true to enable SSE mode. In SSE mode, the Change Log Daemon listens for Server-sent events (SSE) instead of polling the Content Store. The Content Store generates a server-sent event every time it appends content to a change log, and in SSE mode, the Change Log Daemon will check a change log for new events every time it receives an SSE event, enabling it to react instantly to Content Store changes instead of waiting for the next poll event. It also means that no unnecessary polling needs to be carried out.

By default, enableSSE is set to false. You are, however, recommended to set it to true, since SSE mode operation is more efficient. If you set it to true, then there are a number of additional configuration properties you can set to define how the Change Log Daemon uses SSE.

refreshConfigurationInterval

The accessible changelogs of a user may vary over time. The user may be granted access to new sections or publications and access to other sections may be revoked.

By default, the Change Log Daemon only checks accessible changelogs during bootstrapping. To detect new changelogs to monitor the Change Log Daemon must be restarted.

You can avoid this by setting refreshConfigurationInterval to a positive number, specified in minutes. The Change Log Daemon will then re-configure itself at regular intervals. Reconfiguration will only occur if the number of accessible changelogs has changed.