Skip to content

Instantly share code, notes, and snippets.

@riferrei
Created July 28, 2011 18:38
Show Gist options
  • Save riferrei/1112211 to your computer and use it in GitHub Desktop.
Save riferrei/1112211 to your computer and use it in GitHub Desktop.
<?xml version='1.0'?>
<!--
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademarks of Oracle Corporation and/or its affiliates.
This software is the confidential and proprietary information of
Oracle Corporation. You shall not disclose such confidential and
proprietary information and shall use it only in accordance with the
terms of the license agreement you entered into with Oracle.
This notice may not be removed or altered.
-->
<coherence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config"
xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"
xml-override="{tangosol.coherence.override /tangosol-coherence-override-{mode}.xml}">
<!--
Note: This XML is set up for a development mode; search for "Note:"
to find specific notes on changes suggested for production use.
-->
<cluster-config>
<member-identity>
<!--
Note: All members of the cluster must specify the same cluster name in
order to be allowed to join the cluster.
-->
<cluster-name system-property="tangosol.coherence.cluster"></cluster-name>
<site-name system-property="tangosol.coherence.site"></site-name>
<rack-name system-property="tangosol.coherence.rack"></rack-name>
<machine-name system-property="tangosol.coherence.machine"></machine-name>
<process-name system-property="tangosol.coherence.process"></process-name>
<member-name system-property="tangosol.coherence.member"></member-name>
<role-name system-property="tangosol.coherence.role"></role-name>
<priority system-property="tangosol.coherence.priority"></priority>
</member-identity>
<unicast-listener>
<!--
Note: This value specifies the socket-provider to use for all cluster
based (TCMP) communications.
Valid values include full socket-provider definitions, as well as named
references to providers defined within the socket-providers element.
This setting only specifies the default socket-provider for Coherence
TCMP services, Extend's default socket-provider is specified within the
defaults element of the cache configuration.
Example values include: system, tcp, ssl. Default value is system.
-->
<socket-provider system-property="tangosol.coherence.socketprovider"/>
<!--
Note: Specifying one or more "well known" addresses (WKA) will disable
all multicast communication. In this case, 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.
-->
<well-known-addresses>
<socket-address id="1">
<address system-property="tangosol.coherence.wka"></address>
<port system-property="tangosol.coherence.wka.port">8088</port>
</socket-address>
</well-known-addresses>
<!--
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.
-->
<address system-property="tangosol.coherence.localhost">localhost</address>
<port system-property="tangosol.coherence.localport">8088</port>
<port-auto-adjust system-property="tangosol.coherence.localport.adjust">true</port-auto-adjust>
<priority>8</priority>
</unicast-listener>
<multicast-listener>
<address system-property="tangosol.coherence.clusteraddress">224.3.7.0</address>
<port system-property="tangosol.coherence.clusterport">37000</port>
<!--
Note: 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 utilize unnecessary bandwidth on other LAN segments
and can even cause the OS or network devices to disable multicast traffic.
-->
<time-to-live system-property="tangosol.coherence.ttl">4</time-to-live>
<priority>8</priority>
<!--
Note: For production use, the recommended value is 30000.
-->
<join-timeout-milliseconds>30000</join-timeout-milliseconds>
<multicast-threshold-percent>25</multicast-threshold-percent>
</multicast-listener>
<tcp-ring-listener>
<ip-timeout system-property="tangosol.coherence.ipmonitor.pingtimeout">5s</ip-timeout>
<ip-attempts>3</ip-attempts>
<priority>6</priority>
</tcp-ring-listener>
<shutdown-listener>
<!--
Note: For production use, the suggested value is "none" (or "false")
unless testing has verified that the behavior on external shutdown is
exactly what is desired.
-->
<enabled system-property="tangosol.coherence.shutdownhook">force</enabled>
</shutdown-listener>
<service-guardian>
<service-failure-policy>exit-cluster</service-failure-policy>
<!--
Note: For production use, the recommended value is equal to or greater than
the packet-delivery timeout.
-->
<timeout-milliseconds system-property="tangosol.coherence.guard.timeout">305000</timeout-milliseconds>
</service-guardian>
<packet-speaker>
<priority>8</priority>
</packet-speaker>
<packet-publisher>
<packet-delivery>
<resend-milliseconds>200</resend-milliseconds>
<!--
Note: For production use, the recommended value is the greater of 300000
and two times the maximum expected full GC duration.
-->
<timeout-milliseconds>300000</timeout-milliseconds>
<heartbeat-milliseconds>1000</heartbeat-milliseconds>
<flow-control>
<enabled>true</enabled>
<pause-detection>
<maximum-packets>16</maximum-packets>
</pause-detection>
<outstanding-packets>
<maximum-packets>4096</maximum-packets>
<minimum-packets>64</minimum-packets>
</outstanding-packets>
</flow-control>
<packet-bundling>
<maximum-deferral-time>1us</maximum-deferral-time>
<aggression-factor>0</aggression-factor>
</packet-bundling>
</packet-delivery>
<notification-queueing>
<ack-delay-milliseconds>16</ack-delay-milliseconds>
<nack-delay-milliseconds>1</nack-delay-milliseconds>
</notification-queueing>
<traffic-jam>
<maximum-packets>8192</maximum-packets>
<pause-milliseconds>10</pause-milliseconds>
</traffic-jam>
<priority>6</priority>
<!--
Note: Disabling the Publisher is used only by Java Real-Time Clients to
restrict their ability to use the cluster protocol (TCMP). When disabled,
a client is only be able to access clustered services via Extend proxies.
-->
<enabled system-property="tangosol.coherence.tcmp.enabled">true</enabled>
</packet-publisher>
<incoming-message-handler>
<maximum-time-variance>16</maximum-time-variance>
<use-nack-packets>true</use-nack-packets>
<priority>7</priority>
</incoming-message-handler>
<outgoing-message-handler>
<message-pool>
<segments>4</segments>
<segment-size>16MB</segment-size>
<min-buffer-size>1KB</min-buffer-size>
<growth-factor>2</growth-factor>
</message-pool>
<!--
Note: Uncomment the following section to activate gzip compression
for all network messages, which can help substantially with WAN
and low-bandwidth networks; for more information, see:
http://www.tangosol.com/faq-coherence.jsp#filterconfig
-->
<use-filters>
<!-- <filter-name>gzip</filter-name> -->
</use-filters>
</outgoing-message-handler>
<authorized-hosts>
<host-address></host-address>
<host-range>
<from-address></from-address>
<to-address></to-address>
</host-range>
</authorized-hosts>
<services>
<service id="1">
<service-type>ReplicatedCache</service-type>
<service-component>ReplicatedCache</service-component>
<use-filters>
<filter-name/>
</use-filters>
<init-params>
<init-param id="1">
<param-name>standard-lease-milliseconds</param-name>
<param-value>0</param-value>
</init-param>
<init-param id="2">
<param-name>lease-granularity</param-name>
<param-value>thread</param-value>
</init-param>
<init-param id="3">
<param-name>mobile-issues</param-name>
<param-value>false</param-value>
</init-param>
<init-param id="4">
<param-name>request-timeout</param-name>
<param-value system-property="tangosol.coherence.replicated.request.timeout"></param-value>
</init-param>
<init-param id="5">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
<init-param id="6">
<param-name>guardian-timeout</param-name>
<param-value system-property="tangosol.coherence.replicated.guard.timeout"></param-value>
</init-param>
<init-param id="7">
<param-name>service-failure-policy</param-name>
<param-value></param-value>
</init-param>
<init-param id="8">
<param-name>member-listener/class-name</param-name>
<param-value></param-value>
</init-param>
</init-params>
</service>
<service id="2">
<service-type>OptimisticCache</service-type>
<service-component>ReplicatedCache.Optimistic</service-component>
<use-filters>
<filter-name/>
</use-filters>
<init-params>
<init-param id="1">
<param-name>request-timeout</param-name>
<param-value system-property="tangosol.coherence.optimistic.request.timeout"></param-value>
</init-param>
<init-param id="2">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
<init-param id="3">
<param-name>guardian-timeout</param-name>
<param-value system-property="tangosol.coherence.optimistic.guard.timeout"></param-value>
</init-param>
<init-param id="4">
<param-name>service-failure-policy</param-name>
<param-value></param-value>
</init-param>
<init-param id="5">
<param-name>member-listener/class-name</param-name>
<param-value></param-value>
</init-param>
</init-params>
</service>
<service id="3">
<service-type>DistributedCache</service-type>
<service-component>PartitionedService.PartitionedCache</service-component>
<use-filters>
<filter-name/>
</use-filters>
<init-params>
<!--
Note: standard-lease-milliseconds is not supported by Partitioned Cache Service.
-->
<init-param id="1">
<param-name>standard-lease-milliseconds</param-name>
<param-value>0</param-value>
</init-param>
<init-param id="2">
<param-name>lease-granularity</param-name>
<param-value>thread</param-value>
</init-param>
<init-param id="3">
<param-name>partition-count</param-name>
<param-value>257</param-value>
</init-param>
<init-param id="4">
<param-name>local-storage</param-name>
<param-value system-property="tangosol.coherence.distributed.localstorage">true</param-value>
</init-param>
<init-param id="5">
<param-name>transfer-threshold</param-name>
<param-value system-property="tangosol.coherence.distributed.transfer">512</param-value>
</init-param>
<init-param id="6">
<param-name>backup-count</param-name>
<param-value system-property="tangosol.coherence.distributed.backupcount">1</param-value>
</init-param>
<init-param id="8">
<param-name>thread-count</param-name>
<param-value system-property="tangosol.coherence.distributed.threads">0</param-value>
</init-param>
<init-param id="9">
<param-name>key-associator/class-name</param-name>
<param-value></param-value>
</init-param>
<init-param id="10">
<param-name>key-partitioning/class-name</param-name>
<param-value></param-value>
</init-param>
<init-param id="11">
<param-name>partition-listener/class-name</param-name>
<param-value></param-value>
</init-param>
<init-param id="12">
<param-name>task-hung-threshold</param-name>
<param-value system-property="tangosol.coherence.distributed.task.hung"></param-value>
</init-param>
<init-param id="13">
<param-name>task-timeout</param-name>
<param-value system-property="tangosol.coherence.distributed.task.timeout"></param-value>
</init-param>
<init-param id="14">
<param-name>request-timeout</param-name>
<param-value system-property="tangosol.coherence.distributed.request.timeout"></param-value>
</init-param>
<init-param id="15">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
<init-param id="16">
<param-name>backup-count-after-writebehind</param-name>
<param-value></param-value>
</init-param>
<init-param id="17">
<param-name>guardian-timeout</param-name>
<param-value system-property="tangosol.coherence.distributed.guard.timeout"></param-value>
</init-param>
<init-param id="18">
<param-name>service-failure-policy</param-name>
<param-value></param-value>
</init-param>
<init-param id="19">
<param-name>member-listener/class-name</param-name>
<param-value></param-value>
</init-param>
<init-param id="20">
<param-name>partitioned-quorum-policy-scheme</param-name>
<param-value></param-value>
</init-param>
<init-param id="21">
<param-name>partition-assignment-strategy</param-name>
<param-value>legacy</param-value>
</init-param>
<init-param id="22">
<param-name>compressor</param-name>
<param-value system-property="tangosol.coherence.distributed.compressor">none</param-value>
</init-param>
</init-params>
</service>
<service id="4">
<service-type>Invocation</service-type>
<service-component>InvocationService</service-component>
<use-filters>
<filter-name/>
</use-filters>
<init-params>
<init-param id="1">
<param-name>thread-count</param-name>
<param-value system-property="tangosol.coherence.invocation.threads">0</param-value>
</init-param>
<init-param id="2">
<param-name>task-hung-threshold</param-name>
<param-value system-property="tangosol.coherence.invocation.task.hung"></param-value>
</init-param>
<init-param id="3">
<param-name>task-timeout</param-name>
<param-value system-property="tangosol.coherence.invocation.task.timeout"></param-value>
</init-param>
<init-param id="4">
<param-name>request-timeout</param-name>
<param-value system-property="tangosol.coherence.invocation.request.timeout"></param-value>
</init-param>
<init-param id="5">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
<init-param id="6">
<param-name>guardian-timeout</param-name>
<param-value system-property="tangosol.coherence.invocation.guard.timeout"></param-value>
</init-param>
<init-param id="7">
<param-name>service-failure-policy</param-name>
<param-value></param-value>
</init-param>
<init-param id="8">
<param-name>member-listener/class-name</param-name>
<param-value></param-value>
</init-param>
</init-params>
</service>
<service id="5">
<service-type>LocalCache</service-type>
<service-component>LocalCache</service-component>
<init-params>
<init-param id="1">
<param-name>lock-enforce</param-name>
<param-value>false</param-value>
</init-param>
<init-param id="2">
<param-name>lock-wait</param-name>
<param-value>0</param-value>
</init-param>
</init-params>
</service>
<service id="6">
<service-type>SimpleCache</service-type>
<service-component>SimpleCache</service-component>
</service>
<service id="7">
<service-type>Proxy</service-type>
<service-component>ProxyService</service-component>
<use-filters>
<filter-name/>
</use-filters>
<init-params>
<init-param id="1">
<param-name>acceptor-config</param-name>
<param-value></param-value>
</init-param>
<init-param id="2">
<param-name>proxy-config</param-name>
<param-value></param-value>
</init-param>
<init-param id="3">
<param-name>thread-count</param-name>
<param-value system-property="tangosol.coherence.proxy.threads">0</param-value>
</init-param>
<init-param id="4">
<param-name>task-hung-threshold</param-name>
<param-value system-property="tangosol.coherence.proxy.task.hung"></param-value>
</init-param>
<init-param id="5">
<param-name>task-timeout</param-name>
<param-value system-property="tangosol.coherence.proxy.task.timeout"></param-value>
</init-param>
<init-param id="6">
<param-name>request-timeout</param-name>
<param-value system-property="tangosol.coherence.proxy.request.timeout"></param-value>
</init-param>
<init-param id="7">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
<init-param id="8">
<param-name>guardian-timeout</param-name>
<param-value system-property="tangosol.coherence.proxy.guard.timeout"></param-value>
</init-param>
<init-param id="9">
<param-name>service-failure-policy</param-name>
<param-value></param-value>
</init-param>
<init-param id="10">
<param-name>member-listener/class-name</param-name>
<param-value></param-value>
</init-param>
<init-param id="11">
<param-name>proxy-quorum-policy-scheme</param-name>
<param-value></param-value>
</init-param>
<init-param id="12">
<param-name>load-balancer</param-name>
<param-value></param-value>
</init-param>
</init-params>
</service>
<service id="8">
<service-type>RemoteCache</service-type>
<service-component>RemoteCache</service-component>
<init-params>
<init-param id="1">
<param-name>initiator-config</param-name>
<param-value></param-value>
</init-param>
<init-param id="2">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
</init-params>
</service>
<service id="9">
<service-type>RemoteInvocation</service-type>
<service-component>RemoteInvocation</service-component>
<init-params>
<init-param id="1">
<param-name>initiator-config</param-name>
<param-value></param-value>
</init-param>
<init-param id="2">
<param-name>serializer</param-name>
<param-value></param-value>
</init-param>
</init-params>
</service>
</services>
<filters>
<filter id="1">
<filter-name>gzip</filter-name>
<filter-class>com.tangosol.net.CompressionFilter</filter-class>
<init-params>
<init-param id="1">
<param-name>strategy</param-name>
<param-value>gzip</param-value>
</init-param>
<init-param id="2">
<param-name>level</param-name>
<param-value>default</param-value>
</init-param>
</init-params>
</filter>
<filter id="2">
<filter-name>symmetric-encryption</filter-name>
<filter-class>com.tangosol.net.security.PasswordBasedEncryptionFilter</filter-class>
<init-params>
<init-param id="1">
<param-name>password</param-name>
<param-value system-property="tangosol.coherence.security.password"></param-value>
</init-param>
</init-params>
</filter>
<filter id="3">
<filter-name>pkcs-encryption</filter-name>
<filter-class>com.tangosol.net.security.ClusterEncryptionFilter</filter-class>
<init-params>
<init-param id="1">
<param-name>store</param-name>
<param-value system-property="tangosol.coherence.security.keystore">./keystore.jks</param-value>
</init-param>
<init-param id="2">
<param-name>keyAlias</param-name>
<param-value>local</param-value>
</init-param>
<init-param id="3">
<param-name>keyPassword</param-name>
<param-value system-property="tangosol.coherence.security.password"></param-value>
</init-param>
</init-params>
</filter>
</filters>
<serializers>
<serializer id="java">
<class-name>com.tangosol.io.DefaultSerializer</class-name>
</serializer>
<serializer id="pof">
<class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
<init-params>
<init-param>
<param-type>String</param-type>
<param-value system-property="tangosol.pof.config">pof-config.xml</param-value>
</init-param>
</init-params>
</serializer>
</serializers>
<socket-providers>
<!--
The system socket provider returns socket instances based upon the JVM's
default Socket implementations.
-->
<socket-provider id="system">
<system/>
</socket-provider>
<!--
The tcp socket provider is a socket provider which whenever possible
will produce TCP based sockets. Of specific interest is its ability to
create instances of DatagramSocket which are backed by TCP. When coupled
with well-known-address this allows Coherence TCMP to function entirely
over TCP without the need UDP.
Note: If used without well-known-addresses, TCP will be used for all
unicast communications while multicast will may be utilized for group
based communications.
-->
<socket-provider id="tcp">
<tcp/>
</socket-provider>
<!--
The ssl socket provider is a socket provider which only produces SSL
protected sockets. Just as with the tcp socket provider this includes
a SSL/TCP based DatagramSocket.
This basic configuration allows for easy configuration of two-way
SSL connections, based on peer trust where every trusted peer resides
within a single JKS keystore. More elaborate configuration can be
defined with alternate identity and trust managers to allow for CA
based trust validation.
Note: Unlike the TCP socket-provider, multicast sockets are not
supported, and thus well-known-addresses must be enabled for TCMP to
function with this provider.
-->
<socket-provider id="ssl">
<ssl>
<identity-manager>
<key-store>
<url system-property="tangosol.coherence.security.keystore">file:keystore.jks</url>
<password system-property="tangosol.coherence.security.password"/>
</key-store>
<password system-property="tangosol.coherence.security.password"/>
</identity-manager>
<trust-manager>
<algorithm>PeerX509</algorithm>
<key-store>
<url system-property="tangosol.coherence.security.keystore">file:keystore.jks</url>
<password system-property="tangosol.coherence.security.password"/>
</key-store>
</trust-manager>
</ssl>
</socket-provider>
</socket-providers>
<journaling-config>
<ramjournal-manager>
<maximum-value-size>16KB</maximum-value-size>
<maximum-size system-property="tangosol.coherence.ramjournal.size">25%</maximum-size>
</ramjournal-manager>
<flashjournal-manager>
<block-size>256KB</block-size>
<directory></directory>
<async-limit>16MB</async-limit>
</flashjournal-manager>
</journaling-config>
</cluster-config>
<logging-config>
<destination system-property="tangosol.coherence.log">stderr</destination>
<logger-name system-property="tangosol.coherence.log.logger"></logger-name>
<severity-level system-property="tangosol.coherence.log.level">5</severity-level>
<message-format>{date}/{uptime} {product} {version} &lt;{level}&gt; (thread={thread}, member={member}): {text}</message-format>
<character-limit system-property="tangosol.coherence.log.limit">1048576</character-limit>
</logging-config>
<configurable-cache-factory-config>
<class-name>com.tangosol.net.DefaultConfigurableCacheFactory</class-name>
<init-params>
<init-param>
<param-type>java.lang.String</param-type>
<param-value system-property="tangosol.coherence.cacheconfig">coherence-cache-config.xml</param-value>
</init-param>
</init-params>
</configurable-cache-factory-config>
<cache-factory-builder-config>
<class-name system-property="tangosol.coherence.cachefactorybuilder">com.tangosol.net.DefaultCacheFactoryBuilder</class-name>
</cache-factory-builder-config>
<management-config>
<!--
Note: Setting this value to 'local-only', 'remote-only or 'all' will require the
javax.management.* classes be available on the classpath.
-->
<managed-nodes system-property="tangosol.coherence.management">none</managed-nodes>
<!--
Note: Setting this value to 'true' will require the Enterprise Edition license.
-->
<allow-remote-management system-property="tangosol.coherence.management.remote">true</allow-remote-management>
<refresh-policy system-property="tangosol.coherence.management.refresh.policy">refresh-ahead</refresh-policy>
<refresh-expiry system-property="tangosol.coherence.management.refresh.expiry">1s</refresh-expiry>
<refresh-timeout system-property="tangosol.coherence.management.refresh.timeout">250ms</refresh-timeout>
<read-only system-property="tangosol.coherence.management.readonly">false</read-only>
<default-domain-name></default-domain-name>
<service-name>Management</service-name>
<server-factory>
<class-name system-property="tangosol.coherence.management.serverfactory"></class-name>
</server-factory>
<mbeans xml-override="{tangosol.coherence.mbeans /custom-mbeans.xml}">
<mbean id="1">
<mbean-query>java.lang:*</mbean-query>
<mbean-name>type=Platform</mbean-name>
<enabled system-property="tangosol.coherence.management.jvm.all">true</enabled>
</mbean>
</mbeans>
<mbean-filter>
<class-name>com.tangosol.net.management.ObjectNameExcludeFilter</class-name>
<init-params>
<init-param>
<param-type>string</param-type>
<param-value system-property="tangosol.coherence.management.exclude">
.*type=Service,name=Management,.*
.*type=Platform,Domain=java.lang,subType=ClassLoading,.*
.*type=Platform,Domain=java.lang,subType=Compilation,.*
.*type=Platform,Domain=java.lang,subType=MemoryManager,.*
.*type=Platform,Domain=java.lang,subType=Threading,.*
</param-value>
</init-param>
</init-params>
</mbean-filter>
<reporter>
<configuration system-property="tangosol.coherence.management.report.configuration">reports/report-group.xml</configuration>
<autostart system-property="tangosol.coherence.management.report.autostart">false</autostart>
<distributed system-property="tangosol.coherence.management.report.distributed">false</distributed>
</reporter>
</management-config>
<security-config>
<enabled system-property="tangosol.coherence.security">false</enabled>
<login-module-name>Coherence</login-module-name>
<access-controller>
<class-name>com.tangosol.net.security.DefaultController</class-name>
<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>
</access-controller>
<callback-handler>
<class-name/>
</callback-handler>
</security-config>
<license-config>
<edition-name system-property="tangosol.coherence.edition">GE</edition-name>
<license-mode system-property="tangosol.coherence.mode">dev</license-mode>
</license-config>
</coherence>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment