Operational Configuration (Full)

access-controller

Used in: security-config.

The following table describes the elements you can define within the access-controller element.

Element Required/Optional Description
<class-name> Required Specifies the name of a Java class that implements com.tangosol.net.security.AccessController interface, which will be used by the Coherence Security Framework to check access rights for clustered resources and encrypt/decrypt node-to-node communications regarding those rights.

Default value is com.tangosol.net.security.DefaultController.
<init-params> Optional Contains one or more initialization parameter(s) for a class that implements the AccessController interface.

For the default AccessController implementation the parameters are the paths to the key store file and permissions description file, specified as follows:
<init-params>
  <init-param id="1">
    <param-type>java.io.File</param-type>
    <param-value system-property="tangosol.coherence.security.keystore"></param-value>
  </init-param>
  <init-param id="2">
    <param-type>java.io.File</param-type>
    <param-value system-property="tangosol.coherence.security.permissions"></param-value>
  </init-param>
</init-params>



Preconfigured overrides based on the default AccessController implementation and the default parameters as specified above are tangosol.coherence.security.keystore and tangosol.coherence.security.permissions.

For more information on the elements you can define within the init-param element, refer to init-param.

authorized-hosts

Used in: cluster-config.

Description

If specified, restricts cluster membership to the cluster nodes specified in the collection of unicast addresses, or address range. The unicast address is the address value from the authorized cluster nodes' unicast-listener element. Any number of host-address and host-range elements may be specified.

Elements

The following table describes the elements you can define within the authorized-hosts element.

Element Required/Optional Description
<host-address> Optional Specifies an IP address or hostname. If any are specified, only hosts with specified host-addresses or within the specified host-ranges will be allowed to join the cluster.

The content override attributes id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.
<host-range> Optional Specifies a range of IP addresses. If any are specified, only hosts with specified host-addresses or within the specified host-ranges will be allowed to join the cluster.

The content override attributes id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

The content override attributes xml-override and id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

burst-mode

Used in: packet-publisher.

Description

The burst-mode element is used to control the rate at which the Packet publisher will transmit packets on the network, by specif icing the maximum number of packets to transmit without pausing.

Elements

The following table describes the elements you can define within the burst-mode element.

Element Required/Optional Description
<maximum-packets> Required Specifies the maximum number of packets that the packet publisher will send in a row without pausing. Zero indicates no limit. By setting this value relatively low, the publisher is forced to pause when sending a large number of packets, which may reduce collisions in some instances or allow incoming traffic to be more quickly processed.

Default value is 1024.
<pause-milliseconds> Required Specifies the minimum number of milliseconds that the Publisher will pause between long bursts of packets. By increasing this value, the packet publisher is forced to pause longer when sending a large number of packets, which may reduce collisions in some instances or allow incoming traffic to be more quickly processed.

Default value is 4.

callback-handler

Used in: security-config.

The following table describes the elements you can define within the callback-handler element.

Element Required/Optional Description
<class-name> Required Specifies the name of a Java class that provides the implementation for the javax.security.auth.callback.CallbackHandler interface.
<init-params> Optional Contains one or more initialization parameter(s) for a CallbackHandler implementation.

For more information on the elements you can define within the init-param element, refer to init-param.

cluster-config

Used in: coherence.

Description

Contains the cluster configuration information, including communication and service parameters.

Elements

The following table describes the elements you can define within the cluster-config element.

Element Required/Optional Description
<cluster-name> Optional Specifies the name for the cluster. In order for a new node to join a running cluster it must be configured with the same cluster name as the running cluster. This prevents separate uniquely named clusters, which are unknowingly using the same multicast address from erroneously forming a single cluster.

reconfigured override is tangosol.coherence.clustername.

Default value is an empty string.
<unicast-listener> Required Specifies the configuration information for the Unicast listener, used for receiving point-to-point network communications.
<multicast-listener> Required Specifies the configuration information for the Multicast listener, used for receiving point-to-multipoint network communications.
<shutdown-listener> Required Specifies the action to take upon receiving an external shutdown request.
<tcp-ring-listener> Required Specifies configuration information for the TCP Ring listener, used to death detection.
<packet-publisher> Required Specifies configuration information for the Packet publisher, used for network data transmission.
<incoming-message-handler> Required Specifies configuration information for the Incoming message handler, used for dispatching incoming cluster communications.
<outgoing-message-handler> Required Specifies configuration information for the Outgoing message handler, used for dispatching outgoing cluster communications.
<authorized-hosts> Optional Specifies the hosts which are allowed to join the cluster.
<services> Required Specifies the declarative data for all available Coherence services.
<filters> Optional Specifies data transformation filters, which can be used to perform custom transformations on data being transfered between cluster nodes.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

coherence

Description

The coherence element is the root element of the operational deployment descriptor.

Elements

The following table describes the elements you can define within the coherence element.

Element Required/Optional Description
<cluster-config> Required Contains the cluster configuration information. This element is where most communication and service parameters are defined.
<logging-config> Required Contains the configuration information for the logging facility.
<configurable-cache-factory-config> Required Contains configuration information for the configurable cache factory. It controls where, from, and how the cache configuration settings are loaded.
<management-config> Required Contains the configuration information for the Coherence Management Framework.
<security-config> Required Contains the configuration information for the Coherence Security Framework.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

configurable-cache-factory-config

Used in: coherence.

Elements

The following table describes the elements you can define within the configurable-cache-factory-config element.

Element Required/Optional Description
<class-name> Required Specifies the name of a Java class that provides the cache configuration factory.

Default value is com.tangosol.net.DefaultConfigurableCacheFactory.
<init-params> Optional Contains one or more initialization parameter(s) for a cache configuration factory class which implements the com.tangosol.run.xml.XmlConfigurable interface.

For the default cache configuration factory class (DefaultConfigurableCacheFactory) the parameters are specified as follows:
<init-param>
  <param-type>java.lang.String</param-type>
  <param-value system-property="tangosol.coherence.cacheconfig">
    coherence-cache-config.xml
  </param-value>
</init-param>

Preconfigured override is tangosol.coherence.cacheconfig.

Unless an absolute or relative path is specified, such as with ./path/to/config.xml, the application's classpath will be used to find the specified descriptor.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

filters

Used in: cluster-config.

Description

Data transformation filters can be used by services to apply a custom transformation on data being transfered between cluster nodes. This can be used for instance to compress or encrypt Coherence network traffic.

Implementation

Data transformation filters are implementations of the com.tangosol.util.WrapperStreamFactory interface.

Data transformation filters are not related to com.tangosol.util.Filter, which is part of the Coherence API for querying caches.

Elements

The following table describes the elements you can define within each filter element.

Element Required/Optional Description
<filter-name> Required Specifies the canonical name of the filter. This name is unique within the cluster.

For example: gzip.

The content override attributes id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.
<filter-class> Required Specifies the class name of the filter implementation. This class must have a zero-parameter public constructor and must implement the com.tangosol.util.WrapperStreamFactory interface.
<init-params> Optional Specifies initialization parameters, for configuring filters which implement the com.tangosol.run.xml.XmlConfigurable interface.

For example when using a com.tangosol.net.CompressionFilter the parameters are specified as follows:
<init-param>
  <param-name>strategy</param-name>
  <param-value>gzip</param-value>
</init-param>
<init-param>
  <param-name>level</param-name>
  <param-value>default</param-value>
</init-param>

For more information on the parameter values for the Compression Filter, refer to Compression Filter Parameters.

The content override attributes xml-override and id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

host-range

Used in: authorized-hosts.

Description

Specifies a range of unicast addresses of nodes which are allowed to join the cluster.

Elements

The following table describes the elements you can define within each host-range element.

Element Required/Optional Description
<from-address> Required Specifies the starting IP address for a range of host addresses.

For example: 198.168.1.1.
<to-address> Required Specifies to-address element specifies the ending IP address (inclusive) for a range of hosts.

For example: 198.168.2.255.

The content override attributes id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

incoming-message-handler

Used in: cluster-config.

Description

The incoming-message-handler assembles UDP packets into logical messages and dispatches them to the appropriate Coherence service for processing.

Elements

The following table describes the elements you can define within the incoming-message-handler element.

Element Required/Optional Description
<maximum-time-variance> Required Specifies the maximum time variance between sending and receiving broadcast Messages when trying to determine the difference between a new cluster Member's system time and the cluster time.

The smaller the variance, the more certain one can be that the cluster time will be closer between multiple systems running in the cluster; however, the process of joining the cluster will be extended until an exchange of Messages can occur within the specified variance.

Normally, a value as small as 20 milliseconds is sufficient, but with heavily loaded clusters and multiple network hops it is possible that a larger value would be necessary.

Default value is 16.
<use-nack-packets> Required Specifies whether the packet receiver will use negative acknowledgments (packet requests) to pro-actively respond to known missing packets.

Legal values are true or false.

Default value is true.
<priority> Required Specifies a priority of the incoming message handler execution thread.

Legal values are from 1 to 10.

Default value is 7.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

Unable to render {include} Couldn't find a page to include called: init-param
Unable to render {include} Couldn't find a page to include called: init-params

logging-config

Used in: coherence.

Elements

The following table describes the elements you can define within the logging-config element.

Element Required/Optional Description
<destination> Required Specifies the output device used by the logging system.

Legal values are:

stdout
stderr
jdk
log4j
a file name

Default value is stderr.

If jdk is specified as the destination, Coherence must be run using JDK 1.4 or later; likewise, if log4j is specified, the Log4j libraries must be in the classpath. In both cases, the appropriate logging configuration mechanism (system properties, property files, etc.) should be used to configure the JDK/Log4j logging libraries.

Preconfigured override is tangosol.coherence.log
<severity-level> Required Specifies which logged messages will be output to the log destination.

Legal values are:

0     - only output without a logging severity level specified will be logged
1     - all the above plus errors
2     - all the above plus warnings
3     - all the above plus informational messages
4-9 - all the above plus internal debugging messages (the higher the number, the more the messages)
-1   - no messages

Default value is 3.

Preconfigured override is tangosol.coherence.log.level
<message-format> Required Specifies how messages that have a logging level specified will be formatted before passing them to the log destination.

The value of the message-format element is static text with the following replaceable parameters:

{date}      - the date/time format (to a millisecond) at which the message was logged
{version} - the Tangosol Coherence exact version and build details
{level}    - the logging severity level of the message
{thread}   - the thread name that logged the message
{member}   - the cluster member id (if the cluster is currently running)
{text}      - the text of the message

Default value is:

{date} Tangosol Coherence {version} <{level}> (thread={thread}, member={member}): {text}
<character-limit> Required Specifies the maximum number of characters that the logger daemon will process from the message queue before discarding all remaining messages in the queue. Note that the message that caused the total number of characters to exceed the maximum will NOT be truncated, and all messages that are discarded will be summarized by the logging system with a single log entry detailing the number of messages that were discarded and their total size. The truncation of the logging is only temporary, since once the queue is processed (emptied), the logger is reset so that subsequent messages will be logged.

The purpose of this setting is to avoid a situation where logging can itself prevent recovery from a failing condition. For example, with tight timings, logging can actually change the timings, causing more failures and probably more logging, which becomes a vicious cycle. A limit on the logging being done at any one point in time is a "pressure valve" that prevents such a vicious cycle from occurring. Note that logging occurs on a dedicated low-priority thread to even further reduce its impact on the critical portions of the system.

Legal values are positive integers or zero. Zero implies no limit.

Default value is 4096.

Preconfigured override is tangosol.coherence.log.limit

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

management-config

Used in: coherence.

Elements

The following table describes the elements you can define within the management-config element.

Element Required/Optional Description
<domain-name> Required Specifies the name of the JMX domain used to register MBeans exposed by the Coherence Management Framework.
<managed-nodes> Required Specifies whether or not a cluster node's JVM has an [in-process] MBeanServer and if so, whether or not this node allows management of other nodes' managed objects.

Legal values are:
  • none - No MBeanServer is instantiated.
  • local-only - Manage only MBeans which are local to the cluster node (i.e. within the same JVM).
  • remote-only - Manage MBeans on other remotely manageable cluster nodes. Requires a Coherence Enterprise License
  • all - Manage both local and remotely manageable cluster nodes. Requires a Coherence Enterprise License

Default value is none.

Preconfigured override is tangosol.coherence.management

<allow-remote-management> Required Specifies whether or not this cluster node exposes its managed objects to remote MBeanServer(s).

Legal values are: true or false.

Default value is false.

Preconfigured override is tangosol.coherence.management.remote
<read-only> Required Specifies whether or not the managed objects exposed by this cluster node allow operations that modify run-time attributes.

Legal values are: true or false.

Default value is false.

Preconfigured override is tangosol.coherence.management.readonly
<service-name> Required Specifies the name of the Invocation Service used for remote management.

This element is used only if allow-remote-management is set to true.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

multicast-listener

Used in: cluster-config.

Description

Specifies the configuration information for the Multicast listener. This element is used to specify the address and port that a cluster will use for cluster wide and point-to-multipoint communications. All nodes in a cluster must use the same multicast address and port, whereas distinct clusters on the same network should use different multicast addresses.

Multicast-Free Clustering

By default Coherence uses a multicast protocol to discover other nodes when forming a cluster. If multicast networking is undesirable, or unavailable in your environment, the well-known-addresses feature may be used to eliminate the need for multicast traffic. Note: The use of the Well Known Addressing feature requires an Coherence Enterprise License. If you are having difficulties in establishing a cluster via multicast, see the Multicast Test.

Elements

The following table describes the elements you can define within the multicast-listener element.

Element Required/Optional Description
<address> Required Specifies the multicast IP address that a Socket will listen or publish on.

Legal values are from 224.0.0.0 to 239.255.255.255.

Default value depends on the release and build level and typically follows the convention of {build}.{major version}.{minor version}.{patch}. For example, for Coherence Release 2.2 build 255 it is 225.2.2.0.

Preconfigured override is tangosol.coherence.clusteraddress
<port> Required Specifies the port that the Socket will listen or publish on.

Legal values are from 1 to 65535.

Default value depends on the release and build level and typically follows the convention of {version}+{{{build}. For example, for Coherence Release 2.2 build 255 it is 22255.

Preconfigured override is tangosol.coherence.clusterport
<time-to-live> Required Specifies the time-to-live setting for the multicast. This determines the maximum number of "hops" a packet may traverse, where a hop is measured as a traversal from one network segment to another via a router.

Legal values are from from 0 to 255.
For production use, this value should be set to the lowest integer value that works. On a single server cluster, it should work at 0; on a simple switched backbone, it should work at 1; on an advanced backbone with intelligent switching, it may require a value of 2 or more. Setting the value too high can use unnecessary bandwidth on other LAN segments and can even cause the OS or network devices to disable multicast traffic. While a value of 0 is meant to keep packets from leaving the originating machine, some OSs do not implement this correctly, and the packets may in fact be transmitted on the network.

Default value is 4.

Preconfigured override is tangosol.coherence.ttl

<packet-buffer> Required Specifies how many incoming packets the OS will be requested to buffer.
<priority> Required Specifies a priority of the multicast listener execution thread.

Legal values are from 1 to 10.

Default value is 8.
<join-timeout-milliseconds> Required Specifies the number of milliseconds that a new member will wait without finding any evidence of a cluster before starting its own cluster and electing itself as the senior cluster member.

Legal values are from 1 to 1000000.

Note: For production use, the recommended value is 30000.

Default value is 6000.
<multicast-threshold-percent> Required Specifies the threshold percentage value used to determine whether a packet will be sent via unicast or multicast. It is a percentage value and is in the range of 1% to 100%. In a cluster of "n" nodes, a particular node sending a packet to a set of other (i.e. not counting self) destination nodes of size "d" (in the range of 0 to n-1), the packet will be sent multicast if and only if the following both hold true:

  1. The packet is being sent over the network to more than one other node, i.e. (d > 1).
  2. The number of nodes is greater than the threshold,i.e. (d > (n-1) * (threshold/100)).

    Setting this value to 1 will allow the implementation to use multicast for basically all multi-point traffic. Setting it to 100 will force the implementation to use unicast for all multi-point traffic except for explicit broadcast traffic (e.g. cluster heartbeat and discovery) because the 100% threshold will never be exceeded. With the setting of 25 the implementation will send the packet using unicast if it is destined for less than one-fourth of all nodes, and send it using multicast if it is destined for the one-fourth or more of all nodes.

    Note: This element is only used if the well-known-addresses element is empty.

    Legal values are from 1 to 100.

    Default value is 25.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

notification-queueing

Used in: packet-publisher.

Description

The notification-queueing element is used to specificy the timing of notifications packets sent to other cluster nodes. Notification packets are used to acknowledge the receipt of packets which require confirmation.

Batched Acknowledgments

Rather then sending an individual ACK for each received packet which requires confirmation, Coherence will batch a series of acknowledgments for a given sender into a single ACK. The ack-delay-milliseconds specifies the maximum amount of time that an acknowledgment will be delayed before an ACK notification is sent. By batching the acknowledgments Coherence avoids wasting network bandwidth with many small ACK packets.

Elements

The following table describes the elements you can define within the notification-queueing element.

Element Required/Optional Description
<ack-delay-milliseconds> Required Specifies the maximum number of milliseconds that the packet publisher will delay before sending an ACK packet. The ACK packet may be transmitted earlier if number of batched acknowledgments fills the ACK packet.

This value should be substantially lower then the remote node's packet-delivery resend timeout, to allow ample time for the ACK to be received and processed by the remote node before the resend timeout expires.

Default value is 64.
<nack-delay-milliseconds> Required Specifies the number of milliseconds that the packet publisher will delay before sending a NACK packet.

Default value is 16.

outgoing-message-handler

Used in: cluster-config.

Description

The outgoing-message-handler splits logical messages into packets for transmission on the network, and enqueues them on the packet-publisher.

Elements

The following table describes the elements you can define within the outgoing-message-handler element.

Element Required/Optional Description
<use-daemon> Required Specifies whether or not a daemon thread will be created to perform the outgoing message handling.

If the daemon thread is NOT created, then any thread that sends a message will itself do the work of splitting the message into packets and putting them into the packet publisher's queue. This is the recommended value as it spreads the processing over more threads.

Legal values are:

Legal values are true or false.

Default value is false.
<use-filters> Optional Contains the list of filter names to be used by this outgoing message handler.

For example, specifying use-filter as follows

<use-filters>
    <filter-name>gzip</filter-name>
</use-filters>



will activate gzip compression for all network messages, which can help substantially with WAN and low-bandwidth networks.

<priority> Required Specifies a priority of the outgoing message handler execution thread.

Legal values are from 1 to 10.

Default value is 7.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

packet-buffer

Used in: unicast-listener, multicast-listener, packet-publisher.

Description

Specifies the size of the OS buffer for datagram sockets.

Performance Impact

Large inbound buffers help insulate the Coherence network layer from JVM pauses caused by the Java Garbage Collector. While the JVM is paused, Coherence is unable to dequeue packets from any inbound socket. If the pause is long enough to cause the packet buffer to overflow, the packet reception will be delayed as the the originating node will need to detect the packet loss and retransmit the packet(s).

It's just a hint

The OS will only treat the specified value as a hint, and is not required to allocate the specified amount. In the event that less space is allocated then requested Coherence will issue a warning and continue to operate with the constrained buffer, which may degrade performance. See Forums: Coherence Support for details on configuring your OS to allow larger buffers.

Elements

The following table describes the elements you can define within the packet-buffer element.

Element Required/Optional Description
<maximum-packets> Required For unicast-listener, multicast-listener and packet-publisher: Specifies the number of packets of maximum size that the datagram socket will be asked to size itself to buffer. See SO_SNDBUF and SO_RCVBUF. Actual buffer sizes may be smaller if the underlying socket implementation cannot support more than a certain size. Defaults are 16 for publishing, 64 for multicast listening, and 1428 for unicast listening.

packet-delivery

Used in: packet-publisher.

Description

Specifies timing parameters related to reliable packet delivery.

Death Detection

The timeout-milliseconds and heartbeat-milliseconds are used in detecting the death of other cluster nodes.

Elements

The following table describes the elements you can define within the packet-delivery element.

Element Required/Optional Description
<resend-milliseconds> Required For packets which require confirmation, specifies the minimum amount of time in milliseconds to wait for a corresponding ACK packet, before resending a packet.

Default value is 200.
<timeout-milliseconds> Required For packets which require confirmation, specifies the maximum amount of time, in milliseconds, that a packet will be resent. After this timeout expires Coherence will make a determination if the recipient is to be considered "dead". This determination takes additional data into account, such as if other nodes are still able to communicate with the recipient.

Default value is 60000.

Note: For production use, the recommended value is the greater of 60000 and two times the maximum expected full GC duration.
<heartbeat-milliseconds> Required Specifies the interval between heartbeats. Each member issues a unicast heartbeat, and the most senior member issues the cluster heartbeat, which is a broadcast message. The heartbeat is used by the tcp-ring-listener as part of fast death detection.

Default value is 1000.

packet-publisher

Used in: cluster-config.

Description

Specifies configuration information for the Packet publisher, used for network data transmission.

Reliable packet delivery

The Packet publisher is responsible for ensuring that transmitted packets reach the destination cluster node. The publisher maintains a set of packets which are waiting to be acknowledged, and if the ACK does not arrive by the packet-delivery resend timeout, the packet will be retransmitted. The recipient node will delay the ACK, in order to batch a series of ACKs into a single response.

Throttling

The rate at which the publisher will accept and transmit packet may be controlled via the burst-mode and traffic-jam settings. Throttling may be necessary when dealing with slow networks, or small packet-buffers.

Elements

The following table describes the elements you can define within the packet-publisher element.

Element Required/Optional Description
<packet-size> Required Specifies the UDP packet sizes to utilize.
<packet-delivery> Required Specifies timing parameters related to reliable packet delivery.
<notification-queueing> Required Contains the notification queue related configuration info.
<burst-mode> Required Specifies the maximum number of packets the publisher may transmit without pausing.
<traffic-jam> Required Specifies the maximum number of packets which can be enqueued on the publisher before client threads block.
<packet-buffer> Required Specifies how many outgoing packets the OS will be requested to buffer.
<priority> Required Specifies a priority of the packet publisher execution thread.

Legal values are from 1 to 10.

Default value is 6.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

packet-size

Used in: packet-publisher.

Description

The packet-size element specifies the maximum and preferred UDP packet sizes. All cluster nodes must use identical maximum packet sizes. For optimal network utilization this value should be 32 bytes less then the network MTU.

When specifying a UDP packet size larger then 1024 bytes on Microsoft Windows a registry setting must be adjusted to allow for optimal transmission rates. See Forums: Coherence Support for details.

Elements

The following table describes the elements you can define within the packet-size element.

Element Required/Optional Description
<maximum-length> Required Specifies the maximum size, in bytes, of the UDP packets that will be sent and received on the unicast and multicast sockets.

This value should be at least 512; recommended value is 1468 for 100Mb, and 1Gb Ethernet. This value must be identical on all cluster nodes.

Note: Some network equipment cannot handle packets larger than 1472 bytes (IPv4) or 1468 bytes (IPv6), particularly under heavy load. If you encounter this situation on your network, this value should be set to 1472 or 1468 respectively.

Default value is 1468.
<preferred-length> Required Specifies the preferred size, in bytes, of UDP packets that will be sent and received on the unicast and multicast sockets.

This value should be at least 512 and cannot be greater than the maximum-length value; it is recommended to set the value to the same as the maximum-length value.

Default value is 1468.

security-config

Used in: coherence.

Elements

The following table describes the elements you can define within the security-config element.

Element Required/Optional Description
<enabled> Required Specifies whether the security features are enabled. All other configuration elements in the security-config group will be verified for validity and used if and only if the value of this element is true.

Legal values are true or false.

Default value is false.

Preconfigured override is tangosol.coherence.security
<login-module-name> Required Specifies the name of the JAAS LoginModule that should be used to authenticate the caller. This name should match a module in a configuration file will be used by the JAAS (for example specified via the -Djava.security.auth.login.config Java command line attribute).

For details please refer to the Sun Login Module Developer's Guide.
<access-controller> Required Contains the configuration information for the class that implements com.tangosol.net.security.AccessController interface, which will be used by the Coherence Security Framework to check access rights for clustered resources and encrypt/decrypt node-to-node communications regarding those rights.
<callback-handler> Optional Contains the configuration information for the class that implements javax.security.auth.callback.CallbackHandler interace which will be called if an attempt is made to access a protected clustered resource when there is no identity associated with the caller.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

services

Used in: cluster-config.

Description

Specifies the configuration for Coherence services.

Service Components

The types of services which can be configured includes:

Elements

The following table describes the elements you can define for each service element.

Element Required/Optional Description
<service-type> Required Specifies the canonical name for a service, allowing the service to be referenced from the service-name element in cache configuration caching-schemes.
<service-component> Required Specifies either the fully qualified class name of the service or the relocatable component name relative to the base Service component.

Legal values are:
  • ReplicatedCache
  • ReplicatedCache.Optimistic
  • DistributedCache
  • SimpleCache
  • LocalCache
  • InvocationService
<use-filters> Optional Contains the list of filter names to be used by this service.

For example, specifying use-filter as follows
<use-filters>
  <filter-name>gzip</filter-name>
</use-filters>

will activate gzip compression for the network messages used by this service, which can help substantially with WAN and low-bandwidth networks.

<init-params> Optional Specifies the initialization parameters that are specific to each service-component.

For more service specific parameter information see:

The content override attributes xml-override and id can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

shutdown-listener

Used in: cluster-config.

Description

Specifies the action a cluster node should take upon receiving an external shutdown request. External shutdown includes the "kill" command on Unix and "Ctrl-C" on Windows and Unix.

Elements

The following table describes the elements you can define within the shutdown-listener element.

Element Required/Optional Description
<enabled> Required Specifies the type of action to take upon an external JVM shutdown.

Legal Values:

  • none - perform no explicit shutdown actions
  • force - perform "hard-stop" the node by calling Cluster.stop()
  • graceful - perform a "normal" shutdown by calling Cluster.shutdown()
  • true - same as force
  • false - same as none

Note: For production use, the suggested value is none unless testing has verified that the behavior on external shutdown is exactly what is desired.

Default value is force.

Preconfigured override is tangosol.coherence.shutdownhook

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

socket-address

Used in: well-known-addresses.

Elements

The following table describes the elements you can define within the socket-address element.

Element Required/Optional Description
<address> Required Specifies the IP address that a Socket will listen or publish on.

Note: The localhost setting may not work on systems that define localhost as the loopback address; in that case, specify the machine name or the specific IP address.
<port> Required Specifies the port that the Socket will listen or publish on.

Legal values are from 1 to 65535.

tcp-ring-listener

Used in: cluster-config.

Description

The TCP-ring provides a means for fast death detection of another node within the cluster. When enabled the cluster nodes form a single "ring" of TCP connections spanning the entire cluster. A cluster node is able to utilize the TCP connection to detect the death of another node within a heartbeat interval (default one second). If disabled the cluster node must rely on detecting that another node has stopped responding to UDP packets for a considerately longer interval. Once the death has been detected it is communicated to all other cluster nodes.

Elements

The following table describes the elements you can define within the tcp-ring-listener element.

Element Required/Optional Description
<enabled> Required Specifies whether the tcp ring listener should be enabled to defect node failures faster.

Legal values are true and false.

Default value is true.

Preconfigured override is tangosol.coherence.tcpring
<maximum-socket-closed-exceptions> Required Specifies the maximum number of tcp ring listener exceptions that will be tolerated before a particular member is considered really gone and is removed from the cluster.

This value is used only if the value of tcp-ring-listener/enabled is true.

Legal values are integers greater than zero.

Default value is 2.
<priority> Required Specifies a priority of the tcp ring listener execution thread.

Legal values are from 1 to 10.

Default value is 6.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

traffic-jam

Used in: packet-publisher.

Description

The traffic-jam element is used to control the rate at which client threads enqueue packets for the Packet publisher to transmit on the network. Once the limit is exceeded any client thread will be forced to pause until the number of pending packets drops below the specified limit. To limit the rate at which the Publisher transmits packets see the burst-mode element.

Tuning

Specifying a limit which is to low, or a pause which is to long may result in the publisher transmitting all pending packets, and being left without packets to send. An ideal value will ensure that the publisher is never left without work to do, but at the same time prevent the queue from growing uncontrollably. It is therefore recommended that the pause remain quite short (singles of milliseconds), and that the limit on the number of packets be kept high (i.e. > 5000).

Elements

The following table describes the elements you can define within the traffic-jam element.

Element Required/Optional Description
<maximum-packets> Required Specifies the maximum number of pending packets that the Publisher will tolerate before determining that it is clogged and must slow down client requests (requests from local non-system threads). Zero means no limit. This property prevents most unexpected out-of-memory conditions by limiting the size of the resend queue.

Default value is 8192.
<pause-milliseconds> Required Number of milliseconds that the Publisher will pause a client thread that is trying to send a message when the Publisher is clogged. The Publisher will not allow the message to go through until the clog is gone, and will repeatedly sleep the thread for the duration specified by this property.

Default value is 4.

unicast-listener

Used in: cluster-config.

Description

Specifies the configuration information for the Unicast listener. This element is used to specify the address and port that a cluster node will bind to, in order to listen for point-to-point cluster communications.

Automatic Address Settings

By default Coherence will attempt to obtain the IP to bind to using the java.net.InetAddress.getLocalHost() call. On machines with multiple IPs or NICs you may need to explicitly specify the address. Additionally if the specified port is already in use, Coherence will by default auto increment the port number until the binding succeeds.

Multicast-Free Clustering

By default Coherence uses a multicast protocol to discover other nodes when forming a cluster. If multicast networking is undesirable, or unavailable in your environment, the well-known-addresses feature may be used to eliminate the need for multicast traffic. Note: Use of the Well Known Addresses (WKA) feature requires a Coherence Enterprise License. If you are having difficulties in establishing a cluster via multicast, see the Multicast Test.

Elements

The following table describes the elements you can define within the unicast-listener element.

Element Required/Optional Description
<well-known-addresses> Optional Contains a list of "well known" addresses (WKA) that are used by the cluster discovery protocol in place of multicast broadcast.
<machine-id> Required Specifies an identifier that should uniquely identify each server machine. If not specified, a default value is generated from the address of the default network interface.

The machine id for each machine in the cluster can be used by cluster services to plan for failover by making sure that each member is backed up by a member running on a different machine.
<address> Required Specifies the IP address that a Socket will listen or publish on.

Note: The localhost setting may not work on systems that define localhost as the loopback address; in that case, specify the machine name or the specific IP address.

Default value is localhost.

Preconfigured override is tangosol.coherence.localhost
<port> Required Specifies the port that the Socket will listen or publish on.

Legal values are from 1 to 65535.

Default value is 8088.

Preconfigured override is tangosol.coherence.localport
<port-auto-adjust> Required Specifies whether or not the unicast port will be automatically incremented if the specified port cannot be bound to because it is already in use.

Legal values are true or false.

It is recommended that this value be configured to false for production environments.

Default value is true.

Preconfigured override is tangosol.coherence.localport.adjust
<ignore-socket-closed> Required Specifies whether or not the unicast listener will ignore socket exceptions that indicate that a Member is unreachable. Ignoring these exceptions may make the cluster more fault tolerant, but the result will be that unexpected Member deaths will have a detection lag equal to the value of packet-publisher/packet-delivery/resend-milliseconds element.

Legal values are true or false.

Default value is true.
<maximum-socket-closed-exceptions> Required Specifies the maximum number of unicast listener exceptions that will be tolerated before a particular member is considered really gone and is removed from the cluster.

This value is used only if the value of unicast-listener/ignore-socket-closed is false.

Legal values are integers greater than zero.

Default value is 4.
<packet-buffer> Required Specifies how many incoming packets the OS will be requested to buffer.
<priority> Required Specifies a priority of the unicast listener execution thread.

Legal values are from 1 to 10.

Default value is 8.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.

well-known-addresses

Used in: unicast-listener.

Description

Specifies a list of "well known" addresses to use in forming a cluster.

By default Coherence uses a multicast protocol to discover other nodes when forming a cluster. If multicast networking is undesirable, or unavailable in your environment, the Well Known Addresses feature may be used to eliminate the need for multicast traffic.

Use of the Well Known Addresses (WKA) feature requires a Coherence Enterprise License.

If you are having difficulties in establishing a cluster via multicast, see the Multicast Test.

Elements

The following table describes the elements you can define within the well-known-addresses element.

Element Required/Optional Description
<socket-address> Required Specifies a list of "well known" addresses (WKA) that are used by the cluster discovery protocol in place of multicast broadcast. If one or more WKA is specified, for a member to join the cluster it will either have to be a WKA or there will have to be at least one WKA member running. Additionally, all cluster communication will be performed using unicast. If empty or unspecified multicast communications will be used.

Preconfigured overrides are tangosol.coherence.wka and tangosol.coherence.wka.port.

The content override attribute xml-override can be optionally used to fully or partially override the contents of this element with XML document that is external to the base document.