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クラスが提供するメソッド一覧を次の表に示します。
メソッド名 |
説明 |
---|---|
valueをkeyに関連づけて格納します。 |
|
新規にkeyを格納する場合だけ,valueをkeyに関連づけて格納します。 |
|
指定したkeyがすでに格納されている場合だけ,valueをkeyに関連づけて格納します。 |
|
指定したkeyに関連づけられているvalueを,条件として指定したvalue(comparativeValue)と比較します。valueが一致している場合だけ,valueをkeyに関連づけて格納します。 |
|
指定したkeyに関連づけられたvalueを取得します。 |
|
指定したkey,およびkeyに関連づけられたvalueを削除します。 |
|
グループを指定して,ユーザファンクションを実行します。 |
|
グループおよび受信タイムアウト時間を指定して,ユーザファンクションを実行します。 |
|
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()を実行するスレッドのコンテキストクラスローダを変更しないでください。コンテキストクラスローダの設定が不正な場合,戻り値のオブジェクトのデシリアライズに失敗します。