okuyama.imdst.client
クラス OkuyamaClient

java.lang.Object
  上位を拡張 okuyama.imdst.client.OkuyamaClient
直系の既知のサブクラス:
ImdstKeyValueClient

public class OkuyamaClient
extends java.lang.Object

MasterNodeと通信を行うクライアント
ユーザ開発アプリケーションが利用する想定.

使い方)

// Create Okuyama Client Instance
OkuyamaClient okuyamaClient = new OkuyamaClient();

try {
   // --------------
   // Connecting MasterNode
   okuyamaClient.connect(args[1], port);

   // Multi MasterNode
   // String[] infos = {"MasterNode01:PortNo","MasterNode02:PortNo","MasterNode03:PortNo"};
   // okuyamaClient.setConnectionInfos(infos);
   // okuyamaClient.autoConnect();


   // --------------
   // Set Value
   if (okuyamaClient.setValue("datasavekey_001", "savedatavalue_001")) {

     System.out.println("setValue - Success");
   } else {

     System.out.println("setValue - Error");
   }


   // --------------
   // Get Value
   String[] getRet = okuyamaClient.getValue("datasavekey_001");
   if (getRet[0].equals("true")) {

     // Data exists
     // Value is displayed
     System.out.println(ret[1]);
   } else if (getRet[0].equals("false")) {
   
     // Data not found
   } else if (getRet[0].equals("error")) {

     // Server error
     // ErrorMessage is displayed
     System.out.println(ret[1]);
   }


   // --------------
   // Set Value & Tag
   String[] tags = {"tag1", "tag2"};
   if (!okuyamaClient.setValue("datasavekey_001", tags, "savedatavalue_001")) {

     System.out.println("setValue - Error");
   } else {

     System.out.println("setValue - Success");
   }


   // --------------
   // Tag Get
   Object[] ret = okuyamaClient.getTagKeys("tag1");
   if (ret[0].equals("true")) {

     // Data exists
     String[] keys = (String[])ret[1];
     for (int idx = 0; idx < keys.length; idx++) {

       // Key is displayed
       System.out.println(keys[idx]);
     }
   } else if (ret[0].equals("false")) {

     // Data not found
   } else if (ret[0].equals("error")) {

     // Server error
     // ErrorMessage is displayed
     System.out.println(ret[1]);
   }


   // --------------
   // Remove Data
   String[] ret = okuyamaClient.removeValue("datasavekey_001");
   if (ret[0].equals("true")) {

     // Remove success
     // Removed data is displayed
     System.out.println(ret[1]);
   } else if (ret[0].equals("false")) {
  
     // Data not found
   } else if (ret[0].equals("error")) {
  
     // Server error
     // ErrorMessage is displayed
     System.out.println(ret[1]);
  
   }


   // --------------
   // Add New Value
   String[] retParam = okuyamaClient.setNewValue("NewKey", "value999");
   if(retParam[0].equals("false")) {
  
     // Register Error
     System.out.println(retParam[1]);
   } else {
  
     System.out.println("Register Success");
   }

} catch (OkuyamaClientException oce) {
   oce.printStackTrace();
} finally {
   try {
     // --------------
     // Close
     okuyamaClient.close();
   } catch (OkuyamaClientException oce2) {
     oce2.printStackTrace();
     okuyamaClient = null;
   }
}

作成者:
T.Okuyama

フィールドの概要
protected static java.lang.String blankStr
           
protected  java.io.BufferedReader br
           
protected static java.lang.String byteDataKeysSep
           
protected  boolean compressMode
           
protected static java.lang.String connectDefaultEncoding
           
protected static java.lang.String connectExitStr
           
protected  java.lang.StringBuilder getValueServerReqBuf
           
protected  java.util.ArrayList masterNodesList
           
protected  int maxKeySize
           
protected  int maxValueSize
           
protected  java.lang.String nowConnectServerInfo
           
protected  java.io.PrintWriter pw
           
protected  int saveSize
           
static java.lang.String SEARCH_VALUE_TYPE_AND
           
static java.lang.String SEARCH_VALUE_TYPE_OR
           
protected static java.lang.String sepStr
           
protected  java.lang.StringBuilder setValueServerReqBuf
           
protected  java.net.Socket socket
           
protected static java.lang.String tagKeySep
           
protected  java.lang.String transactionCode
           
 
コンストラクタの概要
OkuyamaClient()
          コンストラクタ
 
メソッドの概要
 void autoConnect()
          設定されたMasterNodeの接続情報を元に自動的に接続を行う.
 void close()
          MasterNodeとの接続を切断.
 void connect(java.lang.String server, int port)
          接続処理.
 void connect(java.lang.String server, int port, java.lang.String encoding)
          接続処理.
 void connect(java.lang.String server, int port, java.lang.String encoding, int openTimeout, int connectionTimeout)
          接続処理.
protected  byte[] dataDecoding(byte[] datas)
           
protected  byte[] dataEncoding(byte[] datas)
           
 java.lang.Object[] decrValue(java.lang.String keyStr, long value)
          MasterNodeへデータの減算を要求する.
 void endTransaction()
          Transactionを終了する.
protected  byte[] execCompress(byte[] bytes)
           
protected  byte[] execDecompres(byte[] bytes)
           
protected  java.lang.Object[] getByteData(java.lang.String keyStr)
          MasterNodeからKeyでデータを取得する(バイナリ).
 java.lang.Object[] getByteValue(java.lang.String keyStr)
          MasterNodeからKeyでValueを取得する(バイナリ).
 java.lang.Object[] getByteValueVer2(java.lang.String keyStr)
          MasterNodeからKeyでValueを取得する(バイナリ).
 java.util.Map getMultiValue(java.lang.String[] keyStrList)
          MasterNodeからKey値の配列を渡すことでValue値の集合を取得する.
 java.util.Map getMultiValue(java.lang.String[] keyStrList, java.lang.String encoding)
          MasterNodeからKey値の配列を渡すことでValue値の集合を取得する.
protected  java.lang.String getNowTransactionCode()
          トランザクションを開始している場合、自身のトランザクションを一意に表す コードを返す.
 java.lang.Object[] getTagKeys(java.lang.String tagStr)
          MasterNodeからTagでKey値配列を取得する.
 java.lang.Object[] getTagKeys(java.lang.String tagStr, boolean noExistsData)
          MasterNodeからTagでKey値配列を取得する.
 java.util.Map getTagValues(java.lang.String tagStr)
          MasterNodeからTag値を渡すことで紐付くValue値の集合を取得する.
 java.util.Map getTagValues(java.lang.String tagStr, java.lang.String encoding)
          MasterNodeからTag値を渡すことで紐付くValue値の集合を取得する.
 java.lang.String[] getValue(java.lang.String keyStr)
          MasterNodeからKeyでValueを取得する.
 java.lang.String[] getValue(java.lang.String keyStr, java.lang.String encoding)
          MasterNodeからKeyでValueを取得する.
 java.lang.String[] getValueScript(java.lang.String keyStr, java.lang.String scriptStr)
          MasterNodeからKeyでValueを取得する.
 java.lang.String[] getValueScript(java.lang.String keyStr, java.lang.String scriptStr, java.lang.String encoding)
          MasterNodeからKeyでデータを取得する.
 java.lang.String[] getValueScriptForUpdate(java.lang.String keyStr, java.lang.String scriptStr)
          MasterNodeからKeyでValueを取得する.
 java.lang.String[] getValueScriptForUpdate(java.lang.String keyStr, java.lang.String scriptStr, java.lang.String encoding)
          MasterNodeからKeyでデータを取得する.
 java.lang.String[] getValueVersionCheck(java.lang.String keyStr)
          MasterNodeからKeyでValueを取得する.
 java.lang.String[] getValueVersionCheck(java.lang.String keyStr, java.lang.String encoding)
          MasterNodeからKeyでValueを取得する.
 java.lang.Object[] incrValue(java.lang.String keyStr, long value)
          MasterNodeへデータの加算を要求する.
 boolean initClient()
          Clientを初期化する.
 java.lang.String[] lockData(java.lang.String keyStr, int lockingTime, int waitLockTime)
          データのLockを依頼する.
 java.lang.Object[] readByteValue(java.lang.String keyStr)
          MasterNodeからKeyでデータを取得する(バイナリ).
protected  java.lang.Object[] readSearchValueResponse(java.lang.String[] searchCharacterList, java.lang.String searchType, java.lang.String prefix)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
protected  java.lang.Object[] readSearchValueResponse(java.lang.String[] searchCharacterList, java.lang.String searchType, java.lang.String prefix, int searchIndexLen)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
 java.lang.String[] releaseLockData(java.lang.String keyStr)
          データのLock解除を依頼する.
 boolean removeSearchIndex(java.lang.String keyStr)
          全文検索用のIndexを削除する。
 boolean removeSearchIndex(java.lang.String keyStr, int indexLength)
          全文検索用のIndexを削除する。
 boolean removeSearchIndex(java.lang.String keyStr, java.lang.String indexPrefix)
          全文検索用のIndexを削除する。
 boolean removeSearchIndex(java.lang.String keyStr, java.lang.String indexPrefix, int indexLength)
          全文検索用のIndexを削除する。
 boolean removeTagFromKey(java.lang.String keyStr, java.lang.String tagStr)
          MasterNodeへKey値とTag値を指定してTagの紐付きを削除する.
 java.lang.String[] removeValue(java.lang.String keyStr)
          MasterNodeからKeyでValueを削除する.
 java.lang.String[] removeValue(java.lang.String keyStr, java.lang.String encoding)
          MasterNodeからKeyでデータを削除する.
 java.lang.Object[] searchValue(java.lang.String[] searchCharacterList, java.lang.String searchType)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
 java.lang.Object[] searchValue(java.lang.String[] searchCharacterList, java.lang.String searchType, int searchIndexLen)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
 java.lang.Object[] searchValue(java.lang.String[] searchCharacterList, java.lang.String searchType, java.lang.String prefix)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
 java.lang.Object[] searchValue(java.lang.String[] searchCharacterList, java.lang.String searchType, java.lang.String prefix, int searchIndexLen)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
 boolean sendByteValue(java.lang.String keyStr, byte[] values)
          MasterNodeへデータを送信する(バイナリデータ).
protected  void sendSearchValueRequest(java.lang.String[] searchCharacterList, java.lang.String searchType)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
protected  void sendSearchValueRequest(java.lang.String[] searchCharacterList, java.lang.String searchType, int searchIndexLen)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
protected  void sendSearchValueRequest(java.lang.String[] searchCharacterList, java.lang.String searchType, java.lang.String prefix, int searchIndexLen)
          MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
 boolean setByteValue(java.lang.String keyStr, byte[] values)
          MasterNodeへデータを登録要求する(バイナリデータ).
 boolean setByteValue(java.lang.String keyStr, java.lang.String[] tagStrs, byte[] values)
          MasterNodeへデータを登録要求する(バイナリデータ).
 void setCompressMode(boolean flg)
          データ保存時の圧縮指定.
 void setConnectionInfos(java.lang.String[] masterNodes)
          MasterNodeの接続情報を設定する.
 java.lang.String[] setNewValue(java.lang.String keyStr, java.lang.String value)
          MasterNodeへ新規データを登録要求する.
 java.lang.String[] setNewValue(java.lang.String keyStr, java.lang.String[] tagStrs, java.lang.String value)
          MasterNodeへ新規データを登録要求する.
protected  void setNowTransactionCode(java.lang.String transactionCode)
          他のクライアントが実施しているトランザクションコードを設定することで、 トランザクション処理を引き継ぐことが出来る。
 boolean setValue(java.lang.String keyStr, java.lang.String value)
          MasterNodeへデータを登録要求する.
 boolean setValue(java.lang.String keyStr, java.lang.String[] tagStrs, java.lang.String value)
          MasterNodeへデータを登録要求する.
 boolean setValueAndCreateIndex(java.lang.String keyStr, java.lang.String value)
          MasterNodeへデータを登録要求する.
 boolean setValueAndCreateIndex(java.lang.String keyStr, java.lang.String[] tagStrs, java.lang.String value, java.lang.String indexPrefix, int createIndexLen)
          MasterNodeへデータを登録要求する.
 boolean setValueAndCreateIndex(java.lang.String keyStr, java.lang.String value, java.lang.String indexPrefix)
          MasterNodeへデータを登録要求する.
 boolean setValueAndCreateIndex(java.lang.String keyStr, java.lang.String value, java.lang.String indexPrefix, int createIndexLen)
          MasterNodeへデータを登録要求する.
 java.lang.String[] setValueVersionCheck(java.lang.String keyStr, java.lang.String[] tagStrs, java.lang.String value, java.lang.String versionNo)
          MasterNodeへバージョンチェック付き値登録要求をする.
 java.lang.String[] setValueVersionCheck(java.lang.String keyStr, java.lang.String value, java.lang.String versionNo)
          MasterNodeへバージョンチェック付き値登録要求をする.
 boolean startTransaction()
          Transactionを開始する.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

masterNodesList

protected java.util.ArrayList masterNodesList

socket

protected java.net.Socket socket

nowConnectServerInfo

protected java.lang.String nowConnectServerInfo

pw

protected java.io.PrintWriter pw

br

protected java.io.BufferedReader br

transactionCode

protected java.lang.String transactionCode

SEARCH_VALUE_TYPE_AND

public static final java.lang.String SEARCH_VALUE_TYPE_AND
関連項目:
定数フィールド値

SEARCH_VALUE_TYPE_OR

public static final java.lang.String SEARCH_VALUE_TYPE_OR
関連項目:
定数フィールド値

sepStr

protected static final java.lang.String sepStr
関連項目:
定数フィールド値

connectDefaultEncoding

protected static final java.lang.String connectDefaultEncoding
関連項目:
定数フィールド値

blankStr

protected static final java.lang.String blankStr
関連項目:
定数フィールド値

connectExitStr

protected static final java.lang.String connectExitStr
関連項目:
定数フィールド値

tagKeySep

protected static final java.lang.String tagKeySep
関連項目:
定数フィールド値

byteDataKeysSep

protected static final java.lang.String byteDataKeysSep
関連項目:
定数フィールド値

saveSize

protected int saveSize

maxValueSize

protected int maxValueSize

maxKeySize

protected int maxKeySize

compressMode

protected boolean compressMode

setValueServerReqBuf

protected java.lang.StringBuilder setValueServerReqBuf

getValueServerReqBuf

protected java.lang.StringBuilder getValueServerReqBuf
コンストラクタの詳細

OkuyamaClient

public OkuyamaClient()
コンストラクタ

メソッドの詳細

setCompressMode

public void setCompressMode(boolean flg)
データ保存時の圧縮指定.

パラメータ:
flg - true:圧縮 false:非圧縮

setConnectionInfos

public void setConnectionInfos(java.lang.String[] masterNodes)
MasterNodeの接続情報を設定する.
本メソッドでセットし、autoConnect()メソッドを
呼び出すと、自動的にその時稼動しているMasterNodeにバランシングして
接続される。接続出来ない場合は、別のMasterNodeに再接続される.

パラメータ:
masterNodes - 接続情報の配列 "IP:PORT"の形式

autoConnect

public void autoConnect()
                 throws OkuyamaClientException
設定されたMasterNodeの接続情報を元に自動的に接続を行う.
接続出来ない場合自動的に別ノードへ再接続を行う.

パラメータ:
masterNodes - 接続情報の配列 "IP:PORT"の形式
例外:
OkuyamaClientException

connect

public void connect(java.lang.String server,
                    int port)
             throws OkuyamaClientException
接続処理.
エンコーディング指定なし.

パラメータ:
server - サーバ名
port - ポート番号
例外:
OkuyamaClientException

connect

public void connect(java.lang.String server,
                    int port,
                    java.lang.String encoding)
             throws OkuyamaClientException
接続処理.
エンコーディング指定なし.

パラメータ:
server - サーバ名
port - ポート番号
例外:
OkuyamaClientException

connect

public void connect(java.lang.String server,
                    int port,
                    java.lang.String encoding,
                    int openTimeout,
                    int connectionTimeout)
             throws OkuyamaClientException
接続処理.
エンコーディング指定有り.

パラメータ:
server - サーバ名
port - ポート番号
encoding - サーバとのストリームエンコーディング指定(デフォルトUTF-8)
例外:
OkuyamaClientException

close

public void close()
           throws OkuyamaClientException
MasterNodeとの接続を切断.

例外:
OkuyamaClientException

initClient

public boolean initClient()
                   throws OkuyamaClientException
Clientを初期化する.
今のところはValueの最大保存サイズの初期化のみ.
※本メソッドは内部で自動的に呼び出されるので特に呼び出す必要はない.
※あまりに長時間コネクションプールを行う場合に呼び出せば
その都度サイズを初期化できる.

戻り値:
boolean true:開始成功 false:開始失敗
例外:
OkuyamaClientException

startTransaction

public boolean startTransaction()
                         throws OkuyamaClientException
Transactionを開始する.
データロック、ロックリリースを使用する場合は、
事前に呼び出す必要がある.

戻り値:
boolean true:開始成功 false:開始失敗
例外:
OkuyamaClientException

endTransaction

public void endTransaction()
Transactionを終了する.
データロック、ロックリリースの使用を完了後に、
呼び出すことで、現在使用中のTransactionを終了できる


lockData

public java.lang.String[] lockData(java.lang.String keyStr,
                                   int lockingTime,
                                   int waitLockTime)
                            throws OkuyamaClientException
データのLockを依頼する.
本メソッドは、startTransactionメソッドを呼び出した場合のみ有効である

パラメータ:
keyStr - ロック対象のKey値
lockingTime - Lockを取得後、維持する時間(この時間を経過すると自動的にLockが解除される)(単位は秒)(0は無制限)
waitLockTime - Lockを取得する場合に既に取得中の場合この時間はLock取得をリトライする(単位は秒)(0は1度取得を試みる)
戻り値:
String[] 要素1(Lock成否):"true" or "false"
例外:
OkuyamaClientException

releaseLockData

public java.lang.String[] releaseLockData(java.lang.String keyStr)
                                   throws OkuyamaClientException
データのLock解除を依頼する.
本メソッドは、startTransactionメソッドを呼び出した場合のみ有効である.

パラメータ:
keyStr - ロック対象Key値
戻り値:
String[] 要素1(Lock解除成否):"true" or "false"
例外:
OkuyamaClientException

getNowTransactionCode

protected java.lang.String getNowTransactionCode()
トランザクションを開始している場合、自身のトランザクションを一意に表す コードを返す. このコードをsetNowTransactionCodeに渡すと、別クライアントのTransactionを引き継げる !! 他クライアントの処理を横取ることが出来るため、使用を推奨しない !!

戻り値:
String

setNowTransactionCode

protected void setNowTransactionCode(java.lang.String transactionCode)
他のクライアントが実施しているトランザクションコードを設定することで、 トランザクション処理を引き継ぐことが出来る。 !!! 他クライアントの処理を横取ることが出来るため、使用を推奨しない !!!


setValue

public boolean setValue(java.lang.String keyStr,
                        java.lang.String value)
                 throws OkuyamaClientException
MasterNodeへデータを登録要求する.
Tagなし.

パラメータ:
keyStr - Key値
value - value値
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setValue

public boolean setValue(java.lang.String keyStr,
                        java.lang.String[] tagStrs,
                        java.lang.String value)
                 throws OkuyamaClientException
MasterNodeへデータを登録要求する.
Tag有り.

パラメータ:
keyStr - Key値
tagStrs - Tag値の配列 例){"tag1","tag2","tag3"}
value - value値
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setValueAndCreateIndex

public boolean setValueAndCreateIndex(java.lang.String keyStr,
                                      java.lang.String value)
                               throws OkuyamaClientException
MasterNodeへデータを登録要求する.
登録と同時にValueの検索Indexを作成する
検索Indexを作成するので通常のSetに比べて時間がかかる.
全文Indexが作成されるので、値は検索可能な文字を指定すること。例えばBASE64エンコードの値などの場合は
検索時も同様にエンコードした値で検索する必要がある.
※okuyamaは検索Index作成前に、同様のKey値で値が登録されている場合は、そのKey値で登録されているValue値の
検索インデックスを削除してから登録が行われる.
Tagなし.
Prefixなし.

パラメータ:
keyStr - Key値
value - value値
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setValueAndCreateIndex

public boolean setValueAndCreateIndex(java.lang.String keyStr,
                                      java.lang.String value,
                                      java.lang.String indexPrefix)
                               throws OkuyamaClientException
MasterNodeへデータを登録要求する.
登録と同時にValueの検索Indexを作成する
検索Indexを作成するので通常のSetに比べて時間がかかる.
全文Indexが作成されるので、値は検索可能な文字を指定すること。例えばBASE64エンコードの値などの場合は
検索時も同様にエンコードした値で検索する必要がある.
※okuyamaは検索Index作成前に、同様のKey値で値が登録されている場合は、そのKey値で登録されているValue値の
検索インデックスを削除してから登録が行われる.
Tagなし.

パラメータ:
keyStr - Key値
value - value値
indexPrefix - 作成する検索IndexをグルーピングするPrefix文字列.この値と同様の値を指定してsearchValueメソッドを呼び出すと、グループに限定して全文検索が可能となる. 最大は128文字
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setValueAndCreateIndex

public boolean setValueAndCreateIndex(java.lang.String keyStr,
                                      java.lang.String value,
                                      java.lang.String indexPrefix,
                                      int createIndexLen)
                               throws OkuyamaClientException
MasterNodeへデータを登録要求する.
登録と同時にValueの検索Indexを作成する
検索Indexを作成するので通常のSetに比べて時間がかかる.
全文Indexが作成されるので、値は検索可能な文字を指定すること。例えばBASE64エンコードの値などの場合は
検索時も同様にエンコードした値で検索する必要がある.
※okuyamaは検索Index作成前に、同様のKey値で値が登録されている場合は、そのKey値で登録されているValue値の
検索インデックスを削除してから登録が行われる.
Tagなし.

パラメータ:
keyStr - Key値
value - value値
indexPrefix - 作成する検索IndexをグルーピングするPrefix文字列.この値と同様の値を指定してsearchValueメソッドを呼び出すと、グループに限定して全文検索が可能となる. 最大は128文字
createIndexLen - 作成するN-GramIndexのNの部分を指定(ヒストグラム以上のIndexを作成可能)
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setValueAndCreateIndex

public boolean setValueAndCreateIndex(java.lang.String keyStr,
                                      java.lang.String[] tagStrs,
                                      java.lang.String value,
                                      java.lang.String indexPrefix,
                                      int createIndexLen)
                               throws OkuyamaClientException
MasterNodeへデータを登録要求する.
登録と同時にValueの検索Indexを作成する
検索Indexを作成するので通常のSetに比べて時間がかかる.
全文Indexが作成されるので、値は検索可能な文字を指定すること。例えばBASE64エンコードの値などの場合は
検索時も同様にエンコードした値で検索する必要がある.
※okuyamaは検索Index作成前に、同様のKey値で値が登録されている場合は、そのKey値で登録されているValue値の
検索インデックスを削除してから登録が行われる.
Tag有り.

パラメータ:
keyStr - Key値
tagStrs - Tag値の配列 例){"tag1","tag2","tag3"}
value - value値
indexPrefix - 作成する検索IndexをグルーピングするPrefix文字列.この値と同様の値を指定してsearchValueメソッドを呼び出すと、グループに限定して全文検索が可能となる. 最大は128文字
createIndexLen - 作成するN-GramIndexのNの部分を指定(ヒストグラム以上のIndexを作成可能)
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setNewValue

public java.lang.String[] setNewValue(java.lang.String keyStr,
                                      java.lang.String value)
                               throws OkuyamaClientException
MasterNodeへ新規データを登録要求する.
Tagなし.
既にデータが同一のKeyで登録されている場合は失敗する.
その場合は、falseが返る
成功の場合は配列の長さは1である。失敗時は2である

パラメータ:
keyStr - Key値
value - Value値
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(失敗時はメッセージ):"メッセージ"
例外:
OkuyamaClientException

setNewValue

public java.lang.String[] setNewValue(java.lang.String keyStr,
                                      java.lang.String[] tagStrs,
                                      java.lang.String value)
                               throws OkuyamaClientException
MasterNodeへ新規データを登録要求する.
Tag有り.
既にデータが同一のKeyで登録されている場合は失敗する.
その場合は、falseが返る
成功の場合は配列の長さは1である。失敗時は2である

パラメータ:
keyStr - Key値
tagStrs - Tag値 例){"tag1","tag2","tag3"}
value - Value値
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(失敗時はメッセージ):"メッセージ"
例外:
OkuyamaClientException

setValueVersionCheck

public java.lang.String[] setValueVersionCheck(java.lang.String keyStr,
                                               java.lang.String value,
                                               java.lang.String versionNo)
                                        throws OkuyamaClientException
MasterNodeへバージョンチェック付き値登録要求をする.
Tagなし.
バージョン値を使用して更新前チェックを行う.
失敗した場合は、falseが返る
成功の場合は配列の長さは1である。失敗時は2である
memcachedのcasに相当.

パラメータ:
keyStr - Key値
value - Value値
versionNo - getValueVersionCheckメソッドで取得したバージョンNo
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(失敗時はメッセージ):"メッセージ"
例外:
OkuyamaClientException

setValueVersionCheck

public java.lang.String[] setValueVersionCheck(java.lang.String keyStr,
                                               java.lang.String[] tagStrs,
                                               java.lang.String value,
                                               java.lang.String versionNo)
                                        throws OkuyamaClientException
MasterNodeへバージョンチェック付き値登録要求をする.
Tag有り.
バージョン値を使用して更新前チェックを行う.
失敗した場合は、falseが返る
成功の場合は配列の長さは1である。失敗時は2である
memcachedのcasに相当.

パラメータ:
keyStr - Key値
tagStrs - Tag値
value - Value値
versionNo - getValueVersionCheckメソッドで取得したバージョンNo
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(失敗時はメッセージ):"メッセージ"
例外:
OkuyamaClientException

setByteValue

public boolean setByteValue(java.lang.String keyStr,
                            byte[] values)
                     throws OkuyamaClientException
MasterNodeへデータを登録要求する(バイナリデータ).
Tagなし.

パラメータ:
keyStr - Key値
values - Value値(byte配列)
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

setByteValue

public boolean setByteValue(java.lang.String keyStr,
                            java.lang.String[] tagStrs,
                            byte[] values)
                     throws OkuyamaClientException
MasterNodeへデータを登録要求する(バイナリデータ).
Tag有り.
処理の流れとしては、まずvalueを一定の容量で区切り、その単位で、
Key値にプレフィックスを付けた値を作成し、かつ、特定のセパレータで連結して、
渡されたKeyを使用して連結文字を保存する

パラメータ:
keyStr - Key値
tagStrs - Tag値
values - Value値(byte配列)
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

sendByteValue

public boolean sendByteValue(java.lang.String keyStr,
                             byte[] values)
                      throws OkuyamaClientException
MasterNodeへデータを送信する(バイナリデータ).
setByteValueメソッドとの違いはValueをSplitしないで登録する部分.

パラメータ:
keyStr - Key値
values - Value値
戻り値:
boolean 登録成否
例外:
OkuyamaClientException

getValue

public java.lang.String[] getValue(java.lang.String keyStr)
                            throws OkuyamaClientException
MasterNodeからKeyでValueを取得する.
文字列エンコーディング指定なし.
デフォルトエンコーディングにて復元.

パラメータ:
keyStr - Key値
戻り値:
String[] 要素1(データ有無):"true" or "false", 要素2(データ):"データ文字列"
例外:
OkuyamaClientException

getValue

public java.lang.String[] getValue(java.lang.String keyStr,
                                   java.lang.String encoding)
                            throws OkuyamaClientException
MasterNodeからKeyでValueを取得する.
文字列エンコーディング指定あり.

パラメータ:
keyStr - Key値
encoding - エンコーディング指定
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(データ):"データ文字列"
例外:
OkuyamaClientException

getMultiValue

public java.util.Map getMultiValue(java.lang.String[] keyStrList)
                            throws OkuyamaClientException
MasterNodeからKey値の配列を渡すことでValue値の集合を取得する.
文字列エンコーディング指定なし.
デフォルトエンコーディングにて復元.

パラメータ:
keyStrList - Key値配列
戻り値:
Map 取得データのMap 取得キーに同一の値を複数指定した場合は束ねられる Mapのキー値は指定されたKeyとなりValueは取得した値となる
例外:
OkuyamaClientException

getMultiValue

public java.util.Map getMultiValue(java.lang.String[] keyStrList,
                                   java.lang.String encoding)
                            throws OkuyamaClientException
MasterNodeからKey値の配列を渡すことでValue値の集合を取得する.
文字列エンコーディング指定あり.

パラメータ:
keyStrList - Key値配列
encoding - エンコーディング指定
戻り値:
Map 取得データのMap 取得キーに同一の値を複数指定した場合は束ねられる Mapのキー値は指定されたKeyとなりValueは取得した値となる
例外:
OkuyamaClientException

getTagValues

public java.util.Map getTagValues(java.lang.String tagStr)
                           throws OkuyamaClientException
MasterNodeからTag値を渡すことで紐付くValue値の集合を取得する.
文字列エンコーディング指定なし.
デフォルトエンコーディングにて復元.

パラメータ:
tagStr - Tag値
戻り値:
Map 取得データのMap 取得キーに同一の値を複数指定した場合は束ねられる Mapのキー値は指定されたKeyとなりValueは取得した値となる
例外:
OkuyamaClientException

getTagValues

public java.util.Map getTagValues(java.lang.String tagStr,
                                  java.lang.String encoding)
                           throws OkuyamaClientException
MasterNodeからTag値を渡すことで紐付くValue値の集合を取得する.
文字列エンコーディング指定あり.

パラメータ:
tagStr - Tag値
encoding - エンコーディング指定
戻り値:
Map 取得データのMap 取得キーに同一の値を複数指定した場合は束ねられる Mapのキー値は指定されたKeyとなりValueは取得した値となる
例外:
OkuyamaClientException

getValueVersionCheck

public java.lang.String[] getValueVersionCheck(java.lang.String keyStr)
                                        throws OkuyamaClientException
MasterNodeからKeyでValueを取得する.
文字列エンコーディング指定なし.
デフォルトエンコーディングにて復元.
バージョン情報(memcachedでのcasユニーク値)を返す.
memcachedのgetsに相当.

パラメータ:
keyStr - Key値
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(データ):"データ文字列",要素3(VersionNo):"0始まりの数値"
例外:
OkuyamaClientException

getValueVersionCheck

public java.lang.String[] getValueVersionCheck(java.lang.String keyStr,
                                               java.lang.String encoding)
                                        throws OkuyamaClientException
MasterNodeからKeyでValueを取得する.
文字列エンコーディング指定あり.
バージョン情報(memcachedでのcasユニーク値)を返す.
memcachedのgetsに相当.

パラメータ:
keyStr - Key値
encoding -
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(データ):"データ文字列",要素3(VersionNo):"0始まりの数値"
例外:
OkuyamaClientException

incrValue

public java.lang.Object[] incrValue(java.lang.String keyStr,
                                    long value)
                             throws OkuyamaClientException
MasterNodeへデータの加算を要求する.

パラメータ:
keyStr - Key値
value - 加算値
戻り値:
Object[] 要素1(処理成否):Boolean true/false,要素2(演算後の結果):Long 数値
例外:
OkuyamaClientException

decrValue

public java.lang.Object[] decrValue(java.lang.String keyStr,
                                    long value)
                             throws OkuyamaClientException
MasterNodeへデータの減算を要求する.

パラメータ:
keyStr - Key値
value - 減算値
戻り値:
Object[] 要素1(処理成否):Boolean true/false,要素2(演算後の結果):Long 数値
例外:
OkuyamaClientException

getValueScript

public java.lang.String[] getValueScript(java.lang.String keyStr,
                                         java.lang.String scriptStr)
                                  throws OkuyamaClientException
MasterNodeからKeyでValueを取得する.
Scriptを同時に実行する.
文字列エンコーディング指定なし.

パラメータ:
keyStr - キー値
scriptStr - スクリプト文
戻り値:
String[] 要素1(データ、エラー有無):"true" or "false" or "error", 要素2(データorエラー内容):"文字列"
例外:
OkuyamaClientException

getValueScript

public java.lang.String[] getValueScript(java.lang.String keyStr,
                                         java.lang.String scriptStr,
                                         java.lang.String encoding)
                                  throws OkuyamaClientException
MasterNodeからKeyでデータを取得する.
Scriptを同時に実行する.
文字エンコーディング指定あり.

パラメータ:
keyStr - キー値
scriptStr - スクリプト文
encoding - エンコード指定
戻り値:
String[] 要素1(データ、エラー有無):"true" or "false" or "error", 要素2(データorエラー内容):"文字列"
例外:
OkuyamaClientException

getValueScriptForUpdate

public java.lang.String[] getValueScriptForUpdate(java.lang.String keyStr,
                                                  java.lang.String scriptStr)
                                           throws OkuyamaClientException
MasterNodeからKeyでValueを取得する.
Scriptを同時に実行する.
ScriptにValue更新指示を記述してる場合はこちらを実行する.
文字列エンコーディング指定なし.

パラメータ:
keyStr - キー値
scriptStr - スクリプト文
戻り値:
String[] 要素1(データ、エラー有無):"true" or "false" or "error", 要素2(データorエラー内容):"文字列"
例外:
OkuyamaClientException

getValueScriptForUpdate

public java.lang.String[] getValueScriptForUpdate(java.lang.String keyStr,
                                                  java.lang.String scriptStr,
                                                  java.lang.String encoding)
                                           throws OkuyamaClientException
MasterNodeからKeyでデータを取得する.
Scriptを同時に実行する.
ScriptにValue更新指示を記述してる場合はこちらを実行する.
文字列エンコーディング指定あり.

パラメータ:
keyStr - キー値
scriptStr - スクリプト文
encoding -
戻り値:
String[] 要素1(データ、エラー有無):"true" or "false" or "error", 要素2(データorエラー内容):"文字列"
例外:
OkuyamaClientException

removeValue

public java.lang.String[] removeValue(java.lang.String keyStr)
                               throws OkuyamaClientException
MasterNodeからKeyでValueを削除する.

パラメータ:
keyStr - Key値
戻り値:
String[] 要素1(データ有無):"true" or "false",要素2(データ):"データ文字列"
例外:
OkuyamaClientException

removeValue

public java.lang.String[] removeValue(java.lang.String keyStr,
                                      java.lang.String encoding)
                               throws OkuyamaClientException
MasterNodeからKeyでデータを削除する.
取得値のエンコーディング指定あり.

パラメータ:
keyStr - Key値
戻り値:
String[] 削除したデータ 内容) 要素1(データ削除有無):"true" or "false",要素2(削除データ):"データ文字列"
例外:
OkuyamaClientException

removeTagFromKey

public boolean removeTagFromKey(java.lang.String keyStr,
                                java.lang.String tagStr)
                         throws OkuyamaClientException
MasterNodeへKey値とTag値を指定してTagの紐付きを削除する.

パラメータ:
keyStr - Key値
tagStr - tag値
戻り値:
boolean 削除成否
例外:
OkuyamaClientException

removeSearchIndex

public boolean removeSearchIndex(java.lang.String keyStr)
                          throws OkuyamaClientException
全文検索用のIndexを削除する。 Prefixなし
検索Index長さ指定なし

パラメータ:
keyStr - Key値
戻り値:
boolean 削除成否
例外:
OkuyamaClientException

removeSearchIndex

public boolean removeSearchIndex(java.lang.String keyStr,
                                 java.lang.String indexPrefix)
                          throws OkuyamaClientException
全文検索用のIndexを削除する。 Prefixあり
検索Index長さ指定なし

パラメータ:
keyStr - Key値
indexPrefix - 作成時に設定したIndexのPrefix値
戻り値:
boolean 削除成否
例外:
OkuyamaClientException

removeSearchIndex

public boolean removeSearchIndex(java.lang.String keyStr,
                                 int indexLength)
                          throws OkuyamaClientException
全文検索用のIndexを削除する。 Prefixなし
検索Index長さ指定あり

パラメータ:
keyStr - Key値
indexLength - 作成時に指定した作成Indexの長さ指定
戻り値:
boolean 削除成否
例外:
OkuyamaClientException

removeSearchIndex

public boolean removeSearchIndex(java.lang.String keyStr,
                                 java.lang.String indexPrefix,
                                 int indexLength)
                          throws OkuyamaClientException
全文検索用のIndexを削除する。 Prefixあり
検索Index長さ指定あり

パラメータ:
keyStr - Key値
indexPrefix - 作成時に設定したIndexのPrefix値
indexLength - 作成時に指定した作成Indexの長さ指定
戻り値:
boolean 削除成否
例外:
OkuyamaClientException

getByteValue

public java.lang.Object[] getByteValue(java.lang.String keyStr)
                                throws OkuyamaClientException
MasterNodeからKeyでValueを取得する(バイナリ).
setByteValueで登録したValueはこちらで取得する.

パラメータ:
keyStr - Key値
戻り値:
Object[] 要素1(String)(データ有無):"true" or "false",要素2(byte[])(データ):{バイト配列}
例外:
OkuyamaClientException

getByteValueVer2

public java.lang.Object[] getByteValueVer2(java.lang.String keyStr)
                                    throws OkuyamaClientException
MasterNodeからKeyでValueを取得する(バイナリ).
setByteValueメソッドで登録したValueはこちらで取得する.
getByteValueよりもこちらのほうが高速に動作する.

パラメータ:
keyStr - Key値
戻り値:
Object[] 要素1(String)(データ有無):"true" or "false",要素2(byte[])(データ):{バイト配列}
例外:
OkuyamaClientException

getByteData

protected java.lang.Object[] getByteData(java.lang.String keyStr)
                                  throws OkuyamaClientException
MasterNodeからKeyでデータを取得する(バイナリ).

パラメータ:
keyStr - Key値
戻り値:
Object[] 要素1(String)(データ有無):"true" or "false",要素2(byte[])(データ):{バイト配列}
例外:
OkuyamaClientException

readByteValue

public java.lang.Object[] readByteValue(java.lang.String keyStr)
                                 throws OkuyamaClientException
MasterNodeからKeyでデータを取得する(バイナリ).
sendByteValueで登録したValueはこちらで取得する.

パラメータ:
keyStr - Key値
戻り値:
Object[] 要素1(String)(データ有無):"true" or "false",要素2(byte[])(データ):{バイト配列}
例外:
OkuyamaClientException

getTagKeys

public java.lang.Object[] getTagKeys(java.lang.String tagStr)
                              throws OkuyamaClientException
MasterNodeからTagでKey値配列を取得する.

パラメータ:
tagStr - Tag値
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(Key値配列):Stringの配列
例外:
OkuyamaClientException

getTagKeys

public java.lang.Object[] getTagKeys(java.lang.String tagStr,
                                     boolean noExistsData)
                              throws OkuyamaClientException
MasterNodeからTagでKey値配列を取得する.
Tagは打たれているが実際は既に存在しないValueをどのように扱うかを指定できる.

パラメータ:
tagStr - Tag値
noExistsData - 存在していないデータを取得するかの指定(true:取得する false:取得しない)
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(Key値配列):Stringの配列
例外:
OkuyamaClientException

searchValue

public java.lang.Object[] searchValue(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiなし.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - "1":AND検索 "2":OR検索
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(該当のKey値配列):Stringの配列
例外:
OkuyamaClientException

searchValue

public java.lang.Object[] searchValue(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType,
                                      int searchIndexLen)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiなし.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
searchIndexLen - 検索するIndexをヒストグラムIndex以上にする場合にそのIndexの長さを指定
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(該当のKey値配列):Stringの配列
例外:
OkuyamaClientException

searchValue

public java.lang.Object[] searchValue(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType,
                                      java.lang.String prefix)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiあり.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
prefix - 検索Index作成時に指定したPrefix値
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(該当のKey値配列):Stringの配列
例外:
OkuyamaClientException

searchValue

public java.lang.Object[] searchValue(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType,
                                      java.lang.String prefix,
                                      int searchIndexLen)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiあり.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
prefix - 検索Index作成時に指定したPrefix値
searchIndexLen - 検索するIndexをヒストグラムIndex以上にする場合にそのIndexの長さを指定
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(該当のKey値配列):Stringの配列
例外:
OkuyamaClientException

sendSearchValueRequest

protected void sendSearchValueRequest(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiなし.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
例外:
OkuyamaClientException

sendSearchValueRequest

protected void sendSearchValueRequest(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType,
                                      int searchIndexLen)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiなし.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
searchIndexLen - 検索するIndexをヒストグラムIndex以上にする場合にそのIndexの長さを指定
例外:
OkuyamaClientException

sendSearchValueRequest

protected void sendSearchValueRequest(java.lang.String[] searchCharacterList,
                                      java.lang.String searchType,
                                      java.lang.String prefix,
                                      int searchIndexLen)
                               throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiあり.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
prefix - 検索Index作成時に指定したPrefix値
searchIndexLen - 検索するIndexをヒストグラムIndex以上にする場合にそのIndexの長さを指定
例外:
OkuyamaClientException

readSearchValueResponse

protected java.lang.Object[] readSearchValueResponse(java.lang.String[] searchCharacterList,
                                                     java.lang.String searchType,
                                                     java.lang.String prefix)
                                              throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiあり.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
prefix - 検索Index作成時に指定したPrefix値
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(該当のKey値配列):Stringの配列
例外:
OkuyamaClientException

readSearchValueResponse

protected java.lang.Object[] readSearchValueResponse(java.lang.String[] searchCharacterList,
                                                     java.lang.String searchType,
                                                     java.lang.String prefix,
                                                     int searchIndexLen)
                                              throws OkuyamaClientException
MasterNodeからsetValueAndCreateIndexで作成されたIndexを使って検索して該当する値を取得する.
検索可能な文字列は1文字からで、最大は128文字(ソフトリミット).
Prefxiあり.

パラメータ:
searchCharacterList - 取得したい値の文字配列(エンコードはUTF-8固定)
searchType - 1:AND検索 2:OR検索
prefix - 検索Index作成時に指定したPrefix値
searchIndexLen - 検索するIndexをヒストグラムIndex以上にする場合にそのIndexの長さを指定
戻り値:
Object[] 要素1(データ有無):"true" or "false",要素2(該当のKey値配列):Stringの配列
例外:
OkuyamaClientException

dataEncoding

protected byte[] dataEncoding(byte[] datas)

dataDecoding

protected byte[] dataDecoding(byte[] datas)

execCompress

protected byte[] execCompress(byte[] bytes)
                       throws java.lang.Exception
例外:
java.lang.Exception

execDecompres

protected byte[] execDecompres(byte[] bytes)
                        throws java.lang.Exception
例外:
java.lang.Exception