I was doing load balancing using two OFBiz servers in Session Replication 
mode with Apache HTTP Server. 

Servers run properly in load balanced mode, If I shut down one server in 
the middle of browser session, the other OFBiz server continues the 
browser session without any problem. User login information also persistes 
in the  session, so the second server does not ask for login again. But 
when I go for placing the order, and close the server in middle of the 
check 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, that 
promotional 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 channel 
java.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) 
        at 
org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(DeltaRequest.java:361)
 

        at 
org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:255) 

        at 
org.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

______________________________________________________________________

Reply via email to