Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Macro
Macro Forum d'entraide sur le langage Macro de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2011, 17h46   #1
Membre régulier
 
Femme Mariam
Statisticienne-Consultante BI
Inscription : avril 2008
Messages : 127
Détails du profil
Informations personnelles :
Nom : Femme Mariam
Localisation : Canada

Informations professionnelles :
Activité : Statisticienne-Consultante BI
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 127
Points : 96
Points : 96
Par défaut Comprendre Dummy macro et Lock is not available

J'aimerai comprendre pourquoi j'ai souvent le message d'erreur suivant.
Histoire de le prevenir.


Code :
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
 
....
15         GOPTIONS ACCESSIBLE;
16         libname MacroLCT "\\Srv_Analyse_Affaires\Evaluations\DonnéesSAS\Statistiques actuarielles\LCT\MACROS";
NOTE: Libref MACROLCT was successfully assigned AS follows: 
      Engine:        V9 
      Physical Name: \\Srv_Analyse_Affaires\Evaluations\DonnéesSAS\Statistiques actuarielles\LCT\MACROS
17         OPTIONS SASMSTORE = MacroLCT MSTORED  mprint;
NOTE: The SAS System was unable TO open the macro library referenced BY the SASMSTORE = libref MACROLCT.
ERROR: A LOCK IS NOT available FOR MACROLCT.SASMACR.CATALOG.
ERROR: A dummy macro will be compiled.
18         %macro Extraction_RETRAITE(mois= ,nom_librairie=)/STORE DES='Extraction RETRAITE Phase finale';
19         
20         DATA BASE(DROP=AM_FIN_PER_PRE AM_DEB_PER_PRE
21         				mn_pre_MEN_sans_sup mn_men_sans_sup_ndi);
22             SET QUERY_FOR_PRESTAT_0001;
......
187        %mend;
188        
189        OPTIONS MSTORED SASMSTORE = MacroLCT mprint;
ERROR: A LOCK IS NOT available FOR MACROLCT.SASMACR.CATALOG.
NOTE: The SAS System was unable TO open the macro library referenced BY the SASMSTORE = libref MACROLCT.
WARNING: Apparent invocation of macro EXTRACTION_RETRAITE NOT resolved.
190        %Extraction_RETRAITE (mois= 12,nom_librairie= SORTIE );
           _
           180
 
ERROR 180-322: Statement IS NOT valid OR it IS used out of proper ORDER.
MDsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 17h33   #2
Membre régulier
 
Femme Mariam
Statisticienne-Consultante BI
Inscription : avril 2008
Messages : 127
Détails du profil
Informations personnelles :
Nom : Femme Mariam
Localisation : Canada

Informations professionnelles :
Activité : Statisticienne-Consultante BI
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 127
Points : 96
Points : 96
J'ai fini par comprendre (du moins j'espère....).
Cela arrive quand une autre session EG (dans mon cas) a déjà exécuté l'instruction libname pour la macro avec les options associées.
Moi qui pensait qu'ouvrir deux EG n'avait pas d'incidence l'un sur l'autre.
MDsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 13h37   #3
Membre expérimenté
 
Inscription : avril 2009
Messages : 538
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 538
Points : 541
Points : 541
C'est pas EG, c'est SAS qui positionne un lock en ecriture sur le catalog.

Maintenant tu n'es pas obligée de faire un catalog de macros-compilées mais d'utiliser l'AUTOCALL.

Xavier
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/12/2011, 14h26   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
Est-ce qu'un
Code :
LIBNAME ... ACCESS=READONLY ;
pour ceux des utilisateurs qui n'ont pas besoin d'écrire dans le catalogue de macros n'éviterait pas ces locks intempestifs ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 15h08   #5
Membre régulier
 
Femme Mariam
Statisticienne-Consultante BI
Inscription : avril 2008
Messages : 127
Détails du profil
Informations personnelles :
Nom : Femme Mariam
Localisation : Canada

Informations professionnelles :
Activité : Statisticienne-Consultante BI
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 127
Points : 96
Points : 96
Citation:
Envoyé par olivier.decourt Voir le message
Est-ce qu'un
Code :
LIBNAME ... ACCESS=READONLY ;
pour ceux des utilisateurs qui n'ont pas besoin d'écrire dans le catalogue de macros n'éviterait pas ces locks intempestifs ?
Vais essayer cette solution
MDsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 18h09   #6
Membre régulier
 
Femme Mariam
Statisticienne-Consultante BI
Inscription : avril 2008
Messages : 127
Détails du profil
Informations personnelles :
Nom : Femme Mariam
Localisation : Canada

Informations professionnelles :
Activité : Statisticienne-Consultante BI
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 127
Points : 96
Points : 96
Bonjour,

J'ai essayé cette solution mais ca ne marche pas plus (il faudrait peut être qu eje revois l'organisation de mes programmes)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
80         %macro gerer_mois /STORE DES='Gestion du mois de situation';
NOTE: The SAS System was unable TO open the macro library referenced BY the SASMSTORE = libref MACROLCT.
ERROR: WRITE access TO member MACROLCT.SASMACR.CATALOG IS denied.
ERROR: A dummy macro will be compiled.
81           DATA _null_;
82             call symputx('mois',&invite_mois);
83           run;
84         %mend;
85         
86         OPTIONS MSTORED SASMSTORE=MacroLCT mprint;
87         options mprint;
ERROR: A LOCK IS NOT available FOR MACROLCT.SASMACR.CATALOG.
3                                                          The SAS System                             11:28 Monday, December 5, 2011
 
NOTE: The SAS System was unable TO open the macro library referenced BY the SASMSTORE = libref MACROLCT.
WARNING: Apparent invocation of macro GERER_MOIS NOT resolved.
88         %gerer_mois;
           _
           180
 
ERROR 180-322: Statement IS NOT valid OR it IS used out of proper ORDER.
Le problème est que nous partageons les mêmes programmes.
MDsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 18h53   #7
Membre expérimenté
 
Inscription : avril 2009
Messages : 538
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 538
Points : 541
Points : 541
tu n'as pas le droit de compiler une macro quand des users accèdent même en lecture a ce catalog

il te faudrait demander a tes users de se deconnecter puis tu compiles puis apres ils peuvent beneficier de la nouvelle version de macro, pas top...

ton une solution : tu passes à l'AUTOCALL, pas de lock.
Ou alors tu utilises un CATNAME avec un autoexec, mais bon c'est un peu lourdinge.

tu as vraiment besoin de les stocker dans un catalog ces macros?

X
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/12/2011, 20h45   #8
Membre régulier
 
Femme Mariam
Statisticienne-Consultante BI
Inscription : avril 2008
Messages : 127
Détails du profil
Informations personnelles :
Nom : Femme Mariam
Localisation : Canada

Informations professionnelles :
Activité : Statisticienne-Consultante BI
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 127
Points : 96
Points : 96
Citation:
Envoyé par xav2229 Voir le message
tu n'as pas le droit de compiler une macro quand des users accèdent même en lecture a ce catalog

il te faudrait demander a tes users de se deconnecter puis tu compiles puis apres ils peuvent beneficier de la nouvelle version de macro, pas top...

ton une solution : tu passes à l'AUTOCALL, pas de lock.
Ou alors tu utilises un CATNAME avec un autoexec, mais bon c'est un peu lourdinge.

tu as vraiment besoin de les stocker dans un catalog ces macros?

X
Franchement je pense pas avoir besoin de les stocker car je lance juste après la macro après la compilation. Je le faisais dans l'optique de centraliser tous les appels de macro de mes différents projets. Après réflexion ce n'est pas encore demain la veille et je ne pense pas que ce soit très judicieux.

Merci pour vos remarques.
MDsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 15h19   #9
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
J'arrive peut etre apres la guerre, je me permets de rajouter une petite couche au cas ou ca peux aider.

J'ai aussi un probleme recurrent de lock, meme si c'est pas lie a l'utilisation d'un catalog.

J'esperais que ce sujet puisse m'aider, mais ce n'est pas le cas.. bref, en googlelisant ton erreur je suis tombe la dessus

http://support.sas.com/kb/18/256.html

On sait jamais, ca peut peut etre te donner des pistes

a+

Manoutz
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h52.


 
 
 
 
Partenaires

Hébergement Web