001: /*
002: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
003: *
004: * This file is part of Resin(R) Open Source
005: *
006: * Each copy or derived work must preserve the copyright notice and this
007: * notice unmodified.
008: *
009: * Resin Open Source is free software; you can redistribute it and/or modify
010: * it under the terms of the GNU General Public License as published by
011: * the Free Software Foundation; either version 2 of the License, or
012: * (at your option) any later version.
013: *
014: * Resin Open Source is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
017: * of NON-INFRINGEMENT. See the GNU General Public License for more
018: * details.
019: *
020: * You should have received a copy of the GNU General Public License
021: * along with Resin Open Source; if not, write to the
022: *
023: * Free Software Foundation, Inc.
024: * 59 Temple Place, Suite 330
025: * Boston, MA 02111-1307 USA
026: *
027: * @author Scott Ferguson
028: */
029:
030: package com.caucho.management.server;
031:
032: import com.caucho.jmx.Description;
033: import com.caucho.jmx.Units;
034:
035: import java.util.Date;
036:
037: /**
038: * MBean API for the JCA connection pool.
039: *
040: * <pre>
041: * resin:type=ConnectionPool,name=jdbc/resin,...
042: * </pre>
043: */
044: @Description("A pool of reusable connections to a database")
045: public interface ConnectionPoolMXBean extends ManagedObjectMXBean {
046: //
047: // Configuration
048: //
049:
050: /**
051: * Returns the maximum number of connections.
052: */
053: @Description("The configured maximum number of connections")
054: public int getMaxConnections();
055:
056: /**
057: * Returns the number of overflow connections.
058: */
059: @Description("The configured maximum number of overflow connections")
060: public int getMaxOverflowConnections();
061:
062: /**
063: * Returns the max number of connections trying to connect.
064: */
065: @Description("The configured maximum number of simultaneous connection creation")
066: public int getMaxCreateConnections();
067:
068: /**
069: * Returns the pool idle time in milliseconds.
070: */
071: @Units("milliseconds")
072: @Description("The configured maximum time in milliseconds that a connection remains in the idle pool before it is closed")
073: public long getMaxIdleTime();
074:
075: /**
076: * Returns the maximum number of idle connections
077: */
078: @Description("The configured maximum number of idle connections")
079: public int getMaxIdleCount();
080:
081: /**
082: * Returns the pool active time in milliseconds.
083: */
084: @Description("The configured maximum time in milliseconds that a connection is allowed to be active")
085: @Units("milliseconds")
086: public long getMaxActiveTime();
087:
088: /**
089: * Returns the pool time in milliseconds.
090: */
091: @Description("The configured maximum age in milliseconds of a connection before it is closed regardless of it's usage pattern")
092: @Units("milliseconds")
093: public long getMaxPoolTime();
094:
095: /**
096: * How long to wait for connections when timed out.
097: */
098: @Units("milliseconds")
099: @Description("The configured maximum time in milliseconds to wait for a connection before a failure is returned to the client")
100: public long getConnectionWaitTime();
101:
102: /**
103: * Returns true for the JCA shared attribute.
104: */
105: public boolean isShareable();
106:
107: /**
108: * Returns true if the local-transaction-optimization is allowed
109: */
110: public boolean isLocalTransactionOptimization();
111:
112: //
113: // Statistics
114: //
115:
116: /**
117: * Returns the total number of connections.
118: */
119: @Description("The current number of idle and active connections")
120: public int getConnectionCount();
121:
122: /**
123: * Returns the number of active connections.
124: */
125: @Description("The current number of active connections")
126: public int getConnectionActiveCount();
127:
128: /**
129: * Returns the number of idle connections.
130: */
131: @Description("The current number of idle connections")
132: public int getConnectionIdleCount();
133:
134: /**
135: * Returns the total number of connections.
136: */
137: @Description("The current number of connections")
138: public long getConnectionCountTotal();
139:
140: /**
141: * Returns the total number of created connections.
142: */
143: @Description("The current number of created connections")
144: public long getConnectionCreateCountTotal();
145:
146: /**
147: * Returns the total number of failed connections.
148: */
149: @Description("The current number of failed connections")
150: public long getConnectionFailCountTotal();
151:
152: /**
153: * Returns the last failed connection time.
154: */
155: @Description("The last time of connection failure")
156: public Date getLastFailTime();
157:
158: //
159: // Operations
160: //
161:
162: /**
163: * Clears all idle connections in the pool.
164: */
165: @Description("Clear idle connections in the pool")
166: public void clear();
167: }
|