Author: kfujino
Date: Wed Aug 31 02:00:15 2011
New Revision: 1163469
URL: http://svn.apache.org/viewvc?rev=1163469&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51736.
Make rpcTimeout configurable in BackupManager.
Modified:
tomcat/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/mbeans-descriptors.xml
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-manager.xml
Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1163469&r1=1163468&r2=1163469&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Wed Aug 31 02:00:15 2011
@@ -125,13 +125,3 @@ PATCHES PROPOSED TO BACKPORT:
https://issues.apache.org/bugzilla/attachment.cgi?id=27438
+1: kkolinko, markt
-1:
-
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51736
- Make rpcTimeout configurable in BackupManager.
- http://svn.apache.org/viewvc?view=revision&revision=1162735
- +1: kfujino, kkolinko, markt
- -1:
- Additional patch:
- http://svn.apache.org/viewvc?rev=1162769&view=rev
- +1: kkolinko, kfujino, markt
- -1:
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java?rev=1163469&r1=1163468&r2=1163469&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
Wed Aug 31 02:00:15 2011
@@ -65,6 +65,11 @@ public class BackupManager extends Stand
private int mapSendOptions =
Channel.SEND_OPTIONS_SYNCHRONIZED_ACK|Channel.SEND_OPTIONS_USE_ACK;
/**
+ * Timeout for RPC messages.
+ */
+ private long rpcTimeout = DEFAULT_REPL_TIMEOUT;
+
+ /**
* Constructor, just calls super()
*
*/
@@ -197,7 +202,7 @@ public class BackupManager extends Stand
CatalinaCluster catclust = (CatalinaCluster)cluster;
LazyReplicatedMap map = new LazyReplicatedMap(this,
catclust.getChannel(),
- DEFAULT_REPL_TIMEOUT,
+ rpcTimeout,
getMapName(),
getClassLoaders());
map.setChannelSendOptions(mapSendOptions);
@@ -277,6 +282,14 @@ public class BackupManager extends Stand
return mapSendOptions;
}
+ public void setRpcTimeout(long rpcTimeout) {
+ this.rpcTimeout = rpcTimeout;
+ }
+
+ public long getRpcTimeout() {
+ return rpcTimeout;
+ }
+
public String[] getInvalidatedSessions() {
return new String[0];
}
@@ -289,6 +302,7 @@ public class BackupManager extends Stand
result.notifyListenersOnReplication = notifyListenersOnReplication;
result.mapSendOptions = mapSendOptions;
result.maxActiveSessions = maxActiveSessions;
+ result.rpcTimeout = rpcTimeout;
return result;
}
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/mbeans-descriptors.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/mbeans-descriptors.xml?rev=1163469&r1=1163468&r2=1163469&view=diff
==============================================================================
---
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/mbeans-descriptors.xml
(original)
+++
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/mbeans-descriptors.xml
Wed Aug 31 02:00:15 2011
@@ -557,6 +557,10 @@ created by this Manager"
description="mapSendOptions"
type="int"
writeable="false"/>
+ <attribute
+ name="rpcTimeout"
+ description="Timeout for RPC messages, how long we will wait for a reply"
+ type="long"/>
<operation
name="listSessionIds"
description="Return the list of active primary session ids"
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1163469&r1=1163468&r2=1163469&view=diff
==============================================================================
---
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
(original)
+++
tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
Wed Aug 31 02:00:15 2011
@@ -306,14 +306,22 @@ public abstract class AbstractReplicated
* @throws ChannelException
*/
protected void broadcast(int msgtype, boolean rpc) throws ChannelException
{
+ Member[] members = channel.getMembers();
+ // No destination.
+ if (members.length == 0 ) return;
//send out a map membership message, only wait for the first reply
MapMessage msg = new MapMessage(this.mapContextName, msgtype,
false, null, null, null,
channel.getLocalMember(false), null);
if ( rpc) {
- Response[] resp = rpcChannel.send(channel.getMembers(), msg,
rpcChannel.FIRST_REPLY, (channelSendOptions),rpcTimeout);
- for (int i = 0; i < resp.length; i++) {
- mapMemberAdded(resp[i].getSource());
- messageReceived(resp[i].getMessage(), resp[i].getSource());
+ Response[] resp = rpcChannel.send(members, msg,
+ rpcChannel.FIRST_REPLY, (channelSendOptions), rpcTimeout);
+ if (resp.length > 0) {
+ for (int i = 0; i < resp.length; i++) {
+ mapMemberAdded(resp[i].getSource());
+ messageReceived(resp[i].getMessage(), resp[i].getSource());
+ }
+ } else {
+ log.warn("broadcast received 0 replies, probably a timeout.");
}
} else {
channel.send(channel.getMembers(),msg,channelSendOptions);
Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1163469&r1=1163468&r2=1163469&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Wed Aug 31 02:00:15 2011
@@ -68,6 +68,14 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Cluster">
+ <changelog>
+ <add>
+ <bug>51736</bug>: Make rpcTimeout configurable in BackupManager.
+ (kfujino)
+ </add>
+ </changelog>
+ </subsection>
</section>
<section name="Tomcat 6.0.33 (jfclere)" rtext="released 2011-08-18">
<subsection name="Catalina">
Modified: tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-manager.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-manager.xml?rev=1163469&r1=1163468&r2=1163469&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-manager.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/config/cluster-manager.xml Wed Aug 31
02:00:15 2011
@@ -141,6 +141,11 @@
sessions where the current node is the primary node for the session are
considered active sessions.
</attribute>
+ <attribute name="rpcTimeout" required="false">
+ Timeout for RPC message used for broadcast and transfer state from
+ another map.
+ Default value is <code>15000</code> milliseconds.
+ </attribute>
</attributes>
</subsection>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]