remm 2005/04/14 16:32:55 Modified: util/java/org/apache/tomcat/util/net AprEndpoint.java http11/src/java/org/apache/coyote/http11 Http11AprProtocol.java webapps/manager/WEB-INF/classes/org/apache/catalina/manager StatusTransformer.java Log: - Code cleanup. - Number of keepalive connections seems a valuable statistics, as they won't show up in the scoreboard. - Fix thread names. Revision Changes Path 1.2 +35 -62 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java Index: AprEndpoint.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AprEndpoint.java 14 Apr 2005 18:52:28 -0000 1.1 +++ AprEndpoint.java 14 Apr 2005 23:32:54 -0000 1.2 @@ -261,6 +261,14 @@ /** + * Number of keepalive sockets. + */ + protected int keepAliveCount = 0; + public int getKeepAliveCount() { return keepAliveCount; } + public void setKeepAliveCount(int keepAliveCount) { this.keepAliveCount = keepAliveCount; } + + + /** * Dummy maxSpareThreads property. */ public int getMaxSpareThreads() { return 0; } @@ -378,8 +386,22 @@ if (!running) { running = true; paused = false; - // Start acceptor and poller threads - threadStart(); + + // Start acceptor thread + acceptorThread = new Thread(new Acceptor(), getName() + "-Acceptor"); + acceptorThread.setPriority(getThreadPriority()); + acceptorThread.setDaemon(true); + acceptorThread.start(); + + // Start poller thread + poller = new Poller(pollerSize); + pollerThread = new Thread(poller, getName() + "-Poller"); + pollerThread.setPriority(getThreadPriority()); + pollerThread.setDaemon(true); + pollerThread.start(); + + // Start sendfile thread + // FIXME: Implement sendfile support } } @@ -401,7 +423,9 @@ if (running) { running = false; unlockAccept(); - threadStop(); + acceptorThread = null; + pollerThread = null; + sendfileThread = null; } } @@ -410,7 +434,7 @@ stop(); } // Close server socket - closeServerSocket(); + Socket.close(serverSock); // Close all APR memory pools and resources Pool.destroy(rootPool); initialized = false ; @@ -429,26 +453,6 @@ /** - * Close the server socket. - */ - protected void closeServerSocket() { - if (!paused) - unlockAccept(); - // FIXME: Close server socket - Socket.close(serverSock); - /* - try { - if( serverSocket!=null) - serverSocket.close(); - } catch(Exception e) { - log.error(sm.getString("endpoint.err.close"), e); - } - serverSocket = null; - */ - } - - - /** * Unlock the server socket accept using a bugus connection. */ protected void unlockAccept() { @@ -459,8 +463,8 @@ s = new java.net.Socket("127.0.0.1", port); } else { s = new java.net.Socket(address, port); - // setting soLinger to a small value will help shutdown the - // connection quicker + // setting soLinger to a small value will help shutdown the + // connection quicker s.setSoLinger(true, 0); } } catch(Exception e) { @@ -590,32 +594,6 @@ } - /** - * Start the background processing thread. - */ - protected void threadStart() { - acceptorThread = new Thread(new Acceptor(), getName()); - acceptorThread.setPriority(getThreadPriority()); - acceptorThread.setDaemon(true); - acceptorThread.start(); - - poller = new Poller(pollerSize); - pollerThread = new Thread(poller, getName() + "-poller"); - pollerThread.setPriority(getThreadPriority()); - pollerThread.setDaemon(true); - pollerThread.start(); - } - - - /** - * Stop the background processing thread. - */ - protected void threadStop() { - acceptorThread = null; - pollerThread = null; - } - - // --------------------------------------------------- Acceptor Inner Class @@ -698,7 +676,6 @@ protected long serverPollset = 0; protected long pool = 0; - protected int nsocks = 0; protected long[] desc; public Poller(int size) { @@ -707,6 +684,7 @@ serverPollset = Poll.create(size, pool, 0, soTimeout * 1000); desc = new long[size]; } catch( Exception ex ) { + // FIXME: more appropriate logging ex.printStackTrace(); } } @@ -714,19 +692,14 @@ public synchronized void add(long socket, long pool) { int rv = Poll.add(serverPollset, socket, pool, Poll.APR_POLLIN); if (rv == Status.APR_SUCCESS) { - //System.out.println("Added socket " + socket + " to pollset"); - nsocks++; + keepAliveCount++; } } public synchronized void remove(long socket) { int rv = Poll.remove(serverPollset, socket); if (rv == Status.APR_SUCCESS) { - nsocks--; - //System.out.println("Removed socket " + socket + " from pollset"); - } else { - // FIXME: log this properly - //System.out.println("Failed removing worker " + socket + " from pollset"); + keepAliveCount--; } } @@ -748,9 +721,9 @@ } } - while (nsocks < 1) { + while (keepAliveCount < 1) { try { - Thread.sleep(1); + Thread.sleep(10); } catch (InterruptedException e) { // Ignore } 1.2 +1 -0 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProtocol.java Index: Http11AprProtocol.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProtocol.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Http11AprProtocol.java 14 Apr 2005 18:52:28 -0000 1.1 +++ Http11AprProtocol.java 14 Apr 2005 23:32:54 -0000 1.2 @@ -113,6 +113,7 @@ /** Start the protocol */ public void init() throws Exception { + ep.setName(getName()); ep.setHandler(cHandler); try { checkSocketFactory(); 1.25 +8 -1 jakarta-tomcat-catalina/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/StatusTransformer.java Index: StatusTransformer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/StatusTransformer.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- StatusTransformer.java 6 Oct 2004 17:10:25 -0000 1.24 +++ StatusTransformer.java 14 Apr 2005 23:32:54 -0000 1.25 @@ -204,6 +204,13 @@ writer.print(mBeanServer.getAttribute(tpName, "currentThreadCount")); writer.print(" Current thread busy: "); writer.print(mBeanServer.getAttribute(tpName, "currentThreadsBusy")); + try { + Object value = mBeanServer.getAttribute(tpName, "keepAliveCount"); + writer.print(" Keeped alive sockets count: "); + writer.print(value); + } catch (Exception e) { + // Ignore + } writer.print("<br>");
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]