25%macro mp_lockfilecheck(
30 if _n_=1 then putlog
"&sysmacroname entry vars:";
32 where scope=
"&sysmacroname";
36%mp_abort(iftrue= (&syscc>0)
38 ,msg=Aborting with syscc=&syscc on entry.
40%mp_abort(iftrue= (
"&libds"=
"0")
42 ,msg=%str(libds not provided)
46%let lib=%upcase(%scan(&libds,1,.));
47%let ds=%upcase(%scan(&libds,2,.));
50%
if %scan(&libds,2,-)=FC %then %
do;
51 %put &sysmacroname: Format Catalog detected, no lockfile applied to &libds;
56%let msg=options obs = 0. syserrortext=%superq(syserrortext);
57%mp_abort(iftrue= (%sysfunc(getoption(OBS))=0)
63 putlog
"Checking engine & member type";
66%let memtype=%mf_getattrc(&libds,MTYPE);
67%let engine=%mf_getattrc(&libds,ENGINE);
69%
if &engine ne V9 and &engine ne BASE %then %
do;
71 putlog
"Lib &lib is not assigned using BASE engine - uses &engine instead";
72 putlog
"SAS lock check will not be performed";
76%
else %
if &memtype ne DATA %then %
do;
77 %put NOTE: Cannot lock a VIEW!! Memtype=&memtype;
82 putlog
"Engine = &engine, memtype=&memtype";
83 putlog
"Attempting lock statement";
90%
if &syscc>0 or &SYSLCKRC ne 0 %then %
do;
91 %let msg=Unable to apply lock on &libds (SYSLCKRC=&SYSLCKRC syscc=&syscc);
92 %put %str(ERR)OR: &sysmacroname: &msg;
98%mp_abort(iftrue= (&abortme=1)
103%mend mp_lockfilecheck;