ScriptRunner

ScriptRunnerとは

ScriptRunnerとは、サーバに登録されたサービスのスクリプトを外部から実行するためのインターフェースです。スクリプトの実行が完了すると、ScriptRunnerは終了します。

ScriptRunnerの起動

ScriptRunnerの起動時に、ScriptRunner.exeやScriptRunnerの後続に指定する文字列を「コマンドライン引数」と呼びます。
コマンドライン引数では、起動設定ファイルやそのほかの情報を指定します。
起動設定ファイルおよびコマンドライン引数を省略した場合、起動設定ファイルに「$DATASPIDER_HOME/<server|client>/bin/scriptrunner.xml」が適用されます。

コマンドライン引数で指定した値は、起動設定ファイル内で定義された変数に渡されます。
変数の定義方法については、こちらを参照してください。

起動設定ファイル

起動したいスクリプトをこの設定ファイルで指定します。
起動時のファイルの指定方法については、こちらを参照してください。

起動設定ファイルの例

<?xml version="1.0" encoding="Shift_JIS"?>
<scriptrunner>
  <connection>
    <host>localhost</host>
    <port>7700</port>
    <ssl>false</ssl>
    <description>ScriptRunnerから実行します。</description>
    <user>root</user>
    <password>password</password>
  </connection>
  <params>
    <param project="root@project" script="script">
      <input key="var">value</input>
      <option key="TYPE">production</option>
      <option key="ENABLE_TYPE_SWITCH">false</option>
      <option key="ENABLE_XML_LOG">true</option>
      <option key="LOG_LEVEL">FINFO</option>
    </param>
  </params>
</scriptrunner>
TYPEを指定する<option>要素は省略可能です。その場合は、「デフォルト」の種別として実行します。

要素・属性の説明

起動設定ファイルで指定する要素と属性の説明です。

要素 属性 必須/省略可 説明 備考
scriptrunner - 必須    
connection - 必須 接続情報を記述します。scriptrunner要素に一つ記述します。  
host - 省略可 DataSpiderServerホスト名/IPを指定します。省略した場合、127.0.0.1を設定します。  
port - 省略可 DataSpiderServerポート番号を指定します。省略した場合、7700を設定します。
ssl要素の内容が[true]の場合、[コントロールパネル]-[DataSpiderServerの設定]-[セキュリティ]タブで設定されているHTTPSのポート番号を指定してください。
 
ssl - 省略可 DataSpiderServerとHTTPS接続を行うかどうかを指定します。
  • [true]:
    DataSpiderServerとHTTPSで接続します。
    [コントロールパネル]-[DataSpiderServerの設定]-[セキュリティ]タブの[HTTPSを有効にする]にチェックが入っている必要があります。
  • [false]:(デフォルト)
    DataSpiderServerとHTTPで接続します。
    [コントロールパネル]-[DataSpiderServerの設定]-[セキュリティ]タブの[HTTPSを有効にする]にチェックが入っている場合、HTTPSのポートにリダイレクトされます。
ssl要素の内容が[true]以外、または省略した場合、[false]を設定します。
 
description - 省略可 このScriptRunnerで実行した際のセッションの情報を指定します。ここで指定した情報はコントロールパネルの「タスクマネージャ」の[セッション]タブの[説明]項目に表示される内容です。  
user - 必須 スクリプトを実行するユーザ  
password - 必須 スクリプトを実行するユーザのパスワード  
encrypt 省略可 password要素の内容(パスワード)が暗号化されているかどうかを表します。
  • [true]:
    パスワードは暗号化されているとみなします。
    DataSpiderServerとの通信は復号後の平文のパスワードを用いて行われます。DataSpiderServerとの通信を暗号化したい場合、HTTPS接続を行うようにしてください。
  • [false]:(デフォルト)
    パスワードは暗号化されていないとみなします。
encrypt属性の内容が[true]以外、または省略した場合、[false]を設定します。
平文で指定されているパスワードを暗号化する方法については、「起動設定ファイルのパスワード暗号化」を参照してください。
 
params - 必須    
param - 必須 起動スクリプトの設定をします。param1つが1つのスクリプトの起動に対応します。params要素に複数のparamを記述できます。  
project 必須 サービス名を指定します。デフォルトのサービス名の形式は<作成者>@<プロジェクト名>となります。  
script 必須 スクリプト名を指定します。  
input - 省略可 スクリプトに渡す引数を設定します。param要素に複数のinputを指定できます。  
key 必須 スクリプトに渡す引数の名前です。スクリプトで設定した引数名と同一である必要があります。  
option - 省略可 スクリプトに渡すオプションです。param要素に複数のoptionを指定できます。
オプションについては、「オプション」を参照してください。
 
key 必須 オプションのキーです。  

input要素のデフォルト値

<input key="var"></input>のように、input要素にkey属性を指定した上で空要素にした場合、key属性に指定したスクリプト変数にそのスクリプト変数の型に応じたデフォルト値を設定します。
lightbulbデザイナで設定したスクリプト変数の初期値を使用したい場合は、その変数をinput要素のkey属性に指定しないようにします。

スクリプト変数の型 デフォルト値 備考
文字列型 空文字  
整数型 0 整数以外の値を指定した場合も「0」が設定されます。(例:文字列)
10進数型 0 10進数以外の値を指定した場合も「0」が設定されます。(例:文字列)
日付/時間型 1970-01-01T09:00:00.000+0900  
真偽値型 false  
バイナリ型 null  
XML型 空文字  

オプション

[option]要素の説明です。

キー 説明 備考
TYPE - 実行時の種別を指定します。  
default 「デフォルト」種別で実行します。
TYPEが指定されなかった場合も「デフォルト」で実行します
 
test 「テスト用」種別で実行します。  
production 「本番用」種別で実行します。  
<ユーザ指定種別> サービス登録時、グローバルリソース作成時にユーザが任意で指定した種別で実行します。  
ENABLE_TYPE_SWITCH - 指定した種別のグローバルリソースが存在しなかった場合、種別を切り替えて再検索するかどうかのON/OFFを設定します。  
true 指定した種別のグローバルリソースが存在しなかった場合、「デフォルト」の種別で再検索します。  
false 指定した種別のグローバルリソースが存在しなかった場合、エラーとします。
ENABLE_TYPE_SWITCHが省略された場合は「false」として動作します。
 
ENABLE_XML_LOG - XMLログのON/OFFを設定します。  
true XMLログを出力します  
false XMLログを出力しません(既定値)  
LOG_LEVEL - ログレベルを設定します。  
NOTICE 重要なログのみを出力するログレベル(既定値)  
INFO 運用時推奨のログレベル  
FINFO 開発時推奨のログレベル  
FINEST より詳細にログを出力するログレベル  
DEBUG 非常に詳細なログを出力するログレベル  

変数の定義方法

すべての要素のテキスト値・project属性値・script属性値はコマンドライン引数から値を受け取ることができます。
コマンドライン引数を受け取るためには、起動設定ファイルに%{1}、%{2}、・・・という形式で変数を記述します。

変数を定義した起動設定ファイルの例

<?xml version="1.0" encoding="Shift_JIS"?>
<scriptrunner>
  <connection>
    <host>%{1}</host>
    <port>%{2}</port>
    <ssl>false</ssl>
    <description>ScriptRunnerから実行します。</description>
    <user>root</user>
    <password>password</password>
  </connection>
  <params>
    <param project="root@project" script="%{3}">
      <input key="var">%{4}</input>
      <option key="TYPE">production</option>
      <option key="ENABLE_TYPE_SWITCH">false</option>
      <option key="ENABLE_XML_LOG">true</option>
      <option key="LOG_LEVEL">FINFO</option>
    </param>
  </params>
</scriptrunner>

コマンドの実行例

> ScriptRunner.exe <起動設定ファイル> localhost 7700 スクリプト 入力変数値

上記例では、「ホスト名」・「ポート番号」・「スクリプト名」・「スクリプト入力変数varの値」が、ScriptRunnerのコマンドライン引数から値が渡されます。
コマンドライン引数が存在しない場合には空文字が設定されます。

終了ステータス

ScriptRunnerの終了ステータスは実行スクリプトのend処理の戻り値に設定した場合にはその値が、設定していない場合にはシステムが自動的に設定した戻り値が返されます。
詳細については、「終了ステータス」を参照してください。

シェルやコマンドプロンプトから終了ステータスを取得する方法

ScriptRunnerの終了ステータスを取得する方法は、ScriptRunnerを起動したツール(シェルやコマンドプロンプト)によって異なります。

コマンドプロンプト(Windows)の場合

> echo %errorlevel%

bash系(UNIX/Linux)の場合

$ echo $?

csh系(UNIX/Linux)の場合

% echo $status

スクリプト実行のタイムアウト

スクリプトから終了ステータスが返ってくるまでの待ち時間(タイムアウト時間)を設定することができます。タイムアウトを設定しない場合(デフォルト)の待ち時間は無制限です。

タイムアウトの設定は、ScriptRunner.laxで行います。詳細については、「プロパティリファレンス」を参照してください。
スクリプトが終了する時間よりもプロパティに指定した時間が短い場合、スクリプトが終了する前にタイムアウトします。このときにスクリプトが強制終了されることはありません。

起動設定ファイルのパスワード暗号化

起動設定ファイルのpassword要素の内容(パスワード)を暗号化することができます。 <起動設定ファイル>に、パスワードが平文の(password要素のencrypt属性が[false]、またはencrypt属性がない)起動設定ファイルを指定します。
<暗号化後のファイル名>に指定したファイル名で、パスワードが暗号化された起動設定ファイルが新規作成されます。
lightbulb「起動設定ファイルのパスワード暗号化」実行はDataSpiderServerの起動状態に依存しません。

仕様制限

注意事項