Configuring optional settings in general.properties

In addition to the mandatory settings in general.properties, there are other settings that will improve your WorldServer experience, whether you installed WorldServer with the Windows installer or you installed it manually through Apache Tomcat 8.

PropertyDescription
url_of_origin
Find this property and modify its value to include the URL to the root of the WorldServer application under the application server. For example:
url_of_origin=http://worldserver.company.com:8080/ws-legacy

This URL is used in various places in WorldServer, such as within email notifications and in translation kits. The hostname in the URL should be a host that can be resolved and that WorldServer users can access.

Do not use localhost or an IP address as the hostname.

If you do not configure this property, users will have to manually set it in their client every time they want to upload a project back to the server.

zip_encoding

WorldServer uses UTF-8 encoding to encode file names in ZIP archives. However, some localized versions of Windows use different encodings to read ZIP archives. If the encodings do not match, the extracted file names may be corrupt. To avoid this issue, configure WorldServer to use the same encoding as your localized system.

Search for the zip_encoding property and change it from the default (UTF-8) to the encoding of your local system. For example, for Kanji or Katakana use MS932. The default Windows ZIP compression does not support UTF-8, and, therefore, you should not use it.

file_attribute_storage

By default, attachment attributes are stored in the WorldServer temp folder. You can configure WorldServer to store these wherever you want. You might not want them stored in the temp folder, because that folder gets cleaned up periodically.

To configure WorldServer to store these attachments elsewhere, uncomment the file_attribute_storage property and specify a more suitable location. If you are using WorldServer in a clustered environment, all machines in the cluster must have access to this location.

The line you should uncomment and modify is:
# file_attribute_storage=c:/Shared/Attributes
session_client_check

When you set it to on, the session_client_check property ensures that a session can only be used by the same browser that created it. If the same URL is used from another browser, the session is considered invalid and the user has to log in again. This applies to the classic and TransPort components of WorldServer.

As a security measure, in WorldServer 11.x, users always have to log in again if they copy the same valid URL into another browser. To enable the session_client_check property, your browser must accept cookies.

calculate_segment_length_in_bytes

This property determines whether WorldServer measures segment length in bytes or in characters. By default, the length is measured in characters.

To enable length calculation in bytes, set the value of the property to true. The property only applies to the maximum segment length limit functionality. That is, it works in combination with the property setting for the maximum_target_length_penalty property, which you can set in tm.properties.

The line you should uncomment and modify is:
#calculate_segment_length_in_bytes=false
adhoc_asset_timeout

This property schedules the removal of obsolete data from your database when you create translation jobs from WorldServer Explorer.

By default, this property is disabled (set at zero days).

enable_live_translation_memory

This property allows WorldServer to operate in Live TM mode, which adds and tracks entries to the translation memory during the translation process.

By default, this property is enabled.

workbench_generate_target

This property manages the automatic generation of the target file.

By default, this property is enabled. To disable it, uncomment the following line:
#workbench_generate_target=false
absolute_session_timeout

This property manages the timeout of any login session.

The value of this property is expressed in seconds. For example, absolute_session_timeout=1200 means that every login session lasts only 1200 seconds (20 minutes).

You can disable this property by setting its value to 0 or by commenting it.

session_timeout

This property manages the timeout of idle login sessions.

The value of this property is expressed in seconds. For example, session_timeout=1200 means that logged in users who do not perform any activity for 1200 seconds (20 minutes) are logged out automatically.

The session timeout value you configure in the general.properties file should have the same value both in the ws-api and in the ws subfolders.

You cannot disable this property. However, to make sure that sessions almost never expire, you can set its value to a very large number such as 18000 (five hours).

If you set its value to 0, users cannot log in to WorldServer anymore. If you comment the property, the default value (7200) is applied.

security.password.encryption.algorithmYou can select another type of password encryption than the default PBKDF2 by configuring the security.password.encryption.algorithm=<value> property.
ws.enforce.navigation.panelYou can enable or disable the slide-out navigation pane by setting the ws.enforce.navigation.panel parameter to true or false. Also, you must specify the URL to the new user interface as the value of the navigation.panel.url property.
prefer_shallow_soap_objects

The prefer_shallow_soap_objects property was added in WorldServer 10.4.5. When you add it and enable it (prefer_shallow_soap_objects=true), it addresses an issue related to bad performance and high memory usage caused by webservices deep copies for heavy duty resources. This property will use shallow copies (which do not expand embedded resources) for the following resources: WSGroup, WSClient, WSRole, WSLocale, WSWorkgroup, WSProject. It is recommended for systems that integrate with SDL Web and Live Content Architect.

By default, this property is disabled (=false). You need to add it if you want to enable it. It is not set to true by default because some integrations may rely on webservices deep copies.

Read the comments in the general.properties file to see the entire range of available properties.

Enabling entity history

You can enable the entity history logging category, which adds information related to changes between users and groups to the task history log, by adding the following lines to the general.properties file in the ws-legacy folder:
log4j.appender.history.File=<path-to-log-folder>\history.log

log4j.appender.history=org.apache.log4j.RollingFileAppender
log4j.appender.history.MaxFileSize=100000KB
log4j.appender.history.MaxBackupIndex=5
log4j.appender.history.layout=com.idiominc.ws.log.entityhistory.pattern.EntityEventPatternLayout
log4j.appender.history.layout.ConversionPattern=[%d] %E %O %u: %m%n
log4j.category.com.idiominc.ws.log.entityhistory.EntityHistoryLogger=debug, history
log4j.additivity.com.idiominc.ws.log.entityhistory=false
, where E is the changed entity, O is the operation performed on the entity, and u is the user who performed the operation.
Example of history log entries:
[2017-01-25 17:28:39,106] WORKGROUP_LINK DELETE (admin,1) : User 2219 was removed from workgroup 1002

[2017-01-25 17:28:39,151] ROLE_LINK DELETE (admin,1) : User 2219 was removed from workflow role 14

[2017-01-25 18:27:02,218] GROUP_LINK ADD (admin,1) : User 2125 was added to workflow role 11
This exception is caused by the fact that the ws application cannot access the legacy code base.

Enabling the stats engine

You can enable the stats engine logging category by adding the following line to the general.properties file in the ws-api folder:
log4j.appender.stats.File=<path-to-log-folder>\stats.log
and by uncommenting the following lines:
log4j.category.STATENG.EVENTS=debug, stats
log4j.additivity.STATENG.EVENTS=false

log4j.appender.stats=org.apache.log4j.RollingFileAppender
log4j.appender.stats.MaxFileSize=100000KB
log4j.appender.stats.MaxBackupIndex=5
log4j.appender.stats.layout=org.apache.log4j.PatternLayout
log4j.appender.stats.layout.ConversionPattern=[%d] %p %t %c: %m%n
where d stands for the date, p stands for the priority (such as debug, warning, error, info), t stands for the thread on which the login is performed, c stands for the category, m stands for the message displayed, and n stands for new line.

Further configurations

In addition to the properties presented earlier, you can also configure the following in the general.properties file:
  • Links on the WorldServer Home page.
  • The way in which WorldServer is used in a cluster, with some machines serving as workflow engines and others as background processing engines.
  • The URL of the reporting engine.
  • Recurrence and notification engines.