[cvs] expresso commit by mtraum: added expresso in a clustered
environment
JCorporate Ltd
jcorp at jcorporate.com
Tue Mar 8 01:51:12 UTC 2005
Log Message:
-----------
added expresso in a clustered environment
Modified Files:
--------------
expresso/expresso-web/expresso/doc/edg:
developing.xml
Revision Data
-------------
Index: developing.xml
===================================================================
RCS file: /home/javacorp/.cvs/expresso/expresso/expresso-web/expresso/doc/edg/developing.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -Lexpresso-web/expresso/doc/edg/developing.xml -Lexpresso-web/expresso/doc/edg/developing.xml -u -r1.16 -r1.17
--- expresso-web/expresso/doc/edg/developing.xml
+++ expresso-web/expresso/doc/edg/developing.xml
@@ -15,8 +15,7 @@
<colspec align='right' colsep='0' colwidth='50%' rowsep='0' />
<tbody>
<row>
- <entry>
- </entry>
+ <entry />
<entry>
<emphasis role='bold'>Maintainer:</emphasis><ulink url='mailto:dlloyd at jgroup.net?Subject=EDG'><emphasis
role='maintainer'>David Lloyd</emphasis></ulink>
@@ -58,8 +57,7 @@
architecture,
<indexterm>
<primary>MVC</primary>
- <secondary>Role of
- Controller object in</secondary>
+ <secondary>Role of Controller object in</secondary>
</indexterm>
and encapsulating all interaction with users), Job objects (handling all
@@ -232,6 +230,55 @@
</para>
</sect1>
<sect1>
+ <title>Expresso in a clustered or load balanced environment</title>
+ <para>
+
+By default, expresso is not compatible with a clustered or load balanced
+environment. However, mechanisms exist to extend expresso to remove these
+incompatibilities. The incompatibilities lie in two areas:
+ <orderedlist>
+ <listitem>
+ <para>NextNumber</para>
+ <para>
+
+By default, field types of 'auto-inc' use the class
+ <classname>com.jcorporate.expresso.core.dbobj.NextNumberImpl</classname>
+
+to generate a sequential number. This implementation will be subject to
+race conditions when used in a clustered or load balanced in environment.
+ </para>
+ <para>
+You can write your own by extending the
+ <classname>com.jcorporate.expresso.core.dbobj.NextNumber</classname>
+
+abstract class. Then, the nextNumber class-handler entity should be set
+in
+ <filename>expresso-config.xml</filename>
+. </para>
+ </listitem>
+ <listitem>
+ <para>The Cache</para>
+ <para>
+By default, expresso's build-in caching does not function in a clustered
+or load balanced environment. The cache is stored in memory, so when one
+server's cache is updated, another server's cache will not know about the
+update. So, stale information will be stored in the other server's cache.
+ </para>
+ <para>
+
+Expresso's cache has the infrastructure to implement cache synchronization,
+but it is up to the user to implement. To do this, the interface
+ <classname>com.jcorporate.expresso.core.cache.CacheSyncInterface</classname>
+
+is implemented. Then, the cacheSynchronizer class-handler entity should
+be set in
+ <filename>expresso-config.xml</filename>
+. </para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </sect1>
+ <sect1>
<title>Conclusion</title>
<sect2>
<title>Contributors</title>
@@ -250,7 +297,6 @@
</itemizedlist>
</para>
<para>
-
<note>
<para id='donate_developing'>
Was this EDG documentation helpful? Do you wish to express your appreciation
More information about the cvs
mailing list