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]

Reply via email to