2012年6月7日木曜日

パイプを使ったSASESOCKエンジン

UNIXでは良くあるPIPEですが、Windows環境でもSASESOCKというエンジンで使えます。あるのは知っていましたが、サンプルコードを動かしてみました。
サンプルを実行する前に、Servicesにポート番号を定義、OUTLIBのフォルダを作成する必要があります。サンプルでは、PIPE1という名前にしてあります。実行はDMSの画面から、サブミットするだけです。SPAWNER.EXEは起動していなくても動きます。

  1. /* -----------  DATA Step - Process P1  ----- */  
  2. signon p1 sascmd='!sascmd';  
  3. rsubmit p1  wait=no;  
  4.   
  5. libname outLib sasesock ":pipe1";   
  6.   
  7. /* create data set - and write to pipe */  
  8. data outLib.Intermediate;  
  9.    do i=1 to 5;  
  10.        put 'Writing row ' i;              
  11.        output;  
  12.    end;  
  13. run;  
  14. endrsubmit;  
  15. rdisplay p1;  
  16.   
  17. /* -----------  DATA Step - Process P2  ----- */  
  18.   
  19. signon p2 sascmd='!sascmd';  
  20. rsubmit p2  wait=no;  
  21.   
  22. libname inLib sasesock ":pipe1";  
  23. libname outLib "d:\temp";   
  24.   
  25. data outLib.Final;  
  26. set inLib.Intermediate;   
  27.    do j=1 to 5;  
  28.         put 'Adding data ' j;            
  29.         n2 = j*2;   
  30.         output;  
  31.    end;  
  32. run;  
  33. endrsubmit;  
  34. rdisplay p2;  
  35. /* -------------------------------------------- */  
こちらは実行したときのログです。
  1. NOTE: Copyright (c) 2002-2010 by SAS Institute Inc., Cary, NC, USA.  
  2. NOTE: SAS (r) 9.1 (TS1M3 DBCS3054)  
  3.       Licensed to XYZ JAPAN,LTD., Site 0041264126.  
  4. NOTE: このセッションは NET_SRV  プラットフォーム上で実行されています。  
  5.   
  6.   
  7.   
  8. NOTE: SAS 9.1.3 Service Pack 4  
  9.   
  10. NOTE: SAS システム初期化処理 :  
  11.        処理時間            1.43 秒  
  12.        CPU 時間            0.62 秒  
  13.   
  14. 1    /* -----------  DATA Step - Process P1  ----- */  
  15. 2    signon p1 sascmd='!sascmd';  
  16. NOTE: P1 へのリモート接続を開始します。 (SAS Release 9.01.01M3P020206)  
  17. NOTE: SASUSER.PROFILE をオープンできません。 WORK.PROFILE を使用します。  
  18. NOTE: PROFILE への変更はセッションの終了時に失われます。  
  19. NOTE: Copyright (c) 2002-2010 by SAS Institute Inc., Cary, NC, USA.  
  20. NOTE: SAS (r) 9.1 (TS1M3 DBCS3054)  
  21.       Licensed to XYZ JAPAN,LTD., Site 0041264126.  
  22. NOTE: このセッションは NET_SRV  プラットフォーム上で実行されています。  
  23.   
  24.   
  25.   
  26. NOTE: SAS 9.1.3 Service Pack 4  
  27.   
  28. NOTE: SAS システム初期化処理 :  
  29.        処理時間            0.26 秒  
  30.        CPU 時間            0.26 秒  
  31.   
  32. NOTE: P1 へのリモート接続を完了しました。  
  33. 3    rsubmit p1  wait=no;  
  34. NOTE: バックグラウンドで P1 へのリモートサブミットが進行中です。  
  35. 4    rdisplay p1;  
  36. 5  
  37. 6    /* -----------  DATA Step - Process P2  ----- */  
  38. 7  
  39. 8    signon p2 sascmd='!sascmd';  
  40. NOTE: P2 へのリモート接続を開始します。 (SAS Release 9.01.01M3P020206)  
  41. NOTE: SASUSER.PROFILE をオープンできません。 WORK.PROFILE を使用します。  
  42. NOTE: PROFILE への変更はセッションの終了時に失われます。  
  43. NOTE: Copyright (c) 2002-2010 by SAS Institute Inc., Cary, NC, USA.  
  44. NOTE: SAS (r) 9.1 (TS1M3 DBCS3054)  
  45.       Licensed to XYZ JAPAN,LTD., Site 0041264126.  
  46. NOTE: このセッションは NET_SRV  プラットフォーム上で実行されています。  
  47.   
  48.   
  49.   
  50. NOTE: SAS 9.1.3 Service Pack 4  
  51.   
  52. NOTE: SAS システム初期化処理 :  
  53.        処理時間            0.20 秒  
  54.        CPU 時間            0.20 秒  
  55.   
  56. NOTE: P2 へのリモート接続を完了しました。  
  57. 9    rsubmit p2  wait=no;  
  58. NOTE: バックグラウンドで P2 へのリモートサブミットが進行中です。  
  59. 10   rdisplay p2;  
  60. 11   /* -------------------------------------------- */  

DMSには次のような表示が現れます。

0 件のコメント :

コメントを投稿