[Helma-user] Problem with Helma Swarm

Franz Philipp Moser philipp.moser at chello.at
Mon Mar 17 11:56:06 CET 2008


Hi list,

I expirienced a very strange problem when using helma with helma-swarm.

First to my setup:

  * web1 => app-server, mod_jk Loadbalancer (all requests come in here), 
mysql-server
  * web2 => app-server, no apache
  * web3 => app-server, no apache

Helma:
{{{
# cat /var/log/helma/helma-out.log
Adding to classpath: /home/helma/lib/ext/mysql-connector-java-5.0.5-bin.jar
Adding to classpath: /home/helma/lib/ext/jgroups-all.jar
Adding to classpath: /home/helma/lib/ext/xercesImpl-2.8.0.jar
Adding to classpath: /home/helma/lib/ext/concurrent.jar
Adding to classpath: /home/helma/lib/ext/helmaswarm-1.0-b.jar
Starting Helma 1.6.0 (July 19 2007) on Java 1.6.0
}}}

here is my workers.properties:
{{{
worker.list=loadbalancer

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=helma-web1,helma-web2,helma-web3
worker.loadbalancer.sticky_session=True
worker.loadbalancer.sticky_session_force=False
worker.loadbalancer.method=Request

worker.helma-web1.port=8009
worker.helma-web1.host=localhost
worker.helma-web1.type=ajp13

worker.helma-web2.port=8009
worker.helma-web2.host=XX.XX.XX.XX
worker.helma-web2.type=ajp13

worker.helma-web3.port=8009
worker.helma-web3.host=XX.XX.XX.XX
worker.helma-web3.type=ajp13
}}}

the app.properties look like this:
{{{
cluster             = true
clusterWorkerID     = helma-webX
cacheImpl           = helma.swarm.SwarmCache
sessionManagerImpl  = helma.swarm.SwarmSessionManager
idGeneratorImpl     = helma.swarm.SwarmIDGenerator
swarm.name          = MySwarm
swarm.jgroups.stack = tcp
swarm.conf          = swarm.conf
}}}

everything works fine when not using flash ;) We have a neat little 
Flashuploader to upload pictures, videos, ...

Flash doesn't use any cookies (even the browser cookies are ignored) and 
because of that files are sent randomly to web1, web2, web3.

The problem:

I expirienced that the collections of the different servers, sometimes 
need up to 5 seconds until the collections have the same Items. So some 
"time critical things" don't work. For example in place editing after 
upload. Also session.data is not up to date.

Does anybody know why the servers needs so much time to communicate? Or 
can somebody tell me how this can be optimized, because I can not trust 
any collection nor session.data?

Don't use flash is not an option ;)

looking forward to your answers or suggestions,
cu Philipp


More information about the Helma-user mailing list