Bonjour la liste.
J'ai un sérieux problème de fonctionnement de Firebird 2.1 (et 2.5) dans un Windows 7 (tant pro que ultimate).
Installation: machine virtuelle dans un host ESX dans un gros serveur
4 gb mémoire, Windows 7 pro 32 bits anglais, rien de bien particulier; 1 admin et 1 user avec droits administrateur.
Installation de Firebird 2.1.3 en mode manuel (fichier zip)
unzip et copie des fichiers dans C:\Program Files\Firebird\Firebird 2.1
création d'un shortcut sur fbguard.exe avec paramètre "-a" dans la ligne de commande pour lancer firebird en mode application.
copie d'une dll Application.dll dans le répertoire udf de firebird avec celles qui y sont déjà.
lancement de fbguard: l'icône apparait dans le tray, tout OK
Lancement de IBExpert
création de connexions.
tests de connexion: OK
PUIS:
création d'une connexion "Compta", sur une DB qui contient dans les triggers des appels à des UDF de Application.dll et ce depuis les triggers système
active on transaction start ( et transaction commit et rollback) !!
dès la connexion: plantage
Deux sous-produit inattendus et désolants:Résultats:
erreur de Firebird:
invalid request BLR at offset 478.
function DATETIMETOSTR is not defined.
module name or entrypoint could not be found.
erreur confirmée dès le lancement via isql:
Database: c:\Data\DB\compta1.fdb, User: sysdba
Statement failed, SQLSTATE = 39000
invalid request BLR at offset 478
-function DATETIMETOSTR is not defined
-module name or entrypoint could not be found
Statement failed, SQLSTATE = 39000
invalid request BLR at offset 478
-function DATETIMETOSTR is not defined
-module name or entrypoint could not be found
1. le shutdown à travers de l'icone de FBguard ne tue pas le serveur. Il faut y aller manu military via le contrôleur de processus
2. il semble que la connexion n'est pas rompue car les propriétés de Firebird renseignent toujours une connexion active après le plantage
alors:
- le fichier Application.dll est bien dans le répertoire udf de Firebird
- c'est le bon fichier dll avec le bon nom (copié d'un autre poste où elle fonctionne, binaire identique)
- la DB est une DB copiée d'un autre poste où tout fonctionne à merveille
l'ensemble (DB, UDF et Firebird) fonctionne parfaitement sur ma station de travail vista pro et sur des XP
- les moteurs de Firebird sont lancés en mode application (ports différents)
- la même DB et le même fichier dll fonctionnent avec 2.1 et 2.5, même en simultané dans deux sessions.
Au vu des messages soit
- la fonction n'existe pas (DATETIMETOSTR) ce qui est exclu
- la dll n'est pas accessible par Firebird d'une manière que je ne parviens pas à m'expliquer
avec 2.1 ET 2.5 installés manuellement en tous les deux actifs
Si vous avez une solution sous le coude ou quelques idées elles seraient les bienvenues.
Antonio.
Partager