Hi, I don't have much to comment besides what you already pointed out: this approach would suffer a performance penalty on each and every request, and (on a decently configured network) would end up slower than the SimpleTcpCluster multicast solution. Why can't you use the latter?
Before you reply: now that you've solved your ClassCastException, this becomes more of a user issue, so please take the discussion to users@tomcat.apache.org rather than [EMAIL PROTECTED] Thanks, Yoav On 1/16/06, Gary Blomquist <[EMAIL PROTECTED]> wrote: > > The ClassCastException fixed. I had the valve configured incorreclty in > the server.xml. > > Would still appreciate feedback on the approach discussed below. > > Thanks, > > Gary > > -----Original Message----- > From: Gary Blomquist [mailto:[EMAIL PROTECTED] > Sent: Monday, January 16, 2006 2:12 PM > To: Tomcat Developers List > Subject: Extending PersistentValve ? > > I would like to be able to use round robin loading balancing with a > JDBCStore. However, it appears that using the PersistentManager with > JDBC store could cause the sessions to be stale when a session migrates > between workers due to the asyncronous behavior of the > PersistentManager. (I realize their is a SimpleTcpCluster available as > a clusterering solution but I can not use because it relies on > multicast.) > > Viewing the source it appears that the PersistentValve with the > PersistentManager and JDBCStore could be a solution. It appears that > it would load a session from the store at the begging of each request > and save it back to the store at the end of the request. I would like > to modify the behavior to only load/save when the session is dirty based > on the last_access timestamps. > > Any comments on the solution? ( I realize their is some performance > penalty due to object serialization and writing blobs to the database; > however, in our case I think this would not be prohibitive esp. if there > is a small amount of data in the session.) > > Also, when I attempt to run Tomcat with the PersistentValve I get the > following exception: > > SEVERE: An exception or error occurred in the container during the > request processing > java.lang.ClassCastException: org.apache.catalina.core.StandardEngine > at > org.apache.catalina.valves.PersistentValve.invoke(PersistentValve.java:9 > 9) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1 > 48) > at > org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199) > at > org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282) > at > org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744) > at > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java: > 674) > at > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket. > java:866) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > .java:684) > at java.lang.Thread.run(Thread.java:595) > > Note: (I have not yet made mods to the PersistentValue) > > > Thanks for your assistance, > > Gary Blomquist > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Yoav Shapira System Design and Management Fellow MIT Sloan School of Management Cambridge, MA, USA [EMAIL PROTECTED] / www.yoavshapira.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]