Thanks for the comment.
I committed it with r1141441.

2011/6/29 Mark Thomas <ma...@apache.org>:
> On 29/06/2011 11:36, Keiichi Fujino wrote:
>> 2011/6/29  <ma...@apache.org>:
>>> Author: markt
>>> Date: Tue Jun 28 19:32:39 2011
>>> New Revision: 1140801
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1140801&view=rev
>>> Log:
>>> Notifications of changes in session ID to other nodes in the cluster should 
>>> be controlled by notifySessionListenersOnReplication rather than 
>>> notifyListenersOnReplication.
>
> <snip/>
>
>> A primary node never trigger a notification to any session listeners.
>> It notifies container event listener now.
>> Should non-primary node be same behavior as a primary node?
>
> I think you are right. The session event should not be fired on primary
> or backup nodes but the container event should be fired on the primary
> and optionally on the backup.
>
>> If it notifies not session listener but container event listener,
>> I will add some changes below.
>>
>> Comments?
>>
>> ===
>> Index: java/org/apache/catalina/ha/session/DeltaManager.java
>> ===================================================================
>> --- java/org/apache/catalina/ha/session/DeltaManager.java     (revision 
>> 1140984)
>> +++ java/org/apache/catalina/ha/session/DeltaManager.java     (working copy)
>> @@ -97,6 +97,7 @@
>>      private boolean expireSessionsOnShutdown = false;
>>      private boolean notifyListenersOnReplication = true;
>>      private boolean notifySessionListenersOnReplication = true;
>> +    private boolean notifyChangeSessionIDEventOnReplication = true;
>
> Maybe call this notifyContainerListenersOnReplication to allow for
> possible re-use for other events (not that I can think of any right now).
>
> Mark
>
>>      private volatile boolean stateTransfered = false ;
>>      private int stateTransferTimeout = 60;
>>      private boolean sendAllSessions = true;
>> @@ -420,6 +421,14 @@
>>          this.notifyListenersOnReplication = notifyListenersOnReplication;
>>      }
>>
>> +    public boolean isNotifyChangeSessionIDEventOnReplication() {
>> +        return notifyChangeSessionIDEventOnReplication;
>> +    }
>> +
>> +    public void setNotifyChangeSessionIDEventOnReplication(
>> +            boolean notifyChangeSessionIDEventOnReplication) {
>> +        this.notifyChangeSessionIDEventOnReplication =
>> notifyChangeSessionIDEventOnReplication;
>> +    }
>>
>>     @Override
>>  public CatalinaCluster getCluster() {
>> @@ -1463,7 +1472,11 @@
>>          if (session != null) {
>>              String newSessionID = deserializeSessionId(msg.getSession());
>>              session.setPrimarySession(false);
>> -            session.setId(newSessionID, 
>> notifySessionListenersOnReplication);
>> +            session.setId(newSessionID, false);
>> +            if (notifyChangeSessionIDEventOnReplication) {
>> +
>> getContainer().fireContainerEvent(Context.CHANGE_SESSION_ID_EVENT,
>> +                        new String[] {msg.getSessionID(), newSessionID});
>> +            }
>>          }
>>      }
>>
>>
>> ===
>>
>>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>



-- 
Keiichi.Fujino

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

Reply via email to