IBM i ACS1.1.9.9の新機能でプラグインのスクリプト実行が可能に!?
Question
現在、IBM i Access Client Solutions(ACS)で複数のプラグイン処理を実行しています。
サインオンプラグインや、ダウンロードプラグイン等を. batでacslaunch_win-64.exe /plugin=...と実行するため、
例えば日次処理や定期処理として、CLコマンドや SQL を順に実行、データをダウンロード → 処理 → アップロード
と実行するためには、毎度ACSの起動が間に挟まる為、少々テンポが悪いと感じています。
実行したいプラグインをACSの立ち上げ1回で実行できたりしませんか。
Answer
確かにプラグインの起動にはいちいちACSの起動をすることになるので、その分時間がかかると煩わしく感じるかもしれません。
実はそんなご要望にぴったりの機能がACS1.1.9.9の機能で追加されました。
/PLUGIN=script /file=
と、単に言っても.batで指定するのと「どんな差があるの?」と思われることでしょう。
ご相談いただいた通り、従来のACSでは
"1回の/pulugin=...の記述に対し1回のacslaunch_win-64.exeの記述が必要"でした。
したがって実行したい処理毎にACSの起動が毎回挟まってしまいました。
しかしこの/PLUGIN=script /file=
-
スクリプトファイルを用意
テキストファイルに、実行したいコマンドライン プラグインを 1 行ずつ書きます。
例: myscript.txt /plugin=cldownload /system MYIBMI /user USER1 /pw mypass /file mydownload.dtf /plugin=clupload /system MYIBMI /user USER1 /pw mypass /file myupload.dtf /plugin=runsql /system MYIBMI /user USER1 /pw mypass /sql "DELETE FROM LIB1.TABLE1 WHERE STATUS='X'"
各行は ACS の通常のコマンドラインプラグインと同じ形式です。
/system /user /pw などの接続情報も書けます。
/sql など SQL 実行も含められます。
-
ACS を /plugin=script で実行
以下のように指定します:
acslaunch_win-64.exe /plugin=script /file=myscript.txt
/file= で指定するのがスクリプトファイル
Windows, Linux, Mac いずれでも同様に動作します
ファイル内のプラグインは 上から順番に実行されます
活用方法の例
-
日次・定期処理の自動化
CLコマンドや SQL を順に実行
データをダウンロード → 処理 → アップロード
ログ収集と転送をワンステップで実行できます
-
運用バッチへの組み込み
Windows タスクスケジューラや cron から呼び出して、夜間バッチ処理に組み込み
複数のプラグインを 1 ファイルにまとめておけば、保守もしやすい
-
IFS ファイル転送+SQL更新の組み合わせ
/plugin=ifsupload /system MYIBMI /user USER1 /pw mypass /localfile C:\data\newfile.txt /remotefile /home/user1/newfile.txt /plugin=runsql /system MYIBMI /user USER1 /pw mypass /sql "CALL MYLIB.UPDATE_PROCESS()"
→ IFS にファイルを置いた後、すぐにストアドプロシージャを呼ぶ、といった処理が可能です。
-
環境ごとに異なるスクリプト
myscript_dev.txt → 開発環境用
myscript_prod.txt → 本番環境用
→ 同じバッチの切り替えが簡単に、管理しやすくなります。
要するに /plugin=script は「ACS のミニバッチ機能」で、これまで複数回呼んでいた処理を 1回の呼び出しでまとめて実行できるものです。
実はまだまだあるACS1.1.9.9の新機能と組み合わせることで、今回の/PLUGIN=script /file=
詳しくは次回の配信をお楽しみに
by . 大熊猫橋