You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Badh, Tajvinder" <Ta...@emc.com> on 2011/04/26 13:47:04 UTC

JDBCStore Persistent Manager

Hi,

We have an architecture such that we have 2 instances of Apache Tomcat 6 sitting under the Amazon ELB. We are having difficulties in session stickyness over HTTPS such that that requests are not being directed to the same Tomcat instance, therefore creating a new session when the request is directed to a different instance. One possible solution was to use the Tomcat JDBCStore Persistent Mananger so that session information is held centrally in a database.
This did not seem to work as intended as the minimum time to write session details to the database was 10 seconds. This clearly did not solve the problem as the users interaction with the application would be less than 10 seconds.
I am wating to know if there is a way to speed up the write process?
I have used the FileStore and this also has the same problems. Can someone please advise in how to get this to work?

The configuration in context.xml I am using is :

    <Manager className="org.apache.catalina.session.PersistentManager" distributable="true"
                                                                checkInterval="1"
                                                                saveOnRestart="false"
                                                                maxActiveSessions="-1"
                                                                minIdleSwap="-1"
                                                                maxIdleSwap="0"
                                                                maxIdleBackup="0">
        <Store  className="org.apache.catalina.session.JDBCStore"
               connectionURL="<connection url>"
               driverName="com.mysql.jdbc.Driver"
               connectionName="<name>"
               connectionPassword="<password>"
               sessionAppCol="app_name"
               sessionDataCol="session_data"
               sessionIdCol="session_id"
               sessionLastAccessedCol="last_access"
               sessionMaxInactiveCol="max_inactive"
               sessionTable="sessions"
               sessionValidCol="valid_session"/>
                </Manager>

Thanks,
Taj

Re: JDBCStore Persistent Manager

Posted by Martin Grotzke <ma...@googlemail.com>.
Hi Taj,

say you have two tomcat servers that you can access at
https://ec2-46-51-148-192.eu-west-1.compute.amazonaws.com:8443
and
https://ec2-47-51-148-192.eu-west-1.compute.amazonaws.com:8443
and on both machines you have installed memcached, running on port 11211,

then you can configure msm in both tomcat2 with
memcachedNodes="n1:ec2-46-51-148-192.eu-west-1.compute.amazonaws.com:11211,n2:ec2-47-51-148-192.eu-west-1.compute.amazonaws.com:11211"

For further questions regarding msm I suggest you ask on the msm mailing
list (http://groups.google.com/group/memcached-session-manager/) as this
is more specific to msm than to tomcat.

Cheers,
Martin


On 04/27/2011 12:57 PM, Badh, Tajvinder wrote:
> Hi,
> 
> I am looking at the configuration settings needed in context.xml for Memcached and am unsure as to what to enter in the memcachedNodes setting. Access to one of the Tomcat instances is :
> https://ec2-46-51-148-192.eu-west-1.compute.amazonaws.com:8443
> 
> Can you please help in defining what would need to be entered into this section of the configuration?
> 
> Regards,
> Taj
> 
> -----Original Message-----
> From: Badh, Tajvinder [mailto:Tajvinder.Badh@emc.com] 
> Sent: 27 April 2011 11:19
> To: Reinwald Warapen; Tomcat Users List
> Subject: RE: JDBCStore Persistent Manager
> 
> Hi,
> 
> Thank you for the suggestions. I will take try it out and let you know how it goes.
> 
> Regards,
> Taj
> 
> -----Original Message-----
> From: Reinwald Warapen [mailto:reinwald.w@directi.com]
> Sent: 27 April 2011 10:18
> To: Tomcat Users List
> Cc: Badh, Tajvinder
> Subject: Re: JDBCStore Persistent Manager
> 
> I had the same requirement and tried everything possible with the Persistent Manager. I use the Memcached Session Manager (non-sticky
> approach) and it works brilliantly.
> 
> Take a look at this which may be of help to you : 
> http://www.reinwaldwarapen.com/2011/01/storing-and-sharing-sessions-among.html 
> 
> 
> 
> On 4/26/2011 6:54 PM, Martin Grotzke wrote:
>> An option for such a case is memcached-session-manager with stickyness
>> disabled: http://code.google.com/p/memcached-session-manager/
>>
>> A user reported on the msm mailing list that he was trying to achieve 
>> the same what you want, also with persistentmanager, but ran into the 
>> same problem as you do. This is the thread on the msm list:
>> http://groups.google.com/group/memcached-session-manager/browse_thread
>> /thread/fd26a2e407c080b4
>>
>> Cheers,
>> Martin
>>
>> Am 26.04.2011 13:48 schrieb "Badh, Tajvinder"<Ta...@emc.com>:
>> Hi,
>>
>> We have an architecture such that we have 2 instances of Apache Tomcat
>> 6 sitting under the Amazon ELB. We are having difficulties in session 
>> stickyness over HTTPS such that that requests are not being directed 
>> to the same Tomcat instance, therefore creating a new session when the 
>> request is directed to a different instance. One possible solution was 
>> to use the Tomcat JDBCStore Persistent Mananger so that session 
>> information is held centrally in a database.
>> This did not seem to work as intended as the minimum time to write 
>> session details to the database was 10 seconds. This clearly did not 
>> solve the problem as the users interaction with the application would 
>> be less than 10 seconds.
>> I am wating to know if there is a way to speed up the write process?
>> I have used the FileStore and this also has the same problems. Can 
>> someone please advise in how to get this to work?
>>
>> The configuration in context.xml I am using is :
>>
>>     <Manager className="org.apache.catalina.session.PersistentManager"
>> distributable="true"
>>
>>   checkInterval="1"
>>
>>   saveOnRestart="false"
>>
>>   maxActiveSessions="-1"
>>
>>   minIdleSwap="-1"
>>
>>   maxIdleSwap="0"
>>
>>   maxIdleBackup="0">
>>         <Store  className="org.apache.catalina.session.JDBCStore"
>>                connectionURL="<connection url>"
>>                driverName="com.mysql.jdbc.Driver"
>>                connectionName="<name>"
>>                connectionPassword="<password>"
>>                sessionAppCol="app_name"
>>                sessionDataCol="session_data"
>>                sessionIdCol="session_id"
>>                sessionLastAccessedCol="last_access"
>>                sessionMaxInactiveCol="max_inactive"
>>                sessionTable="sessions"
>>                sessionValidCol="valid_session"/>
>>                 </Manager>
>>
>> Thanks,
>> Taj
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 

-- 
Martin Grotzke
http://twitter.com/martin_grotzke


RE: JDBCStore Persistent Manager

Posted by "Badh, Tajvinder" <Ta...@emc.com>.
Hi,

I am looking at the configuration settings needed in context.xml for Memcached and am unsure as to what to enter in the memcachedNodes setting. Access to one of the Tomcat instances is :
https://ec2-46-51-148-192.eu-west-1.compute.amazonaws.com:8443

Can you please help in defining what would need to be entered into this section of the configuration?

Regards,
Taj

-----Original Message-----
From: Badh, Tajvinder [mailto:Tajvinder.Badh@emc.com] 
Sent: 27 April 2011 11:19
To: Reinwald Warapen; Tomcat Users List
Subject: RE: JDBCStore Persistent Manager

Hi,

Thank you for the suggestions. I will take try it out and let you know how it goes.

Regards,
Taj

-----Original Message-----
From: Reinwald Warapen [mailto:reinwald.w@directi.com]
Sent: 27 April 2011 10:18
To: Tomcat Users List
Cc: Badh, Tajvinder
Subject: Re: JDBCStore Persistent Manager

I had the same requirement and tried everything possible with the Persistent Manager. I use the Memcached Session Manager (non-sticky
approach) and it works brilliantly.

Take a look at this which may be of help to you : 
http://www.reinwaldwarapen.com/2011/01/storing-and-sharing-sessions-among.html 



On 4/26/2011 6:54 PM, Martin Grotzke wrote:
> An option for such a case is memcached-session-manager with stickyness
> disabled: http://code.google.com/p/memcached-session-manager/
>
> A user reported on the msm mailing list that he was trying to achieve 
> the same what you want, also with persistentmanager, but ran into the 
> same problem as you do. This is the thread on the msm list:
> http://groups.google.com/group/memcached-session-manager/browse_thread
> /thread/fd26a2e407c080b4
>
> Cheers,
> Martin
>
> Am 26.04.2011 13:48 schrieb "Badh, Tajvinder"<Ta...@emc.com>:
> Hi,
>
> We have an architecture such that we have 2 instances of Apache Tomcat
> 6 sitting under the Amazon ELB. We are having difficulties in session 
> stickyness over HTTPS such that that requests are not being directed 
> to the same Tomcat instance, therefore creating a new session when the 
> request is directed to a different instance. One possible solution was 
> to use the Tomcat JDBCStore Persistent Mananger so that session 
> information is held centrally in a database.
> This did not seem to work as intended as the minimum time to write 
> session details to the database was 10 seconds. This clearly did not 
> solve the problem as the users interaction with the application would 
> be less than 10 seconds.
> I am wating to know if there is a way to speed up the write process?
> I have used the FileStore and this also has the same problems. Can 
> someone please advise in how to get this to work?
>
> The configuration in context.xml I am using is :
>
>     <Manager className="org.apache.catalina.session.PersistentManager"
> distributable="true"
>
>   checkInterval="1"
>
>   saveOnRestart="false"
>
>   maxActiveSessions="-1"
>
>   minIdleSwap="-1"
>
>   maxIdleSwap="0"
>
>   maxIdleBackup="0">
>         <Store  className="org.apache.catalina.session.JDBCStore"
>                connectionURL="<connection url>"
>                driverName="com.mysql.jdbc.Driver"
>                connectionName="<name>"
>                connectionPassword="<password>"
>                sessionAppCol="app_name"
>                sessionDataCol="session_data"
>                sessionIdCol="session_id"
>                sessionLastAccessedCol="last_access"
>                sessionMaxInactiveCol="max_inactive"
>                sessionTable="sessions"
>                sessionValidCol="valid_session"/>
>                 </Manager>
>
> Thanks,
> Taj
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: JDBCStore Persistent Manager

Posted by "Badh, Tajvinder" <Ta...@emc.com>.
Hi,

Thank you for the suggestions. I will take try it out and let you know how it goes.

Regards,
Taj

-----Original Message-----
From: Reinwald Warapen [mailto:reinwald.w@directi.com] 
Sent: 27 April 2011 10:18
To: Tomcat Users List
Cc: Badh, Tajvinder
Subject: Re: JDBCStore Persistent Manager

I had the same requirement and tried everything possible with the Persistent Manager. I use the Memcached Session Manager (non-sticky
approach) and it works brilliantly.

Take a look at this which may be of help to you : 
http://www.reinwaldwarapen.com/2011/01/storing-and-sharing-sessions-among.html 



On 4/26/2011 6:54 PM, Martin Grotzke wrote:
> An option for such a case is memcached-session-manager with stickyness
> disabled: http://code.google.com/p/memcached-session-manager/
>
> A user reported on the msm mailing list that he was trying to achieve 
> the same what you want, also with persistentmanager, but ran into the 
> same problem as you do. This is the thread on the msm list:
> http://groups.google.com/group/memcached-session-manager/browse_thread
> /thread/fd26a2e407c080b4
>
> Cheers,
> Martin
>
> Am 26.04.2011 13:48 schrieb "Badh, Tajvinder"<Ta...@emc.com>:
> Hi,
>
> We have an architecture such that we have 2 instances of Apache Tomcat 
> 6 sitting under the Amazon ELB. We are having difficulties in session 
> stickyness over HTTPS such that that requests are not being directed 
> to the same Tomcat instance, therefore creating a new session when the 
> request is directed to a different instance. One possible solution was 
> to use the Tomcat JDBCStore Persistent Mananger so that session 
> information is held centrally in a database.
> This did not seem to work as intended as the minimum time to write 
> session details to the database was 10 seconds. This clearly did not 
> solve the problem as the users interaction with the application would 
> be less than 10 seconds.
> I am wating to know if there is a way to speed up the write process?
> I have used the FileStore and this also has the same problems. Can 
> someone please advise in how to get this to work?
>
> The configuration in context.xml I am using is :
>
>     <Manager className="org.apache.catalina.session.PersistentManager"
> distributable="true"
>
>   checkInterval="1"
>
>   saveOnRestart="false"
>
>   maxActiveSessions="-1"
>
>   minIdleSwap="-1"
>
>   maxIdleSwap="0"
>
>   maxIdleBackup="0">
>         <Store  className="org.apache.catalina.session.JDBCStore"
>                connectionURL="<connection url>"
>                driverName="com.mysql.jdbc.Driver"
>                connectionName="<name>"
>                connectionPassword="<password>"
>                sessionAppCol="app_name"
>                sessionDataCol="session_data"
>                sessionIdCol="session_id"
>                sessionLastAccessedCol="last_access"
>                sessionMaxInactiveCol="max_inactive"
>                sessionTable="sessions"
>                sessionValidCol="valid_session"/>
>                 </Manager>
>
> Thanks,
> Taj
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: JDBCStore Persistent Manager

Posted by Reinwald Warapen <re...@directi.com>.
I had the same requirement and tried everything possible with the 
Persistent Manager. I use the Memcached Session Manager (non-sticky 
approach) and it works brilliantly.

Take a look at this which may be of help to you : 
http://www.reinwaldwarapen.com/2011/01/storing-and-sharing-sessions-among.html 



On 4/26/2011 6:54 PM, Martin Grotzke wrote:
> An option for such a case is memcached-session-manager with stickyness
> disabled: http://code.google.com/p/memcached-session-manager/
>
> A user reported on the msm mailing list that he was trying to achieve the
> same what you want, also with persistentmanager, but ran into the same
> problem as you do. This is the thread on the msm list:
> http://groups.google.com/group/memcached-session-manager/browse_thread/thread/fd26a2e407c080b4
>
> Cheers,
> Martin
>
> Am 26.04.2011 13:48 schrieb "Badh, Tajvinder"<Ta...@emc.com>:
> Hi,
>
> We have an architecture such that we have 2 instances of Apache Tomcat 6
> sitting under the Amazon ELB. We are having difficulties in session
> stickyness over HTTPS such that that requests are not being directed to the
> same Tomcat instance, therefore creating a new session when the request is
> directed to a different instance. One possible solution was to use the
> Tomcat JDBCStore Persistent Mananger so that session information is held
> centrally in a database.
> This did not seem to work as intended as the minimum time to write session
> details to the database was 10 seconds. This clearly did not solve the
> problem as the users interaction with the application would be less than 10
> seconds.
> I am wating to know if there is a way to speed up the write process?
> I have used the FileStore and this also has the same problems. Can someone
> please advise in how to get this to work?
>
> The configuration in context.xml I am using is :
>
>     <Manager className="org.apache.catalina.session.PersistentManager"
> distributable="true"
>
>   checkInterval="1"
>
>   saveOnRestart="false"
>
>   maxActiveSessions="-1"
>
>   minIdleSwap="-1"
>
>   maxIdleSwap="0"
>
>   maxIdleBackup="0">
>         <Store  className="org.apache.catalina.session.JDBCStore"
>                connectionURL="<connection url>"
>                driverName="com.mysql.jdbc.Driver"
>                connectionName="<name>"
>                connectionPassword="<password>"
>                sessionAppCol="app_name"
>                sessionDataCol="session_data"
>                sessionIdCol="session_id"
>                sessionLastAccessedCol="last_access"
>                sessionMaxInactiveCol="max_inactive"
>                sessionTable="sessions"
>                sessionValidCol="valid_session"/>
>                 </Manager>
>
> Thanks,
> Taj
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: JDBCStore Persistent Manager

Posted by Martin Grotzke <ma...@googlemail.com>.
An option for such a case is memcached-session-manager with stickyness
disabled: http://code.google.com/p/memcached-session-manager/

A user reported on the msm mailing list that he was trying to achieve the
same what you want, also with persistentmanager, but ran into the same
problem as you do. This is the thread on the msm list:
http://groups.google.com/group/memcached-session-manager/browse_thread/thread/fd26a2e407c080b4

Cheers,
Martin

Am 26.04.2011 13:48 schrieb "Badh, Tajvinder" <Ta...@emc.com>:
Hi,

We have an architecture such that we have 2 instances of Apache Tomcat 6
sitting under the Amazon ELB. We are having difficulties in session
stickyness over HTTPS such that that requests are not being directed to the
same Tomcat instance, therefore creating a new session when the request is
directed to a different instance. One possible solution was to use the
Tomcat JDBCStore Persistent Mananger so that session information is held
centrally in a database.
This did not seem to work as intended as the minimum time to write session
details to the database was 10 seconds. This clearly did not solve the
problem as the users interaction with the application would be less than 10
seconds.
I am wating to know if there is a way to speed up the write process?
I have used the FileStore and this also has the same problems. Can someone
please advise in how to get this to work?

The configuration in context.xml I am using is :

   <Manager className="org.apache.catalina.session.PersistentManager"
distributable="true"

 checkInterval="1"

 saveOnRestart="false"

 maxActiveSessions="-1"

 minIdleSwap="-1"

 maxIdleSwap="0"

 maxIdleBackup="0">
       <Store  className="org.apache.catalina.session.JDBCStore"
              connectionURL="<connection url>"
              driverName="com.mysql.jdbc.Driver"
              connectionName="<name>"
              connectionPassword="<password>"
              sessionAppCol="app_name"
              sessionDataCol="session_data"
              sessionIdCol="session_id"
              sessionLastAccessedCol="last_access"
              sessionMaxInactiveCol="max_inactive"
              sessionTable="sessions"
              sessionValidCol="valid_session"/>
               </Manager>

Thanks,
Taj