JBoss Cache SVN: r8205 - in core/trunk/src/main/java/org/jboss/cache: util and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2009-08-26 06:52:18 -0400 (Wed, 26 Aug 2009)
New Revision: 8205
Modified:
core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
core/trunk/src/main/java/org/jboss/cache/util/Immutables.java
Log:
[JBCACHE-1535] (Immutables should be optimised for more set implementations)
Modified: core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java 2009-08-26 01:30:29 UTC (rev 8204)
+++ core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java 2009-08-26 10:52:18 UTC (rev 8205)
@@ -420,7 +420,7 @@
@SuppressWarnings("unchecked")
public Set<Object> getChildrenNames()
{
- return children.isEmpty() ? Collections.emptySet() : Immutables.immutableSetCopy(children.keySet());
+ return children.isEmpty() ? Collections.emptySet() : Immutables.immutableSetWrap(new HashSet<Object>(children.keySet()));
}
public Set<K> getKeys()
@@ -429,7 +429,7 @@
{
return Collections.emptySet();
}
- return Immutables.immutableSetCopy(data.keySet());
+ return Immutables.immutableSetWrap(new HashSet<K>(data.keySet()));
}
public boolean containsKey(K key)
Modified: core/trunk/src/main/java/org/jboss/cache/util/Immutables.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/util/Immutables.java 2009-08-26 01:30:29 UTC (rev 8204)
+++ core/trunk/src/main/java/org/jboss/cache/util/Immutables.java 2009-08-26 10:52:18 UTC (rev 8205)
@@ -63,6 +63,9 @@
*/
public static <T> List<T> immutableListCopy(List<? extends T> list)
{
+ if (list == null) return null;
+ if (list.isEmpty()) return Collections.emptyList();
+ if (list.size() == 1) return Collections.singletonList(list.get(0));
return new ImmutableListCopy<T>(list);
}
@@ -120,6 +123,10 @@
*/
public static <T> Set<T> immutableSetCopy(Set<? extends T> set)
{
+ if (set == null) return null;
+ if (set.isEmpty()) return Collections.emptySet();
+ if (set.size() == 1) return Collections.singleton(set.iterator().next());
+
Set<? extends T> copy = attemptKnownSetCopy(set);
if (copy == null)
attemptClone(set);
@@ -153,6 +160,13 @@
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> immutableMapCopy(Map<? extends K, ? extends V> map)
{
+ if (map == null) return null;
+ if (map.isEmpty()) return Collections.emptyMap();
+ if (map.size() == 1)
+ {
+ Map.Entry<? extends K, ? extends V> me = map.entrySet().iterator().next();
+ return Collections.singletonMap(me.getKey(), me.getValue());
+ }
Map<? extends K, ? extends V> copy = attemptKnownMapCopy(map);
if (copy == null)
@@ -174,6 +188,9 @@
@SuppressWarnings("unchecked")
public static <T> Collection<T> immutableCollectionCopy(Collection<? extends T> collection)
{
+ if (collection == null) return null;
+ if (collection.isEmpty()) return Collections.emptySet();
+ if (collection.size() == 1) return Collections.singleton(collection.iterator().next());
Collection<? extends T> copy = attemptKnownSetCopy(collection);
if (copy == null)
copy = attemptClone(collection);
15 years, 4 months
JBoss Cache SVN: r8204 - enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US.
by jbosscache-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2009-08-25 21:30:29 -0400 (Tue, 25 Aug 2009)
New Revision: 8204
Added:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/JBoss_Cache_User_Guide.xml
Log:
adding new 'master' file
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/JBoss_Cache_User_Guide.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/JBoss_Cache_User_Guide.xml (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/JBoss_Cache_User_Guide.xml 2009-08-26 01:30:29 UTC (rev 8204)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+ <!ENTITY preface SYSTEM "modules/preface.xml">
+ <!ENTITY introduction SYSTEM "modules/introduction.xml">
+ <!ENTITY architecture SYSTEM "modules/architecture.xml">
+ <!ENTITY basic_api SYSTEM "modules/basic_api.xml">
+ <!ENTITY replication SYSTEM "modules/replication.xml">
+ <!ENTITY transactions SYSTEM "modules/transactions.xml">
+ <!ENTITY eviction_policies SYSTEM "modules/eviction_policies.xml">
+ <!ENTITY cache_loaders SYSTEM "modules/cache_loaders.xml">
+ <!ENTITY compatibility SYSTEM "modules/compatibility.xml">
+ <!ENTITY configuration SYSTEM "modules/configuration.xml">
+ <!ENTITY deployment SYSTEM "modules/deployment.xml">
+ <!ENTITY configuration_reference SYSTEM "modules/configuration_reference.xml">
+ <!ENTITY jmx_reference SYSTEM "modules/jmx_reference.xml">
+ <!ENTITY batching SYSTEM "modules/batching.xml">
+ ]>
+<book lang="en">
+
+ <xi:include href="preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ <part label="I">
+ <title>Introduction to JBoss Cache</title>
+ <partintro>
+ <para>
+ This section covers what developers would need to quickly start using JBoss Cache in their projects. It
+ covers an overview of the concepts and API, configuration and deployment information.
+ </para>
+ </partintro>
+ <xi:include href="introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include href="basic_api.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="configuration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="batching.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="deployment.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="compatibility.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ </part>
+
+ <part label="II">
+ <title>JBoss Cache Architecture</title>
+ <partintro>
+ <para>
+ This section digs deeper into the JBoss Cache architecture, and is meant for developers wishing to use the more
+ advanced cache features,extend or enhance the cache, write plugins, or are just looking for detailed knowledge
+ of how things work under the hood.
+ </para>
+ </partintro>
+<xi:include href="architecture.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="replication.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="cache_loaders.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="eviction_policies.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="transactions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ </part>
+
+ <part label="III">
+ <title>JBoss Cache Configuration References</title>
+ <partintro>
+ <para>
+ This section contains technical references for easy looking up.
+ </para>
+ </partintro>
+
+<xi:include href="configuration_reference.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="jmx_reference.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+
+ </part>
+</book>
15 years, 4 months
JBoss Cache SVN: r8203 - enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US.
by jbosscache-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2009-08-25 21:29:39 -0400 (Tue, 25 Aug 2009)
New Revision: 8203
Removed:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/master.xml
Modified:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Author_Group.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Book_Info.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/deployment.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/eviction_policies.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/introduction.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/replication.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/transactions.xml
Log:
updated book for build
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Author_Group.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Author_Group.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Author_Group.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -3,6 +3,28 @@
]>
<authorgroup>
- <author><firstname>Manik Surtani, Galder Zamarreño</firstname></author>
+ <author>
+ <firstname>Manik</firstname>
+ <surname>Surtani</surname>
+ <email>manik AT jboss DOT org</email>
+ </author>
+
+ <author>
+ <firstname>Brian</firstname>
+ <surname>Stansberry</surname>
+ <email>brian DOT stansberry AT jboss DOT com</email>
+ </author>
+
+ <author>
+ <firstname>Galder</firstname>
+ <surname>Zamarreño</surname>
+ <email>galder DOT zamarreno AT jboss DOT com</email>
+ </author>
+
+ <author>
+ <firstname>Mircea</firstname>
+ <surname>Markus</surname>
+ <email>mircea DOT markus AT jboss DOT com</email>
+ </author>
</authorgroup>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Book_Info.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Book_Info.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/Book_Info.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -2,7 +2,7 @@
<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<bookinfo id="JBoss_Cache">
- <title>JBoss Cache Tutorial</title>
+ <title>JBoss Cache User Guide</title>
<subtitle>for Use with JBoss Enterprise Application Platform 5.0</subtitle>
<edition>2.0</edition>
<pubsnumber>1</pubsnumber>
@@ -10,7 +10,7 @@
<productnumber>5.0</productnumber>
<abstract>
<para>
- This book is a TreeCache and JBossCache Tutorial.
+ This book is the User Guide for Cache of the JBoss Enterprise Application Platform.
</para>
</abstract>
<isbn>N/A</isbn>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/deployment.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/deployment.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/deployment.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -9,9 +9,9 @@
<literal>Configuration</literal>
instance or an XML file, as discussed
in the
- <link linkend="api.create_start">User API</link>
+ <xref linkend="api.create_start" />
and
- <link linkend="configuration.creation">Configuration</link>
+ <xref linkend="configuration.creation" />
chapters.
</para>
@@ -32,7 +32,7 @@
<para>
If, after deploying your cache you wish to expose a management interface
to it in JMX, see the
- <link linkend="jmx.registration.programatic">section on Programatic Registration in JMX</link>.
+ <xref linkend="jmx.registration.programatic" />.
</para>
</section>
<section id="deployment.microcontainer">
@@ -142,10 +142,10 @@
<literal>bean</literal>
element represents an object and is used to create a
<literal>Configuration</literal>
- and its <link linkend="configuration.elements">constituent parts</link>
+ and its <xref linkend="configuration.elements" />
The <literal>DefaultCacheFactory</literal> bean constructs the cache,
conceptually doing the same thing as is shown in the
- <link linkend="api.create_start">User API</link> chapter.
+ <xref linkend="api.create_start" /> chapter.
</para>
<para>
An interesting thing to note in the above example is the use of the
@@ -338,7 +338,7 @@
]]></programlisting>
<para>
- As discussed in the <link linkend="jmx.registration.programatic">Programatic Registration</link>
+ As discussed in the <xref linkend="jmx.registration.programatic" />
section, <literal>CacheJmxWrapper</literal> can do the work of building, creating and starting the
<literal>Cache</literal> if it is provided with a <literal>Configuration</literal>. With the
microcontainer, this is the preferred approach, as it saves the boilerplate XML
@@ -406,7 +406,7 @@
</para>
</footnote>.
Management tools can then access those MBeans to examine the statistics. See the section in the
- <link linkend="jmx_reference.statistics">JMX Reference chapter</link>
+ <xref linkend="jmx_reference.statistics" />
pertaining to the statistics that are made available via JMX.
</para>
</section>
@@ -415,14 +415,14 @@
<title>Receiving JMX Notifications</title>
<para>
JBoss Cache users can register a listener to receive cache events described earlier in the
- <link linkend="api.listener">User API</link>
+ <xref linkend="api.listener" />
chapter. Users can alternatively utilize the cache's management information infrastructure to receive these
events via JMX notifications. Cache events are accessible as notifications by registering a
<literal>NotificationListener</literal> for the <literal>CacheJmxWrapper</literal>.
</para>
<para>
- See the section in the <link linkend="jmx_reference.notifications">JMX Reference chapter</link>
+ See the section in the <xref linkend="jmx_reference.notifications" />
pertaining to JMX notifications for a list of notifications that can be received through the
<literal>CacheJmxWrapper</literal>.
</para>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/eviction_policies.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/eviction_policies.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/eviction_policies.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -4,7 +4,7 @@
<para>
Eviction controls JBoss Cache's memory management by restricting how many nodes are allowed to be stored in
memory, and for how long. Memory constraints on servers mean caches cannot grow indefinitely, so eviction
- needs to occur to prevent out of memory errors. Eviction is most often used alongside <link linkend="cache_loaders">cache loaders</link>.
+ needs to occur to prevent out of memory errors. Eviction is most often used alongside <xref linkend="cache_loaders" />.
</para>
<section id="eviction.design">
@@ -91,7 +91,7 @@
<title>Eviction Regions</title>
<para>
The concept of regions and the <literal>Region</literal> class were
- <link linkend="architecture.regions">visited earlier</link> when talking about marshalling. Regions are also
+ <xref linkend="architecture.regions" /> when talking about marshalling. Regions are also
used to define the eviction behavior for nodes within that region. In addition to using a region-specific
configuration, you can also configure default, cache-wide eviction behavior for nodes that do not fall into
predefined regions or if you do not wish to define specific regions. It is important to note that when
@@ -220,7 +220,7 @@
<literal>org.jboss.cache.config.EvictionConfig</literal>
bean, which is passed into
<literal>Configuration.setEvictionConfig()</literal>. See the
- <link linkend="configuration">chapter on Configuration</link>
+ <xref linkend="configuration" />
for more on building a
<literal>Configuration</literal>
programatically.
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/introduction.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/introduction.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/introduction.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -138,7 +138,7 @@
</para>
<para>
The JBoss Cache MVCC implementation only supports READ_COMMITTED and REPEATABLE_READ isolation levels, corresponding
- to their database equivalents. See the section on <link linkend="transactions">transactions and concurrency</link> for details on MVCC.
+ to their database equivalents. See the section on <xref linkend="transactions" /> for details on MVCC.
</para>
</section>
</section>
Deleted: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/master.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/master.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/master.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
- "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
- <!ENTITY preface SYSTEM "modules/preface.xml">
- <!ENTITY introduction SYSTEM "modules/introduction.xml">
- <!ENTITY architecture SYSTEM "modules/architecture.xml">
- <!ENTITY basic_api SYSTEM "modules/basic_api.xml">
- <!ENTITY replication SYSTEM "modules/replication.xml">
- <!ENTITY transactions SYSTEM "modules/transactions.xml">
- <!ENTITY eviction_policies SYSTEM "modules/eviction_policies.xml">
- <!ENTITY cache_loaders SYSTEM "modules/cache_loaders.xml">
- <!ENTITY compatibility SYSTEM "modules/compatibility.xml">
- <!ENTITY configuration SYSTEM "modules/configuration.xml">
- <!ENTITY deployment SYSTEM "modules/deployment.xml">
- <!ENTITY configuration_reference SYSTEM "modules/configuration_reference.xml">
- <!ENTITY jmx_reference SYSTEM "modules/jmx_reference.xml">
- <!ENTITY batching SYSTEM "modules/batching.xml">
- ]>
-<book lang="en">
- <bookinfo>
- <title>JBoss Cache Users' Guide</title>
- <subtitle>A clustered, transactional cache</subtitle>
-
- <!-- Release version and date -->
- <releaseinfo>Release 3.1.0 Cascabel</releaseinfo>
- <pubdate>April 2009</pubdate>
-
- <!-- Authors/contributors -->
- <author>
- <firstname>Manik</firstname>
- <surname>Surtani</surname>
- <email>manik AT jboss DOT org</email>
- </author>
-
- <author>
- <firstname>Brian</firstname>
- <surname>Stansberry</surname>
- <email>brian DOT stansberry AT jboss DOT com</email>
- </author>
-
- <author>
- <firstname>Galder</firstname>
- <surname>Zamarreño</surname>
- <email>galder DOT zamarreno AT jboss DOT com</email>
- </author>
-
- <author>
- <firstname>Mircea</firstname>
- <surname>Markus</surname>
- <email>mircea DOT markus AT jboss DOT com</email>
- </author>
-
- <!-- copyright info -->
- <copyright>
- <year>2004</year>
- <year>2005</year>
- <year>2006</year>
- <year>2007</year>
- <year>2008</year>
- <year>2009</year>
- <holder>JBoss, a division of Red Hat Inc., and all authors as named.</holder>
- </copyright>
-
- </bookinfo>
-
- <!-- Adds a table of contents here -->
- <toc/>
-
- &preface;
-
- <part label="I">
- <title>Introduction to JBoss Cache</title>
- <partintro>
- <para>
- This section covers what developers would need to quickly start using JBoss Cache in their projects. It
- covers an overview of the concepts and API, configuration and deployment information.
- </para>
- </partintro>
- &introduction;
- &basic_api;
- &configuration;
- &batching;
- &deployment;
- &compatibility;
- </part>
-
- <part label="II">
- <title>JBoss Cache Architecture</title>
- <partintro>
- <para>
- This section digs deeper into the JBoss Cache architecture, and is meant for developers wishing to use the more
- advanced cache features,extend or enhance the cache, write plugins, or are just looking for detailed knowledge
- of how things work under the hood.
- </para>
- </partintro>
- &architecture;
- &replication;
- &cache_loaders;
- &eviction_policies;
- &transactions;
- </part>
-
- <part label="III">
- <title>JBoss Cache Configuration References</title>
- <partintro>
- <para>
- This section contains technical references for easy looking up.
- </para>
- </partintro>
-
- &configuration_reference;
- &jmx_reference;
- </part>
-</book>
\ No newline at end of file
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/replication.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/replication.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/replication.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -358,7 +358,7 @@
<section>
<title>Configuration</title>
- See the <link linkend="configuration_reference_chapter">configuration reference section</link> for details on configuring buddy replication.
+ See the <xref linkend="configuration_reference_chapter" /> for details on configuring buddy replication.
</section>
</section>
</section>
@@ -371,7 +371,7 @@
every time data is changed in a cache other caches in the cluster receive
a message informing them that their data is now stale and should be
evicted from memory. Invalidation, when used with a shared cache loader
- (see chapter on <link linkend="cache_loaders">cache loaders</link>) would cause remote caches to refer to the
+ (see chapter on <xref linkend="cache_loaders" />) would cause remote caches to refer to the
shared cache loader to retrieve modified data. The benefit of this is
twofold: network traffic is minimized as invalidation messages are very
small compared to replicating updated data, and also that other caches in
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/transactions.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/transactions.xml 2009-08-26 00:45:20 UTC (rev 8202)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/transactions.xml 2009-08-26 01:29:39 UTC (rev 8203)
@@ -54,7 +54,7 @@
Writer threads, on the other hand, need to acquire a lock before any writing can commence. Currently,
we use lock striping to improve the memory performance of the cache, and the size of the shared lock pool
can be tuned using the <literal>concurrencyLevel</literal> attribute of the <literal>locking</literal>
- element. See the <link linkend="configuration_reference_chapter">configuration reference</link>
+ element. See the <xref linkend="configuration_reference_chapter" />
for details. After acquiring an exclusive lock on an Fqn, the writer thread then wraps the state to be
modified in a container as well, just like with reader threads, and then copies this state for writing.
When copying, a reference to the original version is still maintained in the container (for rollbacks).
@@ -69,7 +69,7 @@
If a writer is unable to acquire the write lock after some time, a <literal>TimeoutException</literal> is
thrown. This lock acquisition timeout defaults to 10000 millis and can be configured using the
<literal>lockAcquisitionTimeout</literal> attribute of the <literal>locking</literal> element. See the
- <link linkend="configuration_reference_chapter">configuration reference</link> for details.
+ <xref linkend="configuration_reference_chapter" /> for details.
</para>
<section id="mvcc.iso">
<title>Isolation Levels</title>
@@ -107,7 +107,7 @@
be an issue (for example, if the state written has no relationship to the state originally read) and
should be allowed. If your application does not care about write skews, you can allow them to happen
by setting the <literal>writeSkewCheck</literal> configuration attribute to <literal>false</literal>.
- See the <link linkend="configuration_reference_chapter">configuration reference</link> for details.
+ See the <xref linkend="configuration_reference_chapter" /> for details.
</para>
<para>
Note that write skews cannot happen when using READ_COMMITTED since threads always work off committed
@@ -147,7 +147,7 @@
<title>Pessimistic and Optimistic Locking Schemes</title>
<para>
From JBoss Cache 3.x onwards, pessimistic and optimistic locking schemes are deprecated in favor of
- <link linkend="transactions.locks.mvcc">MVCC</link>. It is recommended that existing applications
+ <xref linkend="transactions.locks.mvcc" />. It is recommended that existing applications
move off these legacy locking schemes as support for them will eventually be dropped altogether in future
releases.
</para>
@@ -227,7 +227,7 @@
</para>
<para>When the transaction commits, we initiate either a one- two-phase commit
- protocol. See <link linkend="replication.tx">replicated caches and transactions</link> for details.
+ protocol. See <xref linkend="replication.tx" /> for details.
</para>
</section>
15 years, 4 months
JBoss Cache SVN: r8202 - in enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US: images and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2009-08-25 20:45:20 -0400 (Tue, 25 Aug 2009)
New Revision: 8202
Added:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/BuddyReplication.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/CacheLoader.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/CacheMgmtInterceptor.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/ClusteredCacheLoader.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Configuration.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/DataVersions.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/DelegatingCacheLoader.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Interceptor.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Listeners.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/LocalCacheLoader.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Marshaller.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/MultipleCacheLoaders.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/OnlyOneCacheLoader.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/PackageOverview-BuddyReplication.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/PublicAPI.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/SPI.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/SharedCacheLoader.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TransactionLookup.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TreeCacheArchitecture.png
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TreeNodeExample.gif
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/icon.svg
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/logo.gif
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/writeskew.png
Modified:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/architecture.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/basic_api.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration_reference.xml
Log:
adding in images again
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/architecture.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/architecture.xml 2009-08-26 00:06:53 UTC (rev 8201)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/architecture.xml 2009-08-26 00:45:20 UTC (rev 8202)
@@ -25,7 +25,7 @@
</para>
<para>
- Any modifications (see <link linkend="api">API chapter</link>) in one cache instance will be replicated to
+ Any modifications (see <xref linkend="api"/>) in one cache instance will be replicated to
the other cache. Naturally, you can have more than 2 caches in a cluster.
Depending on the transactional settings, this replication will occur either after each modification or at the
end of a transaction, at commit time. When a new cache is created, it can optionally acquire the contents
@@ -143,7 +143,7 @@
</para>
<para>
Adding custom interceptors via XML is also supported, please see the
- <link linkend="configuration_reference_chapter">XML configuration reference</link> for details.
+ <xref linkend="configuration_reference_chapter" /> for details.
</para>
</section>
</section>
@@ -191,11 +191,7 @@
method invocation origin (
<literal>InvocationContext.isOriginLocal()</literal>
) as well as
- <link
- linkend="configuration.options">
- <literal>Option</literal>
- overrides
- </link>, and information around which nodes have been locked, etc.
+ <xref linkend="configuration.options" />, and information around which nodes have been locked, etc.
</para>
<para>
The
@@ -337,7 +333,7 @@
<para>
To enable us to successfully marshall and unmarshall objects from such class loaders, we use a concept called
regions. A region is a portion of the cache which share a common class loader (a region also has other uses -
- see <link linkend="eviction_policies">eviction policies</link>).
+ see <xref linkend="eviction_policies" />).
</para>
<para>
A region is created by using the
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/basic_api.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/basic_api.xml 2009-08-26 00:06:53 UTC (rev 8201)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/basic_api.xml 2009-08-26 00:45:20 UTC (rev 8202)
@@ -37,7 +37,7 @@
<listitem>
Gain access to a <literal>Configuration</literal>, either by having one passed in as a method
parameter or by parsing XML content and constructing one. The XML content can come from a provided input
- stream, from a classpath or filesystem location. See the <link linkend="configuration">chapter on Configuration</link>
+ stream, from a classpath or filesystem location. See the <xref linkend="configuration" />
for more on obtaining a <literal>Configuration</literal>.
</listitem>
<listitem>
@@ -132,7 +132,7 @@
<para>
The <literal>Cache</literal> interface also exposes put/get/remove operations that take an
- <link linkend="basic_api.fqn">Fqn</link> as an argument, for convenience:
+ <xref linkend="basic_api.fqn" /> as an argument, for convenience:
</para>
<programlisting role="JAVA"><![CDATA[
@@ -286,8 +286,8 @@
</itemizedlist>
</para>
<para>
- See the <link linkend="clustering">chapter on Clustering</link> for more details on how cache mode
- affects behavior. See the <link linkend="configuration">chapter on Configuration</link> for info on how to
+ See the <xref linkend="clustering" /> for more details on how cache mode
+ affects behavior. See the <xref linkend="configuration" /> for info on how to
configure things like cache mode.
</para>
</section>
@@ -552,7 +552,7 @@
the event. As such, it is good practise to ensure cache listener implementations don't hold up the thread in
long-running tasks. Alternatively, you could set the <literal>CacheListener.sync()</literal> attribute to
<literal>false</literal>, in which case you will not be notified in the caller's thread. See the
- <link linkend="element.listeners">configuration reference</link> on tuning this thread pool and size of blocking
+ <xref linkend="element.listeners" /> on tuning this thread pool and size of blocking
queue.
</para>
</section>
@@ -598,7 +598,7 @@
</listitem>
</itemizedlist>
These cache loaders, along with advanced aspects and tuning issues, are discussed in the
- <link linkend="cache_loaders">chapter dedicated to cache loaders</link>.
+ <xref linkend="cache_loaders" />.
</para>
</section>
@@ -645,7 +645,7 @@
</listitem>
</itemizedlist>
Detailed configuration and implementing custom eviction policies are discussed in the
- <link linkend="eviction_policies">chapter dedicated to eviction policies</link>.
+ <xref linkend="eviction_policies" />.
</para>
</section>
</chapter>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration.xml 2009-08-26 00:06:53 UTC (rev 8201)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration.xml 2009-08-26 00:45:20 UTC (rev 8202)
@@ -7,14 +7,14 @@
<para>
The
<literal>org.jboss.cache.config.Configuration</literal>
- class (along with its <link linkend="configuration.elements">component parts</link>)
+ class (along with its <xref linkend="configuration.elements" />)
is a Java Bean that encapsulates the configuration of the <literal>Cache</literal>
and all of its architectural elements (cache loaders, evictions policies, etc.)
</para>
<para>
The <literal>Configuration</literal> exposes numerous properties which
- are summarized in the <link linkend="configuration_reference">configuration reference</link>
+ are summarized in the <xref linkend="configuration_reference" />
section of this book and many of which are discussed in later chapters. Any time you see a configuration option
discussed in this book, you can assume that the <literal>Configuration</literal>
class or one of its component parts exposes a simple property setter/getter for that configuration option.
@@ -28,7 +28,7 @@
</title>
<para>
- As discussed in the <link linkend="api.create_start">User API section</link>,
+ As discussed in the <xref linkend="api.create_start" />,
before a <literal>Cache</literal> can be created, the <literal>CacheFactory</literal>
must be provided with a <literal>Configuration</literal> object or with a file name or
input stream to use to parse a <literal>Configuration</literal> from XML. The following sections describe
@@ -60,10 +60,10 @@
<para>
This file uses sensible defaults for isolation levels, lock acquisition timeouts, locking modes, etc. Another,
more complete, sample XML file is included in the
- <link linkend="sample_xml_file">configuration reference</link>
+ <xref linkend="sample_xml_file" />
section of this book,
along with
- <link linkend="configuration_reference">a handy look-up table</link>
+ <xref linkend="configuration_reference" />
explaining the various options.
</para>
</section>
@@ -124,7 +124,7 @@
except those annotated as
<literal>@Dynamic</literal>
. Dynamic properties are also marked as such in the
- <link linkend="configuration_reference">configuration reference</link>
+ <xref linkend="configuration_reference" />
table. Attempting to change a non-dynamic
property will result in a
<literal>ConfigurationException</literal>
@@ -139,14 +139,14 @@
The
<literal>Configuration</literal>
class and its
- <link linkend="configuration.elements">component parts</link>
+ <xref linkend="configuration.elements" />
are all Java Beans that expose all config elements via simple setters
and getters. Therefore, any good IOC framework such as Spring, Google Guice, JBoss Microcontainer, etc. should be able to
build up a
<literal>Configuration</literal>
from an XML file in
the framework's own format. See the
- <link linkend="deployment.microcontainer">deployment via the JBoss micrcontainer</link>
+ <xref linkend="deployment.microcontainer" />
section for an example of this.
</para>
</section>
@@ -183,14 +183,13 @@
<literal>Configuration</literal>
: top level object
in the hierarchy; exposes the configuration properties listed in the
- <link linkend="configuration_reference">configuration reference</link>
- section of this book.
+ <xref linkend="configuration_reference" /> section of this book.
</listitem>
<listitem>
<literal>BuddyReplicationConfig</literal>
: only relevant if
- <link linkend="br">buddy replication</link>
+ <xref linkend="br" />
is used. General
buddy replication configuration options. Must include a:
</listitem>
@@ -210,7 +209,7 @@
<listitem>
<literal>EvictionConfig</literal>
: only relevant if
- <link linkend="eviction_policies">eviction</link>
+ <xref linkend="eviction_policies" />
is used. General
eviction configuration options. Must include at least one:
</listitem>
@@ -236,7 +235,7 @@
<listitem>
<literal>CacheLoaderConfig</literal>
: only relevant if a
- <link linkend="cache_loaders">cache loader</link>
+ <xref linkend="cache_loaders" />
is used. General
cache loader configuration options. Must include at least one:
</listitem>
@@ -258,7 +257,7 @@
: exposes to cache clients
certain information about the cache's runtime environment (e.g. membership
in buddy replication groups if
- <link linkend="br">buddy replication</link>
+ <xref linkend="br" />
is used.) Also allows
direct injection into the cache of needed external services like a
JTA
@@ -287,7 +286,7 @@
]]></programlisting>
<para>
A complete listing of which options may be changed dynamically is in the
- <link linkend="configuration_reference">configuration reference</link>
+ <xref linkend="configuration_reference" />
section. An
<literal>org.jboss.cache.config.ConfigurationException</literal>
will be thrown if you attempt to change a
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration_reference.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration_reference.xml 2009-08-26 00:06:53 UTC (rev 8201)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/configuration_reference.xml 2009-08-26 00:45:20 UTC (rev 8202)
@@ -282,18 +282,18 @@
<entry>
<para>
- <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>,
- <link linkend="element.customInterceptors"><literal><![CDATA[<customInterceptors />]]></literal></link>,
- <link linkend="element.eviction"><literal><![CDATA[<eviction />]]></literal></link>,
- <link linkend="element.invocationBatching"><literal><![CDATA[<invocationBatching />]]></literal></link>,
- <link linkend="element.jmxStatistics"><literal><![CDATA[<jmxStatistics />]]></literal></link>,
- <link linkend="element.listeners"><literal><![CDATA[<listeners />]]></literal></link>,
- <link linkend="element.loaders"><literal><![CDATA[<loaders />]]></literal></link>,
- <link linkend="element.locking"><literal><![CDATA[<locking />]]></literal></link>,
- <link linkend="element.serialization"><literal><![CDATA[<serialization />]]></literal></link>,
- <link linkend="element.shutdown"><literal><![CDATA[<shutdown />]]></literal></link>,
- <link linkend="element.startup"><literal><![CDATA[<startup />]]></literal></link>,
- <link linkend="element.transaction"><literal><![CDATA[<transaction />]]></literal></link>
+ <xref linkend="element.clustering" />,
+ <xref linkend="element.customInterceptors" />,
+ <xref linkend="element.eviction" />,
+ <xref linkend="element.invocationBatching" />,
+ <xref linkend="element.jmxStatistics" />,
+ <xref linkend="element.listeners" />,
+ <xref linkend="element.loaders" />,
+ <xref linkend="element.locking" />,
+ <xref linkend="element.serialization" />,
+ <xref linkend="element.shutdown" />,
+ <xref linkend="element.startup" />,
+ <xref linkend="element.transaction" />
</para>
</entry>
</row>
@@ -381,7 +381,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -476,7 +476,7 @@
<entry>Specifies whether to check for write skews. Only used if <literal>nodeLockingScheme</literal>
is <literal>mvcc</literal> and <literal>isolationLevel</literal> is <literal>REPEATABLE_READ</literal>.
- See the <link linkend="mvcc.writeskew">section on write skews</link> for a more detailed discussion.</entry>
+ See the <xref linkend="mvcc.writeskew" /> for a more detailed discussion.</entry>
</row>
<row>
<entry><emphasis role="bold">useLockStriping</emphasis></entry>
@@ -499,7 +499,7 @@
<entry>Specifies the number of shared locks to use for write locks acquired. Only used if <literal>nodeLockingScheme</literal>
is <literal>mvcc</literal>.
- See the <link linkend="mvcc.impl">section on JBoss Cache's MVCC implementation</link> for a more detailed discussion.</entry>
+ See the <xref linkend="mvcc.impl" /> for a more detailed discussion.</entry>
</row>
</tbody>
</tgroup>
@@ -536,7 +536,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -656,7 +656,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -749,7 +749,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -805,7 +805,7 @@
<entry>true, false</entry>
<entry>false</entry>
- <entry>If <link linkend="architecture.regions">region-based marshalling</link> is enabled, this
+ <entry>If <xref linkend="architecture.regions" /> is enabled, this
attribute controls whether new regions created are inactive on startup.</entry>
</row>
</tbody>
@@ -843,7 +843,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -942,7 +942,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -1052,7 +1052,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -1110,7 +1110,7 @@
<entry>
Whether invocation batching is enabled or not. See the chapter on
- <link linkend="batching">invocation batching</link> for details.
+ <xref linkend="batching" /> for details.
</entry>
</row>
</tbody>
@@ -1148,7 +1148,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -1301,7 +1301,7 @@
</entry>
<entry>
- <para><link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link></para>
+ <para><xref linkend="element.jbosscache" /></para>
</entry>
</row>
@@ -1312,8 +1312,8 @@
<entry>
<para>
- <link linkend="element.default"><literal><![CDATA[<default />]]></literal></link>,
- <link linkend="element.region"><literal><![CDATA[<region />]]></literal></link>
+ <xref linkend="element.default" />,
+ <xref linkend="element.region" />
</para>
</entry>
</row>
@@ -1400,7 +1400,7 @@
</entry>
<entry>
- <para><link linkend="element.eviction"><literal><![CDATA[<eviction />]]></literal></link></para>
+ <para><xref linkend="element.eviction" /></para>
</entry>
</row>
@@ -1411,7 +1411,7 @@
<entry>
<para>
- <link linkend="element.property"><literal><![CDATA[<property />]]></literal></link>
+ <xref linkend="element.property" />
</para>
</entry>
</row>
@@ -1518,7 +1518,7 @@
</entry>
<entry>
- <para><link linkend="element.eviction"><literal><![CDATA[<eviction />]]></literal></link></para>
+ <para><xref linkend="element.eviction" /></para>
</entry>
</row>
@@ -1529,7 +1529,7 @@
<entry>
<para>
- <link linkend="element.property"><literal><![CDATA[<property />]]></literal></link>
+ <xref linkend="element.property" />
</para>
</entry>
</row>
@@ -1575,7 +1575,7 @@
<entry>A String that could be parsed using Fqn.fromString()</entry>
<entry>none</entry>
<entry>
- This should be a unique name that defines this region. See the <link linkend="regions">chapter on eviction</link>
+ This should be a unique name that defines this region. See the <xref linkend="regions" />
for details of eviction regions.
</entry>
</row>
@@ -1646,10 +1646,10 @@
<entry>
<para>
- <link linkend="element.default"><literal><![CDATA[<default />]]></literal></link>,
- <link linkend="element.region"><literal><![CDATA[<region />]]></literal></link>,
- <link linkend="element.interceptor"><literal><![CDATA[<interceptor />]]></literal></link>
- </para>
+ <xref linkend="element.default" />,
+ <xref linkend="element.region" />,
+ <xref linkend="element.interceptor" />
+ </para>
</entry>
</row>
@@ -1750,7 +1750,7 @@
<entry>
<para>
- <link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link>
+ <xref linkend="element.jbosscache" />
</para>
</entry>
</row>
@@ -1761,8 +1761,8 @@
</entry>
<entry>
- <link linkend="element.preload"><literal><![CDATA[<preload />]]></literal></link>,
- <link linkend="element.loader"><literal><![CDATA[<loader />]]></literal></link>
+ <xref linkend="element.preload" />,
+ <xref linkend="element.loader" />
</entry>
</row>
@@ -1807,7 +1807,7 @@
<entry>true, false</entry>
<entry>false</entry>
<entry>
- If true, cache loaders are used in passivation mode. See the <link linkend="cache_loaders">chapter on cache loaders</link>
+ If true, cache loaders are used in passivation mode. See the <xref linkend="cache_loaders" />
for a detailed discussion on this.
</entry>
</row>
@@ -1817,7 +1817,7 @@
<entry>true, false</entry>
<entry>false</entry>
<entry>
- If true, cache loaders are used in shared mode. See the <link linkend="cache_loaders">chapter on cache loaders</link>
+ If true, cache loaders are used in shared mode. See the <xref linkend="cache_loaders" />
for a detailed discussion on this.
</entry>
</row>
@@ -1857,7 +1857,7 @@
<entry>
<para>
- <link linkend="element.loaders"><literal><![CDATA[<loaders />]]></literal></link>
+ <xref linkend="element.loaders" />
</para>
</entry>
</row>
@@ -1868,7 +1868,7 @@
</entry>
<entry>
- <link linkend="element.node"><literal><![CDATA[<node />]]></literal></link>
+ <xref linkend="element.node" />
</entry>
</row>
@@ -1919,7 +1919,7 @@
<entry>
<para>
- <link linkend="element.preload"><literal><![CDATA[<preload />]]></literal></link>
+ <xref linkend="element.preload" />
</para>
</entry>
</row>
@@ -2015,7 +2015,7 @@
<entry>
<para>
- <link linkend="element.loaders"><literal><![CDATA[<loaders />]]></literal></link>
+ <xref linkend="element.loaders" />
</para>
</entry>
</row>
@@ -2026,8 +2026,8 @@
</entry>
<entry>
- <link linkend="element.properties"><literal><![CDATA[<properties />]]></literal></link>,
- <link linkend="element.singletonStore"><literal><![CDATA[<singletonStore />]]></literal></link>
+ <xref linkend="element.properties" />,
+ <xref linkend="element.singletonStore" />
</entry>
</row>
@@ -2094,7 +2094,7 @@
<entry>
When a cache starts up, retrieve persistent state from the cache loaders in other caches in the
cluster. Only <emphasis>one</emphasis> loader element may set this to true. Also, only makes
- sense if the <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>
+ sense if the <xref linkend="element.clustering" />
tag is present.
</entry>
@@ -2147,9 +2147,9 @@
<entry>
<para>
- <link linkend="element.loader"><literal><![CDATA[<loader />]]></literal></link>,
- <link linkend="element.singletonStore"><literal><![CDATA[<singletonStore />]]></literal></link>,
- <link linkend="element.locator"><literal><![CDATA[<locator />]]></literal></link>
+ <xref linkend="element.loader" />,
+ <xref linkend="element.singletonStore" />,
+ <xref linkend="element.locator" />
</para>
</entry>
</row>
@@ -2195,7 +2195,7 @@
<entry>
<para>
- This element configures the enclosing cache loader as a <link linkend="sscl">singleton store cache loader</link>.
+ This element configures the enclosing cache loader as a <xref linkend="sscl" />.
</para>
</entry>
</row>
@@ -2207,7 +2207,7 @@
<entry>
<para>
- <link linkend="element.loader"><literal><![CDATA[<loader />]]></literal></link>
+ <xref linkend="element.loader" />
</para>
</entry>
</row>
@@ -2218,7 +2218,7 @@
</entry>
<entry>
- <link linkend="element.properties"><literal><![CDATA[<properties />]]></literal></link>
+ <xref linkend="element.properties" />
</entry>
</row>
@@ -2312,7 +2312,7 @@
<entry>
<para>
- <link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link>
+ <xref linkend="element.jbosscache" />
</para>
</entry>
</row>
@@ -2323,7 +2323,7 @@
</entry>
<entry>
- <link linkend="element.interceptor"><literal><![CDATA[<interceptor />]]></literal></link>
+ <xref linkend="element.interceptor" />
</entry>
</row>
@@ -2373,7 +2373,7 @@
<entry>
<para>
- <link linkend="element.customInterceptor"><literal><![CDATA[<customInterceptor />]]></literal></link>
+ <xref linkend="element.customInterceptor" />
</para>
</entry>
</row>
@@ -2384,7 +2384,7 @@
</entry>
<entry>
- <link linkend="element.property"><literal><![CDATA[<property />]]></literal></link>
+ <xref linkend="element.property" />
</entry>
</row>
@@ -2519,7 +2519,7 @@
<entry>
<para>
- <link linkend="element.jbosscache"><literal><![CDATA[<jbosscache />]]></literal></link>
+ <xref linkend="element.jbosscache" />
</para>
</entry>
</row>
@@ -2530,11 +2530,11 @@
</entry>
<entry>
- <link linkend="element.stateRetrieval"><literal><![CDATA[<stateRetrieval />]]></literal></link>,
- <link linkend="element.sync"><literal><![CDATA[<sync />]]></literal></link>,
- <link linkend="element.async"><literal><![CDATA[<async />]]></literal></link>,
- <link linkend="element.buddy"><literal><![CDATA[<buddy />]]></literal></link>,
- <link linkend="element.jgroupsConfig"><literal><![CDATA[<jgroupsConfig />]]></literal></link>
+ <xref linkend="element.stateRetrieval" />,
+ <xref linkend="element.sync" />,
+ <xref linkend="element.async" />,
+ <xref linkend="element.buddy" />,
+ <xref linkend="element.jgroupsConfig" />
</entry>
</row>
@@ -2579,7 +2579,7 @@
<entry>replication, invalidation, r, i</entry>
<entry>replication</entry>
<entry>
- See the <link linkend="clustering">chapter on clustering</link> for the differences between
+ See the <xref linkend="clustering" /> for the differences between
replication and invalidation. When using the bean, synchronous and asynchronous communication is
combined with clustering mode to give you the enumberation <literal>Configuration.CacheMode</literal>.
</entry>
@@ -2620,7 +2620,7 @@
<para>
If this element is present, all communications are synchronous, in that whenever a thread sends
a message sent over the wire, it blocks until it receives an acknowledgement from the recipient.
- This element is mutually exclusive with the <link linkend="element.async"><literal><![CDATA[<async />]]></literal></link>
+ This element is mutually exclusive with the <xref linkend="element.async" />
element.
</para>
</entry>
@@ -2633,7 +2633,7 @@
<entry>
<para>
- <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>
+ <xref linkend="element.clustering" />
</para>
</entry>
</row>
@@ -2718,7 +2718,7 @@
<para>
If this element is present, all communications are asynchronous, in that whenever a thread sends
a message sent over the wire, it does not wait for an acknowledgement before returning.
- This element is mutually exclusive with the <link linkend="element.sync"><literal><![CDATA[<sync />]]></literal></link>
+ This element is mutually exclusive with the <xref linkend="element.sync" />
element.
</para>
</entry>
@@ -2731,7 +2731,7 @@
<entry>
<para>
- <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>
+ <xref linkend="element.clustering" />
</para>
</entry>
</row>
@@ -2869,8 +2869,8 @@
<entry>
<para>
- <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>
- </para>
+ <xref linkend="element.clustering" />
+ </para>
</entry>
</row>
@@ -2975,7 +2975,7 @@
<para>
If this tag is present, then state is not replicated across the entire cluster. Instead, buddy
replication is used to select cache instances to maintain backups on. See
- <link linkend="br">this section on buddy replication</link> for details. Note that this is only
+ <xref linkend="br" /> for details. Note that this is only
used if the clustering mode is <literal>replication</literal>, and not if it is <literal>invalidation</literal>.
</para>
</entry>
@@ -2988,7 +2988,7 @@
<entry>
<para>
- <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>
+ <xref linkend="element.clustering" />
</para>
</entry>
</row>
@@ -2999,8 +2999,8 @@
</entry>
<entry>
- <link linkend="element.dataGravitation"><literal><![CDATA[<dataGravitation />]]></literal></link>,
- <link linkend="element.locator"><literal><![CDATA[<locator />]]></literal></link>,
+ <xref linkend="element.dataGravitation" />,
+ <xref linkend="element.locator" />,
</entry>
</row>
@@ -3065,7 +3065,7 @@
<entry></entry>
<entry>
This is used as a means to identify cache instances and provide hints to the buddy selection
- algorithms. More information on <link linkend="br">the section on buddy replication</link>.
+ algorithms. More information on <xref linkend="br" />.
</entry>
</row>
</tbody>
@@ -3093,7 +3093,7 @@
<entry>
<para>
This tag configures how data gravitation is conducted. See
- <link linkend="br">this section on buddy replication</link> for details.
+ <xref linkend="br" /> for details.
</para>
</entry>
</row>
@@ -3105,7 +3105,7 @@
<entry>
<para>
- <link linkend="element.buddy"><literal><![CDATA[<buddy />]]></literal></link>
+ <xref linkend="element.buddy" />
</para>
</entry>
</row>
@@ -3222,7 +3222,7 @@
<entry>
<para>
- <link linkend="element.buddy"><literal><![CDATA[<buddy />]]></literal></link>
+ <xref linkend="element.buddy" />
</para>
</entry>
</row>
@@ -3233,7 +3233,7 @@
</entry>
<entry>
- <link linkend="element.properties"><literal><![CDATA[<properties />]]></literal></link>
+ <xref linkend="element.properties" />
</entry>
</row>
@@ -3319,7 +3319,7 @@
<entry>
<para>
- <link linkend="element.clustering"><literal><![CDATA[<clustering />]]></literal></link>
+ <xref linkend="element.clustering" />
</para>
</entry>
</row>
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/BuddyReplication.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/BuddyReplication.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/CacheLoader.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/CacheLoader.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/CacheMgmtInterceptor.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/CacheMgmtInterceptor.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/ClusteredCacheLoader.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/ClusteredCacheLoader.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Configuration.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Configuration.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/DataVersions.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/DataVersions.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/DelegatingCacheLoader.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/DelegatingCacheLoader.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Interceptor.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Interceptor.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Listeners.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Listeners.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/LocalCacheLoader.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/LocalCacheLoader.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Marshaller.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/Marshaller.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/MultipleCacheLoaders.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/MultipleCacheLoaders.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/OnlyOneCacheLoader.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/OnlyOneCacheLoader.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/PackageOverview-BuddyReplication.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/PackageOverview-BuddyReplication.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/PublicAPI.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/PublicAPI.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/SPI.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/SPI.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/SharedCacheLoader.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/SharedCacheLoader.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TransactionLookup.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TransactionLookup.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TreeCacheArchitecture.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TreeCacheArchitecture.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TreeNodeExample.gif
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/TreeNodeExample.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/icon.svg
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/icon.svg (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/icon.svg 2009-08-26 00:45:20 UTC (rev 8202)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+ xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.0"
+ width="32"
+ height="32"
+ id="svg3017"
+ sodipodi:version="0.32"
+ inkscape:version="0.44+devel"
+ sodipodi:docname="book.svg"
+ sodipodi:docbase="/home/andy/Desktop">
+ <metadata
+ id="metadata489">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ inkscape:window-height="480"
+ inkscape:window-width="858"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="1"
+ inkscape:cx="16"
+ inkscape:cy="15.944056"
+ inkscape:window-x="0"
+ inkscape:window-y="33"
+ inkscape:current-layer="svg3017" />
+ <defs
+ id="defs3019">
+ <linearGradient
+ id="linearGradient2381">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop2383" />
+ <stop
+ style="stop-color:white;stop-opacity:0"
+ offset="1"
+ id="stop2385" />
+ </linearGradient>
+ <linearGradient
+ x1="415.73831"
+ y1="11.854"
+ x2="418.13361"
+ y2="18.8104"
+ id="XMLID_1758_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="0"
+ id="stop3903" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="1"
+ id="stop3905" />
+ <a:midPointStop
+ style="stop-color:#CCCCCC"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#CCCCCC"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#F2F2F2"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="500.70749"
+ y1="-13.2441"
+ x2="513.46442"
+ y2="-2.1547"
+ id="XMLID_1757_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0"
+ id="stop3890" />
+ <stop
+ style="stop-color:#96bad6;stop-opacity:1"
+ offset="1"
+ id="stop3892" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#96BAD6"
+ offset="1" />
+ </linearGradient>
+ <clipPath
+ id="XMLID_1755_">
+ <use
+ id="use3874"
+ x="0"
+ y="0"
+ width="744.09448"
+ height="600"
+ xlink:href="#XMLID_343_" />
+ </clipPath>
+ <linearGradient
+ x1="505.62939"
+ y1="-14.9526"
+ x2="527.49402"
+ y2="-0.7536"
+ id="XMLID_1756_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0"
+ id="stop3877" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0.51120001"
+ id="stop3879" />
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0.64609998"
+ id="stop3881" />
+ <stop
+ style="stop-color:#16336e;stop-opacity:1"
+ offset="1"
+ id="stop3883" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5112" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.6461" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#16336E"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="471.0806"
+ y1="201.07761"
+ x2="481.91711"
+ y2="210.4977"
+ id="XMLID_1754_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#6498c1;stop-opacity:1"
+ offset="0.005618"
+ id="stop3863" />
+ <stop
+ style="stop-color:#79a9cc;stop-opacity:1"
+ offset="0.2332"
+ id="stop3865" />
+ <stop
+ style="stop-color:#a4cde2;stop-opacity:1"
+ offset="0.74049997"
+ id="stop3867" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="1"
+ id="stop3869" />
+ <a:midPointStop
+ style="stop-color:#6498C1"
+ offset="5.618000e-003" />
+ <a:midPointStop
+ style="stop-color:#6498C1"
+ offset="0.4438" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="516.57672"
+ y1="-15.769"
+ x2="516.57672"
+ y2="0.84280002"
+ id="XMLID_1753_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0"
+ id="stop3851" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="1"
+ id="stop3853" />
+ <a:midPointStop
+ style="stop-color:#B2B2B2"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#B2B2B2"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#F2F2F2"
+ offset="1" />
+ </linearGradient>
+ <clipPath
+ id="XMLID_1751_">
+ <use
+ id="use3837"
+ x="0"
+ y="0"
+ width="744.09448"
+ height="600"
+ xlink:href="#XMLID_338_" />
+ </clipPath>
+ <linearGradient
+ x1="506.09909"
+ y1="-11.5137"
+ x2="527.99609"
+ y2="2.7063999"
+ id="XMLID_1752_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0"
+ id="stop3840" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0.51120001"
+ id="stop3842" />
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0.64609998"
+ id="stop3844" />
+ <stop
+ style="stop-color:#16336e;stop-opacity:1"
+ offset="1"
+ id="stop3846" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5112" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.6461" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#16336E"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="468.2915"
+ y1="204.7612"
+ x2="479.39871"
+ y2="214.4166"
+ id="XMLID_1750_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0"
+ id="stop3830" />
+ <stop
+ style="stop-color:#96bad6;stop-opacity:1"
+ offset="1"
+ id="stop3832" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#96BAD6"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="502.70749"
+ y1="115.3013"
+ x2="516.39001"
+ y2="127.1953"
+ id="XMLID_1749_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0"
+ id="stop3818" />
+ <stop
+ style="stop-color:#96bad6;stop-opacity:1"
+ offset="1"
+ id="stop3820" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#96BAD6"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="501.0903"
+ y1="-19.2544"
+ x2="531.85413"
+ y2="0.72390002"
+ id="XMLID_1748_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0"
+ id="stop3803" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0.51120001"
+ id="stop3805" />
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0.64609998"
+ id="stop3807" />
+ <stop
+ style="stop-color:#16336e;stop-opacity:1"
+ offset="1"
+ id="stop3809" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5112" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.6461" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#16336E"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="481.23969"
+ y1="212.5742"
+ x2="472.92981"
+ y2="207.4967"
+ id="XMLID_2275_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#f3403f;stop-opacity:1"
+ offset="0"
+ id="stop9947" />
+ <stop
+ style="stop-color:#d02a28;stop-opacity:1"
+ offset="0.37889999"
+ id="stop9949" />
+ <stop
+ style="stop-color:#b21714;stop-opacity:1"
+ offset="0.77649999"
+ id="stop9951" />
+ <stop
+ style="stop-color:#a6100c;stop-opacity:1"
+ offset="1"
+ id="stop9953" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0.4213" />
+ <a:midPointStop
+ style="stop-color:#A6100C"
+ offset="1" />
+ </linearGradient>
+ <clipPath
+ id="XMLID_2273_">
+ <use
+ id="use9933"
+ x="0"
+ y="0"
+ width="744.09448"
+ height="600"
+ xlink:href="#XMLID_960_" />
+ </clipPath>
+ <linearGradient
+ x1="473.7681"
+ y1="209.17529"
+ x2="486.98099"
+ y2="213.2001"
+ id="XMLID_2274_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#f3403f;stop-opacity:1"
+ offset="0"
+ id="stop9936" />
+ <stop
+ style="stop-color:#d02a28;stop-opacity:1"
+ offset="0.37889999"
+ id="stop9938" />
+ <stop
+ style="stop-color:#b21714;stop-opacity:1"
+ offset="0.77649999"
+ id="stop9940" />
+ <stop
+ style="stop-color:#a6100c;stop-opacity:1"
+ offset="1"
+ id="stop9942" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0.4213" />
+ <a:midPointStop
+ style="stop-color:#A6100C"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="478.21341"
+ y1="-131.9297"
+ x2="469.85818"
+ y2="-140.28481"
+ id="XMLID_2272_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+ <stop
+ style="stop-color:#f3403f;stop-opacity:1"
+ offset="0"
+ id="stop9917" />
+ <stop
+ style="stop-color:#d02a28;stop-opacity:1"
+ offset="0.37889999"
+ id="stop9919" />
+ <stop
+ style="stop-color:#b21714;stop-opacity:1"
+ offset="0.77649999"
+ id="stop9921" />
+ <stop
+ style="stop-color:#a6100c;stop-opacity:1"
+ offset="1"
+ id="stop9923" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0.4213" />
+ <a:midPointStop
+ style="stop-color:#A6100C"
+ offset="1" />
+ </linearGradient>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ style="overflow:visible"
+ id="TriangleInM">
+ <path
+ d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+ transform="scale(-0.4,-0.4)"
+ style="fill:#5c5c4f"
+ id="path3197" />
+ </marker>
+ <linearGradient
+ x1="200.7363"
+ y1="100.4028"
+ x2="211.99519"
+ y2="89.143997"
+ id="XMLID_3298_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#bfbfbf;stop-opacity:1"
+ offset="0"
+ id="stop20103" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="1"
+ id="stop20105" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#BFBFBF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#BFBFBF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#F2F2F2" />
+ </linearGradient>
+ <linearGradient
+ x1="200.7363"
+ y1="100.4028"
+ x2="211.99519"
+ y2="89.143997"
+ id="linearGradient36592"
+ xlink:href="#XMLID_3298_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <linearGradient
+ x1="181.2925"
+ y1="110.8481"
+ x2="192.6369"
+ y2="99.5037"
+ id="XMLID_3297_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0"
+ id="stop20096" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="stop20098" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#CCCCCC" />
+ </linearGradient>
+ <linearGradient
+ x1="181.2925"
+ y1="110.8481"
+ x2="192.6369"
+ y2="99.5037"
+ id="linearGradient36595"
+ xlink:href="#XMLID_3297_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <linearGradient
+ x1="211.77589"
+ y1="105.7749"
+ x2="212.6619"
+ y2="108.2092"
+ id="XMLID_3296_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#0f6124;stop-opacity:1"
+ offset="0"
+ id="stop20087" />
+ <stop
+ style="stop-color:#219630;stop-opacity:1"
+ offset="1"
+ id="stop20089" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#0F6124" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#0F6124" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#219630" />
+ </linearGradient>
+ <linearGradient
+ x1="211.77589"
+ y1="105.7749"
+ x2="212.6619"
+ y2="108.2092"
+ id="linearGradient36677"
+ xlink:href="#XMLID_3296_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <linearGradient
+ x1="208.9834"
+ y1="116.8296"
+ x2="200.0811"
+ y2="96.834602"
+ id="XMLID_3295_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0"
+ id="stop20076" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0.5"
+ id="stop20078" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="stop20080" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFFFFF" />
+ </linearGradient>
+ <linearGradient
+ x1="208.9834"
+ y1="116.8296"
+ x2="200.0811"
+ y2="96.834602"
+ id="linearGradient36604"
+ xlink:href="#XMLID_3295_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <linearGradient
+ x1="195.5264"
+ y1="97.911102"
+ x2="213.5213"
+ y2="115.9061"
+ id="XMLID_3294_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="0"
+ id="stop20069" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="stop20071" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#CCCCCC" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#CCCCCC" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFFFFF" />
+ </linearGradient>
+ <linearGradient
+ x1="195.5264"
+ y1="97.911102"
+ x2="213.5213"
+ y2="115.9061"
+ id="linearGradient36607"
+ xlink:href="#XMLID_3294_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <linearGradient
+ x1="186.1938"
+ y1="109.1343"
+ x2="206.6881"
+ y2="88.639999"
+ id="XMLID_3293_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0"
+ id="stop20056" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0.16850001"
+ id="stop20058" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0.23029999"
+ id="stop20060" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0.2809"
+ id="stop20062" />
+ <stop
+ style="stop-color:#c2c2c2;stop-opacity:1"
+ offset="0.5"
+ id="stop20064" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.1685"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.2303"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.2809"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#C2C2C2" />
+ </linearGradient>
+ <linearGradient
+ x1="186.1938"
+ y1="109.1343"
+ x2="206.6881"
+ y2="88.639999"
+ id="linearGradient36610"
+ xlink:href="#XMLID_3293_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <linearGradient
+ x1="184.8569"
+ y1="112.2676"
+ x2="211.94099"
+ y2="89.541397"
+ id="XMLID_3292_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0"
+ id="stop20043" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0.16850001"
+ id="stop20045" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0.23029999"
+ id="stop20047" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0.2809"
+ id="stop20049" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="stop20051" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.1685"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.2303"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.2809"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#CCCCCC" />
+ </linearGradient>
+ <linearGradient
+ x1="184.8569"
+ y1="112.2676"
+ x2="211.94099"
+ y2="89.541397"
+ id="linearGradient36613"
+ xlink:href="#XMLID_3292_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ style="overflow:visible"
+ id="TriangleOutM">
+ <path
+ d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+ transform="scale(0.4,0.4)"
+ style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+ id="path3238" />
+ </marker>
+ <linearGradient
+ x1="165.3"
+ y1="99.5"
+ x2="165.3"
+ y2="115.9"
+ id="XMLID_3457_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#999;stop-opacity:1"
+ offset="0"
+ id="stop8309" />
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0.30000001"
+ id="stop8311" />
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="1"
+ id="stop8313" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#999999" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#999999" />
+ <a:midPointstop
+ offset="0.3"
+ style="stop-color:#B2B2B2" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#B2B2B2" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#B2B2B2" />
+ </linearGradient>
+ <linearGradient
+ x1="165.3"
+ y1="99.5"
+ x2="165.3"
+ y2="115.9"
+ id="lg1997"
+ xlink:href="#XMLID_3457_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <linearGradient
+ x1="175"
+ y1="99.800003"
+ x2="175"
+ y2="112.5"
+ id="XMLID_3456_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#737373;stop-opacity:1"
+ offset="0"
+ id="stop8300" />
+ <stop
+ style="stop-color:#191919;stop-opacity:1"
+ offset="0.60000002"
+ id="stop8302" />
+ <stop
+ style="stop-color:#191919;stop-opacity:1"
+ offset="1"
+ id="stop8304" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#737373" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#737373" />
+ <a:midPointstop
+ offset="0.6"
+ style="stop-color:#191919" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#191919" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#191919" />
+ </linearGradient>
+ <linearGradient
+ x1="175"
+ y1="99.800003"
+ x2="175"
+ y2="112.5"
+ id="lg2000"
+ xlink:href="#XMLID_3456_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <linearGradient
+ x1="168.8"
+ y1="107.1"
+ x2="164.5"
+ y2="110"
+ id="XMLID_3455_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#666;stop-opacity:1"
+ offset="0"
+ id="stop8291" />
+ <stop
+ style="stop-color:#191919;stop-opacity:1"
+ offset="0.69999999"
+ id="stop8293" />
+ <stop
+ style="stop-color:#191919;stop-opacity:1"
+ offset="1"
+ id="stop8295" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#666666" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#666666" />
+ <a:midPointstop
+ offset="0.7"
+ style="stop-color:#191919" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#191919" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#191919" />
+ </linearGradient>
+ <linearGradient
+ x1="168.8"
+ y1="107.1"
+ x2="164.5"
+ y2="110"
+ id="lg2003"
+ xlink:href="#XMLID_3455_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <linearGradient
+ id="lg63694">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop63696" />
+ <stop
+ style="stop-color:white;stop-opacity:0"
+ offset="1"
+ id="stop63698" />
+ </linearGradient>
+ <linearGradient
+ x1="458"
+ y1="483"
+ x2="465.20001"
+ y2="271.39999"
+ id="lg2006"
+ xlink:href="#lg63694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+ <linearGradient
+ x1="176.3"
+ y1="110.1"
+ x2="158.7"
+ y2="105"
+ id="XMLID_3453_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#666;stop-opacity:1"
+ offset="0"
+ id="stop8271" />
+ <stop
+ style="stop-color:#737373;stop-opacity:1"
+ offset="0.2"
+ id="stop8273" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="stop8275" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#666666" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#666666" />
+ <a:midPointstop
+ offset="0.2"
+ style="stop-color:#737373" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#737373" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#FFFFFF" />
+ </linearGradient>
+ <linearGradient
+ x1="176.3"
+ y1="110.1"
+ x2="158.7"
+ y2="105"
+ id="lg2009"
+ xlink:href="#XMLID_3453_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <linearGradient
+ x1="173.60001"
+ y1="118.9"
+ x2="172.8"
+ y2="128.2"
+ id="XMLID_3449_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ecb300;stop-opacity:1"
+ offset="0"
+ id="stop8232" />
+ <stop
+ style="stop-color:#fff95e;stop-opacity:1"
+ offset="0.60000002"
+ id="stop8234" />
+ <stop
+ style="stop-color:#ecd600;stop-opacity:1"
+ offset="1"
+ id="stop8236" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.6"
+ style="stop-color:#FFF95E" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFF95E" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#ECD600" />
+ </linearGradient>
+ <linearGradient
+ x1="173.60001"
+ y1="118.9"
+ x2="172.8"
+ y2="128.2"
+ id="lg2016"
+ xlink:href="#XMLID_3449_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <radialGradient
+ cx="284.60001"
+ cy="172.60001"
+ r="6.5"
+ fx="284.60001"
+ fy="172.60001"
+ id="XMLID_3448_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+ <stop
+ style="stop-color:#ecb300;stop-opacity:1"
+ offset="0"
+ id="stop8219" />
+ <stop
+ style="stop-color:#ecb300;stop-opacity:1"
+ offset="0.30000001"
+ id="stop8221" />
+ <stop
+ style="stop-color:#c96b00;stop-opacity:1"
+ offset="0.89999998"
+ id="stop8223" />
+ <stop
+ style="stop-color:#9a5500;stop-opacity:1"
+ offset="1"
+ id="stop8225" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.3"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.9"
+ style="stop-color:#C96B00" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#C96B00" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#9A5500" />
+ </radialGradient>
+ <radialGradient
+ cx="284.60001"
+ cy="172.60001"
+ r="6.5"
+ fx="284.60001"
+ fy="172.60001"
+ id="rg2020"
+ xlink:href="#XMLID_3448_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+ <linearGradient
+ x1="158.10001"
+ y1="123"
+ x2="164.2"
+ y2="126.6"
+ id="XMLID_3447_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ecd600;stop-opacity:1"
+ offset="0"
+ id="stop8204" />
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0.30000001"
+ id="stop8206" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="stop8208" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#ECD600" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#ECD600" />
+ <a:midPointstop
+ offset="0.3"
+ style="stop-color:#FFFFB3" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFFFB3" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#FFFFFF" />
+ </linearGradient>
+ <linearGradient
+ x1="158.10001"
+ y1="123"
+ x2="164.2"
+ y2="126.6"
+ id="lg2026"
+ xlink:href="#XMLID_3447_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <radialGradient
+ cx="280.89999"
+ cy="163.7"
+ r="10.1"
+ fx="280.89999"
+ fy="163.7"
+ id="XMLID_3446_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop8197" />
+ <stop
+ style="stop-color:#fff95e;stop-opacity:1"
+ offset="1"
+ id="stop8199" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#FFF95E" />
+ </radialGradient>
+ <radialGradient
+ cx="280.89999"
+ cy="163.7"
+ r="10.1"
+ fx="280.89999"
+ fy="163.7"
+ id="rg2029"
+ xlink:href="#XMLID_3446_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+ <linearGradient
+ x1="156.5"
+ y1="122.7"
+ x2="180.10001"
+ y2="122.7"
+ id="XMLID_3445_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ecb300;stop-opacity:1"
+ offset="0"
+ id="stop8184" />
+ <stop
+ style="stop-color:#ffe900;stop-opacity:1"
+ offset="0.2"
+ id="stop8186" />
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0.30000001"
+ id="stop8188" />
+ <stop
+ style="stop-color:#ffe900;stop-opacity:1"
+ offset="0.40000001"
+ id="stop8190" />
+ <stop
+ style="stop-color:#d68100;stop-opacity:1"
+ offset="1"
+ id="stop8192" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.2"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="0.3"
+ style="stop-color:#FFFFB3" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFFFB3" />
+ <a:midPointstop
+ offset="0.4"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#D68100" />
+ </linearGradient>
+ <linearGradient
+ x1="156.5"
+ y1="122.7"
+ x2="180.10001"
+ y2="122.7"
+ id="lg2032"
+ xlink:href="#XMLID_3445_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <linearGradient
+ x1="156.39999"
+ y1="115.4"
+ x2="180.10001"
+ y2="115.4"
+ id="XMLID_3444_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ecb300;stop-opacity:1"
+ offset="0"
+ id="stop8171" />
+ <stop
+ style="stop-color:#ffe900;stop-opacity:1"
+ offset="0.2"
+ id="stop8173" />
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0.30000001"
+ id="stop8175" />
+ <stop
+ style="stop-color:#ffe900;stop-opacity:1"
+ offset="0.40000001"
+ id="stop8177" />
+ <stop
+ style="stop-color:#d68100;stop-opacity:1"
+ offset="1"
+ id="stop8179" />
+ <a:midPointstop
+ offset="0"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#ECB300" />
+ <a:midPointstop
+ offset="0.2"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="0.3"
+ style="stop-color:#FFFFB3" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFFFB3" />
+ <a:midPointstop
+ offset="0.4"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="0.5"
+ style="stop-color:#FFE900" />
+ <a:midPointstop
+ offset="1"
+ style="stop-color:#D68100" />
+ </linearGradient>
+ <linearGradient
+ x1="156.39999"
+ y1="115.4"
+ x2="180.10001"
+ y2="115.4"
+ id="lg2035"
+ xlink:href="#XMLID_3444_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+ <linearGradient
+ x1="379.70001"
+ y1="167.89999"
+ x2="383.89999"
+ y2="172.89999"
+ id="lg4286_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s16159" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0.1"
+ id="s16161" />
+ <stop
+ style="stop-color:#737373;stop-opacity:1"
+ offset="1"
+ id="s16163" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.1" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#737373"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="379.60001"
+ y1="167.8"
+ x2="383.79999"
+ y2="172"
+ id="lg6416"
+ xlink:href="#lg4286_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+ <linearGradient
+ x1="384.20001"
+ y1="169.8"
+ x2="384.79999"
+ y2="170.39999"
+ id="lg4285_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+ <stop
+ style="stop-color:#737373;stop-opacity:1"
+ offset="0"
+ id="s16152" />
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="1"
+ id="s16154" />
+ <ns:midPointStop
+ style="stop-color:#737373"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#737373"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#D9D9D9"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="384.20001"
+ y1="169.8"
+ x2="384.79999"
+ y2="170.39999"
+ id="lg6453"
+ xlink:href="#lg4285_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+ <linearGradient
+ x1="380.5"
+ y1="172.60001"
+ x2="382.79999"
+ y2="173.7"
+ id="lg4284_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+ <stop
+ style="stop-color:gray;stop-opacity:1"
+ offset="0"
+ id="s16145" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="1"
+ id="s16147" />
+ <ns:midPointStop
+ style="stop-color:#808080"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#808080"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#E5E5E5"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="380.5"
+ y1="172.60001"
+ x2="382.79999"
+ y2="173.7"
+ id="lg6456"
+ xlink:href="#lg4284_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+ <radialGradient
+ cx="347.29999"
+ cy="244.5"
+ r="5.1999998"
+ fx="347.29999"
+ fy="244.5"
+ id="lg4282_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+ <stop
+ style="stop-color:#333;stop-opacity:1"
+ offset="0"
+ id="s16135" />
+ <stop
+ style="stop-color:#999;stop-opacity:1"
+ offset="1"
+ id="s16137" />
+ <ns:midPointStop
+ style="stop-color:#333333"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#333333"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#999999"
+ offset="1" />
+ </radialGradient>
+ <linearGradient
+ x1="310.39999"
+ y1="397.70001"
+ x2="310.89999"
+ y2="399.5"
+ id="lg4280_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+ <stop
+ style="stop-color:#ffcd00;stop-opacity:1"
+ offset="0"
+ id="s16111" />
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0.60000002"
+ id="s16113" />
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="1"
+ id="s16115" />
+ <ns:midPointStop
+ style="stop-color:#FFCD00"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFCD00"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0.6" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="310.39999"
+ y1="397.70001"
+ x2="310.89999"
+ y2="399.5"
+ id="lg6467"
+ xlink:href="#lg4280_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+ <linearGradient
+ x1="310.89999"
+ y1="395.79999"
+ x2="313.29999"
+ y2="403.10001"
+ id="lg4279_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0"
+ id="s16100" />
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0.40000001"
+ id="s16102" />
+ <stop
+ style="stop-color:#ffcd00;stop-opacity:1"
+ offset="0.89999998"
+ id="s16104" />
+ <stop
+ style="stop-color:#ffcd00;stop-opacity:1"
+ offset="1"
+ id="s16106" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0.4" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFCD00"
+ offset="0.9" />
+ <ns:midPointStop
+ style="stop-color:#FFCD00"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFCD00"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="310.89999"
+ y1="395.79999"
+ x2="313.29999"
+ y2="403.10001"
+ id="lg6465"
+ xlink:href="#lg4279_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+ <linearGradient
+ x1="307.79999"
+ y1="395.20001"
+ x2="313.79999"
+ y2="413.60001"
+ id="lg4278_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+ <stop
+ style="stop-color:#ffffb3;stop-opacity:1"
+ offset="0"
+ id="s16091" />
+ <stop
+ style="stop-color:#fcd72f;stop-opacity:1"
+ offset="0.40000001"
+ id="s16093" />
+ <stop
+ style="stop-color:#ffcd00;stop-opacity:1"
+ offset="1"
+ id="s16095" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFFFB3"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FCD72F"
+ offset="0.4" />
+ <ns:midPointStop
+ style="stop-color:#FCD72F"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFCD00"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="306.5"
+ y1="393"
+ x2="309"
+ y2="404"
+ id="lg6400"
+ xlink:href="#lg4278_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+ <linearGradient
+ x1="352.10001"
+ y1="253.60001"
+ x2="348.5"
+ y2="237.8"
+ id="lg4276_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+ <stop
+ style="stop-color:#ffff87;stop-opacity:1"
+ offset="0"
+ id="s16077" />
+ <stop
+ style="stop-color:#ffad00;stop-opacity:1"
+ offset="1"
+ id="s16079" />
+ <ns:midPointStop
+ style="stop-color:#FFFF87"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFFF87"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFAD00"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="335.60001"
+ y1="354.79999"
+ x2="337.89999"
+ y2="354.79999"
+ id="lg4275_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="s16057" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0.80000001"
+ id="s16059" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="s16061" />
+ <ns:midPointStop
+ style="stop-color:#D9D9D9"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#D9D9D9"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.8" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="335.60001"
+ y1="354.79999"
+ x2="337.89999"
+ y2="354.79999"
+ id="lg6463"
+ xlink:href="#lg4275_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+ <linearGradient
+ x1="337.39999"
+ y1="353.10001"
+ x2="339.39999"
+ y2="357.10001"
+ id="lg4274_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s16048" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0.1"
+ id="s16050" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="s16052" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.1" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#CCCCCC"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="337.39999"
+ y1="353.10001"
+ x2="339.39999"
+ y2="357.10001"
+ id="lg6461"
+ xlink:href="#lg4274_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+ <linearGradient
+ x1="334.39999"
+ y1="355.5"
+ x2="335.5"
+ y2="356.79999"
+ id="lg4273_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s16041" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="s16043" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="5.6e-003" />
+ <ns:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#CCCCCC"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="334.39999"
+ y1="355.5"
+ x2="335.5"
+ y2="356.79999"
+ id="lg6381"
+ xlink:href="#lg4273_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+ <linearGradient
+ x1="348.39999"
+ y1="247.39999"
+ x2="354.10001"
+ y2="242"
+ id="lg4271_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0"
+ id="s16025" />
+ <stop
+ style="stop-color:#9e9e9e;stop-opacity:1"
+ offset="0.40000001"
+ id="s16027" />
+ <stop
+ style="stop-color:black;stop-opacity:1"
+ offset="1"
+ id="s16029" />
+ <ns:midPointStop
+ style="stop-color:#F2F2F2"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#F2F2F2"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#000000"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="351.29999"
+ y1="257.29999"
+ x2="346.29999"
+ y2="235.5"
+ id="lg4270_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ffff87;stop-opacity:1"
+ offset="0"
+ id="s16007" />
+ <stop
+ style="stop-color:#ffad00;stop-opacity:1"
+ offset="1"
+ id="s16009" />
+ <ns:midPointStop
+ style="stop-color:#FFFF87"
+ offset="0" />
+ <ns:midPointStop
+ style="stop-color:#FFFF87"
+ offset="0.5" />
+ <ns:midPointStop
+ style="stop-color:#FFAD00"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="351.29999"
+ y1="257.29999"
+ x2="346.29999"
+ y2="235.5"
+ id="lg6459"
+ xlink:href="#lg4270_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+ <linearGradient
+ x1="43.799999"
+ y1="32.5"
+ x2="63.299999"
+ y2="66.400002"
+ id="XMLID_2708_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="stop75318" />
+ <stop
+ style="stop-color:#fffcea;stop-opacity:1"
+ offset="1"
+ id="stop75320" />
+ <a:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#FFFCEA"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="43.799999"
+ y1="32.5"
+ x2="63.299999"
+ y2="66.400002"
+ id="lg1907"
+ xlink:href="#XMLID_2708_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-29,-22.6)" />
+ <linearGradient
+ x1="52.5"
+ y1="40.400002"
+ x2="58.200001"
+ y2="64"
+ id="XMLID_2707_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#ffdea0;stop-opacity:1"
+ offset="0"
+ id="stop75305" />
+ <stop
+ style="stop-color:#ffd89e;stop-opacity:1"
+ offset="0.30000001"
+ id="stop75307" />
+ <stop
+ style="stop-color:#ffd79e;stop-opacity:1"
+ offset="0.30000001"
+ id="stop75309" />
+ <stop
+ style="stop-color:#dbaf6d;stop-opacity:1"
+ offset="0.69999999"
+ id="stop75311" />
+ <stop
+ style="stop-color:#6f4c24;stop-opacity:1"
+ offset="1"
+ id="stop75313" />
+ <a:midPointStop
+ style="stop-color:#FFDEA0"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#FFDEA0"
+ offset="0.6" />
+ <a:midPointStop
+ style="stop-color:#FFD79E"
+ offset="0.3" />
+ <a:midPointStop
+ style="stop-color:#FFD79E"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#DBAF6D"
+ offset="0.7" />
+ <a:midPointStop
+ style="stop-color:#DBAF6D"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#6F4C24"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="52.5"
+ y1="40.400002"
+ x2="58.200001"
+ y2="64"
+ id="lg1910"
+ xlink:href="#XMLID_2707_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-29,-22.6)" />
+ <linearGradient
+ x1="58"
+ y1="73.199997"
+ x2="44.5"
+ y2="19"
+ id="XMLID_2704_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-29,-22.6)">
+ <stop
+ style="stop-color:#d4a96c;stop-opacity:1"
+ offset="0.5"
+ id="stop75284" />
+ <stop
+ style="stop-color:#dcb273;stop-opacity:1"
+ offset="0.60000002"
+ id="stop75286" />
+ <stop
+ style="stop-color:#f0ca87;stop-opacity:1"
+ offset="0.80000001"
+ id="stop75288" />
+ <stop
+ style="stop-color:#ffdc96;stop-opacity:1"
+ offset="0.69999999"
+ id="stop75290" />
+ <stop
+ style="stop-color:#c18a42;stop-opacity:1"
+ offset="1"
+ id="stop75292" />
+ <a:midPointStop
+ style="stop-color:#D4A96C"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#D4A96C"
+ offset="0.6" />
+ <a:midPointStop
+ style="stop-color:#FFDC96"
+ offset="0.7" />
+ <a:midPointStop
+ style="stop-color:#FFDC96"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#C18A42"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="53.700001"
+ y1="32"
+ x2="53.700001"
+ y2="64.599998"
+ id="XMLID_2703_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#e5c9b0;stop-opacity:1"
+ offset="0"
+ id="stop75268" />
+ <stop
+ style="stop-color:#e5c9b0;stop-opacity:1"
+ offset="0.40000001"
+ id="stop75270" />
+ <stop
+ style="stop-color:#c0aa94;stop-opacity:1"
+ offset="1"
+ id="stop75272" />
+ <a:midPointStop
+ style="stop-color:#E5C9B0"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#E5C9B0"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#E5C9B0"
+ offset="0.4" />
+ <a:midPointStop
+ style="stop-color:#E5C9B0"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#C0AA94"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="53.700001"
+ y1="32"
+ x2="53.700001"
+ y2="64.599998"
+ id="lg1916"
+ xlink:href="#XMLID_2703_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-29,-22.6)" />
+ <linearGradient
+ x1="224.31"
+ y1="19.450001"
+ x2="214.33"
+ y2="11.46"
+ id="XMLID_419_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#404040;stop-opacity:1"
+ offset="0"
+ id="s1903" />
+ <stop
+ style="stop-color:#6d6d6d;stop-opacity:1"
+ offset="0.33000001"
+ id="s1905" />
+ <stop
+ style="stop-color:#e9e9e9;stop-opacity:1"
+ offset="1"
+ id="s1907" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#404040" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#404040" />
+ <a:midPointStop
+ offset="0.33"
+ style="stop-color:#6D6D6D" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#6D6D6D" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#E9E9E9" />
+ </linearGradient>
+ <linearGradient
+ x1="221.84"
+ y1="32.779999"
+ x2="212.2"
+ y2="20.27"
+ id="lg1988"
+ xlink:href="#XMLID_419_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+ <linearGradient
+ x1="228.35001"
+ y1="33.279999"
+ x2="215.42999"
+ y2="33.279999"
+ id="lg1900"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s1902" />
+ <stop
+ style="stop-color:white;stop-opacity:0"
+ offset="1"
+ id="s1906" />
+ <a:midPointStop
+ style="stop-color:#575757"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#575757"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#6D6D6D"
+ offset="0.33" />
+ <a:midPointStop
+ style="stop-color:#6D6D6D"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#D3D3D3"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="234.81"
+ y1="33.279999"
+ x2="228.27"
+ y2="33.279999"
+ id="lg1908"
+ xlink:href="#lg1900"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+ <linearGradient
+ x1="228.35001"
+ y1="33.279999"
+ x2="215.42999"
+ y2="33.279999"
+ id="XMLID_416_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#575757;stop-opacity:1"
+ offset="0"
+ id="s1874" />
+ <stop
+ style="stop-color:#6d6d6d;stop-opacity:1"
+ offset="0.33000001"
+ id="s1876" />
+ <stop
+ style="stop-color:#d3d3d3;stop-opacity:1"
+ offset="1"
+ id="s1878" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#575757" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#575757" />
+ <a:midPointStop
+ offset="0.33"
+ style="stop-color:#6D6D6D" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#6D6D6D" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#D3D3D3" />
+ </linearGradient>
+ <linearGradient
+ x1="228.35001"
+ y1="33.279999"
+ x2="215.42999"
+ y2="33.279999"
+ id="lg1991"
+ xlink:href="#XMLID_416_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+ <radialGradient
+ cx="603.19"
+ cy="230.77"
+ r="1.67"
+ fx="603.19"
+ fy="230.77"
+ id="x5010_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+ <stop
+ style="stop-color:#c9ffc9;stop-opacity:1"
+ offset="0"
+ id="stop29201" />
+ <stop
+ style="stop-color:#23a11f;stop-opacity:1"
+ offset="1"
+ id="stop29203" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#C9FFC9" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#C9FFC9" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#23A11F" />
+ </radialGradient>
+ <radialGradient
+ cx="603.19"
+ cy="230.77"
+ r="1.67"
+ fx="603.19"
+ fy="230.77"
+ id="radialGradient5711"
+ xlink:href="#x5010_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+ <linearGradient
+ x1="592.31"
+ y1="162.60001"
+ x2="609.32001"
+ y2="145.59"
+ id="lg5722"
+ xlink:href="#x5003_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+ <linearGradient
+ x1="601.48999"
+ y1="170.16"
+ x2="613.84003"
+ y2="170.16"
+ id="x5002_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="stop29134" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0.2"
+ id="stop29136" />
+ <stop
+ style="stop-color:#999;stop-opacity:1"
+ offset="1"
+ id="stop29138" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.20"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#999999" />
+ </linearGradient>
+ <linearGradient
+ x1="601.48999"
+ y1="170.16"
+ x2="613.84003"
+ y2="170.16"
+ id="lg5725"
+ xlink:href="#x5002_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+ <linearGradient
+ x1="592.20001"
+ y1="156.45"
+ x2="609.98999"
+ y2="174.23"
+ id="x5004_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="stop29157" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="stop29159" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFFFFF" />
+ </linearGradient>
+ <linearGradient
+ x1="592.20001"
+ y1="156.45"
+ x2="609.98999"
+ y2="174.23"
+ id="lg5728"
+ xlink:href="#x5004_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+ <linearGradient
+ x1="592.31"
+ y1="162.60001"
+ x2="609.32001"
+ y2="145.59"
+ id="x5003_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0"
+ id="stop29143" />
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="1"
+ id="stop29145" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#F2F2F2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#F2F2F2" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#E5E5E5" />
+ </linearGradient>
+ <linearGradient
+ x1="592.31"
+ y1="162.60001"
+ x2="609.32001"
+ y2="145.59"
+ id="lg5732"
+ xlink:href="#x5003_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+ <linearGradient
+ x1="592.20001"
+ y1="156.45"
+ x2="609.98999"
+ y2="174.24001"
+ id="x5000_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="stop29124" />
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="1"
+ id="stop29126" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFFFFF" />
+ </linearGradient>
+ <linearGradient
+ x1="592.20001"
+ y1="156.45"
+ x2="609.98999"
+ y2="174.24001"
+ id="lg5735"
+ xlink:href="#x5000_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+ <linearGradient
+ x1="308.54999"
+ y1="149.89999"
+ x2="299.72"
+ y2="148.83"
+ id="XMLID_2433_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#d6d6d6;stop-opacity:1"
+ offset="0"
+ id="71615" />
+ <stop
+ style="stop-color:#a5a5a5;stop-opacity:1"
+ offset="1"
+ id="71617" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#D6D6D6" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#D6D6D6" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#A5A5A5" />
+ </linearGradient>
+ <linearGradient
+ x1="308.54999"
+ y1="149.89999"
+ x2="299.72"
+ y2="148.83"
+ id="lg1952"
+ xlink:href="#XMLID_2433_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+ <radialGradient
+ cx="307.39999"
+ cy="121"
+ r="23.35"
+ fx="307.39999"
+ fy="121"
+ id="XMLID_2432_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+ <stop
+ style="stop-color:#d2d2d2;stop-opacity:1"
+ offset="0.19"
+ id="71592" />
+ <stop
+ style="stop-color:#cfcfcf;stop-opacity:1"
+ offset="0.44999999"
+ id="71594" />
+ <stop
+ style="stop-color:#c7c7c7;stop-opacity:1"
+ offset="0.60000002"
+ id="71596" />
+ <stop
+ style="stop-color:#b9b9b9;stop-opacity:1"
+ offset="0.74000001"
+ id="71598" />
+ <stop
+ style="stop-color:#a4a4a4;stop-opacity:1"
+ offset="0.86000001"
+ id="71600" />
+ <stop
+ style="stop-color:#8a8a8a;stop-opacity:1"
+ offset="0.95999998"
+ id="71602" />
+ <stop
+ style="stop-color:gray;stop-opacity:1"
+ offset="1"
+ id="71604" />
+ <a:midPointStop
+ offset="0.19"
+ style="stop-color:#D2D2D2" />
+ <a:midPointStop
+ offset="0.8"
+ style="stop-color:#D2D2D2" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#808080" />
+ </radialGradient>
+ <radialGradient
+ cx="307.39999"
+ cy="121"
+ r="23.35"
+ fx="307.39999"
+ fy="121"
+ id="radialGradient2331"
+ xlink:href="#XMLID_2432_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-276.62,-121.54)" />
+ <linearGradient
+ x1="294.13"
+ y1="127.07"
+ x2="294.13"
+ y2="142.2"
+ id="XMLID_2430_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#b5d8ff;stop-opacity:1"
+ offset="0"
+ id="71582" />
+ <stop
+ style="stop-color:black;stop-opacity:1"
+ offset="1"
+ id="71584" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B5D8FF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B5D8FF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </linearGradient>
+ <linearGradient
+ x1="294.13"
+ y1="127.07"
+ x2="294.13"
+ y2="142.2"
+ id="lg2820"
+ xlink:href="#XMLID_2430_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+ <linearGradient
+ x1="279.10999"
+ y1="148.03"
+ x2="309.16"
+ y2="148.03"
+ id="XMLID_2429_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#e1e1e1;stop-opacity:1"
+ offset="0"
+ id="71564" />
+ <stop
+ style="stop-color:#e1e1e1;stop-opacity:1"
+ offset="0.25"
+ id="71566" />
+ <stop
+ style="stop-color:#a5a5a5;stop-opacity:1"
+ offset="0.44"
+ id="71568" />
+ <stop
+ style="stop-color:#a5a5a5;stop-opacity:1"
+ offset="1"
+ id="71570" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#E1E1E1" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E1E1E1" />
+ <a:midPointStop
+ offset="0.25"
+ style="stop-color:#E1E1E1" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E1E1E1" />
+ <a:midPointStop
+ offset="0.44"
+ style="stop-color:#A5A5A5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#A5A5A5" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#A5A5A5" />
+ </linearGradient>
+ <linearGradient
+ x1="279.10999"
+ y1="148.03"
+ x2="309.16"
+ y2="148.03"
+ id="lg2818"
+ xlink:href="#XMLID_2429_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+ <radialGradient
+ cx="622.34302"
+ cy="14.449"
+ r="26.496"
+ fx="622.34302"
+ fy="14.449"
+ id="lg3499_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+ <stop
+ style="stop-color:#23468e;stop-opacity:1"
+ offset="0"
+ id="stop10972" />
+ <stop
+ style="stop-color:#012859;stop-opacity:1"
+ offset="1"
+ id="stop10974" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#23468E" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#23468E" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#012859" />
+ </radialGradient>
+ <radialGradient
+ cx="622.34302"
+ cy="14.449"
+ r="26.496"
+ fx="622.34302"
+ fy="14.449"
+ id="rg5791"
+ xlink:href="#lg3499_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+ <linearGradient
+ x1="616.112"
+ y1="76.247002"
+ x2="588.14099"
+ y2="60.742001"
+ id="lg3497_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#01326e;stop-opacity:1"
+ offset="0"
+ id="stop10962" />
+ <stop
+ style="stop-color:#012859;stop-opacity:1"
+ offset="1"
+ id="stop10964" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#01326E" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#01326E" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#012859" />
+ </linearGradient>
+ <linearGradient
+ x1="617.698"
+ y1="82.445999"
+ x2="585.95203"
+ y2="54.848999"
+ id="lg3496_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0"
+ id="stop10950" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="stop10952" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#E5E5E5" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#CCCCCC" />
+ </linearGradient>
+ <linearGradient
+ x1="617.698"
+ y1="82.445999"
+ x2="585.95203"
+ y2="54.848999"
+ id="lg5794"
+ xlink:href="#lg3496_"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="601.39001"
+ y1="55.341"
+ x2="588.29199"
+ y2="71.515999"
+ id="lg3495_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="stop10941" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0.52200001"
+ id="stop10943" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="stop10945" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.522"
+ style="stop-color:#F2F2F2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#F2F2F2" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#CCCCCC" />
+ </linearGradient>
+ <linearGradient
+ x1="601.39001"
+ y1="55.341"
+ x2="588.29199"
+ y2="71.515999"
+ id="lg5771"
+ xlink:href="#lg3495_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+ <linearGradient
+ x1="611.34601"
+ y1="55.279999"
+ x2="590.39001"
+ y2="81.157997"
+ id="lg3494_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="stop10932" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0.52200001"
+ id="stop10934" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="stop10936" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#D9D9D9" />
+ <a:midPointStop
+ offset="0.522"
+ style="stop-color:#F2F2F2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#F2F2F2" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#CCCCCC" />
+ </linearGradient>
+ <linearGradient
+ x1="611.34601"
+ y1="55.279999"
+ x2="590.39001"
+ y2="81.157997"
+ id="lg5774"
+ xlink:href="#lg3494_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+ <linearGradient
+ x1="798.72998"
+ y1="69.839996"
+ x2="799.04999"
+ y2="70.709999"
+ id="g3302_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#005e00;stop-opacity:1"
+ offset="0"
+ id="s6504" />
+ <stop
+ style="stop-color:#23a11f;stop-opacity:1"
+ offset="1"
+ id="s6506" />
+ <a:midPointstop
+ style="stop-color:#005E00"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#005E00"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#23A11F"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="798.72998"
+ y1="69.839996"
+ x2="799.04999"
+ y2="70.709999"
+ id="lg5851"
+ xlink:href="#g3302_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+ <linearGradient
+ x1="779.19"
+ y1="122.73"
+ x2="811.69"
+ y2="149.74001"
+ id="g3301_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0"
+ id="s6483" />
+ <stop
+ style="stop-color:#eee;stop-opacity:1"
+ offset="0.17"
+ id="s6485" />
+ <stop
+ style="stop-color:#e3e3e3;stop-opacity:1"
+ offset="0.34"
+ id="s6487" />
+ <stop
+ style="stop-color:#cfcfcf;stop-opacity:1"
+ offset="0.50999999"
+ id="s6489" />
+ <stop
+ style="stop-color:#b4b4b4;stop-opacity:1"
+ offset="0.67000002"
+ id="s6491" />
+ <stop
+ style="stop-color:#919191;stop-opacity:1"
+ offset="0.83999997"
+ id="s6493" />
+ <stop
+ style="stop-color:#666;stop-opacity:1"
+ offset="1"
+ id="s6495" />
+ <a:midPointstop
+ style="stop-color:#F2F2F2"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#F2F2F2"
+ offset="0.71" />
+ <a:midPointstop
+ style="stop-color:#666666"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="779.19"
+ y1="122.73"
+ x2="811.69"
+ y2="149.74001"
+ id="lg5855"
+ xlink:href="#g3301_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+ <clipPath
+ id="g3299_">
+ <use
+ id="use6469"
+ x="0"
+ y="0"
+ width="1005.92"
+ height="376.97"
+ xlink:href="#g101_" />
+ </clipPath>
+ <radialGradient
+ cx="1189.9301"
+ cy="100.05"
+ r="40.400002"
+ fx="1189.9301"
+ fy="100.05"
+ id="g3300_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s6472" />
+ <stop
+ style="stop-color:white;stop-opacity:0"
+ offset="1"
+ id="s6474" />
+ <a:midPointstop
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#000000"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="1199.74"
+ cy="97.150002"
+ r="40.400002"
+ fx="1199.74"
+ fy="97.150002"
+ id="rg5860"
+ xlink:href="#g3300_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+ <linearGradient
+ x1="796.38"
+ y1="67.580002"
+ x2="781.28003"
+ y2="58.549999"
+ id="g3298_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#4c8bca;stop-opacity:1"
+ offset="0"
+ id="s6462" />
+ <stop
+ style="stop-color:#b7e9ff;stop-opacity:1"
+ offset="1"
+ id="s6464" />
+ <a:midPointstop
+ style="stop-color:#4C8BCA"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#4C8BCA"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#B7E9FF"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="800.97998"
+ y1="140.72"
+ x2="777.71997"
+ y2="121.76"
+ id="g3297_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0"
+ id="s6448" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="s6450" />
+ <a:midPointstop
+ style="stop-color:#E5E5E5"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#E5E5E5"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#CCCCCC"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="800.97998"
+ y1="140.72"
+ x2="777.71997"
+ y2="121.76"
+ id="lg5890"
+ xlink:href="#g3297_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+ <linearGradient
+ x1="790.03998"
+ y1="-16.33"
+ x2="779.84003"
+ y2="-3.73"
+ id="g3296_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,70.17)">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="s6439" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0.51999998"
+ id="s6441" />
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="1"
+ id="s6443" />
+ <a:midPointstop
+ style="stop-color:#D9D9D9"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#D9D9D9"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#F2F2F2"
+ offset="0.52" />
+ <a:midPointstop
+ style="stop-color:#F2F2F2"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#CCCCCC"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="790.03998"
+ y1="-16.33"
+ x2="779.84003"
+ y2="-3.73"
+ id="lg5866"
+ xlink:href="#g3296_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+ <linearGradient
+ x1="785.84003"
+ y1="72.989998"
+ x2="785.26001"
+ y2="76.279999"
+ id="g3293_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s6412" />
+ <stop
+ style="stop-color:#737373;stop-opacity:1"
+ offset="1"
+ id="s6414" />
+ <a:midPointstop
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#737373"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="785.84003"
+ y1="72.989998"
+ x2="785.26001"
+ y2="76.279999"
+ id="lg5871"
+ xlink:href="#g3293_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+ <linearGradient
+ x1="789.37"
+ y1="69.879997"
+ x2="791.03998"
+ y2="77.120003"
+ id="g3292_"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#999;stop-opacity:1"
+ offset="0"
+ id="s6403" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0.28"
+ id="s6405" />
+ <stop
+ style="stop-color:#666;stop-opacity:1"
+ offset="1"
+ id="s6407" />
+ <a:midPointstop
+ style="stop-color:#999999"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#999999"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#F2F2F2"
+ offset="0.28" />
+ <a:midPointstop
+ style="stop-color:#F2F2F2"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#666666"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="789.37"
+ y1="69.879997"
+ x2="791.03998"
+ y2="77.120003"
+ id="lg5874"
+ xlink:href="#g3292_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+ <linearGradient
+ x1="786.65997"
+ y1="136.12"
+ x2="786.71002"
+ y2="134.33"
+ id="g3290_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+ <stop
+ style="stop-color:#d9d9d9;stop-opacity:1"
+ offset="0"
+ id="s6380" />
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="1"
+ id="s6382" />
+ <a:midPointstop
+ style="stop-color:#D9D9D9"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#D9D9D9"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#B2B2B2"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="786.65997"
+ y1="136.12"
+ x2="786.71002"
+ y2="134.33"
+ id="lg5878"
+ xlink:href="#g3290_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+ <radialGradient
+ cx="1458.77"
+ cy="-5.0999999"
+ r="35.130001"
+ fx="1458.77"
+ fy="-5.0999999"
+ id="g3289_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+ <stop
+ style="stop-color:white;stop-opacity:1"
+ offset="0"
+ id="s6371" />
+ <stop
+ style="stop-color:#999;stop-opacity:1"
+ offset="1"
+ id="s6373" />
+ <a:midPointstop
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#FFFFFF"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#999999"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="1458.77"
+ cy="-5.0999999"
+ r="35.130001"
+ fx="1458.77"
+ fy="-5.0999999"
+ id="rg5881"
+ xlink:href="#g3289_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+ <radialGradient
+ cx="1612.98"
+ cy="-4.4699998"
+ r="36.580002"
+ fx="1612.98"
+ fy="-4.4699998"
+ id="g3288_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0"
+ id="s6362" />
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0.63999999"
+ id="s6364" />
+ <stop
+ style="stop-color:#737373;stop-opacity:1"
+ offset="1"
+ id="s6366" />
+ <a:midPointstop
+ style="stop-color:#E5E5E5"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#E5E5E5"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#B2B2B2"
+ offset="0.64" />
+ <a:midPointstop
+ style="stop-color:#B2B2B2"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#737373"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="1612.98"
+ cy="-4.4699998"
+ r="36.580002"
+ fx="1612.98"
+ fy="-4.4699998"
+ id="rg5884"
+ xlink:href="#g3288_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+ <radialGradient
+ cx="1470.5"
+ cy="-10.21"
+ r="33.290001"
+ fx="1470.5"
+ fy="-10.21"
+ id="g3287_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+ <stop
+ style="stop-color:#e5e5e5;stop-opacity:1"
+ offset="0"
+ id="s6347" />
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0.38999999"
+ id="s6349" />
+ <stop
+ style="stop-color:#b1b1b1;stop-opacity:1"
+ offset="0.75"
+ id="s6351" />
+ <stop
+ style="stop-color:#aaa;stop-opacity:1"
+ offset="0.88"
+ id="s6353" />
+ <stop
+ style="stop-color:#9e9e9e;stop-opacity:1"
+ offset="0.97000003"
+ id="s6355" />
+ <stop
+ style="stop-color:#999;stop-opacity:1"
+ offset="1"
+ id="s6357" />
+ <a:midPointstop
+ style="stop-color:#E5E5E5"
+ offset="0" />
+ <a:midPointstop
+ style="stop-color:#E5E5E5"
+ offset="0.5" />
+ <a:midPointstop
+ style="stop-color:#B2B2B2"
+ offset="0.39" />
+ <a:midPointstop
+ style="stop-color:#B2B2B2"
+ offset="0.87" />
+ <a:midPointstop
+ style="stop-color:#999999"
+ offset="1" />
+ </radialGradient>
+ <radialGradient
+ cx="1470.5"
+ cy="-10.21"
+ r="33.290001"
+ fx="1470.5"
+ fy="-10.21"
+ id="rg5887"
+ xlink:href="#g3287_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+ <pattern
+ patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+ id="cream-spots"
+ height="32"
+ width="32"
+ patternUnits="userSpaceOnUse">
+ <g
+ transform="translate(-365.3146,-513.505)"
+ id="g3047">
+ id="path2858" />
+ <path
+ inkscape:label="#path2854"
+ sodipodi:nodetypes="czzzz"
+ style="fill:#e3dcc0"
+ id="path3060"
+ d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+ </pattern>
+ <pattern
+ patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+ id="dark-cream-spots"
+ height="32"
+ width="32"
+ patternUnits="userSpaceOnUse">
+ <g
+ transform="translate(-408.0946,-513.505)"
+ id="dark-cream-spot"
+ inkscape:label="#g3043">
+ <path
+ sodipodi:nodetypes="czzzz"
+ style="fill:#c8c5ac"
+ d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+ id="path2953" />
+ </g>
+ </pattern>
+ <pattern
+ patternTransform="matrix(0.375,0,0,0.375,379,400)"
+ id="white-spots"
+ height="32"
+ width="32"
+ patternUnits="userSpaceOnUse">
+ <g
+ transform="translate(-484.3997,-513.505)"
+ id="white-spot"
+ inkscape:label="#g3035">
+ <path
+ style="opacity:0.25;fill:white"
+ id="path3033"
+ d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+ sodipodi:nodetypes="czzzz" />
+ </g>
+ </pattern>
+ <pattern
+ patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+ id="black-spots"
+ height="32"
+ width="32"
+ patternUnits="userSpaceOnUse">
+ <g
+ transform="translate(-448.3997,-513.505)"
+ id="black-spot"
+ inkscape:label="#g3039">
+ <path
+ sodipodi:nodetypes="czzzz"
+ d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+ id="path2961"
+ style="opacity:0.25;fill:black" />
+ </g>
+ </pattern>
+ <linearGradient
+ x1="501.0903"
+ y1="-19.2544"
+ x2="531.85413"
+ y2="0.72390002"
+ id="linearGradient17334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0"
+ id="stop17336" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0.51120001"
+ id="stop17338" />
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0.64609998"
+ id="stop17340" />
+ <stop
+ style="stop-color:#16336e;stop-opacity:1"
+ offset="1"
+ id="stop17342" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B4DAEA" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B4DAEA" />
+ <a:midPointStop
+ offset="0.5112"
+ style="stop-color:#B4DAEA" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B4DAEA" />
+ <a:midPointStop
+ offset="0.6461"
+ style="stop-color:#5387BA" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#5387BA" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#16336E" />
+ </linearGradient>
+ <linearGradient
+ x1="415.73831"
+ y1="11.854"
+ x2="418.13361"
+ y2="18.8104"
+ id="linearGradient17426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+ <stop
+ style="stop-color:#ccc;stop-opacity:1"
+ offset="0"
+ id="stop17428" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="1"
+ id="stop17430" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#CCCCCC" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#CCCCCC" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#F2F2F2" />
+ </linearGradient>
+ <linearGradient
+ x1="478.21341"
+ y1="-131.9297"
+ x2="469.85818"
+ y2="-140.28481"
+ id="linearGradient17434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+ <stop
+ style="stop-color:#f3403f;stop-opacity:1"
+ offset="0"
+ id="stop17436" />
+ <stop
+ style="stop-color:#d02a28;stop-opacity:1"
+ offset="0.37889999"
+ id="stop17438" />
+ <stop
+ style="stop-color:#b21714;stop-opacity:1"
+ offset="0.77649999"
+ id="stop17440" />
+ <stop
+ style="stop-color:#a6100c;stop-opacity:1"
+ offset="1"
+ id="stop17442" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#F3403F" />
+ <a:midPointStop
+ offset="0.4213"
+ style="stop-color:#F3403F" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#A6100C" />
+ </linearGradient>
+ <linearGradient
+ x1="502.70749"
+ y1="115.3013"
+ x2="516.39001"
+ y2="127.1953"
+ id="linearGradient17709"
+ xlink:href="#XMLID_1749_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+ <linearGradient
+ x1="506.09909"
+ y1="-11.5137"
+ x2="527.99609"
+ y2="2.7063999"
+ id="linearGradient17711"
+ xlink:href="#XMLID_1752_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="516.57672"
+ y1="-15.769"
+ x2="516.57672"
+ y2="0.84280002"
+ id="linearGradient17713"
+ xlink:href="#XMLID_1753_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="505.62939"
+ y1="-14.9526"
+ x2="527.49402"
+ y2="-0.7536"
+ id="linearGradient17715"
+ xlink:href="#XMLID_1756_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="500.70749"
+ y1="-13.2441"
+ x2="513.46442"
+ y2="-2.1547"
+ id="linearGradient17717"
+ xlink:href="#XMLID_1757_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="473.7681"
+ y1="209.17529"
+ x2="486.98099"
+ y2="213.2001"
+ id="linearGradient17721"
+ xlink:href="#XMLID_2274_"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="481.23969"
+ y1="212.5742"
+ x2="472.92981"
+ y2="207.4967"
+ id="linearGradient17723"
+ xlink:href="#XMLID_2275_"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="500.70749"
+ y1="-13.2441"
+ x2="513.46442"
+ y2="-2.1547"
+ id="linearGradient17416"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0"
+ id="stop17418" />
+ <stop
+ style="stop-color:#96bad6;stop-opacity:1"
+ offset="1"
+ id="stop17420" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#96BAD6"
+ offset="1" />
+ </linearGradient>
+ <defs
+ id="defs9929">
+ <path
+ d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+ id="XMLID_960_" />
+ </defs>
+ <clipPath
+ id="clipPath17448">
+ <use
+ id="use17450"
+ x="0"
+ y="0"
+ width="744.09448"
+ height="600"
+ xlink:href="#XMLID_960_" />
+ </clipPath>
+ <linearGradient
+ x1="473.7681"
+ y1="209.17529"
+ x2="486.98099"
+ y2="213.2001"
+ id="linearGradient17452"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#f3403f;stop-opacity:1"
+ offset="0"
+ id="stop17454" />
+ <stop
+ style="stop-color:#d02a28;stop-opacity:1"
+ offset="0.37889999"
+ id="stop17456" />
+ <stop
+ style="stop-color:#b21714;stop-opacity:1"
+ offset="0.77649999"
+ id="stop17458" />
+ <stop
+ style="stop-color:#a6100c;stop-opacity:1"
+ offset="1"
+ id="stop17460" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0.4213" />
+ <a:midPointStop
+ style="stop-color:#A6100C"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="481.23969"
+ y1="212.5742"
+ x2="472.92981"
+ y2="207.4967"
+ id="linearGradient17463"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#f3403f;stop-opacity:1"
+ offset="0"
+ id="stop17465" />
+ <stop
+ style="stop-color:#d02a28;stop-opacity:1"
+ offset="0.37889999"
+ id="stop17467" />
+ <stop
+ style="stop-color:#b21714;stop-opacity:1"
+ offset="0.77649999"
+ id="stop17469" />
+ <stop
+ style="stop-color:#a6100c;stop-opacity:1"
+ offset="1"
+ id="stop17471" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#F3403F"
+ offset="0.4213" />
+ <a:midPointStop
+ style="stop-color:#A6100C"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="481.23969"
+ y1="212.5742"
+ x2="472.92981"
+ y2="207.4967"
+ id="linearGradient17807"
+ xlink:href="#XMLID_2275_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-177.1654,35.43307)" />
+ <linearGradient
+ x1="473.7681"
+ y1="209.17529"
+ x2="486.98099"
+ y2="213.2001"
+ id="linearGradient17810"
+ xlink:href="#XMLID_2274_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-177.1654,35.43307)" />
+ <linearGradient
+ x1="502.70749"
+ y1="115.3013"
+ x2="516.39001"
+ y2="127.1953"
+ id="linearGradient17812"
+ xlink:href="#XMLID_1749_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+ <linearGradient
+ x1="506.09909"
+ y1="-11.5137"
+ x2="527.99609"
+ y2="2.7063999"
+ id="linearGradient17814"
+ xlink:href="#XMLID_1752_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="516.57672"
+ y1="-15.769"
+ x2="516.57672"
+ y2="0.84280002"
+ id="linearGradient17816"
+ xlink:href="#XMLID_1753_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="505.62939"
+ y1="-14.9526"
+ x2="527.49402"
+ y2="-0.7536"
+ id="linearGradient17818"
+ xlink:href="#XMLID_1756_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <linearGradient
+ x1="502.70749"
+ y1="115.3013"
+ x2="516.39001"
+ y2="127.1953"
+ id="linearGradient17347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0"
+ id="stop17349" />
+ <stop
+ style="stop-color:#96bad6;stop-opacity:1"
+ offset="1"
+ id="stop17351" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#5387BA" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#5387BA" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#96BAD6" />
+ </linearGradient>
+ <linearGradient
+ x1="516.57672"
+ y1="-15.769"
+ x2="516.57672"
+ y2="0.84280002"
+ id="linearGradient17379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b2b2b2;stop-opacity:1"
+ offset="0"
+ id="stop17381" />
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="1"
+ id="stop17383" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#B2B2B2" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#F2F2F2" />
+ </linearGradient>
+ <linearGradient
+ x1="502.70749"
+ y1="115.3013"
+ x2="516.39001"
+ y2="127.1953"
+ id="linearGradient17862"
+ xlink:href="#XMLID_1749_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+ <linearGradient
+ x1="505.62939"
+ y1="-14.9526"
+ x2="527.49402"
+ y2="-0.7536"
+ id="linearGradient17864"
+ xlink:href="#XMLID_1756_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <defs
+ id="defs3859">
+ <polygon
+ points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+ id="XMLID_343_" />
+ </defs>
+ <linearGradient
+ x1="471.0806"
+ y1="201.07761"
+ x2="481.91711"
+ y2="210.4977"
+ id="linearGradient17389"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#6498c1;stop-opacity:1"
+ offset="0.005618"
+ id="stop17391" />
+ <stop
+ style="stop-color:#79a9cc;stop-opacity:1"
+ offset="0.2332"
+ id="stop17393" />
+ <stop
+ style="stop-color:#a4cde2;stop-opacity:1"
+ offset="0.74049997"
+ id="stop17395" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="1"
+ id="stop17397" />
+ <a:midPointStop
+ style="stop-color:#6498C1"
+ offset="5.618000e-003" />
+ <a:midPointStop
+ style="stop-color:#6498C1"
+ offset="0.4438" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="1" />
+ </linearGradient>
+ <clipPath
+ id="clipPath17400">
+ <use
+ id="use17402"
+ x="0"
+ y="0"
+ width="744.09448"
+ height="600"
+ xlink:href="#XMLID_343_" />
+ </clipPath>
+ <linearGradient
+ x1="505.62939"
+ y1="-14.9526"
+ x2="527.49402"
+ y2="-0.7536"
+ id="linearGradient17404"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0"
+ id="stop17406" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0.51120001"
+ id="stop17408" />
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0.64609998"
+ id="stop17410" />
+ <stop
+ style="stop-color:#16336e;stop-opacity:1"
+ offset="1"
+ id="stop17412" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5112" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.6461" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#16336E"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="506.09909"
+ y1="-11.5137"
+ x2="527.99609"
+ y2="2.7063999"
+ id="linearGradient17882"
+ xlink:href="#XMLID_1752_"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+ <defs
+ id="defs3826">
+ <polygon
+ points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+ id="XMLID_338_" />
+ </defs>
+ <linearGradient
+ x1="468.2915"
+ y1="204.7612"
+ x2="479.39871"
+ y2="214.4166"
+ id="linearGradient17357"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0"
+ id="stop17359" />
+ <stop
+ style="stop-color:#96bad6;stop-opacity:1"
+ offset="1"
+ id="stop17361" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#96BAD6"
+ offset="1" />
+ </linearGradient>
+ <clipPath
+ id="clipPath17364">
+ <use
+ id="use17366"
+ x="0"
+ y="0"
+ width="744.09448"
+ height="600"
+ xlink:href="#XMLID_338_" />
+ </clipPath>
+ <linearGradient
+ x1="506.09909"
+ y1="-11.5137"
+ x2="527.99609"
+ y2="2.7063999"
+ id="linearGradient17368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0"
+ id="stop17370" />
+ <stop
+ style="stop-color:#b4daea;stop-opacity:1"
+ offset="0.51120001"
+ id="stop17372" />
+ <stop
+ style="stop-color:#5387ba;stop-opacity:1"
+ offset="0.64609998"
+ id="stop17374" />
+ <stop
+ style="stop-color:#16336e;stop-opacity:1"
+ offset="1"
+ id="stop17376" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5112" />
+ <a:midPointStop
+ style="stop-color:#B4DAEA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.6461" />
+ <a:midPointStop
+ style="stop-color:#5387BA"
+ offset="0.5" />
+ <a:midPointStop
+ style="stop-color:#16336E"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="296.4996"
+ y1="188.81061"
+ x2="317.32471"
+ y2="209.69398"
+ id="linearGradient2387"
+ xlink:href="#linearGradient2381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+ <linearGradient
+ x1="296.4996"
+ y1="188.81061"
+ x2="317.32471"
+ y2="209.69398"
+ id="linearGradient5105"
+ xlink:href="#linearGradient2381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+ <linearGradient
+ x1="296.4996"
+ y1="188.81061"
+ x2="317.32471"
+ y2="209.69398"
+ id="linearGradient5145"
+ xlink:href="#linearGradient2381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2381"
+ id="linearGradient2371"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+ x1="296.4996"
+ y1="188.81061"
+ x2="317.32471"
+ y2="209.69398" />
+ </defs>
+ <g
+ transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+ id="g5089">
+ <path
+ d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+ transform="translate(282.8327,227.1903)"
+ style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path5091" />
+ <rect
+ width="27.85074"
+ height="29.369793"
+ rx="1.1414107"
+ ry="1.1414107"
+ x="286.96509"
+ y="227.63805"
+ style="fill:#032c87"
+ id="rect5093" />
+ <path
+ d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+ style="fill:white"
+ id="rect5095" />
+ <path
+ d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+ style="fill:#a70000;fill-opacity:1;stroke-width:2"
+ id="path5097" />
+ <rect
+ width="25.241802"
+ height="29.736675"
+ rx="0.89682275"
+ ry="0.89682275"
+ x="290.73544"
+ y="220.92249"
+ style="fill:#809cc9"
+ id="rect5099" />
+ <path
+ d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+ transform="matrix(0.499065,-0.866565,0,1,0,0)"
+ style="fill:#4573b3;fill-opacity:1"
+ id="rect5101" />
+ <path
+ d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+ style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+ id="path5103" />
+ </g>
+</svg>
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/logo.gif
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/logo.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/writeskew.png
===================================================================
(Binary files differ)
Property changes on: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_User_Guide/en-US/images/writeskew.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
15 years, 4 months
JBoss Cache SVN: r8201 - enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US.
by jbosscache-commits@lists.jboss.org
Author: laubai
Date: 2009-08-25 20:06:53 -0400 (Tue, 25 Aug 2009)
New Revision: 8201
Added:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/CacheLoader_FAQ.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Eviction_FAQ.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/General_FAQ.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/TreeCache_FAQ.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Troubleshooting.xml
Modified:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Author_Group.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Book_Info.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Revision_History.xml
Log:
:)
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Author_Group.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Author_Group.xml 2009-08-25 23:13:01 UTC (rev 8200)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Author_Group.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -1,4 +1,4 @@
-<?xml version='1.0'?>
+<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Book_Info.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Book_Info.xml 2009-08-25 23:13:01 UTC (rev 8200)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Book_Info.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<bookinfo>
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/CacheLoader_FAQ.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/CacheLoader_FAQ.xml (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/CacheLoader_FAQ.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+ <chapter id="cacheloaders">
+ <title>Cache Loaders</title>
+ <qandaset>
+
+
+ <qandaentry>
+ <question>
+ <para>What is a cache loader?</para>
+ </question>
+
+ <answer>
+ <para>A cache loader is the connection of JBoss Cache to a
+ (persistent) data store. The cache loader is called by JBoss Cache to
+ fetch data from a store when that data is not in the cache, and when
+ modifications are made to data in the cache the Cache Loader is
+ called to store those modifications back to the store.
+ </para>
+
+ <para>In conjunction with eviction policies, JBoss Cache with a
+ cache loader allows a user to maintain a bounded cache for a large
+ backend datastore. Frequently used data is fetched from the
+ datastore into the cache, and the least used data is evicted, in
+ order to provide fast access to frequently accessed data. This is
+ all configured through XML, and the programmer doesn't have to take
+ care of loading and eviction.
+ </para>
+
+ <para>JBoss Cache currently ships with several cache loader
+ implementations, including:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>org.jboss.cache.loader.FileCacheLoader</literal>
+ : this implementation uses the file
+ system to store and retrieve data. JBoss Cache nodes are mapped
+ to directories, subnodes to subdirectories etc. Attributes of
+ a node are mapped to a data file
+ inside the
+ directory.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>org.jboss.cache.loader.jdbm.JdbmCacheLoader</literal>
+ : this implementation is based on<ulink url="http://jdbm.sourceforge.net/">
+ JDBM</ulink>,
+ an open source file-based transactional persistence engine.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>org.jboss.cache.loader.bdbje.BdbjeCacheLoader</literal>
+ : this implementation is based on the
+ Oracle's Berkeley DB Java Edition database, a fast and efficient
+ transactional database. It uses a single file for the entire
+ store. Note that if you use the Berkeley DB cache loader with
+ JBoss Cache and wish to ship your product, you will have to acquire a
+ <ulink url="http://www.sleepycat.com/jeforjbosscache">commercial license from
+ Oracle</ulink>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>org.jboss.cache.loader.JDBCCacheLoader</literal>
+ : this implementation uses the relational database as the persistent
+ storage.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>And more. See the chapter on cache loaders in the Users' Guide for more details.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Is the FileCacheLoader recommended for production use?</para>
+ </question>
+
+ <answer>
+ <para>
+ No, it is not. The FileCacheLoader has some severe limitations which restrict its use in a
+ production
+ environment, or if used in such an environment, it should be used with due care and sufficient
+ understanding of these limitations.
+ </para>
+ <itemizedlist>
+ <listitem><para>Due to the way the FileCacheLoader represents a tree structure on disk
+ (directories and
+ files) traversal is inefficient for deep trees.</para>
+ </listitem>
+ <listitem><para>Usage on shared filesystems like NFS, Windows shares, etc. should be avoided as
+ these do
+ not implement proper file locking and can cause data corruption.</para>
+ </listitem>
+ <listitem><para>Usage with an isolation level of NONE can cause corrupt writes as multiple threads
+ attempt to write to the same file.</para>
+ </listitem>
+ <listitem>
+ <para>
+ File systems are inherently not transactional, so when attempting to use your
+ cache in a
+ transactional context, failures when writing to the file (which happens during the
+ commit phase)
+ cannot be recovered.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ As a rule of thumb, it is recommended that the FileCacheLoader not be used in a highly
+ concurrent,
+ transactional or stressful environment, and its use is restricted to testing.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can writing to cache loaders be asynchronous?</para>
+ </question>
+
+ <answer>
+ <para>Yes. Set the
+ <literal>async</literal>
+ attrobute to true. See the JBoss Cache Users' Guide for a more
+ detailed discussion. By default though, all cache loader writes are
+ synchronous and will block.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I write my own cache loader ?</para>
+ </question>
+
+ <answer>
+ <para>Yes. A cache loader is a class implementing
+ <literal>org.jboss.cache.loader.CacheLoader</literal>
+ or extending
+ <literal>org.jboss.cache.loader.AbstractCacheLoader</literal>
+ . It is
+ configured via the XML file (see JBoss Cache Users' Guide).
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does a cache loader have to use a persistent store ?</para>
+ </question>
+
+ <answer>
+ <para>No, a cache loader could for example fetch (and possibly store)
+ its data from a webdav-capable webserver. Another example is a
+ caching proxy server, which fetches contents from the web. Note that
+ an implementation of CacheLoader may not implement the 'store'
+ functionality in this case, but just the 'load'
+ functionality.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Do I have to pay to use Oracle's Berkeley DB CacheLoader?</para>
+ </question>
+
+ <answer>
+ <para>Not if you use it only for personal use. As soon as you
+ distribute your product with BdbjeCacheLoader, you have to purchase
+ a commercial license from Oracle. See details at
+ <ulink
+ url="http://www.sleepycat.com/jeforjbosscache">http://www.sleepycat.com/jeforjbosscache
+ </ulink>
+ .
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Are there any tools available to monitor the Berkeley DB instance?</para>
+ </question>
+
+ <answer>
+ <para>
+ Yes. Oracle ships a JMX-based monitoring tool, called
+ <ulink
+ url="http://www.oracle.com/technology/documentation/berkeley-db/je/java/com/sl...">
+ JEMonitor
+ </ulink>
+ which can be downloaded from the Oracle website.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>When tuning my Berkeley DB instance, where should I put my je.properties file?</para>
+ </question>
+
+ <answer>
+ <para>
+ <literal>je.properties</literal>
+ should reside in your Berkeley DB home directory. This is the directory you pass
+ in to the BDBJECacheLoader's
+ <literal>location</literal>
+ configuration property.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I use more than one cache loader?</para>
+ </question>
+
+ <answer>
+ <para>Yes. Within the CacheLoaderConfiguration XML
+ element (see Users' Guide chapter on cache loaders) you can
+ describe several cache loaders. The impact is that the cache will
+ look at all of the cache loaders in the order they've been
+ configured, until it finds a valid, non-null element of data. When
+ performing writes, all cache loaders are written to (except if the
+ ignoreModifications element has been set to true for a specific
+ cache loader.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I migrate a JDBCacheLoader or FileCacheLoader based cache store containing data formatted with JBoss Cache 1.x.x to JBoss Cache 2.0 format?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. See "Transforming Cache Loaders" section within the "Cache Loaders" section located in the JBoss Cache Users' Guide.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>
+ Is the TCPDelegatingCacheLoader resilient to TCPCacheServer restarts?
+ </para>
+ </question>
+
+ <answer>
+ <para>
+ As of JBoss Cache 2.1.0, the answer is yes. See the Users' Guide for details on how to configure
+ and
+ tune
+ your retries and wait period for reestablishing the TCP connection.
+ </para>
+ <para>
+ Prior to that, restarting the TCPCacheServer would also mean
+ restarting your application that uses the cache.
+ </para>
+ </answer>
+
+ </qandaentry>
+ </qandaset>
+ </chapter>
\ No newline at end of file
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Eviction_FAQ.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Eviction_FAQ.xml (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Eviction_FAQ.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+ <chapter id="eviction">
+ <title>Eviction Policies</title>
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache support eviction policies?</para>
+ </question>
+
+ <answer>
+ <para>Yes. JBoss Cache currently supports multiple eviction policies such as LRU, MRU, and FIFO.
+ Users can also plug in their own eviction policy algorithms. See user
+ guide for details.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache's eviction policy operates in
+ replication mode?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes and no. :-)</para>
+
+ <para>The eviction policy only operates in local mode. That is, nodes are
+ only evicted locally. This may cause the cache contents not to be
+ synchronized temporarily. But when a user tries to obtain the cached
+ contents of an evicted node and finds out that is null (e.g.,
+ <literal>get</literal>
+ returns null), it should get it from the
+ other data source and re-populate the data in the cache. During this
+ moment, the node content will be propagated and the cache content
+ will be in sync.
+ </para>
+
+ <para>However, you still can run eviction policies with cache mode
+ set to either
+ <literal>REPL_SYNC</literal>
+ or
+ <literal>REPL_ASYNC</literal>
+ . Depending on your use case, you can
+ set multiple cache instances to have their own eviction policy
+ (which are applied locally) or just have selected instances with
+ eviction policies activated.
+ </para>
+
+ <para>Also note that, with cache loader option, a locally evicted
+ node can also be persisted to the backend store and a user can
+ retrieve it from the store later on.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache support
+ <literal>Region</literal>
+ ?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. JBoss Cache has the notion of region where a user can
+ configure the eviction policy parameters (e.g.,
+ <literal>maxNodes</literal>
+ or
+ <literal>timeToIdleSeconds</literal>
+ )
+ </para>
+
+ <para>A region in JBoss Cache denotes a portion of tree hierarchy,
+ e.g., a fully qualified name (
+ <literal>org.jboss.cache.Fqn</literal>
+ ). For example,
+ a user can define
+ <literal>/org/jboss</literal>
+ and
+ <literal>/org/foocom</literal>
+ as two separate regions. But note
+ that you can configure the region programmatically now, i.e.,
+ everything has to be configured through the xml file.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>I have turned on the eviction policy, why do I still get "out
+ of memory" (OOM) exception?
+ </para>
+ </question>
+
+ <answer>
+ <para>OOM can happen when the speed of cache access exceeds the
+ speed of eviction policy handling timer. Eviction policy handler
+ will wake up every
+ <literal>wakeUpInterval</literal>
+ milliseconds (or
+ <literal>wakeUpIntervalSeconds</literal>
+ seconds, prior to 3.x)
+ to process the eviction event queue. So when the queue size is full, it will create a
+ backlog and cause out-of-memory exceptions to happen unless the eviction timer catches
+ up. To address this problem, in addition to increase the VM heap
+ size, you can also reduce the
+ <literal>wakeUpInterval</literal>
+ so the timer thread
+ processes the queue more frequently.
+ </para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
\ No newline at end of file
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/General_FAQ.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/General_FAQ.xml (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/General_FAQ.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+ <chapter id="general">
+ <title>General Information</title>
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>What is JBoss Cache?</para>
+ </question>
+
+ <answer>
+ <para>JBoss Cache is a replicated and transactional cache. It is
+ replicated since multiple JBoss Cache instances can be distributed
+ (either within the same JVM or across several JVMs whether they reside on
+ the same machine or on different machines on a network) and data is
+ replicated across the whole group. It is transactional because a
+ user can configure a
+ <ulink url="http://java.sun.com/products/jta/">JTA</ulink>
+ compliant transaction
+ manager and make any cache
+ interaction transactional, and caches would participate in ongoing JTA transactions. Note that
+ the cache can also be run without
+ any replication; this is the local mode.
+ </para>
+
+ <para>JBoss Cache comes in two flavours: Core and POJO versions. The core library
+ (using the
+ <literal>org.jboss.cache.Cache</literal>
+ interface) is the underlying library that organises data in a tree-like structure and handles
+ all locking,
+ passivation,
+ eviction and replication characteristics of data in the cache. The POJO library (using the
+ <literal>org.jboss.cache.pojo.PojoCache</literal>
+ interface) is built atop the core library and allows introspection
+ of objects in the cache providing transparent coherence by using JBoss AOP. Note that the POJO
+ edition
+ of JBoss Cache
+ (often referred to as POJO Cache) comes with a separate set of documentation (Users' Guide, FAQ,
+ etc.)
+ available on the JBoss Cache
+ <ulink url="http://www.jboss.org/jbosscache/">documentation website</ulink>.
+ </para>
+
+ <!-- <para>
+ JBoss Cache is made available in one of four different packages:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>jbosscache-core</literal> contains the core Cache library for users who do not wish to use the additional functionality offered by POJO Cache.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>jbosscache-pojo</literal> contains the core Cache library as well as POJO Cache extensions and dependencies.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para> -->
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Who are the JBoss Cache developers?</para>
+ </question>
+
+ <answer>
+ <para>
+ JBoss Cache has an active community of developers and contributors. The project was founded by Bela Ban and is currently led by Manik Surtani. Jason Greene is the lead for the POJO Cache subsystem, and other contributors both past and present include Ben Wang, Harald Gliebe, Brian Stansberry, Vladimir Blagojevic, Mircea Markus, Jimmy Wilson, Galder Zamarreño and Elias Ross.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <!-- <qandaentry>
+ <question>
+ <para>What about licensing?</para>
+ </question>
+
+ <answer>
+ <para>JBoss Cache is licensed under
+ <ulink url="http://www.gnu.org/licenses/lgpl.html">LGPL</ulink>, an<ulink
+ url="http://www.opensource.org/">OSI</ulink>-approved open source license.
+ </para>
+ </answer>
+ </qandaentry> -->
+
+ <!-- <qandaentry>
+ <question>
+ <para>Where can I download JBoss Cache?</para>
+ </question>
+
+ <answer>
+ <para>The JBoss Cache
+ <ulink url="http://www.jboss.com/products/jbosscache/downloads">product download page</ulink>
+ has prebuilt binaries as well as source distributions. You can also grab snapshots from the
+ JBoss.org subversion
+ repository. See
+ <ulink url="http://www.jboss.org/community/docs/DOC-10259">the JBoss Cache development</ulink>
+ wiki page for details.
+ </para>
+ </answer>
+ </qandaentry> -->
+
+ <!-- <qandaentry>
+ <question>
+ <para>How do I build JBoss Cache from sources?</para>
+ </question>
+
+ <answer>
+ <para>
+ Read the README-Maven.txt file in the source root. Note that you will need a JDK >= 5.0, and
+ Apache Maven >= 2.0.6.
+ </para>
+ </answer>
+ </qandaentry> -->
+
+ <!-- <qandaentry>
+ <question>
+ <para>Which versions of the JDK are supported by JBoss Cache?</para>
+ </question>
+
+ <answer>
+ <para>
+ JBoss Cache is baselined on Java 5 and is tested on Java 5 and 6 VMs. If, for whatever reason
+ you have
+ to use Java 1.4, you could build a retroweaved version of the core cache
+ library that is Java 1.4 compatible, using the simple instructions on this wiki page
+ <ulink url="http://www.jboss.org/community/docs/DOC-10263">on building and running JBoss Cache
+ on Java 1.4.
+ </ulink>.
+ </para>
+ </answer>
+ </qandaentry> -->
+
+ <qandaentry>
+ <question>
+ <para>How do I know the version of JBoss Cache that I am using?</para>
+ </question>
+
+ <answer>
+ <para>
+ <literal>java -jar jbosscache-core.jar</literal>
+ will spit out version details.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I run JBoss Cache outside of JBoss Application
+ Server?
+ </para>
+ </question>
+
+ <answer>
+ <para>
+ Absolutely! Even though JBoss Cache comes integrated with JBoss Application Server,
+ it can also be used in any other Java EE server such as BEA WebLogic, IBM Websphere or Tomcat.
+ It
+ can also run in a standalone Java process, completely outside of an application server. See the
+ Users' Guide for more
+ details.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How can I migrate my application and configuration from using JBoss Cache 1.x to 2.x?</para>
+ </question>
+ <answer>
+ <para>Look at
+ <ulink url="http://www.jboss.org/community/docs/DOC-10246">this wiki page</ulink>
+ for help.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>What about from 2.x to 3.x?</para>
+ </question>
+ <answer>
+ <para>
+ JBoss Cache 3.x is API compatible with 2.x, although as far as possible you should refactor your
+ code
+ not to use deprecated methods as these may disappear in future releases of JBoss Cache.
+ </para>
+ <para>
+ JBoss Cache 3.x comes with an all new configuration format. Old 2.x configuration files will
+ still
+ work, although you will get a warning in the logs about this. Again, as far as possible, we
+ recommend
+ migrating your configuration file to the new format. Scripts are provided with the JBoss Cache
+ 3.x
+ distribution to migrate configuration files (see
+ <literal>config2to3.sh</literal>
+ and<literal>config2to3.bat</literal>).
+ </para>
+ <para>
+ Note that to take advantage of some of the new features in JBoss Cache 3.x, you need to be using
+ the
+ new configuration format.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <!-- <qandaentry>
+ <question>
+ <para>Where can I report bugs or problems?</para>
+ </question>
+
+ <answer>
+ <para>Please report any bugs or problems to
+ <ulink url="http://www.jboss.org/jbosscache">JBoss Cache User Forum</ulink>.
+ </para>
+ </answer>
+ </qandaentry> -->
+ </qandaset>
+ </chapter>
\ No newline at end of file
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml 2009-08-25 23:13:01 UTC (rev 8200)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -1,1488 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
]>
-<book lang="en">
+<book id="JBoss_Cache_FAQ" lang="en">
<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-
- <chapter id="general">
- <title>General Information</title>
- <qandaset>
- <qandaentry>
- <question>
- <para>What is JBoss Cache?</para>
- </question>
-
- <answer>
- <para>JBoss Cache is a replicated and transactional cache. It is
- replicated since multiple JBoss Cache instances can be distributed
- (either within the same JVM or across several JVMs whether they reside on
- the same machine or on different machines on a network) and data is
- replicated across the whole group. It is transactional because a
- user can configure a
- <ulink url="http://java.sun.com/products/jta/">JTA</ulink>
- compliant transaction
- manager and make any cache
- interaction transactional, and caches would participate in ongoing JTA transactions. Note that
- the cache can also be run without
- any replication; this is the local mode.
- </para>
-
- <para>JBoss Cache comes in two flavours: Core and POJO versions. The core library
- (using the
- <literal>org.jboss.cache.Cache</literal>
- interface) is the underlying library that organises data in a tree-like structure and handles
- all locking,
- passivation,
- eviction and replication characteristics of data in the cache. The POJO library (using the
- <literal>org.jboss.cache.pojo.PojoCache</literal>
- interface) is built atop the core library and allows introspection
- of objects in the cache providing transparent coherence by using JBoss AOP. Note that the POJO
- edition
- of JBoss Cache
- (often referred to as POJO Cache) comes with a separate set of documentation (Users' Guide, FAQ,
- etc.)
- available on the JBoss Cache
- <ulink url="http://www.jboss.org/jbosscache/">documentation website</ulink>.
- </para>
-
- <!-- <para>
- JBoss Cache is made available in one of four different packages:
- <itemizedlist>
- <listitem>
- <para>
- <literal>jbosscache-core</literal> contains the core Cache library for users who do not wish to use the additional functionality offered by POJO Cache.
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>jbosscache-pojo</literal> contains the core Cache library as well as POJO Cache extensions and dependencies.
- </para>
- </listitem>
- </itemizedlist>
- </para> -->
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Who are the JBoss Cache developers?</para>
- </question>
-
- <answer>
- <para>
- JBoss Cache has an active community of developers and contributors. The project was founded by Bela Ban and is currently led by Manik Surtani. Jason Greene is the lead for the POJO Cache subsystem, and other contributors both past and present include Ben Wang, Harald Gliebe, Brian Stansberry, Vladimir Blagojevic, Mircea Markus, Jimmy Wilson, Galder Zamarreño and Elias Ross.
- </para>
- </answer>
- </qandaentry>
-
- <!-- <qandaentry>
- <question>
- <para>What about licensing?</para>
- </question>
-
- <answer>
- <para>JBoss Cache is licensed under
- <ulink url="http://www.gnu.org/licenses/lgpl.html">LGPL</ulink>, an<ulink
- url="http://www.opensource.org/">OSI</ulink>-approved open source license.
- </para>
- </answer>
- </qandaentry> -->
-
- <!-- <qandaentry>
- <question>
- <para>Where can I download JBoss Cache?</para>
- </question>
-
- <answer>
- <para>The JBoss Cache
- <ulink url="http://www.jboss.com/products/jbosscache/downloads">product download page</ulink>
- has prebuilt binaries as well as source distributions. You can also grab snapshots from the
- JBoss.org subversion
- repository. See
- <ulink url="http://www.jboss.org/community/docs/DOC-10259">the JBoss Cache development</ulink>
- wiki page for details.
- </para>
- </answer>
- </qandaentry> -->
-
- <!-- <qandaentry>
- <question>
- <para>How do I build JBoss Cache from sources?</para>
- </question>
-
- <answer>
- <para>
- Read the README-Maven.txt file in the source root. Note that you will need a JDK >= 5.0, and
- Apache Maven >= 2.0.6.
- </para>
- </answer>
- </qandaentry> -->
-
- <!-- <qandaentry>
- <question>
- <para>Which versions of the JDK are supported by JBoss Cache?</para>
- </question>
-
- <answer>
- <para>
- JBoss Cache is baselined on Java 5 and is tested on Java 5 and 6 VMs. If, for whatever reason
- you have
- to use Java 1.4, you could build a retroweaved version of the core cache
- library that is Java 1.4 compatible, using the simple instructions on this wiki page
- <ulink url="http://www.jboss.org/community/docs/DOC-10263">on building and running JBoss Cache
- on Java 1.4.
- </ulink>.
- </para>
- </answer>
- </qandaentry> -->
-
- <qandaentry>
- <question>
- <para>How do I know the version of JBoss Cache that I am using?</para>
- </question>
-
- <answer>
- <para>
- <literal>java -jar jbosscache-core.jar</literal>
- will spit out version details.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I run JBoss Cache outside of JBoss Application
- Server?
- </para>
- </question>
-
- <answer>
- <para>
- Absolutely! Even though JBoss Cache comes integrated with JBoss Application Server,
- it can also be used in any other Java EE server such as BEA WebLogic, IBM Websphere or Tomcat.
- It
- can also run in a standalone Java process, completely outside of an application server. See the
- Users' Guide for more
- details.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How can I migrate my application and configuration from using JBoss Cache 1.x to 2.x?</para>
- </question>
- <answer>
- <para>Look at
- <ulink url="http://www.jboss.org/community/docs/DOC-10246">this wiki page</ulink>
- for help.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What about from 2.x to 3.x?</para>
- </question>
- <answer>
- <para>
- JBoss Cache 3.x is API compatible with 2.x, although as far as possible you should refactor your
- code
- not to use deprecated methods as these may disappear in future releases of JBoss Cache.
- </para>
- <para>
- JBoss Cache 3.x comes with an all new configuration format. Old 2.x configuration files will
- still
- work, although you will get a warning in the logs about this. Again, as far as possible, we
- recommend
- migrating your configuration file to the new format. Scripts are provided with the JBoss Cache
- 3.x
- distribution to migrate configuration files (see
- <literal>config2to3.sh</literal>
- and<literal>config2to3.bat</literal>).
- </para>
- <para>
- Note that to take advantage of some of the new features in JBoss Cache 3.x, you need to be using
- the
- new configuration format.
- </para>
- </answer>
- </qandaentry>
-
- <!-- <qandaentry>
- <question>
- <para>Where can I report bugs or problems?</para>
- </question>
-
- <answer>
- <para>Please report any bugs or problems to
- <ulink url="http://www.jboss.org/jbosscache">JBoss Cache User Forum</ulink>.
- </para>
- </answer>
- </qandaentry> -->
- </qandaset>
- </chapter>
-
- <chapter id="TreeCache">
- <title>JBoss Cache: Core</title>
-
- <qandaset>
-
- <!-- <qandaentry>
- <question>
- <para>Using JBoss Cache 2 or 3 on JBoss AS 4.x</para>
- </question>
-
- <answer>
- <para>
- JBoss AS 4.x ships with JBoss Cache 1.4.x. To make use of new features, performance improvements
- and bug fixes in newer releases, you can follow some of the steps outlined on<ulink
- url="http://www.jboss.org/community/docs/DOC-10254">this wiki page</ulink>.
- </para>
- </answer>
- </qandaentry> -->
-
- <qandaentry>
- <question>
- <para>Can I run multiple JBoss Cache instances on the same VM?</para>
- </question>
-
- <answer>
- <para>Yes. There are some scenarios where you may want to run
- multiple instances of JBoss Cache. For example, you want to run
- multiple local cache instances with each instance having its own
- configuration (e.g., different cache policy). In this case, you will
- need multiple xml configuration files.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can JBoss Cache run as a second level cache inside
- Hibernate?
- </para>
- </question>
-
- <answer>
- <para>Yes. Since Hibernate 3.0 release, you can configure it to use
- JBoss Cache as a second level cache. For details,
- see Hibernate documentation, and also see
- <ulink url="http://www.jboss.org/community/docs/DOC-10265">this wiki page</ulink>.
- </para>
- <para>
- JBoss Cache 3.x with MVCC in particular works very well as a Hibernate second level cache.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What about using POJO Cache as a Hibernate cache?</para>
- </question>
-
- <answer>
- <para>It is not necessary to use POJO Cache for second level
- cache inside Hibernate because Hibernate
- manages fine-grained fields in Java objects. Using POJO Cache won't
- provide any advantage, and will be an unnecessary performance drawback.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How can I configure JBoss Cache?</para>
- </question>
-
- <answer>
- <para>You can configure the JBoss Cache through a configuration xml
- file or programmatically using a
- <literal>org.jboss.cache.config.Configuration</literal>
- object, passed in to the
- <literal>org.jboss.cache.CacheFactory</literal>
- instance.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I use a schema or DTD to validate my JBoss Cache configuration file?
- </para>
- </question>
-
- <answer>
- <para>
- As of JBoss Cache 3.x, yes. An XSD schema is provided in your jbosscache-core.jar file, and is
- also
- available online, on<ulink url="http://www.jboss.org/jbosscache/jbosscache-config-3.0.xsd">
- http://www.jboss.org/jbosscache/jbosscache-config-3.0.xsd</ulink>.
- You can configure your IDE, text editor or XML authoring tool to use this schema to validate
- your file.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What is the difference between the different cache modes?
- </para>
- </question>
-
- <answer>
- <para>JBossCache has five different cache modes, i.e.,
- <literal>LOCAL</literal>
- ,
- <literal>REPL_SYNC</literal>
- ,
- <literal>REPL_ASYNC</literal>
- ,
- <literal>INVALIDATION_SYNC</literal>
- and
- <literal>INVALIDATION_ASYNC</literal>
- . If you want to run JBoss Cache as a
- single instance, then you should set the cache mode to
- <literal>LOCAL</literal>
- so that it won't attempt to replicate anything.
- If you want to have synchronous replication among different
- JBoss Cache instances, you set it to
- <literal>REPL_SYNC</literal>
- .
- For asynchronous replication, use
- <literal>AYSNC_REPL</literal>
- . If you do not wish to replicate cached data but simply inform other caches in a cluster that
- data
- under
- specific addresses are now stale and should be evicted from memory, use
- <literal>INVALIDATION_SYNC</literal>
- or
- <literal>INVALIDTAION_ASYNC</literal>
- . Synchronous and asynchronous behavior applies to invalidation as well as replication.
- </para>
-
- <para>Note that
- <literal>ASYNC_REPL</literal>
- and
- <literal>INVALIDATION_ASYNC</literal>
- are non-blocking. This
- can be useful when you want to have another JBoss Cache serving as a
- mirror or backup and you don't want to wait for confirmation that this mirror has received your
- messages.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How does JBoss Cache's replication mechanism work?</para>
- </question>
-
- <answer>
- <para>JBoss Cache leverages
- <ulink url="http://www.jgroups.org">JGroups</ulink>
- for network communications. A JGroups configuration section is present in your JBoss Cache
- configuration.
- </para>
- <para>
- A user
- can configure the cluster of JBoss Cache instances by sharing the
- same cluster name (
- <literal>cluster name</literal>
- ). There is also
- an option of whether to populate the cache data upon starting a new
- instance in the
- <literal>ClusterConfig</literal>
- attribute.
- </para>
-
- <para>Note that once all instances join the same replication group,
- every replication change is propagated to all participating members.
- There is no mechanism for sub-partitioning where some replication
- can be done within only a subset of members, unless you use the Buddy Replication features. See
- the
- Users' Guide for more details on this.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I run a 2 node cluster. If the network dies, do the caches continue to run?</para>
- </question>
-
- <answer>
- <para>Yes, both will continue to run, but depending on your replication mode, all transactions or
- operations may not complete. If
- <literal>REPL_SYNC</literal>
- is used, operations will fail while if
- <literal>REPL_ASYNC</literal>
- is used they will succeed. Even if they succeed though, caches will be out of sync.
- </para>
- </answer>
- </qandaentry>
-
-
- <qandaentry>
- <question>
- <para>Can I plug in library X instead of JGroups to handle remote calls and group communications?
- </para>
- </question>
-
- <answer>
- <para>At this stage the answer is no. We do have an abstraction layer between the
- communication suite and JBoss Cache in the pipelines, and this may appear as a feature at some
- stage
- in
- the future.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does the cache need to replicate to every other instance in the cluster? Isn't this slow if
- the
- cluster is large?
- </para>
- </question>
-
- <answer>
- <para>Replication need not occur to every node in the cluster. This feature -
- called Buddy Replication -
- allows each node to pick one or more 'buddies' in the cluster and only replicate to its buddies.
- This
- allows a cluster to scale
- very easily with no extra impact on memory or network traffic with each node added.
- </para>
- <para>
- See the Users' Guide for more information on Buddy Replication, and how it can be used to
- achieve very
- high
- scalability.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I'm using Buddy Replication. Do I need to have some form of session affinity?</para>
- </question>
- <answer>
- <para>Session affinity relates to returning to the same cache instance for the same data being used.
- While this is strictly not a requirement for Buddy Replication, it is greatly recommended to
- minimize
- moving state around a cluster.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>If I have the need for different configuration properties (e.g.,
- <literal>CacheMode</literal>
- and
- <literal>IsolationLevel</literal>
- ), do I simply need to create multiple
- <literal>org.jboss.cache.Cache</literal>
- instances with the appropriate configuration?
- </para>
- </question>
-
- <answer>
- <para>Yes. All the above mentioned properties are per cache
- instance. Therefore you will need separate
- <literal>org.jboss.cache.Cache</literal>
- instances.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Isn't this expensive from a networking standpoint, i.e., needing to create sockets for each
- <literal>org.jboss.cache.Cache</literal>
- instance?
- </para>
- </question>
-
- <answer>
- <para>
- Yes, it can be. For such cases it is recommended that you configure your cache using the JGroups
- Multiplexer, which allows several caches to share
- a single JGroups channel. Please see the Users' Guide for details on how to configure the
- JGroups
- Multiplexer.
- </para>
- <para>
- A faster and more efficient approach is to use a shared transport in JGroups. Please see
- <ulink url="http://www.jgroups.org">the JGroups documentation</ulink>
- for more details on how to do this.
- </para>
- </answer>
- </qandaentry>
-
-
- <qandaentry>
- <question>
- <para>Does the
- <literal>ClusterName</literal>
- configuration element have
- any relation to the JBoss AS cluster
- <literal>PartitionName</literal>
- ?
- </para>
- </question>
-
- <answer>
- <para>Yes. They are both JGroups group names. Besides the notion of
- a channel in JGroups, it also can partition the channel into different
- group names.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>When using multiple JGroups based components
- [cluster-service.xml, cache (multiple instances)], what is the
- correct/valid way to configure those components to make sure my
- multicast addresses don't conflict?
- </para>
- </question>
-
- <answer>
- <para>There are two parameters to consider: multicast address (plus
- port) and the group name. At minimum, you will have to run
- components using a different group name. But whether to run them on
- the same channel depends upon whether the communication performance
- is critical for you or not. If it is, then it'd be best to run them
- on different channels.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache support cache persistence
- storage?
- </para>
- </question>
-
- <answer>
- <para>Yes. JBoss Cache has a cache loader
- interface that supports cache persistence. See below for more FAQs on cache loaders.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache support cache passivation/ overflow
- to a data store?
- </para>
- </question>
-
- <answer>
- <para>Yes. JBoss Cache uses the
- cache loader to support cache passivation/ overflow. See
- documentation on how to configure and use this feature.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Is JBoss Cache thread safe?</para>
- </question>
-
- <answer>
- <para>Yes, it is thread safe.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache support XA (2PC) transactions now?</para>
- </question>
-
- <answer>
- <para>No, although it is also on our to do list. Our internal
- implementation does use a procedure similar to 2PC to coordinate a
- transactions among different instances, but JBoss Cache is not an XA resource.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Which transaction managers are supported by
- JBoss Cache?
- </para>
- </question>
-
- <answer>
- <para>JBoss Cache supports any TransactionManager that is
- <ulink url="http://java.sun.com/products/jta/">JTA</ulink>
- compliant such as<ulink url="http://www.jboss.org/jbosstm/">JBoss Transactions</ulink>.
- </para>
- <para>
- While JBoss Cache does ships with a
- dummy transaction manager
- (<literal>org.jboss.cache.transaction.DummyTransactionManager</literal>), we do
- <emphasis>not</emphasis>
- recommend using this for production. It is not thread safe, and is intended for internal testing
- only.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I set up the cache to be transactional?</para>
- </question>
-
- <answer>
- <para>You either use the default transaction manager that ships with JBoss AS
- or you have to implement the
- <literal>org.jboss.cache.transaction.TransactionManagerLookup</literal>
- interface, and return an
- instance of your
- <literal>javax.transaction.TransactionManager</literal>
- implementation. The
- configuration property
- <literal>TransactionManagerLookupClass</literal>
- defines the class
- to be used by the cache to fetch a reference to a
- transaction manager. It is trivial to implement this interface to support
- other transaction managers. Once this attribute is specified, the
- cache will look up the transaction context from this transaction
- manager.
- </para>
- <para>
- The
- <literal>org.jboss.cache.transaction.GenericTransactionManagerLookup</literal>
- class that ships
- with JBoss Cache is able to detect and bind to most popular transaction managers. See the
- <literal>GenericTransactionManagerLookup</literal>
- javadocs for more information.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I control the cache locking level?</para>
- </question>
-
- <answer>
- <para>JBoss Cache lets you control the cache locking level through
- the transaction isolation level. This is configured through the
- attribute
- <literal>IsolationLevel</literal>
- . The transaction
- isolation levels correspond to database
- isolation levels, namely,
- <literal>NONE</literal>
- ,
- <literal>READ_UNCOMMITTED</literal>
- ,
- <literal>READ_COMMITTED</literal>
- ,
- <literal>REPEATABLE_READ</literal>
- , and
- <literal>SERIALIZABLE</literal>
- . Note that these isolation levels are ignored if optimistic locking is used. For details,
- please
- refer
- to the
- user manual.
- </para>
- <para>
- As of JBoss Cache 3.x, when using the MVCC locking scheme, only
- <literal>READ_COMMITTED</literal>
- and
- <literal>REPEATABLE_READ</literal>
- are supported. Any other isolation level provided will either be upgraded
- or downgraded accordingly.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How does JBoss Cache lock data for concurrent access?</para>
- </question>
-
- <answer>
- <para>In JBoss Cache 2.x, by default pessimistic locking is used to lock data nodes, based on the
- isolation level
- configured. We also offer optimistic locking to allow for greater concurrency
- at
- the cost of slight processing overhead and performance. See the documentation for a more
- detailed
- discussion on concurrency and locking in JBoss Cache.
- </para>
- <para>
- In JBoss Cache 3.x, optimistic and pessimistic locking are deprecated in favour of MVCC
- (multi-version concurrency
- control), which is far more efficient than either optimistic or pessimistic locking. For a
- detailed discussion on
- our MVCC implementation, see
- <ulink url="http://jbosscache.blogspot.com/2008/07/mvcc-has-landed.html">this blog entry</ulink>
- and<ulink url="http://www.jboss.org/community/docs/DOC-10272">this wiki page</ulink>.
- </para>
- </answer>
- </qandaentry>
-
-
- <qandaentry>
- <question>
- <para>How do I enable Optimistic Locking or MVCC in JBoss Cache?</para>
- </question>
-
- <answer>
- <para>
- Please see the configuration section of the Users' Guide for details.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I use the cache locking level even without a transaction
- context?
- </para>
- </question>
-
- <answer>
- <para>Yes. JBoss Cache controls the individual node locking behavior
- through the isolation level semantics. This means even if you don't
- use a transaction, you can specify the lock level via isolation
- level. You can think of the node locking behavior outside of a
- transaction as if it is under transaction with
- <literal>auto_commit</literal>
- on.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>
- Does JBoss Cache support
- <literal>SELECT FOR UPDATE</literal>
- semantics?
- </para>
- </question>
-
- <answer>
- <para>
- Yes, but this is is only possible if you are running within a JTA transaction
- <emphasis>and</emphasis>
- are using either
- <literal>MVCC</literal>
- or
- <literal>PESSIMISTIC</literal>
- as your node locking scheme.
- </para>
- <para>
- To achieve
- <literal>SELECT FOR UPDATE</literal>
- semantics, simply do:
- </para>
- <programlisting role="JAVA"><![CDATA[
-
- // start transaction ...
-
- cache.getInvocationContext().getOptionOverrides().setForceWriteLock(true);
- Node n = cache.get("/a/b/c"); // this acquires a WRITE LOCK on this node
- ...
- ...
-
- // end transaction
-
- ]]></programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>With replication (REPL_SYNC/REPL_ASYNC) or invalidation
- (INVALIDATION_SYNC/INVALIDATION_ASYNC), how
- often does the cache broadcast messages over the network?
- </para>
- </question>
-
- <answer>
- <para>If the updates are under transaction, then the broadcasts
- happen only when the transaction is about to commit (actually
- during the prepare stage internally). That is, it will be a batch
- update. However, if the operations are not under transaction
- context, then each update will trigger replication. Note that this
- has performance implications if network latency is a problem.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How can I do a mass removal?</para>
- </question>
-
- <answer>
- <para>If you do a<literal>cache.removeNode("/myroot")</literal>, it will recursively remove
- all the entries under "/myroot".
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I monitor and manage the JBoss Cache?</para>
- </question>
-
- <answer>
- <para>Yes, using a JMX console such as the one shipped with JBoss AS or Java 5's
- <literal>jconsole</literal>
- utility. See the chapter titled
- <emphasis role="bold">Management Information</emphasis>
- in the JBoss Cache Users' Guide for more details.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>
- JBoss Cache uses a
- <literal>:</literal>
- character in its object name. This causes problems with
- my MBean server. What can I do about it?
- </para>
- </question>
- <answer>
- <para>
- This is something we have seen with some MBean servers. By default, JBoss Cache uses
- <literal>jboss.cache:service=JBossCache</literal>
- as a prefix to all objects it binds in JMX.
- To work around this, use the
- <literal>-Djbosscache.jmx.prefix</literal>
- JVM parameter to pass in
- an alternate prefix.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I disable JBoss Cache management attributes?</para>
- </question>
-
- <answer>
- <para>Yes, you can. See the section on configuration in the JBoss Cache Users' Guide.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>What happened to jboss-serialization.jar?</para>
- </question>
-
- <answer>
- <para>
- As of JBoss Cache 2.0.0, the dependency on JBoss Serialization has been dropped since most of
- the
- benefits of JBoss Serialization are available in updated Java 5 VMs. Since JBoss Cache 2.0.0 is
- baselined on Java 5, there was no need to provide these benefits separately.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache support partitioning?</para>
- </question>
-
- <answer>
- <para>Not right now. JBoss Cache does not support partitioning that a
- user can configure to have different set of data residing on
- different cache instances while still participating as a replication
- group.
- </para>
- <para>
- This is on the roadmap though, so do keep an eye on
- <ulink url="http://jira.jboss.org/jira/browse/JBCACHE-60">JBCACHE-60</ulink>
- if you are interested.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache handle the concept of application classloading
- inside, say, a Java EE container?
- </para>
- </question>
-
- <answer>
- <para>Application-specific classloading is used widely inside a Java EE
- container. For example, a web application may require a new
- classloader to scope a specific version of the user library.
- However, by default JBoss Cache is agnostic to the classloader. In
- general, this leads to two kinds of problems:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>Object instance is stored in cache1 and replicated to
- cache2. As a result, the instance in cache2 is created by the
- system classloader. The replication may fail if the system
- classloader on cache2 does not have access to the required
- class. Even if replication doesn't fail, a user thread in cache2
- may not be able to access the object if the user thread is
- expecting a type defined by the application classloader.
- </para>
- </listitem>
-
- <listitem>
- <para>Object instance is created by thread 1 and will be
- accessed by thread 2 (with two different classloaders).
- JBoss Cache has no notion of the different classloaders involved.
- As a result, you will have a
- <literal>ClassCastException</literal>
- . This is a standard
- problem in passing an object from one application space to
- another; JBoss Cache just adds a level of indirection in passing
- the object.
- </para>
- </listitem>
- </itemizedlist>
-
- <para>To solve the first kind of issue JBoss Cache uses a
- <literal>CacheMarshaller</literal>
- .
- Basically, this allows application code to register a classloader
- with a portion of the cache tree for use in handling objects
- replicated to that portion. See the
- <literal>CacheMarshaller</literal>
- section of
- the Users' Guide for more details.
- </para>
-
- <para>To solve the second kind of issue, you can use the the
- <literal>UseLazyDeserialization</literal>
- configuration
- option in JBoss Cache, which wraps your objects in a
- <literal>Marshalledvalue</literal>
- wrapper. The
- <literal>MarshalledValue</literal>
- serializes and deserializes your object on demand, ensuring the proper thread local context
- class loader is used each time.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache currently support pre-event and post-event
- notification?
- </para>
- </question>
-
- <answer>
- <para>Yes. A boolean is passed in to each notification callback identifying whether the callback is
- before
- or after the event. See the
- <literal>org.jboss.cache.notifications.annotations.CacheListener</literal>
- annotation for details.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>How do I implement a custom listener to listen to
- cache events?
- </para>
- </question>
-
- <answer>
- <para>
- See the Users' Guide on this subject.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I use
- <literal>UseRegionBasedMarshalling</literal>
- attribute in JBoss Cache in order to get
- around ClassCastExceptions happening when accessing data in the cache that has just been
- redeployed?
- </para>
- </question>
-
- <answer>
- <para>Yes, you can. Originally, cache Marshalling was designed as a
- workaround for those replicated caches that upon state transfer did not have access to the
- classloaders defining the objects in the cache.
- </para>
-
- <para>On each deployment, JBoss creates a new classloader per the top level deployment artifact, for
- example an EAR. You also have to bear in mind that a class in an application server is defined
- not
- only by the class name but also its classloader. So, assuming that the cache is not deployed as
- part
- of your deployment, you could deploy an application and put instances of classes belonging to
- this
- deployment inside the cache. If you did a redeployment and try to do a get operation of the data
- previously put, this would result on a ClassCastException. This is because even though the class
- names
- are the same, the class definitions are not. The current classloader is different to the one
- when
- the classes were originally put.
- </para>
-
- <para>By enabling marshalling, you can control the lifecycle of the data in the cache and if on
- undeployment, you deactivate the region and unregister the classloader that you'd have
- registered on
- deployment, you'd evict the data in the cache locally. That means that in the next deployment,
- the
- data won't be in the cache, therefore avoiding the problem. Obviously, using marshalling to get
- around this problem is only recommended when you have some kind of persistence backing where the
- data
- survives, for example using CacheLoaders, or when JBoss Cache is used as a second level cache in
- a
- persistence framework.
- </para>
-
- <para>To implement this feature, please follow the instructions indicated in the example located
- in the CacheMarshaller section of the Users' Guide. It's worth noting that instead of a
- <literal>ServletContextListener</literal>
- , you could add this code into an
- <literal>MBean</literal>
- that contained lifecycle methods, such as
- <literal>start()</literal>
- and
- <literal>stop()</literal>
- .
- The key would be for this MBean to depend on the target cache, so that it can operate as long as
- the
- cache is up and running.
- </para>
- </answer>
- </qandaentry>
-
- </qandaset>
- </chapter>
-
- <chapter id="eviction">
- <title>Eviction Policies</title>
- <qandaset>
- <qandaentry>
- <question>
- <para>Does JBoss Cache support eviction policies?</para>
- </question>
-
- <answer>
- <para>Yes. JBoss Cache currently supports multiple eviction policies such as LRU, MRU, and FIFO.
- Users can also plug in their own eviction policy algorithms. See user
- guide for details.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache's eviction policy operates in
- replication mode?
- </para>
- </question>
-
- <answer>
- <para>Yes and no. :-)</para>
-
- <para>The eviction policy only operates in local mode. That is, nodes are
- only evicted locally. This may cause the cache contents not to be
- synchronized temporarily. But when a user tries to obtain the cached
- contents of an evicted node and finds out that is null (e.g.,
- <literal>get</literal>
- returns null), it should get it from the
- other data source and re-populate the data in the cache. During this
- moment, the node content will be propagated and the cache content
- will be in sync.
- </para>
-
- <para>However, you still can run eviction policies with cache mode
- set to either
- <literal>REPL_SYNC</literal>
- or
- <literal>REPL_ASYNC</literal>
- . Depending on your use case, you can
- set multiple cache instances to have their own eviction policy
- (which are applied locally) or just have selected instances with
- eviction policies activated.
- </para>
-
- <para>Also note that, with cache loader option, a locally evicted
- node can also be persisted to the backend store and a user can
- retrieve it from the store later on.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does JBoss Cache support
- <literal>Region</literal>
- ?
- </para>
- </question>
-
- <answer>
- <para>Yes. JBoss Cache has the notion of region where a user can
- configure the eviction policy parameters (e.g.,
- <literal>maxNodes</literal>
- or
- <literal>timeToIdleSeconds</literal>
- )
- </para>
-
- <para>A region in JBoss Cache denotes a portion of tree hierarchy,
- e.g., a fully qualified name (
- <literal>org.jboss.cache.Fqn</literal>
- ). For example,
- a user can define
- <literal>/org/jboss</literal>
- and
- <literal>/org/foocom</literal>
- as two separate regions. But note
- that you can configure the region programmatically now, i.e.,
- everything has to be configured through the xml file.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>I have turned on the eviction policy, why do I still get "out
- of memory" (OOM) exception?
- </para>
- </question>
-
- <answer>
- <para>OOM can happen when the speed of cache access exceeds the
- speed of eviction policy handling timer. Eviction policy handler
- will wake up every
- <literal>wakeUpInterval</literal>
- milliseconds (or
- <literal>wakeUpIntervalSeconds</literal>
- seconds, prior to 3.x)
- to process the eviction event queue. So when the queue size is full, it will create a
- backlog and cause out-of-memory exceptions to happen unless the eviction timer catches
- up. To address this problem, in addition to increase the VM heap
- size, you can also reduce the
- <literal>wakeUpInterval</literal>
- so the timer thread
- processes the queue more frequently.
- </para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter id="cacheloaders">
- <title>Cache Loaders</title>
- <qandaset>
-
-
- <qandaentry>
- <question>
- <para>What is a cache loader?</para>
- </question>
-
- <answer>
- <para>A cache loader is the connection of JBoss Cache to a
- (persistent) data store. The cache loader is called by JBoss Cache to
- fetch data from a store when that data is not in the cache, and when
- modifications are made to data in the cache the Cache Loader is
- called to store those modifications back to the store.
- </para>
-
- <para>In conjunction with eviction policies, JBoss Cache with a
- cache loader allows a user to maintain a bounded cache for a large
- backend datastore. Frequently used data is fetched from the
- datastore into the cache, and the least used data is evicted, in
- order to provide fast access to frequently accessed data. This is
- all configured through XML, and the programmer doesn't have to take
- care of loading and eviction.
- </para>
-
- <para>JBoss Cache currently ships with several cache loader
- implementations, including:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <literal>org.jboss.cache.loader.FileCacheLoader</literal>
- : this implementation uses the file
- system to store and retrieve data. JBoss Cache nodes are mapped
- to directories, subnodes to subdirectories etc. Attributes of
- a node are mapped to a data file
- inside the
- directory.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>org.jboss.cache.loader.jdbm.JdbmCacheLoader</literal>
- : this implementation is based on<ulink url="http://jdbm.sourceforge.net/">
- JDBM</ulink>,
- an open source file-based transactional persistence engine.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>org.jboss.cache.loader.bdbje.BdbjeCacheLoader</literal>
- : this implementation is based on the
- Oracle's Berkeley DB Java Edition database, a fast and efficient
- transactional database. It uses a single file for the entire
- store. Note that if you use the Berkeley DB cache loader with
- JBoss Cache and wish to ship your product, you will have to acquire a
- <ulink url="http://www.sleepycat.com/jeforjbosscache">commercial license from
- Oracle</ulink>.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <literal>org.jboss.cache.loader.JDBCCacheLoader</literal>
- : this implementation uses the relational database as the persistent
- storage.
- </para>
- </listitem>
-
- <listitem>
- <para>And more. See the chapter on cache loaders in the Users' Guide for more details.
- </para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Is the FileCacheLoader recommended for production use?</para>
- </question>
-
- <answer>
- <para>
- No, it is not. The FileCacheLoader has some severe limitations which restrict its use in a
- production
- environment, or if used in such an environment, it should be used with due care and sufficient
- understanding of these limitations.
- </para>
- <itemizedlist>
- <listitem><para>Due to the way the FileCacheLoader represents a tree structure on disk
- (directories and
- files) traversal is inefficient for deep trees.</para>
- </listitem>
- <listitem><para>Usage on shared filesystems like NFS, Windows shares, etc. should be avoided as
- these do
- not implement proper file locking and can cause data corruption.</para>
- </listitem>
- <listitem><para>Usage with an isolation level of NONE can cause corrupt writes as multiple threads
- attempt to write to the same file.</para>
- </listitem>
- <listitem>
- <para>
- File systems are inherently not transactional, so when attempting to use your
- cache in a
- transactional context, failures when writing to the file (which happens during the
- commit phase)
- cannot be recovered.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- As a rule of thumb, it is recommended that the FileCacheLoader not be used in a highly
- concurrent,
- transactional or stressful environment, and its use is restricted to testing.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can writing to cache loaders be asynchronous?</para>
- </question>
-
- <answer>
- <para>Yes. Set the
- <literal>async</literal>
- attrobute to true. See the JBoss Cache Users' Guide for a more
- detailed discussion. By default though, all cache loader writes are
- synchronous and will block.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I write my own cache loader ?</para>
- </question>
-
- <answer>
- <para>Yes. A cache loader is a class implementing
- <literal>org.jboss.cache.loader.CacheLoader</literal>
- or extending
- <literal>org.jboss.cache.loader.AbstractCacheLoader</literal>
- . It is
- configured via the XML file (see JBoss Cache Users' Guide).
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Does a cache loader have to use a persistent store ?</para>
- </question>
-
- <answer>
- <para>No, a cache loader could for example fetch (and possibly store)
- its data from a webdav-capable webserver. Another example is a
- caching proxy server, which fetches contents from the web. Note that
- an implementation of CacheLoader may not implement the 'store'
- functionality in this case, but just the 'load'
- functionality.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Do I have to pay to use Oracle's Berkeley DB CacheLoader?</para>
- </question>
-
- <answer>
- <para>Not if you use it only for personal use. As soon as you
- distribute your product with BdbjeCacheLoader, you have to purchase
- a commercial license from Oracle. See details at
- <ulink
- url="http://www.sleepycat.com/jeforjbosscache">http://www.sleepycat.com/jeforjbosscache
- </ulink>
- .
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Are there any tools available to monitor the Berkeley DB instance?</para>
- </question>
-
- <answer>
- <para>
- Yes. Oracle ships a JMX-based monitoring tool, called
- <ulink
- url="http://www.oracle.com/technology/documentation/berkeley-db/je/java/com/sl...">
- JEMonitor
- </ulink>
- which can be downloaded from the Oracle website.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>When tuning my Berkeley DB instance, where should I put my je.properties file?</para>
- </question>
-
- <answer>
- <para>
- <literal>je.properties</literal>
- should reside in your Berkeley DB home directory. This is the directory you pass
- in to the BDBJECacheLoader's
- <literal>location</literal>
- configuration property.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I use more than one cache loader?</para>
- </question>
-
- <answer>
- <para>Yes. Within the CacheLoaderConfiguration XML
- element (see Users' Guide chapter on cache loaders) you can
- describe several cache loaders. The impact is that the cache will
- look at all of the cache loaders in the order they've been
- configured, until it finds a valid, non-null element of data. When
- performing writes, all cache loaders are written to (except if the
- ignoreModifications element has been set to true for a specific
- cache loader.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Can I migrate a JDBCacheLoader or FileCacheLoader based cache store containing data formatted with JBoss Cache 1.x.x to JBoss Cache 2.0 format?
- </para>
- </question>
-
- <answer>
- <para>Yes. See "Transforming Cache Loaders" section within the "Cache Loaders" section located in the JBoss Cache Users' Guide.
- </para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>
- Is the TCPDelegatingCacheLoader resilient to TCPCacheServer restarts?
- </para>
- </question>
-
- <answer>
- <para>
- As of JBoss Cache 2.1.0, the answer is yes. See the Users' Guide for details on how to configure
- and
- tune
- your retries and wait period for reestablishing the TCP connection.
- </para>
- <para>
- Prior to that, restarting the TCPCacheServer would also mean
- restarting your application that uses the cache.
- </para>
- </answer>
-
- </qandaentry>
- </qandaset>
- </chapter>
- <chapter id="troubleshooting">
- <title>Troubleshooting</title>
- <qandaset>
-
- <qandaentry>
- <question>
- <para>I am having problems getting JBoss Cache to work, where can I get information on troubleshooting?
- </para>
- </question>
- <answer>
- <para>Troubleshooting section can be found in the following
- <ulink url="http://www.jboss.org/community/docs/DOC-10288">wiki link</ulink>.
- </para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+<xi:include href="General_FAQ.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="TreeCache_FAQ.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Eviction_FAQ.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="CacheLoader_FAQ.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Troubleshooting.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
</book>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Revision_History.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Revision_History.xml 2009-08-25 23:13:01 UTC (rev 8200)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Revision_History.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -1,4 +1,4 @@
-<?xml version='1.0'?>
+<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/TreeCache_FAQ.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/TreeCache_FAQ.xml (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/TreeCache_FAQ.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -0,0 +1,859 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+ <chapter id="TreeCache">
+ <title>JBoss Cache: Core</title>
+
+ <qandaset>
+
+ <!-- <qandaentry>
+ <question>
+ <para>Using JBoss Cache 2 or 3 on JBoss AS 4.x</para>
+ </question>
+
+ <answer>
+ <para>
+ JBoss AS 4.x ships with JBoss Cache 1.4.x. To make use of new features, performance improvements
+ and bug fixes in newer releases, you can follow some of the steps outlined on<ulink
+ url="http://www.jboss.org/community/docs/DOC-10254">this wiki page</ulink>.
+ </para>
+ </answer>
+ </qandaentry> -->
+
+ <qandaentry>
+ <question>
+ <para>Can I run multiple JBoss Cache instances on the same VM?</para>
+ </question>
+
+ <answer>
+ <para>Yes. There are some scenarios where you may want to run
+ multiple instances of JBoss Cache. For example, you want to run
+ multiple local cache instances with each instance having its own
+ configuration (e.g., different cache policy). In this case, you will
+ need multiple xml configuration files.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can JBoss Cache run as a second level cache inside
+ Hibernate?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. Since Hibernate 3.0 release, you can configure it to use
+ JBoss Cache as a second level cache. For details,
+ see Hibernate documentation, and also see
+ <ulink url="http://www.jboss.org/community/docs/DOC-10265">this wiki page</ulink>.
+ </para>
+ <para>
+ JBoss Cache 3.x with MVCC in particular works very well as a Hibernate second level cache.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>What about using POJO Cache as a Hibernate cache?</para>
+ </question>
+
+ <answer>
+ <para>It is not necessary to use POJO Cache for second level
+ cache inside Hibernate because Hibernate
+ manages fine-grained fields in Java objects. Using POJO Cache won't
+ provide any advantage, and will be an unnecessary performance drawback.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How can I configure JBoss Cache?</para>
+ </question>
+
+ <answer>
+ <para>You can configure the JBoss Cache through a configuration xml
+ file or programmatically using a
+ <literal>org.jboss.cache.config.Configuration</literal>
+ object, passed in to the
+ <literal>org.jboss.cache.CacheFactory</literal>
+ instance.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I use a schema or DTD to validate my JBoss Cache configuration file?
+ </para>
+ </question>
+
+ <answer>
+ <para>
+ As of JBoss Cache 3.x, yes. An XSD schema is provided in your jbosscache-core.jar file, and is
+ also
+ available online, on<ulink url="http://www.jboss.org/jbosscache/jbosscache-config-3.0.xsd">
+ http://www.jboss.org/jbosscache/jbosscache-config-3.0.xsd</ulink>.
+ You can configure your IDE, text editor or XML authoring tool to use this schema to validate
+ your file.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>What is the difference between the different cache modes?
+ </para>
+ </question>
+
+ <answer>
+ <para>JBossCache has five different cache modes, i.e.,
+ <literal>LOCAL</literal>
+ ,
+ <literal>REPL_SYNC</literal>
+ ,
+ <literal>REPL_ASYNC</literal>
+ ,
+ <literal>INVALIDATION_SYNC</literal>
+ and
+ <literal>INVALIDATION_ASYNC</literal>
+ . If you want to run JBoss Cache as a
+ single instance, then you should set the cache mode to
+ <literal>LOCAL</literal>
+ so that it won't attempt to replicate anything.
+ If you want to have synchronous replication among different
+ JBoss Cache instances, you set it to
+ <literal>REPL_SYNC</literal>
+ .
+ For asynchronous replication, use
+ <literal>AYSNC_REPL</literal>
+ . If you do not wish to replicate cached data but simply inform other caches in a cluster that
+ data
+ under
+ specific addresses are now stale and should be evicted from memory, use
+ <literal>INVALIDATION_SYNC</literal>
+ or
+ <literal>INVALIDTAION_ASYNC</literal>
+ . Synchronous and asynchronous behavior applies to invalidation as well as replication.
+ </para>
+
+ <para>Note that
+ <literal>ASYNC_REPL</literal>
+ and
+ <literal>INVALIDATION_ASYNC</literal>
+ are non-blocking. This
+ can be useful when you want to have another JBoss Cache serving as a
+ mirror or backup and you don't want to wait for confirmation that this mirror has received your
+ messages.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How does JBoss Cache's replication mechanism work?</para>
+ </question>
+
+ <answer>
+ <para>JBoss Cache leverages
+ <ulink url="http://www.jgroups.org">JGroups</ulink>
+ for network communications. A JGroups configuration section is present in your JBoss Cache
+ configuration.
+ </para>
+ <para>
+ A user
+ can configure the cluster of JBoss Cache instances by sharing the
+ same cluster name (
+ <literal>cluster name</literal>
+ ). There is also
+ an option of whether to populate the cache data upon starting a new
+ instance in the
+ <literal>ClusterConfig</literal>
+ attribute.
+ </para>
+
+ <para>Note that once all instances join the same replication group,
+ every replication change is propagated to all participating members.
+ There is no mechanism for sub-partitioning where some replication
+ can be done within only a subset of members, unless you use the Buddy Replication features. See
+ the
+ Users' Guide for more details on this.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>I run a 2 node cluster. If the network dies, do the caches continue to run?</para>
+ </question>
+
+ <answer>
+ <para>Yes, both will continue to run, but depending on your replication mode, all transactions or
+ operations may not complete. If
+ <literal>REPL_SYNC</literal>
+ is used, operations will fail while if
+ <literal>REPL_ASYNC</literal>
+ is used they will succeed. Even if they succeed though, caches will be out of sync.
+ </para>
+ </answer>
+ </qandaentry>
+
+
+ <qandaentry>
+ <question>
+ <para>Can I plug in library X instead of JGroups to handle remote calls and group communications?
+ </para>
+ </question>
+
+ <answer>
+ <para>At this stage the answer is no. We do have an abstraction layer between the
+ communication suite and JBoss Cache in the pipelines, and this may appear as a feature at some
+ stage
+ in
+ the future.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does the cache need to replicate to every other instance in the cluster? Isn't this slow if
+ the
+ cluster is large?
+ </para>
+ </question>
+
+ <answer>
+ <para>Replication need not occur to every node in the cluster. This feature -
+ called Buddy Replication -
+ allows each node to pick one or more 'buddies' in the cluster and only replicate to its buddies.
+ This
+ allows a cluster to scale
+ very easily with no extra impact on memory or network traffic with each node added.
+ </para>
+ <para>
+ See the Users' Guide for more information on Buddy Replication, and how it can be used to
+ achieve very
+ high
+ scalability.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>I'm using Buddy Replication. Do I need to have some form of session affinity?</para>
+ </question>
+ <answer>
+ <para>Session affinity relates to returning to the same cache instance for the same data being used.
+ While this is strictly not a requirement for Buddy Replication, it is greatly recommended to
+ minimize
+ moving state around a cluster.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>If I have the need for different configuration properties (e.g.,
+ <literal>CacheMode</literal>
+ and
+ <literal>IsolationLevel</literal>
+ ), do I simply need to create multiple
+ <literal>org.jboss.cache.Cache</literal>
+ instances with the appropriate configuration?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. All the above mentioned properties are per cache
+ instance. Therefore you will need separate
+ <literal>org.jboss.cache.Cache</literal>
+ instances.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Isn't this expensive from a networking standpoint, i.e., needing to create sockets for each
+ <literal>org.jboss.cache.Cache</literal>
+ instance?
+ </para>
+ </question>
+
+ <answer>
+ <para>
+ Yes, it can be. For such cases it is recommended that you configure your cache using the JGroups
+ Multiplexer, which allows several caches to share
+ a single JGroups channel. Please see the Users' Guide for details on how to configure the
+ JGroups
+ Multiplexer.
+ </para>
+ <para>
+ A faster and more efficient approach is to use a shared transport in JGroups. Please see
+ <ulink url="http://www.jgroups.org">the JGroups documentation</ulink>
+ for more details on how to do this.
+ </para>
+ </answer>
+ </qandaentry>
+
+
+ <qandaentry>
+ <question>
+ <para>Does the
+ <literal>ClusterName</literal>
+ configuration element have
+ any relation to the JBoss AS cluster
+ <literal>PartitionName</literal>
+ ?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. They are both JGroups group names. Besides the notion of
+ a channel in JGroups, it also can partition the channel into different
+ group names.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>When using multiple JGroups based components
+ [cluster-service.xml, cache (multiple instances)], what is the
+ correct/valid way to configure those components to make sure my
+ multicast addresses don't conflict?
+ </para>
+ </question>
+
+ <answer>
+ <para>There are two parameters to consider: multicast address (plus
+ port) and the group name. At minimum, you will have to run
+ components using a different group name. But whether to run them on
+ the same channel depends upon whether the communication performance
+ is critical for you or not. If it is, then it'd be best to run them
+ on different channels.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache support cache persistence
+ storage?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. JBoss Cache has a cache loader
+ interface that supports cache persistence. See below for more FAQs on cache loaders.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache support cache passivation/ overflow
+ to a data store?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. JBoss Cache uses the
+ cache loader to support cache passivation/ overflow. See
+ documentation on how to configure and use this feature.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Is JBoss Cache thread safe?</para>
+ </question>
+
+ <answer>
+ <para>Yes, it is thread safe.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache support XA (2PC) transactions now?</para>
+ </question>
+
+ <answer>
+ <para>No, although it is also on our to do list. Our internal
+ implementation does use a procedure similar to 2PC to coordinate a
+ transactions among different instances, but JBoss Cache is not an XA resource.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Which transaction managers are supported by
+ JBoss Cache?
+ </para>
+ </question>
+
+ <answer>
+ <para>JBoss Cache supports any TransactionManager that is
+ <ulink url="http://java.sun.com/products/jta/">JTA</ulink>
+ compliant such as<ulink url="http://www.jboss.org/jbosstm/">JBoss Transactions</ulink>.
+ </para>
+ <para>
+ While JBoss Cache does ships with a
+ dummy transaction manager
+ (<literal>org.jboss.cache.transaction.DummyTransactionManager</literal>), we do
+ <emphasis>not</emphasis>
+ recommend using this for production. It is not thread safe, and is intended for internal testing
+ only.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How do I set up the cache to be transactional?</para>
+ </question>
+
+ <answer>
+ <para>You either use the default transaction manager that ships with JBoss AS
+ or you have to implement the
+ <literal>org.jboss.cache.transaction.TransactionManagerLookup</literal>
+ interface, and return an
+ instance of your
+ <literal>javax.transaction.TransactionManager</literal>
+ implementation. The
+ configuration property
+ <literal>TransactionManagerLookupClass</literal>
+ defines the class
+ to be used by the cache to fetch a reference to a
+ transaction manager. It is trivial to implement this interface to support
+ other transaction managers. Once this attribute is specified, the
+ cache will look up the transaction context from this transaction
+ manager.
+ </para>
+ <para>
+ The
+ <literal>org.jboss.cache.transaction.GenericTransactionManagerLookup</literal>
+ class that ships
+ with JBoss Cache is able to detect and bind to most popular transaction managers. See the
+ <literal>GenericTransactionManagerLookup</literal>
+ javadocs for more information.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How do I control the cache locking level?</para>
+ </question>
+
+ <answer>
+ <para>JBoss Cache lets you control the cache locking level through
+ the transaction isolation level. This is configured through the
+ attribute
+ <literal>IsolationLevel</literal>
+ . The transaction
+ isolation levels correspond to database
+ isolation levels, namely,
+ <literal>NONE</literal>
+ ,
+ <literal>READ_UNCOMMITTED</literal>
+ ,
+ <literal>READ_COMMITTED</literal>
+ ,
+ <literal>REPEATABLE_READ</literal>
+ , and
+ <literal>SERIALIZABLE</literal>
+ . Note that these isolation levels are ignored if optimistic locking is used. For details,
+ please
+ refer
+ to the
+ user manual.
+ </para>
+ <para>
+ As of JBoss Cache 3.x, when using the MVCC locking scheme, only
+ <literal>READ_COMMITTED</literal>
+ and
+ <literal>REPEATABLE_READ</literal>
+ are supported. Any other isolation level provided will either be upgraded
+ or downgraded accordingly.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How does JBoss Cache lock data for concurrent access?</para>
+ </question>
+
+ <answer>
+ <para>In JBoss Cache 2.x, by default pessimistic locking is used to lock data nodes, based on the
+ isolation level
+ configured. We also offer optimistic locking to allow for greater concurrency
+ at
+ the cost of slight processing overhead and performance. See the documentation for a more
+ detailed
+ discussion on concurrency and locking in JBoss Cache.
+ </para>
+ <para>
+ In JBoss Cache 3.x, optimistic and pessimistic locking are deprecated in favour of MVCC
+ (multi-version concurrency
+ control), which is far more efficient than either optimistic or pessimistic locking. For a
+ detailed discussion on
+ our MVCC implementation, see
+ <ulink url="http://jbosscache.blogspot.com/2008/07/mvcc-has-landed.html">this blog entry</ulink>
+ and<ulink url="http://www.jboss.org/community/docs/DOC-10272">this wiki page</ulink>.
+ </para>
+ </answer>
+ </qandaentry>
+
+
+ <qandaentry>
+ <question>
+ <para>How do I enable Optimistic Locking or MVCC in JBoss Cache?</para>
+ </question>
+
+ <answer>
+ <para>
+ Please see the configuration section of the Users' Guide for details.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I use the cache locking level even without a transaction
+ context?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. JBoss Cache controls the individual node locking behavior
+ through the isolation level semantics. This means even if you don't
+ use a transaction, you can specify the lock level via isolation
+ level. You can think of the node locking behavior outside of a
+ transaction as if it is under transaction with
+ <literal>auto_commit</literal>
+ on.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>
+ Does JBoss Cache support
+ <literal>SELECT FOR UPDATE</literal>
+ semantics?
+ </para>
+ </question>
+
+ <answer>
+ <para>
+ Yes, but this is is only possible if you are running within a JTA transaction
+ <emphasis>and</emphasis>
+ are using either
+ <literal>MVCC</literal>
+ or
+ <literal>PESSIMISTIC</literal>
+ as your node locking scheme.
+ </para>
+ <para>
+ To achieve
+ <literal>SELECT FOR UPDATE</literal>
+ semantics, simply do:
+ </para>
+ <programlisting role="JAVA"><![CDATA[
+
+ // start transaction ...
+
+ cache.getInvocationContext().getOptionOverrides().setForceWriteLock(true);
+ Node n = cache.get("/a/b/c"); // this acquires a WRITE LOCK on this node
+ ...
+ ...
+
+ // end transaction
+
+ ]]></programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>With replication (REPL_SYNC/REPL_ASYNC) or invalidation
+ (INVALIDATION_SYNC/INVALIDATION_ASYNC), how
+ often does the cache broadcast messages over the network?
+ </para>
+ </question>
+
+ <answer>
+ <para>If the updates are under transaction, then the broadcasts
+ happen only when the transaction is about to commit (actually
+ during the prepare stage internally). That is, it will be a batch
+ update. However, if the operations are not under transaction
+ context, then each update will trigger replication. Note that this
+ has performance implications if network latency is a problem.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How can I do a mass removal?</para>
+ </question>
+
+ <answer>
+ <para>If you do a<literal>cache.removeNode("/myroot")</literal>, it will recursively remove
+ all the entries under "/myroot".
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I monitor and manage the JBoss Cache?</para>
+ </question>
+
+ <answer>
+ <para>Yes, using a JMX console such as the one shipped with JBoss AS or Java 5's
+ <literal>jconsole</literal>
+ utility. See the chapter titled
+ <emphasis role="bold">Management Information</emphasis>
+ in the JBoss Cache Users' Guide for more details.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>
+ JBoss Cache uses a
+ <literal>:</literal>
+ character in its object name. This causes problems with
+ my MBean server. What can I do about it?
+ </para>
+ </question>
+ <answer>
+ <para>
+ This is something we have seen with some MBean servers. By default, JBoss Cache uses
+ <literal>jboss.cache:service=JBossCache</literal>
+ as a prefix to all objects it binds in JMX.
+ To work around this, use the
+ <literal>-Djbosscache.jmx.prefix</literal>
+ JVM parameter to pass in
+ an alternate prefix.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I disable JBoss Cache management attributes?</para>
+ </question>
+
+ <answer>
+ <para>Yes, you can. See the section on configuration in the JBoss Cache Users' Guide.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>What happened to jboss-serialization.jar?</para>
+ </question>
+
+ <answer>
+ <para>
+ As of JBoss Cache 2.0.0, the dependency on JBoss Serialization has been dropped since most of
+ the
+ benefits of JBoss Serialization are available in updated Java 5 VMs. Since JBoss Cache 2.0.0 is
+ baselined on Java 5, there was no need to provide these benefits separately.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache support partitioning?</para>
+ </question>
+
+ <answer>
+ <para>Not right now. JBoss Cache does not support partitioning that a
+ user can configure to have different set of data residing on
+ different cache instances while still participating as a replication
+ group.
+ </para>
+ <para>
+ This is on the roadmap though, so do keep an eye on
+ <ulink url="http://jira.jboss.org/jira/browse/JBCACHE-60">JBCACHE-60</ulink>
+ if you are interested.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache handle the concept of application classloading
+ inside, say, a Java EE container?
+ </para>
+ </question>
+
+ <answer>
+ <para>Application-specific classloading is used widely inside a Java EE
+ container. For example, a web application may require a new
+ classloader to scope a specific version of the user library.
+ However, by default JBoss Cache is agnostic to the classloader. In
+ general, this leads to two kinds of problems:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Object instance is stored in cache1 and replicated to
+ cache2. As a result, the instance in cache2 is created by the
+ system classloader. The replication may fail if the system
+ classloader on cache2 does not have access to the required
+ class. Even if replication doesn't fail, a user thread in cache2
+ may not be able to access the object if the user thread is
+ expecting a type defined by the application classloader.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Object instance is created by thread 1 and will be
+ accessed by thread 2 (with two different classloaders).
+ JBoss Cache has no notion of the different classloaders involved.
+ As a result, you will have a
+ <literal>ClassCastException</literal>
+ . This is a standard
+ problem in passing an object from one application space to
+ another; JBoss Cache just adds a level of indirection in passing
+ the object.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>To solve the first kind of issue JBoss Cache uses a
+ <literal>CacheMarshaller</literal>
+ .
+ Basically, this allows application code to register a classloader
+ with a portion of the cache tree for use in handling objects
+ replicated to that portion. See the
+ <literal>CacheMarshaller</literal>
+ section of
+ the Users' Guide for more details.
+ </para>
+
+ <para>To solve the second kind of issue, you can use the the
+ <literal>UseLazyDeserialization</literal>
+ configuration
+ option in JBoss Cache, which wraps your objects in a
+ <literal>Marshalledvalue</literal>
+ wrapper. The
+ <literal>MarshalledValue</literal>
+ serializes and deserializes your object on demand, ensuring the proper thread local context
+ class loader is used each time.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Does JBoss Cache currently support pre-event and post-event
+ notification?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes. A boolean is passed in to each notification callback identifying whether the callback is
+ before
+ or after the event. See the
+ <literal>org.jboss.cache.notifications.annotations.CacheListener</literal>
+ annotation for details.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>How do I implement a custom listener to listen to
+ cache events?
+ </para>
+ </question>
+
+ <answer>
+ <para>
+ See the Users' Guide on this subject.
+ </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Can I use
+ <literal>UseRegionBasedMarshalling</literal>
+ attribute in JBoss Cache in order to get
+ around ClassCastExceptions happening when accessing data in the cache that has just been
+ redeployed?
+ </para>
+ </question>
+
+ <answer>
+ <para>Yes, you can. Originally, cache Marshalling was designed as a
+ workaround for those replicated caches that upon state transfer did not have access to the
+ classloaders defining the objects in the cache.
+ </para>
+
+ <para>On each deployment, JBoss creates a new classloader per the top level deployment artifact, for
+ example an EAR. You also have to bear in mind that a class in an application server is defined
+ not
+ only by the class name but also its classloader. So, assuming that the cache is not deployed as
+ part
+ of your deployment, you could deploy an application and put instances of classes belonging to
+ this
+ deployment inside the cache. If you did a redeployment and try to do a get operation of the data
+ previously put, this would result on a ClassCastException. This is because even though the class
+ names
+ are the same, the class definitions are not. The current classloader is different to the one
+ when
+ the classes were originally put.
+ </para>
+
+ <para>By enabling marshalling, you can control the lifecycle of the data in the cache and if on
+ undeployment, you deactivate the region and unregister the classloader that you'd have
+ registered on
+ deployment, you'd evict the data in the cache locally. That means that in the next deployment,
+ the
+ data won't be in the cache, therefore avoiding the problem. Obviously, using marshalling to get
+ around this problem is only recommended when you have some kind of persistence backing where the
+ data
+ survives, for example using CacheLoaders, or when JBoss Cache is used as a second level cache in
+ a
+ persistence framework.
+ </para>
+
+ <para>To implement this feature, please follow the instructions indicated in the example located
+ in the CacheMarshaller section of the Users' Guide. It's worth noting that instead of a
+ <literal>ServletContextListener</literal>
+ , you could add this code into an
+ <literal>MBean</literal>
+ that contained lifecycle methods, such as
+ <literal>start()</literal>
+ and
+ <literal>stop()</literal>
+ .
+ The key would be for this MBean to depend on the target cache, so that it can operate as long as
+ the
+ cache is up and running.
+ </para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+ </chapter>
\ No newline at end of file
Added: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Troubleshooting.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Troubleshooting.xml (rev 0)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/Troubleshooting.xml 2009-08-26 00:06:53 UTC (rev 8201)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+ <chapter id="troubleshooting">
+ <title>Troubleshooting</title>
+ <qandaset>
+
+ <qandaentry>
+ <question>
+ <para>I am having problems getting JBoss Cache to work, where can I get information on troubleshooting?
+ </para>
+ </question>
+ <answer>
+ <para>Troubleshooting section can be found in the following
+ <ulink url="http://www.jboss.org/community/docs/DOC-10288">wiki link</ulink>.
+ </para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
\ No newline at end of file
15 years, 4 months
JBoss Cache SVN: r8199 - in enterprise-docs/tags/JBoss_EAP_5_0_0: Cache_Tutorial/en-US and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2009-08-25 19:10:02 -0400 (Tue, 25 Aug 2009)
New Revision: 8199
Modified:
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml
enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_Tutorial/en-US/JBoss_Cache_Tutorial.xml
Log:
updated files
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml 2009-08-24 15:19:10 UTC (rev 8198)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_FAQ/en-US/JBoss_Cache_Frequently_Asked_Questions.xml 2009-08-25 23:10:02 UTC (rev 8199)
@@ -1,14 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "../../../../docbook-support/support/docbook-dtd/docbookx.dtd"
- >
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
<book lang="en">
<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<chapter id="general">
<title>General Information</title>
<qandaset>
-
<qandaentry>
<question>
<para>What is JBoss Cache?</para>
@@ -47,25 +45,21 @@
<ulink url="http://www.jboss.org/jbosscache/">documentation website</ulink>.
</para>
- <para>
+ <!-- <para>
JBoss Cache is made available in one of four different packages:
<itemizedlist>
<listitem>
<para>
- <literal>jbosscache-core</literal>
- </para>
- contains the core Cache library for users who do not wish to use the additional
- functionality
- offered by POJO Cache.
+ <literal>jbosscache-core</literal> contains the core Cache library for users who do not wish to use the additional functionality offered by POJO Cache.
+ </para>
</listitem>
<listitem>
<para>
- <literal>jbosscache-pojo</literal>
- </para>
- contains the core Cache library as well as POJO Cache extensions and dependencies.
+ <literal>jbosscache-pojo</literal> contains the core Cache library as well as POJO Cache extensions and dependencies.
+ </para>
</listitem>
</itemizedlist>
- </para>
+ </para> -->
</answer>
</qandaentry>
@@ -76,18 +70,12 @@
<answer>
<para>
- JBoss Cache has an active community of developers and contributors. The project was founded by
- Bela
- Ban
- and is currently led by Manik Surtani. Jason Greene is the lead for the POJO Cache subsystem,
- and other
- contributors both past and present include Ben Wang, Harald Gliebe, Brian Stansberry, Vladimir
- Blagojevic, Mircea Markus, Jimmy Wilson, Galder Zamarreño and Elias Ross.
+ JBoss Cache has an active community of developers and contributors. The project was founded by Bela Ban and is currently led by Manik Surtani. Jason Greene is the lead for the POJO Cache subsystem, and other contributors both past and present include Ben Wang, Harald Gliebe, Brian Stansberry, Vladimir Blagojevic, Mircea Markus, Jimmy Wilson, Galder Zamarreño and Elias Ross.
</para>
</answer>
</qandaentry>
- <qandaentry>
+ <!-- <qandaentry>
<question>
<para>What about licensing?</para>
</question>
@@ -98,9 +86,9 @@
url="http://www.opensource.org/">OSI</ulink>-approved open source license.
</para>
</answer>
- </qandaentry>
+ </qandaentry> -->
- <qandaentry>
+ <!-- <qandaentry>
<question>
<para>Where can I download JBoss Cache?</para>
</question>
@@ -115,22 +103,22 @@
wiki page for details.
</para>
</answer>
- </qandaentry>
+ </qandaentry> -->
- <qandaentry>
+ <!-- <qandaentry>
<question>
<para>How do I build JBoss Cache from sources?</para>
</question>
<answer>
<para>
- Read the README-Maven.txt file in the source root. Note that you will need a JDK >= 5.0, and
- Apache Maven >= 2.0.6.
+ Read the README-Maven.txt file in the source root. Note that you will need a JDK >= 5.0, and
+ Apache Maven >= 2.0.6.
</para>
</answer>
- </qandaentry>
+ </qandaentry> -->
- <qandaentry>
+ <!-- <qandaentry>
<question>
<para>Which versions of the JDK are supported by JBoss Cache?</para>
</question>
@@ -146,7 +134,7 @@
</ulink>.
</para>
</answer>
- </qandaentry>
+ </qandaentry> -->
<qandaentry>
<question>
@@ -221,7 +209,7 @@
</answer>
</qandaentry>
- <qandaentry>
+ <!-- <qandaentry>
<question>
<para>Where can I report bugs or problems?</para>
</question>
@@ -231,16 +219,16 @@
<ulink url="http://www.jboss.org/jbosscache">JBoss Cache User Forum</ulink>.
</para>
</answer>
- </qandaentry>
+ </qandaentry> -->
</qandaset>
</chapter>
<chapter id="TreeCache">
- <title>JBoss Cache - Core</title>
+ <title>JBoss Cache: Core</title>
<qandaset>
- <qandaentry>
+ <!-- <qandaentry>
<question>
<para>Using JBoss Cache 2 or 3 on JBoss AS 4.x</para>
</question>
@@ -252,7 +240,7 @@
url="http://www.jboss.org/community/docs/DOC-10254">this wiki page</ulink>.
</para>
</answer>
- </qandaentry>
+ </qandaentry> -->
<qandaentry>
<question>
@@ -1205,6 +1193,7 @@
</qandaentry>
</qandaset>
</chapter>
+
<chapter id="cacheloaders">
<title>Cache Loaders</title>
<qandaset>
@@ -1235,8 +1224,6 @@
<para>JBoss Cache currently ships with several cache loader
implementations, including:
</para>
-
- <para>
<itemizedlist>
<listitem>
<para>
@@ -1285,7 +1272,6 @@
</para>
</listitem>
</itemizedlist>
- </para>
</answer>
</qandaentry>
@@ -1300,26 +1286,30 @@
production
environment, or if used in such an environment, it should be used with due care and sufficient
understanding of these limitations.
+ </para>
<itemizedlist>
- <listitem>Due to the way the FileCacheLoader represents a tree structure on disk
+ <listitem><para>Due to the way the FileCacheLoader represents a tree structure on disk
(directories and
- files) traversal is inefficient for deep trees.
+ files) traversal is inefficient for deep trees.</para>
</listitem>
- <listitem>Usage on shared filesystems like NFS, Windows shares, etc. should be avoided as
+ <listitem><para>Usage on shared filesystems like NFS, Windows shares, etc. should be avoided as
these do
- not implement proper file locking and can cause data corruption.
+ not implement proper file locking and can cause data corruption.</para>
</listitem>
- <listitem>Usage with an isolation level of NONE can cause corrupt writes as multiple threads
- attempt to write to the same file.
+ <listitem><para>Usage with an isolation level of NONE can cause corrupt writes as multiple threads
+ attempt to write to the same file.</para>
</listitem>
- <listitem>File systems are inherently not transactional, so when attempting to use your
+ <listitem>
+ <para>
+ File systems are inherently not transactional, so when attempting to use your
cache in a
transactional context, failures when writing to the file (which happens during the
commit phase)
cannot be recovered.
+ </para>
</listitem>
</itemizedlist>
-
+ <para>
As a rule of thumb, it is recommended that the FileCacheLoader not be used in a highly
concurrent,
transactional or stressful environment, and its use is restricted to testing.
@@ -1444,16 +1434,12 @@
<qandaentry>
<question>
- <para>Can I migrate a JDBCacheLoader or FileCacheLoader based cache store containing data formatted
- with
- JBoss Cache 1.x.x to JBoss Cache 2.0 format?
+ <para>Can I migrate a JDBCacheLoader or FileCacheLoader based cache store containing data formatted with JBoss Cache 1.x.x to JBoss Cache 2.0 format?
</para>
</question>
<answer>
- <para>Yes. See "Transforming Cache Loaders" section within the "Cache Loaders" section located in
- the
- JBoss Cache Users' Guide.
+ <para>Yes. See "Transforming Cache Loaders" section within the "Cache Loaders" section located in the JBoss Cache Users' Guide.
</para>
</answer>
</qandaentry>
@@ -1464,7 +1450,7 @@
Is the TCPDelegatingCacheLoader resilient to TCPCacheServer restarts?
</para>
</question>
-
+
<answer>
<para>
As of JBoss Cache 2.1.0, the answer is yes. See the Users' Guide for details on how to configure
@@ -1477,8 +1463,8 @@
restarting your application that uses the cache.
</para>
</answer>
+
</qandaentry>
-
</qandaset>
</chapter>
<chapter id="troubleshooting">
@@ -1487,14 +1473,12 @@
<qandaentry>
<question>
- <para>I am having problems getting JBoss Cache to work, where can I get information on
- troubleshooting?
+ <para>I am having problems getting JBoss Cache to work, where can I get information on troubleshooting?
</para>
</question>
<answer>
<para>Troubleshooting section can be found in the following
- <ulink url="http://www.jboss.org/community/docs/DOC-10288">wiki link</ulink>
- .
+ <ulink url="http://www.jboss.org/community/docs/DOC-10288">wiki link</ulink>.
</para>
</answer>
</qandaentry>
Modified: enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_Tutorial/en-US/JBoss_Cache_Tutorial.xml
===================================================================
--- enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_Tutorial/en-US/JBoss_Cache_Tutorial.xml 2009-08-24 15:19:10 UTC (rev 8198)
+++ enterprise-docs/tags/JBoss_EAP_5_0_0/Cache_Tutorial/en-US/JBoss_Cache_Tutorial.xml 2009-08-25 23:10:02 UTC (rev 8199)
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book id="JBossCache_Tutorial">
- <title>JBossCache Tutorial</title>
<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<chapter id="JBossCache_Tutorial-Introduction">
<title>Introduction</title>
@@ -38,32 +37,23 @@
<title>Configuration</title>
<para>First download the JBoss Cache 3.x distribution from
- <ulink url="http://labs.jboss.org/jbosscache/download/index.html">the download page</ulink>. You will need the ALL distribution (
- <literal>jbosscache-core-3.X.Y.GA-all.zip</literal>).
- Unzip it, and you will get a directory containing the distribution, such as
- <literal>jbosscache-core-3.X.Y</literal>
- .
- For the sake of this tutorial, I will refer to this as
- <literal>${JBOSSCACHE_HOME}</literal>
- .
+ <ulink url="http://labs.jboss.org/jbosscache/download/index.html">the download page</ulink>. You will need the <emphasis>all</emphasis> distribution (<literal>jbosscache-core-3.X.Y.GA-all.zip</literal>). Unzip it, and you will get a directory containing the distribution, such as <literal>jbosscache-core-3.X.Y</literal>. For the sake of this tutorial, I will refer to this as <literal>${JBOSSCACHE_HOME}</literal>.
</para>
- <para>The configuration files are located in
- <literal>${JBOSSCACHE_HOME}/etc</literal>. You can
- modify the behavior of the cache by editing the various configuration files.
+ <para>The configuration files are located in <literal>${JBOSSCACHE_HOME}/etc</literal>. You can modify the behavior of the cache by editing the various configuration files.
</para>
<itemizedlist>
<listitem>
<para>
- <literal>log4j.xml</literal> - Logging output. You can enable logging, specify log levels or
+ <literal>log4j.xml</literal>: Logging output. You can enable logging, specify log levels or
change the name and path to the log file.
</para>
</listitem>
<listitem>
<para>
- <literal>config-samples/total-replication.xml</literal> - Cache configuration file used for this tutorial.
+ <literal>config-samples/total-replication.xml</literal>: Cache configuration file used for this tutorial.
</para>
</listitem>
</itemizedlist>
@@ -86,10 +76,10 @@
<para>
The GUI is run by:
<itemizedlist>
- <listitem>Changing to the
+ <listitem><para>Changing to the
<literal>${JBOSSCACHE_HOME}/tutorial</literal>
- directory (e.g.,<literal>cd ${JBOSSCACHE_HOME}/tutorial</literal>)</listitem>
- <listitem>And then running the ant script (e.g.,<literal>ant run</literal>)</listitem>
+ directory (e.g.,<literal>cd ${JBOSSCACHE_HOME}/tutorial</literal>)</para></listitem>
+ <listitem><para>And then running the ant script (e.g.,<literal>ant run</literal>)</para></listitem>
</itemizedlist>
</para>
@@ -98,22 +88,19 @@
view of the JVM in the lower pane.
</para>
<para>
- The BeanShell view is preset with the following variables:
+ The BeanShell view is preset with the following variables:</para>
<itemizedlist>
- <listitem>
- <literal>cache</literal>
- - a reference to the <literal>org.jboss.cache.Cache</literal> interface, used by the GUI instance.
+ <listitem><para>
+ <literal>cache</literal>: a reference to the <literal>org.jboss.cache.Cache</literal> interface, used by the GUI instance.</para>
</listitem>
- <listitem>
- <literal>root</literal>
- - a reference to the root <literal>org.jboss.cache.Node</literal> instance for the above cache.
+ <listitem><para>
+ <literal>root</literal>: a reference to the root <literal>org.jboss.cache.Node</literal> instance for the above cache.</para>
</listitem>
- <listitem>
- <literal>transactionManager</literal>
- - a reference to the registered <literal>javax.transaction.TransactionManager</literal> instance.
+ <listitem><para>
+ <literal>transactionManager</literal>: a reference to the registered <literal>javax.transaction.TransactionManager</literal> instance.</para>
</listitem>
</itemizedlist>
- The references made available to the BeanShell window point to the same cache instance used by the tree view in
+ <para> The references made available to the BeanShell window point to the same cache instance used by the tree view in
the
GUI above.
</para>
@@ -128,19 +115,18 @@
<chapter>
<title>Tutorials</title>
- Note that it is recommended that you shut down and restart the GUI for each of the following tutorials, to
- ensure clean caches every time.
+ <important><para> It is recommended that you shut down and restart the GUI for each of the following tutorials, to
+ ensure clean caches every time.</para></important>
<section>
<title>Caches and Nodes</title>
<para>
- For this tutorial, start a single instance of the GUI. In this tutorial, we will:
+ For this tutorial, start a single instance of the GUI. In this tutorial, we will:</para>
<itemizedlist>
- <listitem>Create nodes under the root node.</listitem>
- <listitem>Remove nodes under the root node, both individually and recursively.</listitem>
- <listitem>Add and remove data from nodes.</listitem>
+ <listitem><para>Create nodes under the root node.</para></listitem>
+ <listitem><para>Remove nodes under the root node, both individually and recursively.</para></listitem>
+ <listitem><para>Add and remove data from nodes.</para></listitem>
</itemizedlist>
- </para>
<para>1. Set up the Fqns you need. In the BeanShell pane, create 3 Fqn variables:</para>
<programlisting role="JAVA"><![CDATA[
15 years, 4 months
JBoss Cache SVN: r8198 - core/trunk.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2009-08-24 11:19:10 -0400 (Mon, 24 Aug 2009)
New Revision: 8198
Modified:
core/trunk/pom.xml
Log:
JBossTS stuff
Modified: core/trunk/pom.xml
===================================================================
--- core/trunk/pom.xml 2009-08-20 16:21:27 UTC (rev 8197)
+++ core/trunk/pom.xml 2009-08-24 15:19:10 UTC (rev 8198)
@@ -105,6 +105,18 @@
<version>4.4.0.GA</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>jboss.jbossts</groupId>
+ <artifactId>jbossjts</artifactId>
+ <version>4.6.1.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss.jbossts</groupId>
+ <artifactId>jbossts-common</artifactId>
+ <version>4.6.1.GA</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>beanshell</groupId>
<artifactId>bsh</artifactId>
15 years, 4 months