1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 14 * implied. 15 * 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 package org.apache.avalon.excalibur.datasource.cluster; 21 22 import java.sql.Connection; 23 import java.sql.SQLException; 24 25 import org.apache.avalon.excalibur.datasource.DataSourceComponent; 26 27 /** 28 * @author <a HREF="mailto:dev@avalon.apache.org">Avalon Development Team</a> 29 * @version CVS $Revision: 1.4 $ $Date: 2004/02/28 11:47:20 $ 30 * @since 4.1 31 */ 32 public interface IndexedDataSourceCluster 33 extends DataSourceComponent 34 { 35 /** 36 * The name of the role for convenience 37 */ 38 String ROLE = IndexedDataSourceCluster.class.getName(); 39 40 /** 41 * Returns the number of DataSources in the cluster. 42 * 43 * @return size of the cluster. 44 */ 45 int getClusterSize(); 46 47 /** 48 * Gets a Connection to a database given an index. 49 * 50 * @param index Index of the DataSource for which a connection is to be returned. 51 * 52 * @throws org.apache.avalon.excalibur.datasource.NoValidConnectionException when there is no valid Connection wrapper 53 * available in the classloader or when the index is not valid. 54 * 55 * @throws org.apache.avalon.excalibur.datasource.NoAvailableConnectionException when there are no more available 56 * Connections in the pool. 57 */ 58 Connection getConnectionForIndex( int index ) throws SQLException; 59 } 60 61