Re: Tomcat session management with Redisson

2019-02-24 Thread Herb Burnswell
On Mon, Feb 18, 2019 at 11:13 AM Harpreet Sandhu  wrote:

> If you want to go with redis in HA environment. You should opt redis
> sentinel over master-slave architecture.
>

Thanks Harpreet.  I did switch to using the sentinel configuration as I
have:

sentinel 1  -- sentinel 2  sentinel 3

redis master --- redis slave

However, the application says it cannot connect to the sentinel servers:

INFO   | jvm 1| main| 2019/02/18 15:23:11.722 |
[localhost-startStop-1] WARN
org.redisson.connection.SentinelConnectionManager - Can't connect to
sentinel server. Unable to connect to: node1:26379
INFO   | jvm 1| main| 2019/02/18 15:23:11.722 |
[localhost-startStop-1] WARN
org.redisson.connection.SentinelConnectionManager - Can't connect to
sentinel server. Unable to connect to: node2:26379
INFO   | jvm 1| main| 2019/02/18 15:23:11.722 |
[localhost-startStop-1] WARN
org.redisson.connection.SentinelConnectionManager - Can't connect to
sentinel server. Unable to connect to: node3:26379

I posted a question on the redis-db google group as I thought it may not be
appropriate for this Tomcat User Group:

https://groups.google.com/forum/#!topic/redis-db/-mTTnahSgZo

If you have experience with the Tomcat --> Sentinel connectivity, I'd be
grateful for any guidance..

thanks,

HB



> On Tue 19 Feb, 2019, 12:29 AM Herb Burnswell  wrote:
>
> > On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
> > ch...@christopherschultz.net> wrote:
> >
> > > -BEGIN PGP SIGNED MESSAGE-
> > > Hash: SHA256
> > >
> > > Herb,
> > >
> > > On 2/14/19 12:41, Herb Burnswell wrote:
> > > > Tomcat 8.5.23 RHEL   7.5
> > > >
> > > > We are looking to set up session management via Redisson to offload
> > > > the CPU consumption of using Tomcat's built in clustering session
> > > > management.  We have CPU licensing limits and need to conserve as
> > > > much CPU as possible.
> > >
> > > Dumb question: aren't you just going to move the CPU cycles to another
> > > system?
> > >
> >
> > Thanks for the reply.  Short answer, yes.  But that is the idea.  We can
> > only use 2 CPU's per application node (3 nodes) with our licensing
> > structure so we do not want to take cycles away from the application to
> > manage sessions.
> >
> >
> > > Another dumb question: do you actually need clustering?
> > >
> >
> > If I'm using the term correctly, yes.  The idea would be for HA
> > functionality; If users were connected to node 3 and the node failed for
> > some reason, their session would be picked up by node 1 or 2
> > uninterrupted.  Sorry if I confused the intent.
> >
> >
> > >
> > > > I have never set up a configuration this way, however I have Redis
> > > > set up and running as 1 Master, 1 Slave.  I seemingly just need to
> > > > point our application to it.  I have read this doc on how to:
> > > >
> > > > https://github.com/redisson/redisson/tree/master/redisson-tomcat
> > > >
> > > > It seems pretty straight forward except for the redisson.conf
> > > > configuration:
> > > >
> > > > Add RedissonSessionManager into tomcat/conf/context.xml
> > > >
> > > >  > > > configPath="${catalina.base}/redisson.conf" readMode="REDIS"
> > > > updateMode="DEFAULT"/>
> > >
> > > I would do this in the application's context.xml file instead of the
> > > global/default one. That means modifying the application's
> > > META-INF/context.xml file, or, if you deploy via files from outside
> > > your WAR/dir application, then conf/[engine]/[hostname]/[appname].xml.
> > >
> >
> > Yes, this is requiring the editing a application specific xml file.
> >
> >
> > >
> > > > I am more familiar with YAML so plan on configuring the
> > > > redisson.conf as such.  I have read the referenced configuration
> > > > wiki page:
> > > >
> > > > https://github.com/redisson/redisson/wiki/2.-Configuration
> > > >
> > > > However, it has a great deal of options and I'm not sure what is
> > > > and is not needed.
> > > >
> > > > I am reaching out here on the Tomcat user group to see if anyone
> > > > else is using Redisson for session management and if maybe I can
> > > > get some guidance on a basic redisson.conf configuration.  I'd also
> > > > be interested in comments on if there are better options or things
> > > > to watch out for.
> > >
> > > I don't have any experience with either Redis or Redisson, but what is
> > > wrong with the default/sample configuration you have provided above?
> > >
> >
> > I have through much trial and error been using this config:
> >
> > {
> >"masterSlaveServersConfig":{
> >   "idleConnectionTimeout":1,
> >   "connectTimeout":1,
> >   "timeout":3000,
> >   "retryAttempts":3,
> >   "retryInterval":1500,
> >   "failedSlaveReconnectionInterval":3000,
> >   "failedSlaveCheckInterval":6,
> >   "password":"",
> >   "subscriptionsPerConnection":5,
> >   "clientName":true,
> >   "subscriptionConnectionMinimumIdleSize":1,
> >   

Re: Tomcat session management with Redisson

2019-02-24 Thread Herb Burnswell
On Mon, Feb 18, 2019 at 12:27 PM John Dale  wrote:

> Regarding clustering and state recovery, I opted some time ago to
> store session information in the database - I prefer full control over
> session state for security/obscurity reasons.
>
> Load balancing is straightforward this way.
>
> I'm not sure I would ever need more than 2 nodes for my purposes,
> though, since Java can address such a huge memory space.  It's an
> amazing computing environment now compared to what we had 20 years
> ago.


>

Thanks John, this is my motivation.  I really want the insight and load
balancing capability.

Do you use Redis for the DB or other?

HB





>
> On 2/18/19, Christopher Schultz  wrote:
> > -BEGIN PGP SIGNED MESSAGE-
> > Hash: SHA256
> >
> > Herb,
> >
> > On 2/18/19 13:59, Herb Burnswell wrote:
> >> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
> >> ch...@christopherschultz.net> wrote:
> >>
> >> Herb,
> >>
> >> On 2/14/19 12:41, Herb Burnswell wrote:
> > Tomcat 8.5.23 RHEL   7.5
> >
> > We are looking to set up session management via Redisson to
> > offload the CPU consumption of using Tomcat's built in
> > clustering session management.  We have CPU licensing limits
> > and need to conserve as much CPU as possible.
> >>
> >> Dumb question: aren't you just going to move the CPU cycles to
> >> another system?
> >>
> >>
> >>> Thanks for the reply.  Short answer, yes.  But that is the idea.
> >>> We can only use 2 CPU's per application node (3 nodes) with our
> >>> licensing structure so we do not want to take cycles away from
> >>> the application to manage sessions.
> >
> > Okay, so if you move the session-management to another machine, you
> > don't have to pay app-license fees for the session-management server?
> > Fair enough.
> >
> > Just remember that you still need code "managing" sessions from your
> > Tomcat note to your Redisson server. I can't imagine that the
> > Tomcat->Resisson code would be any less complicated than the Tomcat ->
> > Tomcat code. You might want to validate that assumption before
> > committing any resources toward solving a problem by adding complexity
> > to your deployments.
> >
> >> Another dumb question: do you actually need clustering?
> >>
> >>
> >>> If I'm using the term correctly, yes.  The idea would be for HA
> >>> functionality; If users were connected to node 3 and the node
> >>> failed for some reason, their session would be picked up by node
> >>> 1 or 2 uninterrupted.  Sorry if I confused the intent.
> >
> > That's exactly what you will get.
> >
> > If you do NOT use clustering, a failed node will require the users who
> > were on the failed node to re-login to a surviving node. Only you can
> > determine whether that is an acceptable consequence of a failed node
> > for your users and application. I, as well as many others, have
> > decided that fail-over is such a rare event and logins such a
> > non-issue that introducing the complexity of clustering is not justified
> > .
> >
> > I have never set up a configuration this way, however I have
> > Redis set up and running as 1 Master, 1 Slave.  I seemingly
> > just need to point our application to it.  I have read this
> > doc on how to:
> >
> > https://github.com/redisson/redisson/tree/master/redisson-tomcat
> >
> >
> >
> > It seems pretty straight forward except for the redisson.conf
> > configuration:
> >
> > Add RedissonSessionManager into tomcat/conf/context.xml
> >
> >  > className="org.redisson.tomcat.RedissonSessionManager"
> > configPath="${catalina.base}/redisson.conf" readMode="REDIS"
> > updateMode="DEFAULT"/>
> >>
> >> I would do this in the application's context.xml file instead of
> >> the global/default one. That means modifying the application's
> >> META-INF/context.xml file, or, if you deploy via files from
> >> outside your WAR/dir application, then
> >> conf/[engine]/[hostname]/[appname].xml.
> >>
> >>
> >>> Yes, this is requiring the editing a application specific xml
> >>> file.
> >
> > Good.
> >
> > I am more familiar with YAML so plan on configuring the
> > redisson.conf as such.  I have read the referenced
> > configuration wiki page:
> >
> > https://github.com/redisson/redisson/wiki/2.-Configuration
> >
> > However, it has a great deal of options and I'm not sure what
> > is and is not needed.
> >
> > I am reaching out here on the Tomcat user group to see if
> > anyone else is using Redisson for session management and if
> > maybe I can get some guidance on a basic redisson.conf
> > configuration.  I'd also be interested in comments on if
> > there are better options or things to watch out for.
> >>
> >> I don't have any experience with either Redis or Redisson, but what
> >> is wrong with the default/sample configuration you have provided
> >> above?
> >>
> >>
> >>> I have through much trial and error been using this 

Re: Tomcat session management with Redisson

2019-02-18 Thread John Dale
This might be what you're looking for:

Unsubscription: Send a blank email to users-unsubscr...@tomcat.apache.org

http://tomcat.apache.org/lists.html


On 2/18/19, Malith Pamuditha Fernando  wrote:
> How to unsubscribe this?
>
> Thank You
>
> Regards
> Malith Pamuditha Fernando
> Director
> RevPort (Pvt.) Ltd.
> malith.ferna...@revport.net  | +94 713 76 92 17
>
>
>
> 
> From: John Dale 
> Sent: Tuesday, February 19, 2019 1:57:10 AM
> To: Tomcat Users List
> Subject: Re: Tomcat session management with Redisson
>
> Regarding clustering and state recovery, I opted some time ago to
> store session information in the database - I prefer full control over
> session state for security/obscurity reasons.
>
> Load balancing is straightforward this way.
>
> I'm not sure I would ever need more than 2 nodes for my purposes,
> though, since Java can address such a huge memory space.  It's an
> amazing computing environment now compared to what we had 20 years
> ago.
>
>
>
> On 2/18/19, Christopher Schultz  wrote:
>> -BEGIN PGP SIGNED MESSAGE-
>> Hash: SHA256
>>
>> Herb,
>>
>> On 2/18/19 13:59, Herb Burnswell wrote:
>>> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
>>> ch...@christopherschultz.net> wrote:
>>>
>>> Herb,
>>>
>>> On 2/14/19 12:41, Herb Burnswell wrote:
>>>>>> Tomcat 8.5.23 RHEL   7.5
>>>>>>
>>>>>> We are looking to set up session management via Redisson to
>>>>>> offload the CPU consumption of using Tomcat's built in
>>>>>> clustering session management.  We have CPU licensing limits
>>>>>> and need to conserve as much CPU as possible.
>>>
>>> Dumb question: aren't you just going to move the CPU cycles to
>>> another system?
>>>
>>>
>>>> Thanks for the reply.  Short answer, yes.  But that is the idea.
>>>> We can only use 2 CPU's per application node (3 nodes) with our
>>>> licensing structure so we do not want to take cycles away from
>>>> the application to manage sessions.
>>
>> Okay, so if you move the session-management to another machine, you
>> don't have to pay app-license fees for the session-management server?
>> Fair enough.
>>
>> Just remember that you still need code "managing" sessions from your
>> Tomcat note to your Redisson server. I can't imagine that the
>> Tomcat->Resisson code would be any less complicated than the Tomcat ->
>> Tomcat code. You might want to validate that assumption before
>> committing any resources toward solving a problem by adding complexity
>> to your deployments.
>>
>>> Another dumb question: do you actually need clustering?
>>>
>>>
>>>> If I'm using the term correctly, yes.  The idea would be for HA
>>>> functionality; If users were connected to node 3 and the node
>>>> failed for some reason, their session would be picked up by node
>>>> 1 or 2 uninterrupted.  Sorry if I confused the intent.
>>
>> That's exactly what you will get.
>>
>> If you do NOT use clustering, a failed node will require the users who
>> were on the failed node to re-login to a surviving node. Only you can
>> determine whether that is an acceptable consequence of a failed node
>> for your users and application. I, as well as many others, have
>> decided that fail-over is such a rare event and logins such a
>> non-issue that introducing the complexity of clustering is not justified
>> .
>>
>>>>>> I have never set up a configuration this way, however I have
>>>>>> Redis set up and running as 1 Master, 1 Slave.  I seemingly
>>>>>> just need to point our application to it.  I have read this
>>>>>> doc on how to:
>>>>>>
>>>>>> https://github.com/redisson/redisson/tree/master/redisson-tomcat
>>>>>>
>>>>>>
>>>>>>
>> It seems pretty straight forward except for the redisson.conf
>>>>>> configuration:
>>>>>>
>>>>>> Add RedissonSessionManager into tomcat/conf/context.xml
>>>>>>
>>>>>> >>>>> className="org.redisson.tomcat.RedissonSessionManager"
>>>>>> configPath="${catalina.base}/redisson.conf" readMode="REDIS"
>>>>>> updateMode="DEFAULT"/>
>>>
>>> I would do this in the applic

Re: Tomcat session management with Redisson

2019-02-18 Thread Malith Pamuditha Fernando
How to unsubscribe this?

Thank You

Regards
Malith Pamuditha Fernando
Director
RevPort (Pvt.) Ltd.
malith.ferna...@revport.net  | +94 713 76 92 17




From: John Dale 
Sent: Tuesday, February 19, 2019 1:57:10 AM
To: Tomcat Users List
Subject: Re: Tomcat session management with Redisson

Regarding clustering and state recovery, I opted some time ago to
store session information in the database - I prefer full control over
session state for security/obscurity reasons.

Load balancing is straightforward this way.

I'm not sure I would ever need more than 2 nodes for my purposes,
though, since Java can address such a huge memory space.  It's an
amazing computing environment now compared to what we had 20 years
ago.



On 2/18/19, Christopher Schultz  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
> Herb,
>
> On 2/18/19 13:59, Herb Burnswell wrote:
>> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
>> ch...@christopherschultz.net> wrote:
>>
>> Herb,
>>
>> On 2/14/19 12:41, Herb Burnswell wrote:
>>>>> Tomcat 8.5.23 RHEL   7.5
>>>>>
>>>>> We are looking to set up session management via Redisson to
>>>>> offload the CPU consumption of using Tomcat's built in
>>>>> clustering session management.  We have CPU licensing limits
>>>>> and need to conserve as much CPU as possible.
>>
>> Dumb question: aren't you just going to move the CPU cycles to
>> another system?
>>
>>
>>> Thanks for the reply.  Short answer, yes.  But that is the idea.
>>> We can only use 2 CPU's per application node (3 nodes) with our
>>> licensing structure so we do not want to take cycles away from
>>> the application to manage sessions.
>
> Okay, so if you move the session-management to another machine, you
> don't have to pay app-license fees for the session-management server?
> Fair enough.
>
> Just remember that you still need code "managing" sessions from your
> Tomcat note to your Redisson server. I can't imagine that the
> Tomcat->Resisson code would be any less complicated than the Tomcat ->
> Tomcat code. You might want to validate that assumption before
> committing any resources toward solving a problem by adding complexity
> to your deployments.
>
>> Another dumb question: do you actually need clustering?
>>
>>
>>> If I'm using the term correctly, yes.  The idea would be for HA
>>> functionality; If users were connected to node 3 and the node
>>> failed for some reason, their session would be picked up by node
>>> 1 or 2 uninterrupted.  Sorry if I confused the intent.
>
> That's exactly what you will get.
>
> If you do NOT use clustering, a failed node will require the users who
> were on the failed node to re-login to a surviving node. Only you can
> determine whether that is an acceptable consequence of a failed node
> for your users and application. I, as well as many others, have
> decided that fail-over is such a rare event and logins such a
> non-issue that introducing the complexity of clustering is not justified
> .
>
>>>>> I have never set up a configuration this way, however I have
>>>>> Redis set up and running as 1 Master, 1 Slave.  I seemingly
>>>>> just need to point our application to it.  I have read this
>>>>> doc on how to:
>>>>>
>>>>> https://github.com/redisson/redisson/tree/master/redisson-tomcat
>>>>>
>>>>>
>>>>>
> It seems pretty straight forward except for the redisson.conf
>>>>> configuration:
>>>>>
>>>>> Add RedissonSessionManager into tomcat/conf/context.xml
>>>>>
>>>>> >>>> className="org.redisson.tomcat.RedissonSessionManager"
>>>>> configPath="${catalina.base}/redisson.conf" readMode="REDIS"
>>>>> updateMode="DEFAULT"/>
>>
>> I would do this in the application's context.xml file instead of
>> the global/default one. That means modifying the application's
>> META-INF/context.xml file, or, if you deploy via files from
>> outside your WAR/dir application, then
>> conf/[engine]/[hostname]/[appname].xml.
>>
>>
>>> Yes, this is requiring the editing a application specific xml
>>> file.
>
> Good.
>
>>>>> I am more familiar with YAML so plan on configuring the
>>>>> redisson.conf as such.  I have read the referenced
>>>>> configuration wiki page:
>>>>>
>>>>> https://gi

Re: Tomcat session management with Redisson

2019-02-18 Thread John Dale
Regarding clustering and state recovery, I opted some time ago to
store session information in the database - I prefer full control over
session state for security/obscurity reasons.

Load balancing is straightforward this way.

I'm not sure I would ever need more than 2 nodes for my purposes,
though, since Java can address such a huge memory space.  It's an
amazing computing environment now compared to what we had 20 years
ago.



On 2/18/19, Christopher Schultz  wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
> Herb,
>
> On 2/18/19 13:59, Herb Burnswell wrote:
>> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
>> ch...@christopherschultz.net> wrote:
>>
>> Herb,
>>
>> On 2/14/19 12:41, Herb Burnswell wrote:
> Tomcat 8.5.23 RHEL   7.5
>
> We are looking to set up session management via Redisson to
> offload the CPU consumption of using Tomcat's built in
> clustering session management.  We have CPU licensing limits
> and need to conserve as much CPU as possible.
>>
>> Dumb question: aren't you just going to move the CPU cycles to
>> another system?
>>
>>
>>> Thanks for the reply.  Short answer, yes.  But that is the idea.
>>> We can only use 2 CPU's per application node (3 nodes) with our
>>> licensing structure so we do not want to take cycles away from
>>> the application to manage sessions.
>
> Okay, so if you move the session-management to another machine, you
> don't have to pay app-license fees for the session-management server?
> Fair enough.
>
> Just remember that you still need code "managing" sessions from your
> Tomcat note to your Redisson server. I can't imagine that the
> Tomcat->Resisson code would be any less complicated than the Tomcat ->
> Tomcat code. You might want to validate that assumption before
> committing any resources toward solving a problem by adding complexity
> to your deployments.
>
>> Another dumb question: do you actually need clustering?
>>
>>
>>> If I'm using the term correctly, yes.  The idea would be for HA
>>> functionality; If users were connected to node 3 and the node
>>> failed for some reason, their session would be picked up by node
>>> 1 or 2 uninterrupted.  Sorry if I confused the intent.
>
> That's exactly what you will get.
>
> If you do NOT use clustering, a failed node will require the users who
> were on the failed node to re-login to a surviving node. Only you can
> determine whether that is an acceptable consequence of a failed node
> for your users and application. I, as well as many others, have
> decided that fail-over is such a rare event and logins such a
> non-issue that introducing the complexity of clustering is not justified
> .
>
> I have never set up a configuration this way, however I have
> Redis set up and running as 1 Master, 1 Slave.  I seemingly
> just need to point our application to it.  I have read this
> doc on how to:
>
> https://github.com/redisson/redisson/tree/master/redisson-tomcat
>
>
>
> It seems pretty straight forward except for the redisson.conf
> configuration:
>
> Add RedissonSessionManager into tomcat/conf/context.xml
>
>  className="org.redisson.tomcat.RedissonSessionManager"
> configPath="${catalina.base}/redisson.conf" readMode="REDIS"
> updateMode="DEFAULT"/>
>>
>> I would do this in the application's context.xml file instead of
>> the global/default one. That means modifying the application's
>> META-INF/context.xml file, or, if you deploy via files from
>> outside your WAR/dir application, then
>> conf/[engine]/[hostname]/[appname].xml.
>>
>>
>>> Yes, this is requiring the editing a application specific xml
>>> file.
>
> Good.
>
> I am more familiar with YAML so plan on configuring the
> redisson.conf as such.  I have read the referenced
> configuration wiki page:
>
> https://github.com/redisson/redisson/wiki/2.-Configuration
>
> However, it has a great deal of options and I'm not sure what
> is and is not needed.
>
> I am reaching out here on the Tomcat user group to see if
> anyone else is using Redisson for session management and if
> maybe I can get some guidance on a basic redisson.conf
> configuration.  I'd also be interested in comments on if
> there are better options or things to watch out for.
>>
>> I don't have any experience with either Redis or Redisson, but what
>> is wrong with the default/sample configuration you have provided
>> above?
>>
>>
>>> I have through much trial and error been using this config:
>>
>>> { "masterSlaveServersConfig":{ "idleConnectionTimeout":1,
>>> "connectTimeout":1, "timeout":3000, "retryAttempts":3,
>>> "retryInterval":1500, "failedSlaveReconnectionInterval":3000,
>>> "failedSlaveCheckInterval":6, "password":"",
>>> "subscriptionsPerConnection":5, "clientName":true,
>>> "subscriptionConnectionMinimumIdleSize":1,
>>> "subscriptionConnectionPoolSize":50,
>>> "slaveConnectionMinimumIdleSize":32,

Re: Tomcat session management with Redisson

2019-02-18 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Herb,

On 2/18/19 13:59, Herb Burnswell wrote:
> On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz < 
> ch...@christopherschultz.net> wrote:
> 
> Herb,
> 
> On 2/14/19 12:41, Herb Burnswell wrote:
 Tomcat 8.5.23 RHEL   7.5
 
 We are looking to set up session management via Redisson to
 offload the CPU consumption of using Tomcat's built in
 clustering session management.  We have CPU licensing limits
 and need to conserve as much CPU as possible.
> 
> Dumb question: aren't you just going to move the CPU cycles to
> another system?
> 
> 
>> Thanks for the reply.  Short answer, yes.  But that is the idea.
>> We can only use 2 CPU's per application node (3 nodes) with our
>> licensing structure so we do not want to take cycles away from
>> the application to manage sessions.

Okay, so if you move the session-management to another machine, you
don't have to pay app-license fees for the session-management server?
Fair enough.

Just remember that you still need code "managing" sessions from your
Tomcat note to your Redisson server. I can't imagine that the
Tomcat->Resisson code would be any less complicated than the Tomcat ->
Tomcat code. You might want to validate that assumption before
committing any resources toward solving a problem by adding complexity
to your deployments.

> Another dumb question: do you actually need clustering?
> 
> 
>> If I'm using the term correctly, yes.  The idea would be for HA 
>> functionality; If users were connected to node 3 and the node
>> failed for some reason, their session would be picked up by node
>> 1 or 2 uninterrupted.  Sorry if I confused the intent.

That's exactly what you will get.

If you do NOT use clustering, a failed node will require the users who
were on the failed node to re-login to a surviving node. Only you can
determine whether that is an acceptable consequence of a failed node
for your users and application. I, as well as many others, have
decided that fail-over is such a rare event and logins such a
non-issue that introducing the complexity of clustering is not justified
.

 I have never set up a configuration this way, however I have
 Redis set up and running as 1 Master, 1 Slave.  I seemingly
 just need to point our application to it.  I have read this
 doc on how to:
 
 https://github.com/redisson/redisson/tree/master/redisson-tomcat


 
It seems pretty straight forward except for the redisson.conf
 configuration:
 
 Add RedissonSessionManager into tomcat/conf/context.xml
 
 >>> className="org.redisson.tomcat.RedissonSessionManager" 
 configPath="${catalina.base}/redisson.conf" readMode="REDIS" 
 updateMode="DEFAULT"/>
> 
> I would do this in the application's context.xml file instead of
> the global/default one. That means modifying the application's 
> META-INF/context.xml file, or, if you deploy via files from
> outside your WAR/dir application, then
> conf/[engine]/[hostname]/[appname].xml.
> 
> 
>> Yes, this is requiring the editing a application specific xml
>> file.

Good.

 I am more familiar with YAML so plan on configuring the 
 redisson.conf as such.  I have read the referenced
 configuration wiki page:
 
 https://github.com/redisson/redisson/wiki/2.-Configuration
 
 However, it has a great deal of options and I'm not sure what
 is and is not needed.
 
 I am reaching out here on the Tomcat user group to see if
 anyone else is using Redisson for session management and if
 maybe I can get some guidance on a basic redisson.conf
 configuration.  I'd also be interested in comments on if
 there are better options or things to watch out for.
> 
> I don't have any experience with either Redis or Redisson, but what
> is wrong with the default/sample configuration you have provided
> above?
> 
> 
>> I have through much trial and error been using this config:
> 
>> { "masterSlaveServersConfig":{ "idleConnectionTimeout":1, 
>> "connectTimeout":1, "timeout":3000, "retryAttempts":3, 
>> "retryInterval":1500, "failedSlaveReconnectionInterval":3000, 
>> "failedSlaveCheckInterval":6, "password":"", 
>> "subscriptionsPerConnection":5, "clientName":true, 
>> "subscriptionConnectionMinimumIdleSize":1, 
>> "subscriptionConnectionPoolSize":50, 
>> "slaveConnectionMinimumIdleSize":32, 
>> "slaveConnectionPoolSize":64, 
>> "masterConnectionMinimumIdleSize":32, 
>> "masterConnectionPoolSize":64, "readMode":"SLAVE", 
>> "subscriptionMode":"SLAVE", "slaveAddresses":[ 
>> "> "masterAddress":":6379", "database":0 }, 
>> "threads":0, "nettyThreads":0, "transportMode":"NIO" }
> 
>> However, I am getting a couple exceptions and am not sure what
>> might be the issue:

Okay, let's take a look:

>> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | Feb 18,
>> 2019 10:09:33 AM org.apache.catalina.core.StandardContext
>> startInternal INFO   | jvm 1| main

Re: Tomcat session management with Redisson

2019-02-18 Thread Harpreet Sandhu
If you want to go with redis in HA environment. You should opt redis
sentinel over master-slave architecture.

On Tue 19 Feb, 2019, 12:29 AM Herb Burnswell  On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
> ch...@christopherschultz.net> wrote:
>
> > -BEGIN PGP SIGNED MESSAGE-
> > Hash: SHA256
> >
> > Herb,
> >
> > On 2/14/19 12:41, Herb Burnswell wrote:
> > > Tomcat 8.5.23 RHEL   7.5
> > >
> > > We are looking to set up session management via Redisson to offload
> > > the CPU consumption of using Tomcat's built in clustering session
> > > management.  We have CPU licensing limits and need to conserve as
> > > much CPU as possible.
> >
> > Dumb question: aren't you just going to move the CPU cycles to another
> > system?
> >
>
> Thanks for the reply.  Short answer, yes.  But that is the idea.  We can
> only use 2 CPU's per application node (3 nodes) with our licensing
> structure so we do not want to take cycles away from the application to
> manage sessions.
>
>
> > Another dumb question: do you actually need clustering?
> >
>
> If I'm using the term correctly, yes.  The idea would be for HA
> functionality; If users were connected to node 3 and the node failed for
> some reason, their session would be picked up by node 1 or 2
> uninterrupted.  Sorry if I confused the intent.
>
>
> >
> > > I have never set up a configuration this way, however I have Redis
> > > set up and running as 1 Master, 1 Slave.  I seemingly just need to
> > > point our application to it.  I have read this doc on how to:
> > >
> > > https://github.com/redisson/redisson/tree/master/redisson-tomcat
> > >
> > > It seems pretty straight forward except for the redisson.conf
> > > configuration:
> > >
> > > Add RedissonSessionManager into tomcat/conf/context.xml
> > >
> > >  > > configPath="${catalina.base}/redisson.conf" readMode="REDIS"
> > > updateMode="DEFAULT"/>
> >
> > I would do this in the application's context.xml file instead of the
> > global/default one. That means modifying the application's
> > META-INF/context.xml file, or, if you deploy via files from outside
> > your WAR/dir application, then conf/[engine]/[hostname]/[appname].xml.
> >
>
> Yes, this is requiring the editing a application specific xml file.
>
>
> >
> > > I am more familiar with YAML so plan on configuring the
> > > redisson.conf as such.  I have read the referenced configuration
> > > wiki page:
> > >
> > > https://github.com/redisson/redisson/wiki/2.-Configuration
> > >
> > > However, it has a great deal of options and I'm not sure what is
> > > and is not needed.
> > >
> > > I am reaching out here on the Tomcat user group to see if anyone
> > > else is using Redisson for session management and if maybe I can
> > > get some guidance on a basic redisson.conf configuration.  I'd also
> > > be interested in comments on if there are better options or things
> > > to watch out for.
> >
> > I don't have any experience with either Redis or Redisson, but what is
> > wrong with the default/sample configuration you have provided above?
> >
>
> I have through much trial and error been using this config:
>
> {
>"masterSlaveServersConfig":{
>   "idleConnectionTimeout":1,
>   "connectTimeout":1,
>   "timeout":3000,
>   "retryAttempts":3,
>   "retryInterval":1500,
>   "failedSlaveReconnectionInterval":3000,
>   "failedSlaveCheckInterval":6,
>   "password":"",
>   "subscriptionsPerConnection":5,
>   "clientName":true,
>   "subscriptionConnectionMinimumIdleSize":1,
>   "subscriptionConnectionPoolSize":50,
>   "slaveConnectionMinimumIdleSize":32,
>   "slaveConnectionPoolSize":64,
>   "masterConnectionMinimumIdleSize":32,
>   "masterConnectionPoolSize":64,
>   "readMode":"SLAVE",
>   "subscriptionMode":"SLAVE",
>   "slaveAddresses":[
>  "   ],
>   "masterAddress":":6379",
>   "database":0
>},
>"threads":0,
>"nettyThreads":0,
>"transportMode":"NIO"
> }
>
> However, I am getting a couple exceptions and am not sure what might be the
> issue:
>
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | Feb 18, 2019
> 10:09:33 AM org.apache.catalina.core.StandardContext startInternal
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | SEVERE: The session
> manager failed to start
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 |
> org.apache.catalina.LifecycleException: Failed to start component
> [org.redisson.tomcat.RedissonSessionManager[]]
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
>
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5224)
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> INFO   | jvm 1| main| 2019/02/18 10:09:33.068 

Re: Tomcat session management with Redisson

2019-02-18 Thread Herb Burnswell
On Fri, Feb 15, 2019 at 12:21 PM Christopher Schultz <
ch...@christopherschultz.net> wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
> Herb,
>
> On 2/14/19 12:41, Herb Burnswell wrote:
> > Tomcat 8.5.23 RHEL   7.5
> >
> > We are looking to set up session management via Redisson to offload
> > the CPU consumption of using Tomcat's built in clustering session
> > management.  We have CPU licensing limits and need to conserve as
> > much CPU as possible.
>
> Dumb question: aren't you just going to move the CPU cycles to another
> system?
>

Thanks for the reply.  Short answer, yes.  But that is the idea.  We can
only use 2 CPU's per application node (3 nodes) with our licensing
structure so we do not want to take cycles away from the application to
manage sessions.


> Another dumb question: do you actually need clustering?
>

If I'm using the term correctly, yes.  The idea would be for HA
functionality; If users were connected to node 3 and the node failed for
some reason, their session would be picked up by node 1 or 2
uninterrupted.  Sorry if I confused the intent.


>
> > I have never set up a configuration this way, however I have Redis
> > set up and running as 1 Master, 1 Slave.  I seemingly just need to
> > point our application to it.  I have read this doc on how to:
> >
> > https://github.com/redisson/redisson/tree/master/redisson-tomcat
> >
> > It seems pretty straight forward except for the redisson.conf
> > configuration:
> >
> > Add RedissonSessionManager into tomcat/conf/context.xml
> >
> >  > configPath="${catalina.base}/redisson.conf" readMode="REDIS"
> > updateMode="DEFAULT"/>
>
> I would do this in the application's context.xml file instead of the
> global/default one. That means modifying the application's
> META-INF/context.xml file, or, if you deploy via files from outside
> your WAR/dir application, then conf/[engine]/[hostname]/[appname].xml.
>

Yes, this is requiring the editing a application specific xml file.


>
> > I am more familiar with YAML so plan on configuring the
> > redisson.conf as such.  I have read the referenced configuration
> > wiki page:
> >
> > https://github.com/redisson/redisson/wiki/2.-Configuration
> >
> > However, it has a great deal of options and I'm not sure what is
> > and is not needed.
> >
> > I am reaching out here on the Tomcat user group to see if anyone
> > else is using Redisson for session management and if maybe I can
> > get some guidance on a basic redisson.conf configuration.  I'd also
> > be interested in comments on if there are better options or things
> > to watch out for.
>
> I don't have any experience with either Redis or Redisson, but what is
> wrong with the default/sample configuration you have provided above?
>

I have through much trial and error been using this config:

{
   "masterSlaveServersConfig":{
  "idleConnectionTimeout":1,
  "connectTimeout":1,
  "timeout":3000,
  "retryAttempts":3,
  "retryInterval":1500,
  "failedSlaveReconnectionInterval":3000,
  "failedSlaveCheckInterval":6,
  "password":"",
  "subscriptionsPerConnection":5,
  "clientName":true,
  "subscriptionConnectionMinimumIdleSize":1,
  "subscriptionConnectionPoolSize":50,
  "slaveConnectionMinimumIdleSize":32,
  "slaveConnectionPoolSize":64,
  "masterConnectionMinimumIdleSize":32,
  "masterConnectionPoolSize":64,
  "readMode":"SLAVE",
  "subscriptionMode":"SLAVE",
  "slaveAddresses":[
 ":6379",
  "database":0
   },
   "threads":0,
   "nettyThreads":0,
   "transportMode":"NIO"
}

However, I am getting a couple exceptions and am not sure what might be the
issue:

INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | Feb 18, 2019
10:09:33 AM org.apache.catalina.core.StandardContext startInternal
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | SEVERE: The session
manager failed to start
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 |
org.apache.catalina.LifecycleException: Failed to start component
[org.redisson.tomcat.RedissonSessionManager[]]
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5224)
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at
java.util.concurrent.FutureTask.run(FutureTask.java:266)
INFO   | jvm 1| main| 2019/02/18 10:09:33.068 | at

Re: Tomcat session management with Redisson

2019-02-15 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Herb,

On 2/14/19 12:41, Herb Burnswell wrote:
> Tomcat 8.5.23 RHEL   7.5
> 
> We are looking to set up session management via Redisson to offload
> the CPU consumption of using Tomcat's built in clustering session
> management.  We have CPU licensing limits and need to conserve as
> much CPU as possible.

Dumb question: aren't you just going to move the CPU cycles to another
system?

Another dumb question: do you actually need clustering?

> I have never set up a configuration this way, however I have Redis
> set up and running as 1 Master, 1 Slave.  I seemingly just need to
> point our application to it.  I have read this doc on how to:
> 
> https://github.com/redisson/redisson/tree/master/redisson-tomcat
> 
> It seems pretty straight forward except for the redisson.conf
> configuration:
> 
> Add RedissonSessionManager into tomcat/conf/context.xml
> 
>  configPath="${catalina.base}/redisson.conf" readMode="REDIS" 
> updateMode="DEFAULT"/>

I would do this in the application's context.xml file instead of the
global/default one. That means modifying the application's
META-INF/context.xml file, or, if you deploy via files from outside
your WAR/dir application, then conf/[engine]/[hostname]/[appname].xml.

> I am more familiar with YAML so plan on configuring the
> redisson.conf as such.  I have read the referenced configuration
> wiki page:
> 
> https://github.com/redisson/redisson/wiki/2.-Configuration
> 
> However, it has a great deal of options and I'm not sure what is
> and is not needed.
> 
> I am reaching out here on the Tomcat user group to see if anyone
> else is using Redisson for session management and if maybe I can
> get some guidance on a basic redisson.conf configuration.  I'd also
> be interested in comments on if there are better options or things
> to watch out for.

I don't have any experience with either Redis or Redisson, but what is
wrong with the default/sample configuration you have provided above?

- -chris
-BEGIN PGP SIGNATURE-
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlxnHysACgkQHPApP6U8
pFhkyRAAhq0Rw6laOS4mUAgtjWhCW8tvsrfvWmUtQKu0TTmdDuoL1OUEYBiAl45l
TBF7sxjtd8Olk9gEqGdzD9srZUF1y9/ajzok4KGZrfDEHKnoqoXPQaRFTT7tWpH6
76uOj2KHzaTdgtz6qVdGdJKJ97VY0pMy/+4AMPwO/I3tygah1MfIGqKjbJ1zZr0O
ZT0CRBgRb2pUn5nZTtXyozL0J+3MIRGPC35il86Wb+Wkjw4ks3S+gxTe3Cl7MCO7
wfu8WAI+gKEapdC0Aj9esu/HueYMGgdj3GYvTJCivqg9TGtPpgMaEe09o1VjfMmV
JZu4aCjaDq82ZxLlIKFLKkDhlgYhFhnLVYXN1H+2SdITabprpWw+KDdx55jVE3yt
W+ZQR/dFqDVvp5uKU1u/2BZACjXn3bRrkvif4bKQJuWpFBoXT6fBJ/37eYuiS58n
7omBRJoGzpcKCOjij1GhwtePKibo9EBm+r/RsGZnxTQHnHKslCwp+TcS5nZFmw9H
Y1O0jtIyhcMp7o1mAsuErKK6OSu7bREe+4NrgwJ7OCSXU42keU/fXK2Z8u/MAJE1
uRDyqSk+VbNxP+MCbShr89QD6XVAFoKnVk5QDdEiUZ5asxCbhl5UADNi9P3Nzasr
fK7ae3S8kD98k1P2OvguPqnwbUpHd7tVrlwOrs/8LF8w+PeSJWU=
=XhoF
-END PGP SIGNATURE-

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



Tomcat session management with Redisson

2019-02-14 Thread Herb Burnswell
All,

Tomcat 8.5.23
RHEL   7.5

We are looking to set up session management via Redisson to offload the CPU
consumption of using Tomcat's built in clustering session management.  We
have CPU licensing limits and need to conserve as much CPU as possible.

I have never set up a configuration this way, however I have Redis set up
and running as 1 Master, 1 Slave.  I seemingly just need to point our
application to it.  I have read this doc on how to:


https://github.com/redisson/redisson/tree/master/redisson-tomcat


It seems pretty straight forward except for the redisson.conf configuration:


Add RedissonSessionManager into tomcat/conf/context.xml




I am more familiar with YAML so plan on configuring the redisson.conf as
such.  I have read the referenced configuration wiki page:


https://github.com/redisson/redisson/wiki/2.-Configuration


However, it has a great deal of options and I'm not sure what is and is not
needed.

I am reaching out here on the Tomcat user group to see if anyone else is
using Redisson for session management and if maybe I can get some guidance
on a basic redisson.conf configuration.  I'd also be interested in comments
on if there are better options or things to watch out for.

Thanks in advance,

HB