ScriptRunner操作ガイド

ScriptRunnerとは

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

起動方法

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

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

起動設定ファイル

起動したいスクリプトをこの設定ファイルで指定します。ScriptRunnerの第一引数で指定します。
省略時は ${dataspider.home}/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]を設定します。
lightbulb平文で指定されているパスワードを暗号化する方法については「起動設定ファイルのパスワード暗号化」を参照してください。
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
10進数型 0
日付/時間型 1970-00-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)の場合

$ echo $?

csh系(UNIX)の場合

% echo $status

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

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

タイムアウトを設定するには、ScriptRunner.laxのJavaの起動オプション部分(lax.nl.java.option.additional)に以下のプロパティを指定します。

キー 配置場所 説明 補足
sun.net.client.defaultReadTimeout
  • ${dataspider.home}/server/bin/
    ScriptRunner.lax
  • ${dataspider.home}/client/bin/
    ScriptRunner.lax
スクリプト実行後、スクリプトから終了ステータスが返ってくるまでの待ち時間です。
  • デフォルト値は「-1」です。「0」以下を指定したときのタイムアウト時間は無制限です。
  • 「1000」以上の整数を指定してください。
  • 単位はミリ秒です。
  • 設定例:
    -Dsun.net.client.defaultReadTimeout=600000

スクリプトが終了する時間よりもプロパティに指定した時間が短い場合、スクリプトが終了する前にタイムアウトします。このときにスクリプトが強制終了されることはありません。

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

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

注意事項