SASバッチジョブ:同じローカルサーバー接続を介して複数のスクリプトを実行する

access_granted

単一の.sasスクリプトを実行する場合、「ローカルサーバーへの接続の確立」とライブラリのロードに約30秒を浪費し、その後、sasスクリプト自体を3秒間実行します。

同じ確立された接続に対して複数のsasスクリプトをプログラムで実行することは可能ですか(Windowsシェルを介してそれらを呼び出します)?

キープアライブTCPチャネルのように?

ヴァシリーネブレフ

こんにちはaccess_granted、

あなたは正しい方向に進んでいます。RawFocusへのコメントで、「ソケットサーバーのように動作します」、質問で「TCP接続を維持する」とおっしゃいました。あなたは実際にいくつかの巧妙なプログラミングでSASでそれをアーカイブすることができます。

SASソケットサーバー:これはマクロ言語のSASサーバーで、リクエストに応答するために永久にループします。次のリクエストを待っている間、サーバーはスリープ状態にあり、ホストマシンでほとんどリソースを消費していないことに注意してください。

/* Port as input parameter */
%let portno= &sysparm;
%* let portno= 001;
%do %while ( 1 );
filename in_msg SOCKET " :&portno"
SERVER;
filename temp_pgm  "%sysfunc(pathname(work))/a-ready.sas" ;
data _null_;
infile in_msg;
 file temp_pgm;
 input ;
 put _infile_;
run;
filename in_msg;
/* Before execution, server can choose to
parse it first */
%inc temp_pgm;
run;
filename temp_pgm;
%end;

このクライアントには、SASサーバーのIPアドレス、呼び出すポート番号、およびサーバーが実行するプログラムファイルが付属しています。利用可能な既知のSASサーバーに1つのリクエストを送信できます。また、クライアントは、結果を送り返すポートをサーバーに指示する責任があることにも注意してください(必要な場合)。

%let host= IP-address-for-server-machine;
%let portno= 001;
filename to_servr SOCKET “ &host:&portno” ;
filename input ‘SAS-program-to-be-run-onserver.sas’;
/* Simple scheme to come up with a different port
number to accept response from the server */
%let ret_port= %eval( &portno + 1 );
data _null_;
 file to_servr;
infile input end= EOF;
if _n_ = 1 then do;
/* Required info for the server to return results
back to this client */
 put ‘%let ret_port= ’ “ &ret_port;” ;
 put ‘%let client= IP-address-for-clientmachine;’;
end;
input ;
 put _infile_;
run;
filename input;
filename to_servr;
/* Receiving socket for the results */
filename back_rst SOCKET “ :&ret_port” SERVER;
data null_;
infile back_rst;
 file print;
 input ;
 put _infile_;
run;
filename back_rst;

出典:http//www2.sas.com/proceedings/sugi24/Coders/p083-24.pdf

ちなみに、可能であればSASサーバーの再構成を検討することもできます。特にバッチセッションの場合、セッションを開始するための30秒は少し長くなります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Windowsバッチスクリプトを介して複数のサーバーにpingを実行する

分類Dev

同じグループの別のユーザーからのSSHキーを使用してサーバーに接続する同じグループのユーザーからbashスクリプトを実行する

分類Dev

同じポートをリッスンしているNginxの複数のサーバーブロック

分類Dev

PowerShellを介してリモートサーバーでバッチスクリプトを実行する

分類Dev

同じルーターに接続されている複数のデバイスが独自のパブリックIPを取得するようにします

分類Dev

phonegapアプリを介して、同じネットワーク内のモバイルからローカルサーバーと通信します

分類Dev

カバレッジを改善するためにイーサネットを介して相互接続された複数のwifiルーター?

分類Dev

同じサーバー上の複数のアプリケーションのキャッシュストレージとしてRedisを使用する

分類Dev

複数のSSHを介してローカルbashスクリプトを実行する方法

分類Dev

複数のコールバックを使用して複数のphpスクリプトを実行する

分類Dev

nohupを使用してsshを介してリモートサーバーでローカルbashスクリプトを実行する方法

分類Dev

グローバルパブリックIPアドレスを介して接続するPythonソケット

分類Dev

グローバルパブリックIPアドレスを介して接続するPythonソケット

分類Dev

同じサーバーでカスタム ヒープ サイズを使用して 2 つのバージョンの ElasticSearch を実行する方法は?

分類Dev

同じプロジェクトのバージョンが異なるすべてのサブディレクトリに対してJUnitテストを実行します

分類Dev

複数の電子メールに対してバッチスクリプトを1回実行します

分類Dev

pytestを使用して同じプログラムの複数のバージョンをテストする

分類Dev

同じ接続を介して複数のgRPCサービスにアクセスする(単一のチャネルを使用)

分類Dev

ローカルホストへのSSH接続を介してSSMSでリンクサーバーを作成する(WordPress-MariaDB)

分類Dev

サーバーにtelnetで接続してコマンドを実行するWindowsバッチスクリプトが必要

分類Dev

IISを実行しているサーバーのローカルホストに接続できません

分類Dev

Androidアプリケーションを介して複数のBLEデバイスを接続する方法は?

分類Dev

同じ送信元ポートと宛先ポートを使用してローカルホスト上のサーバーに接続する

分類Dev

バックグラウンドでsshセッションを介してサーバー上でPythonスクリプトを永続的に実行します

分類Dev

サーバーに接続しているが、マルチプロセッシングパッケージ(Python 2.7)を使用してクライアントで実行しているワーカー

分類Dev

プロキシIPを介してFlaskローカルホストサーバーに接続します

分類Dev

ADB経由で接続されたデバイスで実行されているAndroidアプリを接続して、ローカルサーバーでREST APIをヒットする方法は?

分類Dev

SQLサーバーでリモート接続をブロックし、ローカル接続のみを許可する

分類Dev

同じページから複数のポートを介してTLSをブロックするFirefox

Related 関連記事

  1. 1

    Windowsバッチスクリプトを介して複数のサーバーにpingを実行する

  2. 2

    同じグループの別のユーザーからのSSHキーを使用してサーバーに接続する同じグループのユーザーからbashスクリプトを実行する

  3. 3

    同じポートをリッスンしているNginxの複数のサーバーブロック

  4. 4

    PowerShellを介してリモートサーバーでバッチスクリプトを実行する

  5. 5

    同じルーターに接続されている複数のデバイスが独自のパブリックIPを取得するようにします

  6. 6

    phonegapアプリを介して、同じネットワーク内のモバイルからローカルサーバーと通信します

  7. 7

    カバレッジを改善するためにイーサネットを介して相互接続された複数のwifiルーター?

  8. 8

    同じサーバー上の複数のアプリケーションのキャッシュストレージとしてRedisを使用する

  9. 9

    複数のSSHを介してローカルbashスクリプトを実行する方法

  10. 10

    複数のコールバックを使用して複数のphpスクリプトを実行する

  11. 11

    nohupを使用してsshを介してリモートサーバーでローカルbashスクリプトを実行する方法

  12. 12

    グローバルパブリックIPアドレスを介して接続するPythonソケット

  13. 13

    グローバルパブリックIPアドレスを介して接続するPythonソケット

  14. 14

    同じサーバーでカスタム ヒープ サイズを使用して 2 つのバージョンの ElasticSearch を実行する方法は?

  15. 15

    同じプロジェクトのバージョンが異なるすべてのサブディレクトリに対してJUnitテストを実行します

  16. 16

    複数の電子メールに対してバッチスクリプトを1回実行します

  17. 17

    pytestを使用して同じプログラムの複数のバージョンをテストする

  18. 18

    同じ接続を介して複数のgRPCサービスにアクセスする(単一のチャネルを使用)

  19. 19

    ローカルホストへのSSH接続を介してSSMSでリンクサーバーを作成する(WordPress-MariaDB)

  20. 20

    サーバーにtelnetで接続してコマンドを実行するWindowsバッチスクリプトが必要

  21. 21

    IISを実行しているサーバーのローカルホストに接続できません

  22. 22

    Androidアプリケーションを介して複数のBLEデバイスを接続する方法は?

  23. 23

    同じ送信元ポートと宛先ポートを使用してローカルホスト上のサーバーに接続する

  24. 24

    バックグラウンドでsshセッションを介してサーバー上でPythonスクリプトを永続的に実行します

  25. 25

    サーバーに接続しているが、マルチプロセッシングパッケージ(Python 2.7)を使用してクライアントで実行しているワーカー

  26. 26

    プロキシIPを介してFlaskローカルホストサーバーに接続します

  27. 27

    ADB経由で接続されたデバイスで実行されているAndroidアプリを接続して、ローカルサーバーでREST APIをヒットする方法は?

  28. 28

    SQLサーバーでリモート接続をブロックし、ローカル接続のみを許可する

  29. 29

    同じページから複数のポートを介してTLSをブロックするFirefox

ホットタグ

アーカイブ