13.2. Data Grid Server デプロイメントへのスクリプトの追加
コマンドラインインターフェイスを使用して、スクリプトを Data Grid Server に追加します。
前提条件
Data Grid Server は、___script_cache
キャッシュにスクリプトを保存します。キャッシュ承認を有効にする場合、ユーザーは ___script_cache
に追加するための CREATE
パーミッションを持っている必要があります。
デフォルトの承認設定を使用する場合は、ユーザーに少なくとも deployer
ロールを割り当てます。
手順
必要に応じてスクリプトを定義します。
たとえば、単一の Data Grid サーバーで実行し、2 つのパラメーターを持ち、JavaScript を使用して指定の値を掛ける
multiplication.js
という名前のファイルを作成します。// mode=local,language=javascript multiplicand * multiplier
// mode=local,language=javascript multiplicand * multiplier
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Data Grid への CLI 接続を作成します。
以下の例のように、
task
コマンドを使用してスクリプトをアップロードします。task upload --file=multiplication.js multiplication
task upload --file=multiplication.js multiplication
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトが利用可能であることを確認します。
ls tasks multiplication
ls tasks multiplication
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.1. Data Grid Server スクリプト リンクのコピーリンクがクリップボードにコピーされました!
Data Grid Server のスクリプトは javax.script
API をベースとしており、JVM ベースの ScriptEngine 実装と互換性があります。
Hello world
以下は、1 つの Data Grid Server で実行され、1 つのパラメーターを持ち、JavaScript を使用する簡単な例です。
// mode=local,language=javascript,parameters=[greetee] "Hello " + greetee
// mode=local,language=javascript,parameters=[greetee]
"Hello " + greetee
上記のスクリプトを実行するときに、greetee
パラメーターの値を渡すと、Data Grid は "Hello ${value}"
を返します。
13.2.1.1. スクリプトのメタデータ リンクのコピーリンクがクリップボードにコピーされました!
メタデータは、スクリプトの実行時に Data Grid Server が使用するスクリプトの追加情報を提供します。
スクリプトメタデータは、スクリプトの最初の行でコメントを追加する 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 形式を使用するように、 |
13.2.1.2. スクリプトバインディング リンクのコピーリンクがクリップボードにコピーされました!
Data Grid は、内部オブジェクトをスクリプト実行のバインディングとして公開します。
バインディング | 説明 |
---|---|
| スクリプトが実行されるキャッシュを指定します。 |
| データをキャッシュにシリアル化するために使用するマーシャラーを指定します。 |
|
キャッシュの |
| スクリプトを実行するスクリプトマネージャーのインスタンスを指定します。このバインディングを使用して、スクリプトから他のスクリプトを実行することができます。 |
13.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 は式の評価の結果で応答します。
13.2.2. プログラムでのスクリプトの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、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");