Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
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 19/05/2011, 15h35   #1
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Par défaut Erreur lock is not available for WORK._TF0006.ITEMSTOR, lock held by another process

Bonjour à tous,

Je ne connais rien à SAS, mais je dois comprendre d'où vient l'erreur rencontrée par un utilisateur :

Code :
1
2
3
4
5
6
7
8
9
10
11
ERROR: A LOCK IS NOT available FOR WORK._TF0006.ITEMSTOR, LOCK held BY another process.
ERROR: A LOCK IS NOT available FOR WORK._TF0006.ITEMSTOR, LOCK held BY another process.
ERROR: A LOCK IS NOT available FOR WORK._TF0007.ITEMSTOR, LOCK held BY another process.
ERROR: A LOCK IS NOT available FOR WORK._TF0007.ITEMSTOR, LOCK held BY another process.
...
ERROR:  READ Access Violation IN Task ( CONNECT )
Exception occured at (66C579A5)
Task Trackback
 
ERROR: Generic critical error
ERROR: Remote submit TO APPLIP cancelled
Pour ce que j'en comprends avec la capture d'écran qu'on m'a envoyé, cette erreur fait suite à l’exécution d'une procédure (si c'est le bon nom) qui ressemble à un truc :
Code :
1
2
3
proc freq DATA=received;
TABLE scp_sk;
run;
Qui semble faire suite à une autre exécution :
Citation:
proc sql;
create table received as
select *
from ...
...
;
Cette partie marche visiblement :
Code :
NOTE: TABLE WORK.RECEIVED created WITH 434653 rows AND 34 COLUMNS.
Ensuite, il y a un :
Avec le message suivant :
Code :
1
2
3
4
5
6
NOTE: PROCEDURE SQL used:
             real time          14:34.09
             cpu time          12:35.98
 
NOTE: Remote submit TO APPLIP completed
NOTE: Remote submit TO APPLIP commencing
Et c'est après ce message qu'on a la partie dont j'ai parlé:
Code :
1
2
3
proc freq DATA=received;
TABLE scp_sk;
run;
suivie directement de l'erreur indiquée !

Est-ce que cela parlerait à quelqu'un svp ?

Merci d'avance !!!!
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h01   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Bonjour,
Le message dis que ta table est verrouillée par une autre personne ( visiblement ouverte et donc pas possible de la mettre à jour. Ou sinon elle se trouve dans un répertoire où la mersonne n'a pas les droits d'écriture.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h16   #3
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Merci pour cette premier élément de réponse

Tu parles bien de la table WORK.RECEIVED créée dans la première partie (proc sql; create table received as select *...) ?

Si c'est bien ça, comment est-ce qu'on peut voir si elle se trouve dans un répertoire où il y aurait un problème de droit ? C'est un élément de configuration ?

Le problème, c'est que je ne connais absolument rien de rien à SAS

Est-ce que si un second utilisateur lance l'autre proc (proc freq DATA=received; TABLE scp_sk; run sur son propre poste, ça pourrait faire le lock ? C'est un truc qui est partagé ou c'est du local ?

Merci encore !
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 16h36   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
difficile ( pour moi) de répondre avec si peu d'éliment. ( peut être si tu nous parviens le code exécuté on pourra t'aider).

1- SAS ne gère pas l'accès concurrentiel aux tables ( contrairement aux SQGBD Classique) sauf si on dispose du module SAS/share qui gère ce type d'accès.
Donc si une personne ouvre une table ou essaie de la mettre à jour au même temps qu'une autre personne sa ne marchera pas. Et sas nous renvoie ce genre de message d'erreur du genre : DATA....LOCKED By ANOTHER PROCESS.

2- dans la proc freq la personne n'a pas spécifié la table en sortie. Donc le type de sortie sera un listing et non pas une table SAS. S'il rajoute :
out=table_freq;
Code :
1
2
3
4
 
proc freq DATA=received out= table_freq;
TABLE scp_sk;
run;
pour Avoir une table en sortie au lieu d'un listing.

3- le programme n'est t'il pas exécuter sur un server (mode client server)?

Toute fois tu peux consulter ces notes SAS qui pourront peut être t'aider.
http://support.sas.com/kb/8/130.html

http://www.sas.com/offices/europe/uk...ise-guide.html
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/05/2011, 16h54   #5
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Merci, je vais jeter un oeil à ces documents.

Dernière question pour aujourd'hui (j'essaierais d'avoir plus d'infos demain) : que se passerait-il si un utilisateur faisait
Code :
1
2
3
4
5
6
proc sql;
CREATE TABLE received AS
SELECT *
FROM ...
...
;
Pendant que l'autre faisait
Code :
1
2
3
proc freq DATA=received;
TABLE scp_sk;
run;
Est-ce que le second ne pourrait pas avoir le message d'erreur parce que la table received qu'il tente d'accéder (si je comprend bien) est en même temps créée par le premier utilisateur ?

Merci encore d'essayer de m'aider
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 17h05   #6
Membre habitué
 
Femme Géraldine CADE DESCHAMPS
Support Clients SAS (France et Europe)
Inscription : février 2010
Messages : 62
Détails du profil
Informations personnelles :
Nom : Femme Géraldine CADE DESCHAMPS
Localisation : France

Informations professionnelles :
Activité : Support Clients SAS (France et Europe)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 62
Points : 139
Points : 139
Bonjour,

Le fait que l'erreur apparaisse sur les objets de type ITEMSTOR est intriguant, et me ferait penser que nous ne sommes pas dans la cas d'un accès conccurent sur des tables (ITEMSTOR correspondant aux fichiers sas7bitm).
La procédure FREQ cherche à produire un résultat, si la fenêtre Results est déjà bien remplie, ou si elle produit une sortie volumineuse, cela pourrait expliquer le problème. Avant la proc freq il faudrait ajouter ceci :
ods noresults;

cela évite de remplir la fenêtre results (vous pouvez consulter cette note http://support.sas.com/kb/9374).

Cordialement,
Géraldine Cade-Deschamps
Support Clients SAS
Géraldine_Cade_SAS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/05/2011, 17h06   #7
Membre du Club
 
Homme
Inscription : septembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2009
Messages : 60
Points : 52
Points : 52
Hello,

Le message d'erreur fait référence à un problème d'accès sur un membre ITEMSTOR dans la work pas une table SAS.

J'ai l'impression que la sortie de la proc FREQ doit être assez volumineuse ce qui cause le problème.

La note suivante correspond peut être à ton problème.

http://support.sas.com/kb/9/374.html

Comme cela a été proposé il faudrait écrire le résultat de la proc freq dans une table pour vérifier si le problème vient de là.
wise2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/05/2011, 17h10   #8
Membre du Club
 
Homme
Inscription : septembre 2009
Messages : 60
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2009
Messages : 60
Points : 52
Points : 52
Doublé à une minute près !!
wise2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 17h47   #9
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Bonjour,

Merci beaucoup pour vos réponses. Nous avions déjà demandé à l'utilisateur d'essayer d'ajouter ods noresults; et que cela n'avait rien donné.

Mais comme je ne suis pas certain que le test ait vraiment été réalisé, et que vous êtes 2 à me donner la même réponse, je crois que je vais à nouveau demander à faire ce test

Je vais également demander de voir si avec l'ajout du out=table_freq;, cela change quelque chose et je reviens donner les conclusions

Merci encore !

Cdt
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2011, 08h59   #10
Membre habitué
 
Femme Géraldine CADE DESCHAMPS
Support Clients SAS (France et Europe)
Inscription : février 2010
Messages : 62
Détails du profil
Informations personnelles :
Nom : Femme Géraldine CADE DESCHAMPS
Localisation : France

Informations professionnelles :
Activité : Support Clients SAS (France et Europe)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 62
Points : 139
Points : 139
Les grands esprits se rencontrent

Si nous avions "un vrai dossier" ensemble, je vous demanderai de faire ceci :

1. Sur quel OS êtes-vous ? si vous exécutez SAS sur de l'unix, il y a peut-être un pb d'espace disque, là où la work est stockée. Aussi, quelle est votre version de SAS ? Si vous êtes en 8.2 ou 9.1, il faut au minimum appliquer le dernier bundle.

2. La requête est-elle lancée depuis SAS ou depuis Enterprise Guide ? la session SAS qui soumet le traitement est-elle locale ou distante ? Peut-être êtes-vous en environnement Citrix ?

3. Si les traitements sont volumineux, je mettrai l'ods noresults au tout début des traitements.

4. Il faut re-créer les profiles de l'utilisateur, et sa base de registres SAS :
- Fermer le Système SAS, et s'assurer via le gestionnaire de tâches qu'il n'y a pas de process sas.exe en cours.
- Aller dans le répertoire de la SASUSER (par défaut C:\Documents and Settings\_Identifiant Windows_\My
Documents\My SAS Files\9.2, ou bien faites une recherche des fichiers profile*.sas7bcat). Vous devriez trouver dans le même répertoire profile.sas7bcat, profile2.sas7bcat et regstry.sas7bitm .
- les renommer en ajoutant .OLD à la fin

- Profitez-en également pour supprimer toutes les WORK qui n'auraient pas été supprimées. Par défaut, elles sont stockées sous C:\Documents and Settings\_Identifiant Windows_\Local Settings\Temp\SAS Temporary Files .

5. Si cela ne résout pas le problème, auriez-vous la possibilité de tester le même programme depuis un autre poste, ou depuis une autre install de SAS ?

Cdt
Géraldine Cade-Deschamps
Support Clients SAS
Géraldine_Cade_SAS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/05/2011, 09h25   #11
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C


Bonjour, et merci beaucoup pour tous ces nouveaux points à vérifier.

Comme je ne suis pas en contact direct avec les utilisateurs, il va me falloir quelques jours pour reboucler sur ces différentes questions, mais je ne manquerais pas de revenir poster ici l'avancement du problème.

Cdt
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h45.


 
 
 
 
Partenaires

Hébergement Web