[Corrigé 5.6.51.5186] Réseau - Utilisation multi-postes multi-utilisateurs

Vous constatez une anomalie dans GesFine, c'est ici ...

Modérateur : Patrice15220

Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

[Corrigé 5.6.51.5186] Réseau - Utilisation multi-postes multi-utilisateurs

Message par Zorg »

Bonjour,

J'ai utilisé Gesfine pour la première fois en multi-postes (2 postes accédant à la même base sur réseau) et multiutilisateurs (2 utilisateurs en simultané) et ça fonctionne en lecture, mais pas en écriture (erreur d'accès à la base).
Ce qui est gênant c'est qu'il n'y a pas de message d'alerte informant que la base est déjà ouverte par un autre utilisateur lorsque le second se connecte, genre "ouverture en lecture seule".
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

Bonjour,

Qu'est ce qui te faire dire que ça ne marche pas en écriture ?
Si un message d'erreur est émis, pourrais tu m'en faire une copie ?
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

As tu vérifié que tu avais les droits en écriture sur ton répertoire. Depuis ton poste client, essaye par exemple de créer un fichier txt à coté du fichier GesData.db
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: Utilisation multi-postes multiutilisateurs

Message par Zorg »

Oui, mon épouse a eu un message d'erreur après avoir cliqué sur "ajouter" (ajout d'une opé ds le livre de compte), elle travaillait sur son compte et moi sur le mien, pour le moment je ne peux pas reproduire le cas car je suis seul. Si j'arrive a le reproduire je t'envoie la copie d'écran.

Oui nous avons les droits en écriture, mon épouse avait déjà saisi plusieurs opé ss pb.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

Ok tiens moi au courant, normalement c'est possible mais cela fait longtemps que l'ai testé, je n'ai a priori rien changé qui puisse perturber cette fonctionnalité.

Cependant il faut tout de même savoir que la base SQLite verrouillent en lecture seule le fichier lorsque une transaction est effectuée, les transactions d'écritures sont donc sérialisées (pas de problème pour des transactions en lecture). Les temps de transaction sont normalement assez faibles pour que ce soit transparent (quelques dizaines de ms, quelques centaines au plus notamment via le réseau) sauf si tu effectues une très grosse requête (module Evolution du solde ou des gains par exemple) qui peut prendre plusieurs secondes le temps de transférer les données via le réseau. Durant ces secondes la base n'est pas accessible en écriture, elle l'est juste en lecture.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

Petit complément technique
Sur la FAQ de SQLite point 5 le fonctionnement décrit est évoqué. Il est cependant fait référence d'un fonctionnement pouvant être erratique sur des machines Windows (2ieme paragraphe), à cause de bogues dans le système de fichier.

EDIT : dernier point, si le problème se reproduit fréquemment, pourrais tu m'envoyer les logs de performance. Tu les actives depuis les Options/Préférences, item Maintenance pour la prochaine session, durant cette prochaine session effectue différentes tâches, puis à la fermeture le fichier de log sera enregistré à coté de la base de données.
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: Utilisation multi-postes multiutilisateurs

Message par Zorg »

En attendant que le phénomène se reproduise, voici un cas qui vient de m'arriver :
Gesfine erreur DLL.JPG
Gesfine était ouvert en arrière plan et je faisais de la transaction sur web (Firefox) lorsque la fenêtre ci-dessus s'est ouverte, à partir de ce moment, plus possible de la fermer (elle était gênante car au premier plan) ni d'arrêter Gesfine, j'ai du tuer la tâche Gesfine.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

Ok c'est la fonction d'enregistrement des cours en direct exécutée par le process dédié à l'importation

Cela s'est produit alors que 2 postes avait ouvert GesFine ? ou juste ton poste ?
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: Utilisation multi-postes multiutilisateurs

Message par Zorg »

Deux postes.
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: Utilisation multi-postes multiutilisateurs

Message par Zorg »

Info complémentaire : l'appli Gesfine est bloquée sur l'autre poste en cours de mise à jour des cours, obligé de tuer la tâche.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

Mise à jour des cours en direct ou des cours de clôture ?
L'importation des cours sollicite fortement la base de données, la mise à jour simultané des 2 postes est peut être la cause du verrouillage. Le souci c'est que les 2 processus se bloquent...
La base de données est sur l'un des 2 PC ou sur un NAS ?
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: Utilisation multi-postes multiutilisateurs

Message par Zorg »

MàJ des cours en direct.
Base sur un NAS, mon poste (4 coeurs, 3.6 GH) accède en Ethernet gigabit, celui de mon épouse (2 coeurs, 1.4 GH) en wifi 150 MHz(et il rame ...)
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: Utilisation multi-postes multiutilisateurs

Message par Jacques Leblond »

Ok merci pour ces infos, je suppose que ton NAS fonctionne sous Linux, les erreurs imputables au système de fichiers sont donc à écarter.
Pourrais tu m'envoyer la log de performance du PC de ta femme ? Au démarrage tu laisses les cours de clôture et en direct se terminer puis tu utilises un peu GesFine, si possible crée une écriture et efface là.
Sa connexion Wifi doit augmenter les temps d’exécution des requêtes comparé à ta connexion éthernet mais cela n'est pas forcément rédhibitoire.

Concernant les cours en direct, j'utilise une méthode particulière pour l'enregistrement dans la base de données (et je l'utilise qu'à la fin du processus et uniquement ici), le besoin est lié à l'agent de notification.
Utilises-tu l'agent de notification sur tes postes ?

Je vais regarder si je n'ai pas d'autres alternatives. A minima, dans la prochaine version, je ne ferai un enregistrement dans la base de données que si l'agent est activé. L’écueil sera déjà évité pour ceux qui n'utilisent pas l'agent.
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Zorg »

Oui, NAS Synology DJ213+, logs joints pris sur le poste de mon épouse alors que Gesfine était en tâche de fond sur le mien.
Pendant que j'écris ce message sur mon poste apparition de la fenêtre Dll error, Gesfine figé, tâche tuée.

Agent de notification pas utilisé sur aucun poste
Fichiers joints
log_perfo.txt
(15.04 Kio) Téléchargé 142 fois
log_errorimport.txt
(7.24 Kio) Téléchargé 136 fois
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Jacques Leblond »

Effectivement ça rame ! Pas une requête sous les 300ms, pour des requêtes sur les cours ou devises on passe au minium à 1.5s, et on va jusqu'à 10s sans que tu sois allé dans les modules les plus gourmands, démarrage en 45s !
Coté net, c'est réactif sur les cours de clôture, un peu moins sur les cours en direct (jusqu'à 42s pour un cours) mais le PC semble particulièrement ralenti à ce moment là, donc je ne pense pas que le Wifi soit le problème, il est réactif sur les premières importations.

Sinon quand tu dis "GesFine figé", c'est parce que tu ne peux pas fermer le message d'erreur ?
Zorg a écrit :Agent de notification pas utilisé sur aucun poste
Donc ça ira forcement mieux avec la prochaine version et ton message d'erreur ne pourra plus se produire.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Jacques Leblond »

Une idée en attendant la prochaine version, je pense que tu peux "travailler hors connexion" sur le pc de ta femme, ton PC se chargeant de mettre les cours à jour quand il est ouvert
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Zorg »

quand tu dis "GesFine figé", c'est parce que tu ne peux pas fermer le message d'erreur ? => oui, le message d'erreur est en premier plan et ne peut pas être fermé, la fenêtre Gesfine principale est également "figée", il faut tuer la tâche Gesfine, tuer la tâche DLL error ne fonctionne pas.

Une nouveauté :
poste 1 (le mien) = Gesfine, tué précédemment, impossible à relancer
poste 2 (mon épouse) = en veille, Gesfine non lancé,
poste 2 : je lance Gesfine qui démarre et se plante au niveau de la vérif à l'accès à la BD :
Capture.jpg
Zorg
Messages : 117
Enregistré le : 18 septembre 2013, 15:49

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Zorg »

Poste 1 :
Redémarrage du PC = OK,
Redémarrage de Gesfine = OK avec message "un autre utilisateur a bloqué la base de donnée, voulez-vous l’arrêter.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Jacques Leblond »

Oui je pense que le redémarrage du poste 2 aurait aussi été OK, le verrou créé par Poste 1 et capté par Poste 2 n'a pas été libéré sur le poste 2 en ayant tué le process sur le Poste 1.
Je vais essayer de trouver des solutions, il y a plusieurs problèmes notamment le faite que tu ne puisses pas fermer le message d'erreur et qui est à l'origine de tes derniers messages.
Jacques Leblond
Administrateur
Messages : 6748
Enregistré le : 04 janvier 2010, 20:03
Localisation : France (Yvelines 78)
Contact :

Re: [Réseau] Utilisation multi-postes multi-utilisateurs

Message par Jacques Leblond »

Je pense avoir trouvé l'origine du figeage sur le message d'erreur, j'ai corrigé le code en conséquence.
Ensuite j'ai désactivé la fonction d'enregistrement des cours en direct dans la Bdd si l'agent de notification n'est pas utilisé.
Dans le cas où il l'est, j'ai demandé à la fonction d'ignorer l'anomalie, celle qui provoquait le message d'erreur, pas de conséquence grave, simplement la table n'est pas mise à jour, elle le sera à la prochaine actualisation si il n'y a pas de conflit.

J'ai compilée une version intermédiaire, tu peux l'installer.

PS : j'ai aussi développé dans cette version le changement de la date de valeur dans le livre de comptes.
Répondre