Hitachi

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


20.1.33 ead_execute_node_function_rt()(EADSサーバおよび受信タイムアウト指定によるユーザファンクションの実行)

〈この項の構成〉

(1) 機能

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

ead_execute_node_function_rt()の実行中は,クライアント定義のeads.client.connection.receive.timeoutパラメタの値を使用しません。

(2) 形式

#include <eads.h>
ead_object ead_execute_node_function_rt
(
  const EAD_CACHE      *cp,             /* In */
  const ead_node       *target_node,    /* In */
  const char           *func_name,      /* In */
  const ead_object     *arg,            /* In */
  int                  recv_timeout,    /* In */
  int                  *error_code      /* Out */
);

(3) 引数

cp

ユーザファンクションを実行するキャッシュのハンドル(ポインタ)を指定します。

ead_start_cache()で取得したハンドルを指定してください。

target_node

ユーザファンクションを実行するEADSサーバ(ead_node構造体)を指すポインタを指定します。

EADSが提供するクライアントライブラリを使用して取得したead_node構造体のポインタだけ指定できます。それ以外のポインタを指定した場合の動作は保証しません。

ead_node構造体の形式と説明については,「20.1.54 ead_node構造体(EADSサーバ指定のユーザファンクションで使用するオブジェクト)」を参照してください。

指定したead_node構造体が格納するアドレス情報(IPアドレスおよびポート番号)が,EADSクライアントが保持するどのEADSサーバのアドレス情報とも一致しない場合,エラーとなります。

func_name

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

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

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

arg

ユーザファンクションに渡す引数(ead_object構造体)を指定します。

ead_object構造体の形式と説明については,「20.1.52 ead_object構造体(ユーザファンクションで使用するオブジェクト)」を参照してください。

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

recv_timeout

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

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

error_code

エラーコード取得先のポインタを指定します。

エラーコードについては,「20.2 クライアントライブラリのエラーコード(C言語)」を参照してください。

(4) 戻り値

ead_execute_node_function_rt()が正常に終了した場合は,ユーザファンクションの実行結果(ead_object構造体)が返却されます。

ead_object構造体の形式と説明については,「20.1.52 ead_object構造体(ユーザファンクションで使用するオブジェクト)」を参照してください。

ead_object構造体のobject_sizeメンバは,ユーザファンクションの戻り値に指定したバイト配列のサイズになります。

次の場合は,ead_object構造体のobjectメンバにNULLが設定されます。

(5) 注意事項

戻り値として返却された,ユーザファンクションの実行結果を格納するメモリ領域は,自動的に解放されないため,APで解放してください。詳細については,「19.1.1(10) 戻り値として返却されたメモリ領域を解放する」を参照してください。