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.hbase.HBaseConfiguration;
24 import org.apache.hadoop.hbase.hbql.client.HBqlException;
25 import org.apache.hadoop.hbase.hbql.client.HConnection;
26 import org.apache.hadoop.hbase.hbql.client.HConnectionPool;
27
28 public class HConnectionPoolImpl extends ElementPool<HConnectionImpl> implements HConnectionPool {
29
30 private final HBaseConfiguration hbaseConfiguration;
31 private final int maxReferencesPerTable;
32
33 public HConnectionPoolImpl(final int initPoolSize,
34 final int maxPoolSize,
35 final String poolName,
36 final HBaseConfiguration hbaseConfiguration,
37 final int maxPoolReferencesPerTablePerConnection) throws HBqlException {
38 super(poolName, maxPoolSize);
39
40 this.hbaseConfiguration = (hbaseConfiguration == null) ? new HBaseConfiguration() : hbaseConfiguration;
41 this.maxReferencesPerTable = maxPoolReferencesPerTablePerConnection;
42
43 for (int i = 0; i < initPoolSize; i++)
44 this.addElementToPool();
45 }
46
47 public HBaseConfiguration getHBaseConfiguration() {
48 return this.hbaseConfiguration;
49 }
50
51 public int getMaxReferencesPerTable() {
52 return this.maxReferencesPerTable;
53 }
54
55 protected HConnectionImpl newElement() throws HBqlException {
56 return new HConnectionImpl(this.getHBaseConfiguration(), this, this.getMaxReferencesPerTable());
57 }
58
59 public HConnection takeConnection() throws HBqlException {
60 return this.take();
61 }
62 }