|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
bonjour,
Je voudrais avoir une petite aide sur les composants (exe, services, etc...) à installer pour une application client/serveur firebird : Sur le Poste serveur Sur le ou les postes clients Tous va bien, sauf qu’il arrive de temps en temps l’erreur suivante : Code :
1. Avez-vous une idée de l’origine de ce deadlock 2. Pouvez-vous me dire si la pseudo-installation est correcte Pour information le serveur est lancé manuellement avec la commande MS-DOS : Code :
En espérant que mes explications sont claires Cordialement QAYS |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
hum à priori rien à voir avec l'installation mais plutot un problème de gestion de transaction c'est tout
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#3 | |||
|
Membre émérite
![]() Ingénieur développement logiciels Inscription : février 2005 Messages : 682 ![]() |
Citation:
Probablement ne gère-tu pas bien les transactions ou celles-ci sont trop longues. Quant à ton installation, je ne comprends pas bien la bidouille quand il existe des moyens tellement plus simples que sont les downloads d'installation fournis sur le site de FireBird. Enfin apparemment cela fonctionne, je pense que tu dois plutôt regarder du côté de ton code. Cela arrive-t-il sur une fonctionnalité particulière ? A voir. a+
__________________
Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle. Aymond d'Alost |
|||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
Bonjour,
Merci pour ces élements de réponse. Je vais donc voir le code pour le « deadlock » Pour ce qui est de mon install voici les raisons « justifiées pour moi et peut être injustifiées pour d’autres» J’ai développé une pgm avec une bdd paradox, et lors de l’installation chez des clients je n’ai pas installé à proprement dit le BDE, en effet j’ai simplement copié les DLL et autres fichiers nécessaires dans le répertoire de l’exe. Ne mode opératoire m’a été imposé par le fait que je ne voulais pas entendre de la part de mes clients : « Depuis que vous avez installé votre programme notre ordi ne fonctionne plus correctement ». En effet lors d’une installation de programme, la base de registre est touchée, les répertoires Windows, Systems et j’en passe sont modifiés et c’est ce que je ne veux pas. Mon installation ou ma pseudo installation ne fait que créer un répertoire contenant l’exe, les DLL (pour le BDE) et la bdd si nécessaire. Donc si le poste du client « s’enrhume », je pourrais toujours répondre que mon installation n’a rien à voir avec les disfonctionnements de son poste. Ce mode opératoire est totalement viable, car mes programmes tournent correctement et cela depuis plus de 4 ans (pas de pb avec le BDE, les tables paradox sont toujours ok, les multi accès sont ok etc.…) en résumé je suis totalement satisfait du bde et de paradox Ayant entendu tellement de bien sur interbase/firebird que j’ai décidé de migrer vers Interbase/firebird mais je voudrais garder le même mode opératoire (que pour le DBE) si cela est possible, sinon j’utiliserais les procédures d’installe de firebird superserveur (serveur et client) Voici en quelques lignes pourquoi je pose cette question et pourquoi vous pouvez voir sur le forum bcq de sujet (de QAYS moi) sur le thème des installations de firebrid, des serveurs de bdd etc… Pour en revenir à mon sujet, pouvez vous me dire si les élements installés sur le poste serveur et les postes clients sont correctes ? A mon sens oui mais je voudrais une confirmation. Sur le Poste serveur 1 - Lancer le serveur firebird (superserver) ==> FbGuard.exe - a 2 - X:\Répertoire serveur\MA_BDD.FDB. 3 – Autres choses ???? Sur le ou les postes clients 1 - X:\Mon_Appli\Mon_appli.EXE. 2 - X:\Mon_Appli\FBCLIENT.DLL renomé en GDS32.DLL ? 3 - X:\Mon_Appli\CONFIG.INI (Ex. : DataBaseName := IP:X:\Répertoire serveur.FDB) 4 – Autres choses ???? Cordialement QAYS |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Ingénieur développement logiciels Inscription : février 2005 Messages : 682 ![]() |
Bonjour,
Bien sur si ton mode d'installation fonctionne alors il est correct. Pour ce qui est du deadlock c'est autre chose. Il faut d'abord que tu détermine les fonctionnalités entrainant ce message, la ou les tables mise(s) en cause. Il faut réduire tes transactions au stricte nécessaire (minimum). Enfin il existe un piège auquel in n'échappe pas toujours c'est l'affichage de message. Tout message attendant une réponse de l'utilisateur doit-être affiché en dehors des transactions. Ton programme client est réalisé dans quel langage ? a+
__________________
Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle. Aymond d'Alost |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
Le programme est en Delphi (7 pro), je vous dirais plus tard dans quelle actions j'ai le message, je pense qu'e c'est mise a jour d'un table (table numéroteur)==> Attribution d'un numero d'identifiant
Qays |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
1/ sur l'installation
il me semble t'avoir déjà tout dis, mais je redis que Firebird n'a pas besoin de la base de registre les sources du setup officiel sont disponibles, libre à toi de le reprendre et les modifier si besoin et te refaire un setup en suppriment tout ce qui concerne le base de registre dans ce setup qui en fait est inutile par contre le setup permet tout de même de vérifier qu'il n'y ait pas déjà Firebird ou Interbase sur la machine 2/ ton problème de deadlock est applicatif c'est sûr et si tu viens du BDE avec Paradox ce n'est pas vraiment etonnant surtout si tu utilise des TTable
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#8 | |||
|
Membre du Club
![]() |
Citation:
instreg i // installe les clés dans le registre, inutile pour firebird, mais utile pour le gars qui a besoin de savoir où est installé firebird instsvc i -s -a -g // installe le service firebird, ca démarrera automatiquement avec la machine. -g installe FirebirdGuardian qui s'occupe de la survie du serveur. instsvc start/stop // comme ça tu peux démarrer et arrêter le serveur manuellement, je te conseille plutôt d'utiliser l'API de manipulation des services windows pour le faire. C'est plus transparent. instclient i f ou g // installe fbclient.dll dans system32 ou gds32.dll dans system32. Il faut bien faire attention, quand on utilise gds32.dll que celle qui est chargée par le programme est bien celle qui correspond à la version de Firebird qu'on utilise. Beaucoup de softs déploient gds32.dll d'interbase dans system32 et instclient refuse d'installer la version firebird par dessus gds32.dll d'une autre version du serveur. instclient q f ou g permet de connaitre la version d'une DLL fbclient.dll ou gds32.dll qui se trouverait dans le répertoire systeme de windows. Sinon... si tu n'as pas besoin d'un accès réseau, je te conseille d'utiliser Firebird "Embedded" plutôt que Firebird "SuperServer", ca t'evite totalement d'installer quoi que ce soit, où que ce soit. N'utilise pas le BDE avec Firebird. Réécrit ton appli avec des composants adaptés (UIB par exemple) ou continue avec le BDE+Paradox mais n'utilise pas le BDE pour te connecter à Firebird. C'est là l'origine de ton deadlock, le BDE ne connait pas le modèle transactionnel de Firebird et fait absolument n'importe quoi. Ton disque "X:" m'inquiète, j'espère que ce n'est pas un lecteur réseau mappé sur une lettre de lecteur ? Si ton X: est un subst d'un répertoire genre C:\Program Files\Ma Societe\MonApplication\LeDossierDeTravail\... tu ferais mieux d'utiliser des Alias, au moins pour la connection à la base de données. Dans C:\Program Files\{Install De Firebird}\aliases.conf tu peux ajouter une ligne comme ça : MaBaseDeMonAppli = C:\Program Files\MaSociete\MonApplication\LeDossierDeTravail\LesDonnees\LaBase.FDB Et la chaine de connection devient : localhost:MaBaseDeMonAppli en local LeServeur:MaBaseDeMonAppli en réseau Et tu es sûr que le chemin de connexion sera identique pour toutes les connexions. Ca évitera à Firebird de s'emmèler les pinceaux entre les connexions locales qui utilisent X: et les connexions réseau qui utilisent autre chose. @+ -- Pierre Y. |
|||
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
Bonjour,
Merci pour cette contribution. je tiens à ajouter que je n'utilise pas le BDE pour accéder à la base de données Firebird. En fait quand je dit que j'ai mis en place un mode de fonctionnement qui me permets (via une directive de compilation) de pointer soit sur une base PDX, IB, ADO ou autre, c'est que j'ai simplement créer un composant qui en fonction de la directive de compile va hériter du bon composant (BDE, IB,ADO etc..). Pour ce qui est de l'installe je vais étudier ta proposition. Mais je viens de faire un test du entre deux postes (client/serveur) et le mode opératoire que j'ai définie semble fonctionner correctement, pour le moment. toutefois je vais continuer les tests pour resoudre ce problème de DeadLock Une fois les test finalisés je ne manquerais pas de vous indiquez le resultat. PS: Je sais que ce mode de fonctionnement ne plait pas à tout le monde, mais j'aime bien essayer plusieurs choses et voir toutes les possibilités d'un produit ou d'un mode opératoire. Encore une merci de vos réponses A suivre Cordialement kaiss Lemmouchi |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
j'ai personnellement aucun problème avec ton mode opératoire, sauf si un jour avec ton installation tu viens casser une installation existante de Firebird, parce que tu n'aura pas vérifié avant que Firebird tournait déjà sur le serveur
là, si c'est une de mes installations, je peux te dire que tu entendra parler du pays mais sinon, cela ne pose aucun problème particulier et encore une fois, le deadlock n'a absolument rien à voir avec la méthode d'installation
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#11 | |
|
Membre habitué
![]() Inscription : août 2004 Messages : 541 ![]() |
Bonjour,
Citation:
Merci pour ces précisions, mais je te rassure : 1 - Mes programmes sont proposés avec la machine (serveur)(donc vierge de toutes installations). 2 - Avant d'installer je vérifie toujours (sur les postes clients) 3 - Mes programmes sont à destination pour d'associations dans le 93, pourle moment A la lumière des 3 points ci-dessous et sauf erreur de ma part il m'est impossible de casser, ou d'endomager le travail d'autrui. Cordialement |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com