⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractconnector.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            name=name.substring(dot+1);                return name+"@"+(getHost()==null?"0.0.0.0":getHost())+":"+(getLocalPort()<=0?getPort():getLocalPort());    }            /* ------------------------------------------------------------ */    /* ------------------------------------------------------------ */    /* ------------------------------------------------------------ */    private class Acceptor implements Runnable    {        int _acceptor=0;                Acceptor(int id)        {            _acceptor=id;        }                /* ------------------------------------------------------------ */        public void run()        {               Thread current = Thread.currentThread();            synchronized(AbstractConnector.this)            {                if (_acceptorThread==null)                    return;                                _acceptorThread[_acceptor]=current;            }            String name =_acceptorThread[_acceptor].getName();            current.setName(name+" - Acceptor"+_acceptor+" "+AbstractConnector.this);            int old_priority=current.getPriority();                        try            {                current.setPriority(old_priority-_acceptorPriorityOffset);                while (isRunning() && getConnection()!=null)                {                    try                    {                        accept(_acceptor);                     }                    catch(EofException e)                    {                        Log.ignore(e);                    }                    catch(IOException e)                    {                        Log.ignore(e);                    }                    catch(ThreadDeath e)                    {                        Log.warn(e);                        throw e;                    }                    catch(Throwable e)                    {                        Log.warn(e);                    }                }            }            finally            {                   current.setPriority(old_priority);                current.setName(name);                try                {                    if (_acceptor==0)                        close();                }                catch (IOException e)                {                    Log.warn(e);                }                                synchronized(AbstractConnector.this)                {                    if (_acceptorThread!=null)                        _acceptorThread[_acceptor]=null;                }            }        }    }    /* ------------------------------------------------------------ */    public String getName()    {        if (_name==null)            _name= (getHost()==null?"0.0.0.0":getHost())+":"+(getLocalPort()<=0?getPort():getLocalPort());        return _name;    }    /* ------------------------------------------------------------ */    public void setName(String name)    {        _name = name;    }            /* ------------------------------------------------------------ */    /**     * @return Get the number of requests handled by this context     * since last call of statsReset(). If setStatsOn(false) then this     * is undefined.     */    public int getRequests() {return _requests;}    /* ------------------------------------------------------------ */    /**     * @return Returns the connectionsDurationMin.     */    public long getConnectionsDurationMin()    {        return _connectionsDurationMin;    }    /* ------------------------------------------------------------ */    /**     * @return Returns the connectionsDurationTotal.     */    public long getConnectionsDurationTotal()    {        return _connectionsDurationTotal;    }    /* ------------------------------------------------------------ */    /**     * @return Returns the connectionsOpenMin.     */    public int getConnectionsOpenMin()    {        return _connectionsOpenMin;    }    /* ------------------------------------------------------------ */    /**     * @return Returns the connectionsRequestsMin.     */    public int getConnectionsRequestsMin()    {        return _connectionsRequestsMin;    }    /* ------------------------------------------------------------ */    /**      * @return Number of connections accepted by the server since     * statsReset() called. Undefined if setStatsOn(false).     */    public int getConnections() {return _connections;}    /* ------------------------------------------------------------ */    /**      * @return Number of connections currently open that were opened     * since statsReset() called. Undefined if setStatsOn(false).     */    public int getConnectionsOpen() {return _connectionsOpen;}    /* ------------------------------------------------------------ */    /**      * @return Maximum number of connections opened simultaneously     * since statsReset() called. Undefined if setStatsOn(false).     */    public int getConnectionsOpenMax() {return _connectionsOpenMax;}    /* ------------------------------------------------------------ */    /**      * @return Average duration in milliseconds of open connections     * since statsReset() called. Undefined if setStatsOn(false).     */    public long getConnectionsDurationAve() {return _connections==0?0:(_connectionsDurationTotal/_connections);}    /* ------------------------------------------------------------ */    /**      * @return Maximum duration in milliseconds of an open connection     * since statsReset() called. Undefined if setStatsOn(false).     */    public long getConnectionsDurationMax() {return _connectionsDurationMax;}    /* ------------------------------------------------------------ */    /**      * @return Average number of requests per connection     * since statsReset() called. Undefined if setStatsOn(false).     */    public int getConnectionsRequestsAve() {return _connections==0?0:(_requests/_connections);}    /* ------------------------------------------------------------ */    /**      * @return Maximum number of requests per connection     * since statsReset() called. Undefined if setStatsOn(false).     */    public int getConnectionsRequestsMax() {return _connectionsRequestsMax;}        /* ------------------------------------------------------------ */    /** Reset statistics.     */    public void statsReset()    {        _statsStartedAt=_statsStartedAt==-1?-1:System.currentTimeMillis();        _connections=0;                _connectionsOpenMin=_connectionsOpen;        _connectionsOpenMax=_connectionsOpen;        _connectionsOpen=0;                _connectionsDurationMin=0;        _connectionsDurationMax=0;        _connectionsDurationTotal=0;        _requests=0;        _connectionsRequestsMin=0;        _connectionsRequestsMax=0;    }        /* ------------------------------------------------------------ */    public void setStatsOn(boolean on)    {        if (on && _statsStartedAt!=-1)            return;        Log.debug("Statistics on = "+on+" for "+this);        statsReset();        _statsStartedAt=on?System.currentTimeMillis():-1;    }        /* ------------------------------------------------------------ */    /**      * @return True if statistics collection is turned on.     */    public boolean getStatsOn()    {        return _statsStartedAt!=-1;    }        /* ------------------------------------------------------------ */    /**      * @return Timestamp stats were started at.     */    public long getStatsOnMs()    {        return (_statsStartedAt!=-1)?(System.currentTimeMillis()-_statsStartedAt):0;    }        /* ------------------------------------------------------------ */    protected void connectionOpened(HttpConnection connection)    {        if (_statsStartedAt==-1)            return;        synchronized(_statsLock)        {            _connectionsOpen++;            if (_connectionsOpen > _connectionsOpenMax)                _connectionsOpenMax=_connectionsOpen;        }    }        /* ------------------------------------------------------------ */    protected void connectionClosed(HttpConnection connection)    {           if (_statsStartedAt>=0)        {            long duration=System.currentTimeMillis()-connection.getTimeStamp();            int requests=connection.getRequests();            synchronized(_statsLock)            {                _requests+=requests;                _connections++;                _connectionsOpen--;                _connectionsDurationTotal+=duration;                if (_connectionsOpen<0)                    _connectionsOpen=0;                if (_connectionsOpen<_connectionsOpenMin)                    _connectionsOpenMin=_connectionsOpen;                if (_connectionsDurationMin==0 || duration<_connectionsDurationMin)                    _connectionsDurationMin=duration;                if (duration>_connectionsDurationMax)                    _connectionsDurationMax=duration;                if (_connectionsRequestsMin==0 || requests<_connectionsRequestsMin)                    _connectionsRequestsMin=requests;                if (requests>_connectionsRequestsMax)                    _connectionsRequestsMax=requests;            }        }                connection.destroy();    }    /* ------------------------------------------------------------ */    /**     * @return the acceptorPriority     */    public int getAcceptorPriorityOffset()    {        return _acceptorPriorityOffset;    }    /* ------------------------------------------------------------ */    /**     * Set the priority offset of the acceptor threads. The priority is adjusted by     * this amount (default 0) to either favour the acceptance of new threads and newly active     * connections or to favour the handling of already dispatched connections.     * @param offset the amount to alter the priority of the acceptor threads.     */    public void setAcceptorPriorityOffset(int offset)    {        _acceptorPriorityOffset=offset;    }    /* ------------------------------------------------------------ */    /**     * @return True if the the server socket will be opened in SO_REUSEADDR mode.     */    public boolean getReuseAddress()    {        return _reuseAddress;    }    /* ------------------------------------------------------------ */    /**     * @param reuseAddress True if the the server socket will be opened in SO_REUSEADDR mode.     */    public void setReuseAddress(boolean reuseAddress)    {        _reuseAddress=reuseAddress;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -