5

HTablePool の正しい使用パターンは何ですか? つまり、HTablePool のインスタンスで初期化された DAO があるとします。この DAO は Stateless Session Bean のメンバー インスタンスであるため、呼び出し間で再利用されます。

次の正しい使用法はどれですか?

private HTableInterface aTable;

public XYZDAO(final HTablePool pool)
{
    this.aTable = pool.getTable(...);
}

public void doSomething(...)
{
    aTable.get(...)
}

または HTablePool はデータソースのように使用する必要があるため、このような使用法がより適切です

private HTablePool datasource;

public XYZDAO(final HTablePool pool)
{
    this.datasource = pool;
}

public void doSomething(...)
{
    HTableInterface aTable = datasource.getTable(...);
    aTable.get(...);
    aTable.close();
}
4

2 に答える 2

5

クラスはスレッド セーフではないHTablePoolためDatasource、2 番目の方法が最適です。のメソッドをHTable呼び出すと、テーブルが自動的にプールに返されます。closeHTableInterface

新しい HBase バージョンでHConnectionは廃止されたものを置き換えるインターフェイスがあることに注意してください。HTablePool

于 2012-08-30T22:57:27.577 に答える