lauantai 21. huhtikuuta 2012

Jetty 8 and memcached sessions

Today I changed Uutispuro into using memcached as a session store.


Basically I followed the instructions from https://github.com/yyuu/jetty-nosql-memcached with minor tweaks.

etc/jetty.xml



  <Set name="sessionIdManager">
    <New id="memcachedSessionIdManager" class="org.eclipse.jetty.nosql.memcached.MemcachedSessionIdManager">
      <Arg><Ref id="Server" /></Arg>
      <Set name="serverString">localhost:11211</Set>
      <Set name="keyPrefix">session:</Set>
    </New>
  </Set>
  <Call name="setAttribute">
    <Arg>memcachedSessionIdManager</Arg>
    <Arg><Ref id="memcachedSessionIdManager" /></Arg>
  </Call>




contexts/uutiset.xml




  <Ref name="Server" id="Server">
    <Call id="sessionIdManager" name="getAttribute">
      <Arg>memcachedSessionIdManager</Arg>
    </Call>
  </Ref>
  <Set name="sessionHandler">
    <New class="org.eclipse.jetty.server.session.SessionHandler">
      <Arg>
        <New id="memcachedSessionManager" class="org.eclipse.jetty.nosql.memcached.MemcachedSessionManager">
          <Set name="sessionIdManager">
            <Ref id="sessionIdManager" />
          </Set>
        </New>
      </Arg>
    </New>
  </Set>

At the moment I have two jetty's running and I can stop each one of them at any time and user stays logged in as nothing has happened.