Hi Anil,I can't answer your question (I don't know enough about session replication) except to say that the API for DeltaManager says that it is the optimal way to handle the replication.
Based on the error below my first guess as to the problem would be that you are running the instances of different jvm implementations/ versions and they are creating different serialVersionUIDs for the same class, hence the incompatibility error. Either that or the two classes are actually different in some way. You could work around the problem by hardcoding the serialVersionUIDs so that they are the same (or at least try it to test the theory). If that works then I'd suggest digging in deeper around the actual cause of the issue i.e. why the serialVersionUIDs different?
Regards Scott HotWax Media http://www.hotwaxmedia.com On 5/11/2009, at 12:08 AM, Anil Soni wrote:
I was doing load balancing using two OFBiz servers in Session Replicationmode with Apache HTTP Server.Servers run properly in load balanced mode, If I shut down one server inthe middle of browser session, the other OFBiz server continues thebrowser session without any problem. User login information also persistes in the session, so the second server does not ask for login again. Butwhen I go for placing the order, and close the server in middle of thecheck out process, rest all the details persist but cart comes out to be empty , and if there is some promotional item present in the cart, thatpromotional item persists inside the cart when second server continues browser session but all the other items get removed. And I was getting this exception :2009-10-29 12:06:49,971 (pool-2-thread-6) [ DeltaManager.java: 1329:ERROR]Manager [/ordermgr]: Unable to receive message through TCP channeljava.io.InvalidClassException: org.ofbiz.order.shoppingcart.ShoppingCart;local class incompatible: stream classdesc serialVersionUID = 326289553356146708, local class serialVersionUID = -202274068516513625 at java.io.ObjectStreamClass.initNonProxy(Unknown Source) at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) at java.io.ObjectInputStream.readClassDesc(Unknown Source) at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) at java.io.ObjectInputStream.readClassDesc(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at javolution.util.FastMap.readObject(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source) at java.io.ObjectStreamClass.invokeReadObject(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) atorg.apache.catalina.ha.session.DeltaRequest $AttributeInfo.readExternal(DeltaRequest.java:361)atorg .apache .catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:255)atorg .apache .catalina .ha.session.DeltaManager.deserializeDeltaRequest(DeltaManager.java: 619)at After some debugging I found that It was problem of DeltaManager, so I used BackupManager as manager-class and set the value of apps-distributable="true" and apps-cross-context="true".After these settings load balancing in replication mode is working properly. Now my question is that that why we are using DeltaManager as manager-class in ofbiz-containers.xml ? Thanks & Regards, Anil Soni [email protected] Tel : 91-22-6795 4324 Mobile : 9930302283 ______________________________________________________________________
smime.p7s
Description: S/MIME cryptographic signature
