在Ofbiz中应用memcached

花了几天时间,试了下整合Ofbiz和memcached。还遗留一点问题。

测试环境:Ubuntu Server10 (64位),JDK1.6,OFbiz10.04

1.安装memcached

   在Ubuntu下使用apt-get install memcached。

   自动安装完成。

   开启memcached 

sudo /usr/bin/memcached -d -m 20 -u root -l 172.28.0.150 -p 12000 -c 256 -P /tmp/memcached.pid

 2.下载memcached-session-manager

   下载相关jar包:

spymemcached-2.7.jar
memcached-session-manager-1.6.1.jar
memcached-session-manager-tc6-1.6.1.jar

 3.将下载的jar包放到tomcat的lib目录下。

    在OFbiz中,将jar放置到 framework\catalina\lib 目录下

4.修改OFbiz整合的tomcat启动文件

  在函数 createContext 中添加

.....
boolean memcached = Boolean.valueOf(UtilProperties.getPropertyValue("memcached.properties", "ofbiz.session.memcached", "false"));
        if(memcached && appInfo.isSessionMemcached()){
        	MemcachedBackupSessionManager manager = new MemcachedBackupSessionManager();
        	manager.setMemcachedNodes(UtilProperties.getPropertyValue("memcached.properties", "msm.memcachedNodes"));
        	manager.setSticky(Boolean.valueOf(UtilProperties.getPropertyValue("memcached.properties", "msm.sticky", "true")));
        	manager.setSessionBackupAsync(Boolean.valueOf(UtilProperties.getPropertyValue("memcached.properties", "msm.sessionBackupAsync", "true")));
        	manager.setLockingMode(UtilProperties.getPropertyValue("memcached.properties", "msm.lockingMode"));
        	manager.setRequestUriIgnorePattern(UtilProperties.getPropertyValue("memcached.properties", "msm.requestUriIgnorePattern"));
//        	manager.setTranscoderFactoryClass(UtilProperties.getPropertyValue("memcached.properties", "msm.transcoderFactoryClass"));
        	context.setManager(manager);
        }

.........................

appInfo.isSessionMemcached()

此函数是为了进一步配置OFbiz中的哪一个应用需要使用session同步,只将需要session同步的应用开启此应用

5.发布到2个实例上,测试session同步功能正常。

遇到问题:

manager.setTranscoderFactoryClass('de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory')

试图使用memcached-session-manager提供的序列化jar的时候,总是报错。

目前使用java默认的序列化功能

相关推荐