1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.hbql.impl;
22
23 import org.apache.hadoop.conf.Configuration;
24 import org.apache.hadoop.hbase.HBaseConfiguration;
25 import org.apache.hadoop.hbase.hbql.client.HBqlException;
26 import org.apache.hadoop.hbase.hbql.client.HConnection;
27 import org.apache.hadoop.hbase.hbql.client.HConnectionPool;
28
29 public class HConnectionPoolImpl extends ElementPool<HConnectionImpl> implements HConnectionPool {
30
31 private final Configuration configuration;
32 private final int maxReferencesPerTable;
33
34 public HConnectionPoolImpl(final int initPoolSize,
35 final int maxPoolSize,
36 final String poolName,
37 final Configuration configuration,
38 final int maxPoolReferencesPerTablePerConnection) throws HBqlException {
39 super(poolName, maxPoolSize);
40
41 this.configuration = (configuration == null) ? HBaseConfiguration.create() : configuration;
42 this.maxReferencesPerTable = maxPoolReferencesPerTablePerConnection;
43
44 for (int i = 0; i < initPoolSize; i++)
45 this.addElementToPool();
46 }
47
48 public Configuration getConfiguration() {
49 return this.configuration;
50 }
51
52 public int getMaxReferencesPerTable() {
53 return this.maxReferencesPerTable;
54 }
55
56 protected HConnectionImpl newElement() throws HBqlException {
57 return new HConnectionImpl(this.getConfiguration(), this, this.getMaxReferencesPerTable());
58 }
59
60 public HConnection takeConnection() throws HBqlException {
61 return this.take();
62 }
63 }