概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## okuyama.imdst.client
クラス OkuyamaClientFactory

    java.lang.Object
      okuyama.imdst.client.OkuyamaClientFactory

    public class OkuyamaClientFactory

extends java.lang.Object

OkuyamaClient用のコネクションプール.
本クラスを利用してOkuyamaClientの管理を行うことで、
Clientのプーリングが行われ、接続のコスト削減につながる.
利用方法)
// MasterNodeの接続情報を作成して、OkuyamaClientFactory.getFactoryに渡すことでコネクションプールを取得
// ここで取得されるインスタンスはシングルトンとなり全てのスレッドで唯一となる
// スレッド毎に新しいFactoryを利用したい場合はgetNewFactoryメソッドを利用する
String[] masterNodes = {"192.168.1.1:8888","192.168.1.2:8888"};
OkuyamaClientFactory factory = OkuyamaClientFactory.getFactory(masterNodes, 20);
// プールからClientを取得
OkuyamaClient okuyamaClient = factory.getClient();
// 以降は通常のOkuyamaClientの利用方法と同様
String[] getResult = okuyamaClient.getValue("Key-XXXX");
if (getResult[0].equals("true")) {
System.out.println(getResult[1]);
}
// close()を呼び出すことでコネクションプールに返却される
okuyamaClient.close();
// アプリケーションそのものを終了する際は以下でFactoryを終了させて全てのコネクションを破棄する
// 終了後も再度getFactoryを呼び出せば新たにfactoryが再生成される
factory.shutdown();

作成者:
  T.Okuyama

フィールドの概要
`static java.util.concurrent.ConcurrentHashMap` | `factoryMap`
`static java.lang.Object` | `lock`

メソッドの概要
`OkuyamaClient` | `getClient()` OkuyamaClientを取得する.
`static OkuyamaClientFactory` | `getFactory(java.lang.String[] masterNodeInfos, int maxClients)` OkuyamaClientのプールを取得する.
`static OkuyamaClientFactory` | `getNewFactory(java.lang.String[] masterNodeInfos, int maxClients)` OkuyamaClientのプールを取得する.
`void` | `shutdown()` Factoryを停止します.

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

フィールドの詳細

### lock

    public static java.lang.Object lock

### factoryMap

    public static java.util.concurrent.ConcurrentHashMap factoryMap

メソッドの詳細

### getFactory

    public static OkuyamaClientFactory getFactory(java.lang.String[] masterNodeInfos,
                                                  int maxClients)
                                           throws OkuyamaClientException

  OkuyamaClientのプールを取得する.
  本メソッドは接続先情報単位で唯一のFactoryのインスタンスが返される.
  本メソッドから取得したOkuyamaClientFactoryのインスタンスからgetClientにてOkuyamaClientを取得して利用する.

  パラメータ:
    `masterNodeInfos` - 接続するMasterNodeの情報
    1つで複数でも、配列にてMasterNodeの情報を指定する。フォーマットは"アドレス:Port"である
    例){"192.168.1:1:8888", "192.168.1.2:8888", "192.168.1.3:8888"}
    `maxClients` - 作成されるコネクションプール上でプーリングされる最大数
  例外:
    `OkuyamaClientException` - MasterNodeの指定間違い

### getNewFactory

    public static OkuyamaClientFactory getNewFactory(java.lang.String[] masterNodeInfos,
                                                     int maxClients)
                                              throws OkuyamaClientException

  OkuyamaClientのプールを取得する.
  !!本メソッドは呼び出し毎にコネクションプールが作成される!!.
  本メソッドから取得したOkuyamaClientFactoryのインスタンスからgetClientにてOkuyamaClientを取得して利用する.

  パラメータ:
    `masterNodeInfos` - 接続するMasterNodeの情報
    1つで複数でも、配列にてMasterNodeの情報を指定する。フォーマットは"アドレス:Port"である
    例){"192.168.1:1:8888", "192.168.1.2:8888", "192.168.1.3:8888"}
    `maxClients` - 作成されるコネクションプール上でプーリングされる最大数
  例外:
    `OkuyamaClientException` - MasterNodeの指定間違い

### getClient

    public OkuyamaClient getClient()
                            throws OkuyamaClientException

  OkuyamaClientを取得する.
  内部的に接続状態の確認を行ったのちに返却される
  プールに1つもOkuyamaClientが存在しない場合は新規に作成されて返される
  本メソッドから取得したOkuyamaClientのcloseメソッドを呼び出すことでプールに返却される

  例外:
    `OkuyamaClientException` - 有効なOkuyamaClientの返却に失敗

### shutdown

    public void shutdown()

  Factoryを停止します.
  本メソッドを呼び出した後のFactoryインスタンスは利用できなくなります。

  パラメータ:
    `client` -

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド