Bonjour à tous,
Je suis en train de faire une macro en rsubmit afin de paralléliser un processus.
Je précise que je fais moduler la macro varialbe à chaque itération d'une valeur afin de séléctionner la bonne table.
le problème c'est que hors macro la tache 1 et 2 se font en paralleles sans problème mais des que je passe aux macro la connecxion serveur tombe
mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 proc sql noprint inobs=2 ; select count(ENTITE) INTO: num_entite from vdf_work.List_entite_2; quit; %put &num_entite.; options fullstimer autosignon=yes sascmd="sas" compress=yes macrogen symbolgen mlogic mprint mfile threads tbufsize=max DBIDIRECTEXEC; filename mprint '\\blabla\mon_file.sas'; %macro paral_01; %global num_entite thread; %do thread = 1 %to &num_entite.; data _null_; position=&thread.; set vdf_work.List_entite_2 point=position; call symput("ENTITE",compress(ENTITE)); stop; run; %put &ENTITE; rsubmit process=task&thread. wait=no sascmd="sas" sysrputsync=yes; options fullstimer autosignon=yes sascmd="sas" compress=yes macrogen symbolgen mlogic mprint mfile threads tbufsize=max DBIDIRECTEXEC; %let SRV=XX.XXX.XXX.XXX options comamid=tcp remote=SRV ; filename rlink "\\blablabla\bla.txt" ; signon task&thread. sascmd="sas" userid=mon_userid pwd=mon_pwd ; rsubmit; libname blabla "/bkabka/bla" ; endrsubmit; LIBNAME blabla slibref=blabla server=srv; proc sql; create table VDF_WORK.B_&entite as select * from VDF_WORK.A_&entite. ; quit; endrsubmit; %end; waitfor _all_ %do thread = 1 %to &num_entite.; task&thread. %end; ; %do thread = 1 %to &num_entite.; rget task&thread.; %end; %do thread = 1 %to &num_entite.; signoff task&thread.; %end; %mend paral_01; %paral_01;
Partager