SAS9.4 TS1M5, M6のhotfix
以前、SASで開発したアプリケーションでOBSが落ちてしまっていたことがあって、色々検証した結果、SAS9.4 TS1M5の不具合(M4まではOKだった)で、半年後、Hotfixが提供されたのでメデタシメデタシと思っていたのですが、なんだかhotfixがインストールされていないのにその現象が発生しない環境が。。。
何度もインストールしなおしたり、hotfixインストールしたり検証したのですが、なんてことはない、hotfixが新しくなって番号が変わっていたためだったようです。
ちなみに、その不具合の情報はこちら。
63508 - An application that is executed multiple times ends with an exception
ものすごく要約すると、
「sortしたデータセットをsclでwhereして、nlobsfを取得するとたまにエラーとなって落ちる」
という問題です。
再現コードは以下。
まず、SCLプログラムから
/* ファイルはTEMP.TEST.TEST.SCLとする。保存後、要コンパイル */ init: rc=rc; dsid=open('WORK.test','I'); /* WORK.TESTを読み取りモードで開く */ put dsid=; if dsid>0 then do; do i=1 to 2; /* ループ2回めでWTABORT */ rc1=where(dsid); rc2=where(dsid,'X='||strip(put(i,best.))); /* whereで抽出 */ put rc1=; put rc2=; nobs=attrn(dsid,'NLOBSF'); /* 抽出したOBS数を取得 */ put nobs=; end; rc=close(dsid); end; return; main:return; term:return;
続いて、上記のSCLをBaseSASから呼ぶコード
libname temp 'c:\temp'; data temp.test; do X=1 to 100; output; end; run; proc sort data=Temp.test out =WORK.test; by X; run; proc display c=temp.test.test.scl; run;
このsasプログラムを実行すると、1~50回でSASが異常終了します。
そして、以下がHotfix情報
M6用:
Hot Fixes for Base SAS 9.4_M6
M5用:
Hot Fixes for Base SAS 9.4_M5
アクセスすればわかると思いますが、とてもじゃないけど全部追いきれません。
- このhotfix Aを適用する場合は、Bも適用する必要がある
↓ Bにリンク
- このhotfix Bを適用する場合は、AとCも適用する必要がある
↓ Cにリンク
- このhotfix Cを適用する場合は、Dも適用する必要がある
↓ Dにリンク
- このhotfix Dを適用する場合は、AとBも適用する必要がある
こんな感じですよ。
結構致命的だと思うのですが(シチュエーション的に十分ありえる)、備忘を兼ねてWindows用のものだけをまとめてみました。
(今後変更になる可能性があるので、ファイルへの直リンクではなく、hotfix idへのリンクになっています。)
M6用
D9T043:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#63508
D9T046:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#D9T046
D9T029:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#D9T029
D9T041:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#D9T041
D9T042:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#D9T042
D9T036:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#D9T036
E8Y002:http://ftp.sas.com/techsup/download/hotfix/HF2/E8Y.html#E8Y002
E2G005:http://ftp.sas.com/techsup/download/hotfix/HF2/E2G.html#E2G005
E5Q002:http://ftp.sas.com/techsup/download/hotfix/HF2/E5Q.html#E5Q002
E9Y001:http://ftp.sas.com/techsup/download/hotfix/HF2/E9Y.html#E9Y001
F6B001:http://ftp.sas.com/techsup/download/hotfix/HF2/F6B.html#F6B001
D9T044:http://ftp.sas.com/techsup/download/hotfix/HF2/D9T.html#D9T044
F8U001:http://ftp.sas.com/techsup/download/hotfix/HF2/F8U.html#F8U001
F8T001:http://ftp.sas.com/techsup/download/hotfix/HF2/F8T.html#F8T001
M5用
B6Q079:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#63508
B6Q074:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q074
(SAS/ACCESS Interfaceの関連hoffixが多数。これは必要に応じて)
B6Q052:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q052
B6Q063:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q063
B6Q048:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q048
B6Q076:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q076
D9I002:http://ftp.sas.com/techsup/download/hotfix/HF2/D9I.html#D9I002
B6Q069:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q069
B6Q050:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q050
B6Q067:http://ftp.sas.com/techsup/download/hotfix/HF2/B6Q.html#B6Q067
C1S005:http://ftp.sas.com/techsup/download/hotfix/HF2/C1S.html#C1S005
E2E001:http://ftp.sas.com/techsup/download/hotfix/HF2/E2E.html#E2E001
これでOKだと思います。