8.2. サーバースクリプトの作成
カスタムスクリプトを作成して、Data Grid サーバーに追加します。
8.2.1. サーバースクリプト リンクのコピーリンクがクリップボードにコピーされました!
Data Grid サーバーのスクリプトは javax.script API をベースとしており、JVM ベースの ScriptEngine 実装と互換性があります。
Hello World スクリプトの例
以下は、1 つの Data Grid サーバーで実行され、1 つのパラメーターを持ち、JavaScript を使用する簡単な例です。
// mode=local,language=javascript,parameters=[greetee] "Hello " + greetee
// mode=local,language=javascript,parameters=[greetee]
"Hello " + greetee
上記のスクリプトを実行するときに、greetee パラメーターの値を渡すと、Data Grid は "Hello ${value}" を返します。
8.2.1.1. スクリプトメタデータ リンクのコピーリンクがクリップボードにコピーされました!
メタデータは、スクリプトの実行中に Data Grid サーバーが使用するスクリプトに関する追加の情報を提供します。
スクリプトメタデータは、スクリプトの最初の行でコメントを追加する property=value ペアです。以下に例を示します。
// name=test, language=javascript // mode=local, parameters=[a,b,c]
// name=test, language=javascript
// mode=local, parameters=[a,b,c]
-
スクリプト言語 (
//,;;,#) に一致するコメントスタイルを使用してください。 -
コンマで区切られた
property=valueペア - 値は一重引用符 (') または二重引用符 (") で区切ります。
| プロパティー | 説明 |
|---|---|
|
| 実行モードを定義し、次の値を持ちます。
|
|
| スクリプトを実行する ScriptEngine を指定します。 |
|
| ScriptEngine を設定する代替方法としてファイル名の拡張子を指定します。 |
|
| ユーザーがスクリプトを実行する必要があるロールを指定します。 |
|
| このスクリプトの有効なパラメーター名の配列を指定します。このリストに含まれていないパラメーターを指定する呼び出しによって例外が生じます。 |
|
| オプションで、データおよびパラメーターおよび戻り値を保存する MediaType(MIME タイプ) を設定します。このプロパティーは、特定のデータフォーマットのみをサポートするリモートクライアントに便利です。
現在、データに String UTF-8 形式を使用するように、 |
8.2.1.2. スクリプトバインディング リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、内部オブジェクトをスクリプト実行のバインディングとして公開します。
| バインディング | 説明 |
|---|---|
|
| スクリプトが実行されるキャッシュを指定します。 |
|
| データをキャッシュにシリアル化するために使用するマーシャラーを指定します。 |
|
|
キャッシュの |
|
| スクリプトを実行するスクリプトマネージャーのインスタンスを指定します。このバインディングを使用して、スクリプトから他のスクリプトを実行することができます。 |
8.2.1.3. スクリプトパラメーター リンクのコピーリンクがクリップボードにコピーされました!
Data Grid を使用すると、スクリプトを実行するためのバインディングとして名前付きパラメーターを渡すことができます。
パラメーターは name,value のペアで、name は文字列、value はマーシャラーが解釈できる任意の値になります。
以下のスクリプトの例では、multiplicand と multiplier の 2 つのパラメーターがあります。このスクリプトは multiplicand の値を取り、その値を multiplier の値で乗算します。
// mode=local,language=javascript multiplicand * multiplier
// mode=local,language=javascript
multiplicand * multiplier
上記のスクリプトを実行すると、Data Grid は式の評価の結果で応答します。
8.2.2. Data Grid Server へのスクリプトの追加 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイスを使用して、Data Grid サーバーにスクリプトを追加します。
前提条件
Data Grid Server は、___script_cache キャッシュにスクリプトを保存します。キャッシュ承認を有効にする場合、ユーザーは ___script_cache にアクセスするために ___script_manager ロールを持っている必要があります。
手順
必要に応じてスクリプトを定義します。
たとえば、単一の Data Grid サーバーで実行し、2 つのパラメーターを持ち、JavaScript を使用して指定の値を掛ける
multiplication.jsという名前のファイルを作成します。// mode=local,language=javascript multiplicand * multiplier
// mode=local,language=javascript multiplicand * multiplierCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Data Grid への CLI 接続を作成します。
以下の例のように、
taskコマンドを使用してスクリプトをアップロードします。[//containers/default]> task upload --file=multiplication.js multiplication
[//containers/default]> task upload --file=multiplication.js multiplicationCopy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトが利用可能であることを確認します。
[//containers/default]> ls tasks multiplication
[//containers/default]> ls tasks multiplicationCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.3. プログラムでのスクリプトの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、Hot Rod RemoteCache インターフェイスを使用してスクリプトを追加します。
RemoteCache<String, String> scriptCache = cacheManager.getCache("___script_cache");
scriptCache.put("multiplication.js",
"// mode=local,language=javascript\n" +
"multiplicand * multiplier\n");
RemoteCache<String, String> scriptCache = cacheManager.getCache("___script_cache");
scriptCache.put("multiplication.js",
"// mode=local,language=javascript\n" +
"multiplicand * multiplier\n");