[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