Author: pero
Date: Thu Nov 17 03:26:31 2005
New Revision: 345224
URL: http://svn.apache.org/viewcvs?rev=345224&view=rev
Log:
Fix Exception logging at normal server shutdown
Don't accept socket open or close when message are transfered.
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java?rev=345224&r1=345223&r2=345224&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java
(original)
+++
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java
Thu Nov 17 03:26:31 2005
@@ -553,13 +553,17 @@
* @see org.apache.catalina.cluster.tcp.IDataSender#connect()
*/
public synchronized void connect() throws java.io.IOException {
- openSocket();
- if(isConnected()) {
- connectCounter++;
- if (log.isDebugEnabled())
- log.debug(sm.getString("IDataSender.connect",
address.getHostAddress(),
- new Integer(port),new Long(connectCounter)));
- }
+ if(!isMessageTransferStarted) {
+ openSocket();
+ if(isConnected()) {
+ connectCounter++;
+ if (log.isDebugEnabled())
+ log.debug(sm.getString("IDataSender.connect",
address.getHostAddress(),
+ new Integer(port),new Long(connectCounter)));
+ }
+ } else
+ if (log.isWarnEnabled())
+ log.warn(sm.getString("IDataSender.message.create",
address.getHostAddress(),new Integer(port)));
}
@@ -569,14 +573,19 @@
* @see IDataSender#disconnect()
*/
public synchronized void disconnect() {
- boolean connect = isConnected() ;
- closeSocket();
- if(connect) {
- disconnectCounter++;
- if (log.isDebugEnabled())
- log.debug(sm.getString("IDataSender.disconnect",
address.getHostAddress(),
- new Integer(port),new Long(disconnectCounter)));
- }
+ if(!isMessageTransferStarted) {
+ boolean connect = isConnected() ;
+ closeSocket();
+ if(connect) {
+ disconnectCounter++;
+ if (log.isDebugEnabled())
+ log.debug(sm.getString("IDataSender.disconnect",
address.getHostAddress(),
+ new Integer(port),new Long(disconnectCounter)));
+ }
+ } else
+ if (log.isWarnEnabled())
+ log.warn(sm.getString("IDataSender.message.disconnect",
address.getHostAddress(),new Integer(port)));
+
}
/**
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties?rev=345224&r1=345223&r2=345224&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties
(original)
+++
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties
Thu Nov 17 03:26:31 2005
@@ -12,10 +12,12 @@
IDataSender.ack.read=Read wait ack char '{2}' [{0}:{1,number,integer}]
IDataSender.ack.start=Waiting for ACK message [{0}:{1,number,integer}]
IDataSender.ack.wrong=Missing correct ACK after 10 bytes read at local port
[{0}:{1,number,integer}]
+IDataSender.closeSocket=Sender close socket to [{0}:{1,number,integer}] (close
count {2,number,integer})
IDataSender.connect=Sender connect to [{0}:{1,number,integer}] (connect count
{2,number,integer})
IDataSender.create=Create sender [{0}:{1,number,integer}]
IDataSender.disconnect=Sender disconnect from [{0}:{1,number,integer}]
(disconnect count {2,number,integer})
-IDataSender.closeSocket=Sender close socket to [{0}:{1,number,integer}] (close
count {2,number,integer})
+IDataSender.message.disconnect=Message transfered: Sender can't disconnect
from [{0}:{1,number,integer}]
+IDataSender.message.create=Message transfered: Sender can't create current
socket [{0}:{1,number,integer}]
IDataSender.openSocket=Sender open socket to [{0}:{1,number,integer}] (open
count {2,number,integer})
IDataSender.openSocket.failure=Open sender socket [{0}:{1,number,integer}]
failure! (open failure count {2,number,integer})
IDataSender.send.again=Send data again to [{0}:{1,number,integer}]
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java?rev=345224&r1=345223&r2=345224&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java
(original)
+++
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java
Thu Nov 17 03:26:31 2005
@@ -122,7 +122,7 @@
serverChannel.configureBlocking (false);
// register the ServerSocketChannel with the Selector
serverChannel.register (selector, SelectionKey.OP_ACCEPT);
- while (doListen) {
+ while (doListen && selector != null) {
// this may block for a long time, upon return the
// selected set contains keys of the ready channels
try {
@@ -168,18 +168,19 @@
// remove key from selected set, it's been handled
it.remove();
}
- }
- catch (java.nio.channels.CancelledKeyException nx) {
+ } catch (java.nio.channels.ClosedSelectorException cse) {
+ // ignore is normal at shutdown or stop listen socket
+ } catch (java.nio.channels.CancelledKeyException nx) {
log.warn(
"Replication client disconnected, error when polling key.
Ignoring client.");
- }
- catch (Exception x) {
+ } catch (Exception x) {
log.error("Unable to process request in ReplicationListener",
x);
}
}
serverChannel.close();
- selector.close();
+ if(selector != null)
+ selector.close();
}
/**
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java?rev=345224&r1=345223&r2=345224&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
(original)
+++
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
Thu Nov 17 03:26:31 2005
@@ -917,9 +917,7 @@
+ " with class=" + valve.getClass().getName());
if (valve != null) {
IntrospectionUtils.callMethodN(getContainer(), "addValve",
- new Object[] { valve }, new Class[] { Thread
- .currentThread().getContextClassLoader()
- .loadClass("org.apache.catalina.Valve") });
+ new Object[] { valve }, new Class[] {
org.apache.catalina.Valve.class });
}
valve.setCluster(this);
@@ -938,11 +936,8 @@
log.debug("Invoking removeValve on " + getContainer()
+ " with class=" + valve.getClass().getName());
if (valve != null) {
- IntrospectionUtils.callMethodN(getContainer(), "removeValve",
- new Object[] { valve }, new Class[] { Thread
- .currentThread().getContextClassLoader()
- .loadClass("org.apache.catalina.Valve") });
-
+ IntrospectionUtils.callMethodN(getContainer(),
"removeValve",
+ new Object[] { valve }, new Class[] {
org.apache.catalina.Valve.class });
}
valve.setCluster(this);
}
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java?rev=345224&r1=345223&r2=345224&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java
(original)
+++
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java
Thu Nov 17 03:26:31 2005
@@ -18,6 +18,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
+import java.net.SocketException;
import org.apache.catalina.cluster.io.ListenCallback;
import org.apache.catalina.cluster.io.SocketObjectReader;
@@ -95,6 +96,8 @@
// EOF
keepRunning = false;
}
+ } catch (SocketException se) {
+ // ignore this: normal shutdown or stop listen socket
} catch (IOException x) {
log.error("Unable to read data from client, disconnecting.", x);
} finally {
Modified:
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml?rev=345224&r1=345223&r2=345224&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml
(original)
+++
tomcat/container/tc5.5.x/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml
Thu Nov 17 03:26:31 2005
@@ -273,7 +273,7 @@
</mbean>
<mbean name="ReplicationTransmitter"
- description="Tcp replicatio transmitter"
+ description="Tcp replication transmitter"
domain="Catalina"
group="ClusterSender"
type="org.apache.catalina.cluster.tcp.ReplicationTransmitter">
@@ -394,6 +394,11 @@
writeable="false"
description="number of bytes over all queued messages"
type="long"/>
+ <attribute name="messageTransferStarted"
+ description="message is in transfer"
+ type="boolean"
+ is="true"
+ writeable="false"/>
<attribute name="keepAliveTimeout"
description="active socket keep alive timeout"
type="long"/>
@@ -571,6 +576,11 @@
writeable="false"
description="number of bytes over all queued messages"
type="long"/>
+ <attribute name="messageTransferStarted"
+ description="message is in transfer"
+ type="boolean"
+ is="true"
+ writeable="false"/>
<attribute name="keepAliveTimeout"
description="active socket keep alive timeout"
type="long"/>
@@ -844,6 +854,11 @@
<attribute name="keepAliveMaxRequestCount"
description="max request over this socket"
type="int"/>
+ <attribute name="messageTransferStarted"
+ description="message is in transfer"
+ type="boolean"
+ is="true"
+ writeable="false"/>
<attribute name="keepAliveCount"
description="keep Alive request count"
type="int"
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]