Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
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 20/07/2011, 19h30   #1
Invité de passage
 
Nicolas
Inscription : décembre 2010
Messages : 26
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : décembre 2010
Messages : 26
Points : 3
Points : 3
Par défaut Accès concurrents sur la bd

Bonjour,

Dans notre entreprise, un (mauvais) programme fait à la fois office de client et de serveur. Sur le serveur, la première instance de ce programme à accès parfaitement à des ressources dans le réseau et à la base de données firebird. Cette instance du programme joue le rôle du « serveur » en récupérant des infos et en les injectant dans la BD.

Le chemin vers la base de données est hard-codé en dur dans le programme. Donc pour l’utiliser en « multi-utilisateur », j’ai du activer sur mon serveur le service « Terminal-Server ». Du coup, à partir de la seconde instance du programme, le programme n’arrive pas à accéder aux ressources réseau mais bien à la BD alimentée par la première instance du programme… Les instances de ce programme ouvertes après le premier, jouent le rôle de « clients » avec uniquement les lectures/écritures dans la BD.

Donc j’ai configuré ce serveur pour démarrer automatiquement en tant que Administrateur sans demander de s’authentifier. Ensuite j’ai configuré dans la session de l’administrateur de démarrer automatiquement mon programme. Du coup, je m’assure que le 1er programme joue bien le rôle de serveur. Ainsi le second, le troisième, etc qui seront ouverts par des utilisateurs du réseau joueront bien le rôle des clients. Et en plus ça marche (Avec des utilisateurs réseau à qui j’ai donné le droit d’accès en écriture dans le dossier du programme où se trouve la BD ainsi que le droit de se connecter en RDP) !!!


Je vous passe le chapitre ou je dois redémarrer plusieurs fois par jour l’instance du programme qui jour le rôle de serveur parce que ce programme perd ses liaisons vers ses ressources dans le réseau….

J’en arrive enfin à mon problème…

Excusez la tartine…

Au lieu de mettre mon login et password « Administrateur » en clair dans le registre pour forcer l’ouverte de session, j’ai refait mon truc avec un compte dédié. J’ai donné les pleins droits d’accès à l’utilisateur dédié sur le dossier c:\program files\firebird\... et c:\program files\monMauvaisProgramme et j’ai configuré le serveur pour démarrer dans la session de celui-là et lui démarrer la première instance du programme.

Et là, surprise !!! Les utilisateurs qui se connectent au programme via RDP reçoivent un message qui dit que la BD est occupée… Le message exacte dit : I-O Error while connecting to the database c:\....fichier.fdb. Error while Trying to open file. Le processus ne peut pas accéder au fichier car fichier est utilisé par un autre processus.

Je ne comprends pas ce comportement. Je viens donc vous demander. Est-ce que Firebird fait qqc de spécial dans le traitement de sa BD suivant que le compte possède non pas le privilège, mais le nom administrateur ? Car c’est vraiment ça qui se passe. Par ailleurs j’ai aussi intégré mon utilisateur au groupe « Administrateur » en local et même en domaine, mais j’observe le même problème.

Après tant d'efforts je ne peux plus abandonner

Merci d’avance pour vos conseils.

Nico
nico.exe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 09h20   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 213
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 213
Points : 3 315
Points : 3 315
version de Firebird ?
tu as lu la doc ? en particulier ça : http://www.firebirdsql.org/file/docu...210-wintrusted

pourquoi utiliser le protocole direct local ?
utiliser le protocole tcp/ip et tout ira mieux

ça :
Citation:
des utilisateurs réseau à qui j’ai donné le droit d’accès en écriture dans le dossier du programme où se trouve la BD
c'est mal
seul le service firebird lui même doit avoir acces aux bases
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski 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 00h26.


 
 
 
 
Partenaires

Hébergement Web