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]