Hitachi

インメモリデータグリッド uCosminexus Elastic Application Data store ユーザーズガイド


20.1.1 Cacheクラス

〈この項の構成〉

(1) 説明

データを操作するためのクラスです。

(2) 継承関係

java.lang.Object
 └com.hitachi.software.xeads.client.api.Cache

(3) 形式

public class Cache
extends java.lang.Object

(4) メソッド一覧

Cacheクラスが提供するメソッド一覧を次の表に示します。

メソッド名

説明

put()

valueをkeyに関連づけて格納します。

create()

新規にkeyを格納する場合だけ,valueをkeyに関連づけて格納します。

update()

指定したkeyがすでに格納されている場合だけ,valueをkeyに関連づけて格納します。

replace()

指定したkeyに関連づけられているvalueを,条件として指定したvalue(comparativeValue)と比較します。valueが一致している場合だけ,valueをkeyに関連づけて格納します。

get()

指定したkeyに関連づけられたvalueを取得します。

remove()

指定したkey,およびkeyに関連づけられたvalueを削除します。

executeFunction()(グループ指定)

グループを指定して,ユーザファンクションを実行します。

executeFunction()(グループおよび受信タイムアウト指定)

グループおよび受信タイムアウト時間を指定して,ユーザファンクションを実行します。

executeFunction()(EADsサーバ指定)

EADsサーバを指定して,ユーザファンクションを実行します。

executeFunction()(EADsサーバおよび受信タイムアウト指定)

EADsサーバおよび受信タイムアウト時間を指定して,ユーザファンクションを実行します。

(5) put()

(a) 機能

valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は,例外が返却されます。

(b) 形式

public void put(String key,
                Object value)
         throws CacheException

(c) パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては,「15.2.2(2) valueとして指定できるデータ」を参照してください。

(d) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(6) create()

(a) 機能

新規にkeyを格納する場合だけ,valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は,例外が返却されます。

(b) 形式

public void create(String key,
                   Object value)
            throws CacheException

(c) パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては,「15.2.2(2) valueとして指定できるデータ」を参照してください。

(d) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(7) update()

(a) 機能

指定したkeyがすでに格納されている場合だけ,valueをkeyに関連づけて格納します。

valueの格納で問題が発生した場合は,例外が返却されます。

(b) 形式

public void update(String key,
                   Object value)
            throws CacheException

(c) パラメータ

key

valueに関連づけるkeyを指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては,「15.2.2(2) valueとして指定できるデータ」を参照してください。

(d) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(8) replace()

(a) 機能

指定したkeyに関連づけられているvalueを,条件として指定したvalue(comparativeValue)と比較します。valueが一致している場合だけ,valueをkeyに関連づけて格納します。

valueの置き換えで問題が発生した場合は,例外が返却されます。

(b) 形式

public void replace(String key,
                    Object value,
                    Object comparativeValue)
             throws CacheException

(c) パラメータ

key

置き換えるvalueに関連づけられたkeyを指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

value

格納するvalueを指定します。

指定できるデータについては,「15.2.2(2) valueとして指定できるデータ」を参照してください。

comparativeValue

比較するvalueを指定します。

指定できるデータについては,「15.2.2(2) valueとして指定できるデータ」を参照してください。

(d) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(9) get()

(a) 機能

指定したkeyに関連づけられたvalueを取得します。

valueの取得で問題が発生した場合は,例外が返却されます。

(b) 形式

public java.lang.Object get(String key)
                     throws CacheException

(c) パラメータ

key

取得するvalueに関連づけられたkeyを指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

(d) 戻り値

keyに関連づけられたvalueが返却されます。

指定したkeyに何も関連づけられていなかった場合は,nullが返却されます。

(e) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(f) 注意事項

get()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合,戻り値のオブジェクトのデシリアライズに失敗します。

(10) remove()

(a) 機能

指定したkey,およびkeyに関連づけられたvalueを削除します。

valueの削除で問題が発生した場合は,例外が返却されます。

(b) 形式

public void remove(String key)
            throws CacheException

(c) パラメータ

key

削除するvalueに関連づけられたkeyを指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

(d) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(11) executeFunction()(グループ指定)

(a) 機能

グループを指定して,ユーザファンクションを実行します。

ユーザファンクションの実行で問題が発生した場合は,例外が返却されます。

(b) 形式

public Object executeFunction(String groupName,
                              String funcName,
                              Object arg)
                       throws CacheException

(c) パラメータ

groupName

グループ名を指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

funcName

ユーザファンクション名を指定します。

半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),ピリオド(.)またはドルマーク($)が指定できます。

文字数の制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合,エラーとなります。

オブジェクトのサイズに上限はありません。ただし,EADsサーバが受け付けることができるデータの最大サイズ(サーバ定義のeads.server.max.datasizeパラメタの指定値)を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

(d) 戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(f) 注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合,戻り値のオブジェクトのデシリアライズに失敗します。

(12) executeFunction()(グループおよび受信タイムアウト指定)

(a) 機能

グループおよび受信タイムアウト時間を指定して,ユーザファンクションを実行します。

受信タイムアウト時間には,クライアント定義のeads.connection.receive.timeoutパラメタの値ではなく,引数(recvTimeout)で指定した値を適用します。

ユーザファンクションの実行で問題が発生した場合は,例外が返却されます。

タイムアウトが発生した場合は,CacheException.EAD_ERROR_NET_TIMEOUTが返却されます。

(b) 形式

public Object executeFunction(String groupName,
                              String funcName,
                              Object arg,
                              int recvTimeout)
                       throws CacheException

(c) パラメータ

groupName

グループ名を指定します。

指定できるデータについては,「15.2.2(1) keyとして指定できるデータ」を参照してください。

funcName

ユーザファンクション名を指定します。

半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),ピリオド(.)またはドルマーク($)が指定できます。

文字数の制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合,エラーとなります。

オブジェクトのサイズに上限はありません。ただし,EADsサーバが受け付けることができるデータの最大サイズ(サーバ定義のeads.server.max.datasizeパラメタの指定値)を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

recvTimeout

データ受信のタイムアウト時間(単位:ミリ秒)を指定します。

指定できるデータについては,「9.3.3(3)(b) eads.connection.receive.timeout」を参照してください。

(d) 戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(f) 注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合,戻り値のオブジェクトのデシリアライズに失敗します。

(13) executeFunction()(EADsサーバ指定)

(a) 機能

EADsサーバを指定して,ユーザファンクションを実行します。

ユーザファンクションの実行で問題が発生した場合は,例外が返却されます。

(b) 形式

public Object executeFunction(Node targetNode,
                              String funcName,
                              Object arg)
                       throws CacheException

(c) パラメータ

targetNode

EADsサーバ(CacheManagerクラスから取得したNodeクラスのインスタンス)を指定します。それ以外のインスタンスを指定した場合の動作は保証しません。

次の場合は不正となります。

  • nullの場合

  • 指定したNodeクラスが保持するアドレス情報(IPアドレスおよびポート番号)が,EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しない場合

funcName

ユーザファンクション名を指定します。

半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),ピリオド(.)またはドルマーク($)が指定できます。

文字数に制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合,エラーとなります。

オブジェクトのサイズに上限はありません。ただし,EADsサーバが受け付けることができるデータの最大サイズ(サーバ定義のeads.server.max.datasizeパラメタの指定値)を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

(d) 戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(f) 注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合,戻り値のオブジェクトのデシリアライズに失敗します。

(14) executeFunction()(EADsサーバおよび受信タイムアウト指定)

(a) 機能

EADsサーバおよび受信タイムアウト時間を指定して,ユーザファンクションを実行します。

受信タイムアウト時間には,クライアント定義のeads.connection.receive.timeoutパラメタの値ではなく,引数(recvTimeout)で指定した値を適用します。

ユーザファンクションの実行で問題が発生した場合は,例外が返却されます。

タイムアウトが発生した場合は,CacheException.EAD_ERROR_NET_TIMEOUTが返却されます。

(b) 形式

public Object executeFunction(Node targetNode,
                              String funcName,
                              Object arg,
                              int recvTimeout)
                       throws CacheException

(c) パラメータ

targetNode

EADsサーバ(CacheManagerクラスから取得したNodeクラスのインスタンス)を指定します。それ以外のインスタンスを指定した場合の動作は保証しません。

次の場合は不正となります。

  • nullの場合

  • 指定したNodeクラスが保持するアドレス情報(IPアドレスおよびポート番号)が,EADsクライアントが保持するどのEADsサーバのアドレス情報とも一致しない場合

funcName

ユーザファンクション名を指定します。

半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),ピリオド(.)またはドルマーク($)が指定できます。

文字数に制限はありません。

nullまたは空文字列は不正となります。

arg

ユーザファンクションに渡す引数を指定します。

シリアライズできない場合,エラーとなります。

オブジェクトのサイズに上限はありません。ただし,EADsサーバが受け付けることができるデータの最大サイズ(サーバ定義のeads.server.max.datasizeパラメタの指定値)を超えない値を設定してください。

引数を渡さない場合はnullを指定します。

recvTimeout

データ受信のタイムアウト時間(単位:ミリ秒)を指定します。

指定できるデータについては,「9.3.3(3)(b) eads.connection.receive.timeout」を参照してください。

(d) 戻り値

ユーザファンクションで設定した実行結果が返却されます。

(e) 発生する例外

  • UserOperationException(ユーザの操作不正)

  • ServerCommunicationException(通信障害)

  • InternalServerException(EADsサーバの内部エラー)

  • InternalClientException(EADsクライアントの内部エラー)

(f) 注意事項

executeFunction()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合,戻り値のオブジェクトのデシリアライズに失敗します。