Bonjour,
Depuis plusieurs, jours, impossible de régénérer les statistiques.
Même en renommant le le fichier database.bin pour qu'il puisse être recréé.
En lançant GW avec l'option -v 100, j'obtiens l'erreur suivante "Exception occured during context processing" dans la log.
J'ai testé avec GW 3.0.11b et GW 2.0.321
J'ai testé sur deux postes l'un en windows 7 et l'autre sous windows XP.
J'ai supprimé mes données sur mois et rien n'y fait. Pour info, mes données sont stockée dans une BD PostgreSQL que j'accède via ODBC avec GW. Cela fonctionnait très bien depuis plus de 6 mois.
là je pense avoir tout essayé, si vous avez déjà eu ce problème et si vous l'avez résolu, n'hésitez pas à poster.
cdlt,
Impossible de régénérer les statistiques
- jturlier
- Membre
- Messages : 3149
- Inscription : mar. août 22, 2006 8:38 am
- Localisation : 34410 Sérignan - Languedoc
- Contact :
Re: Impossible de régénérer les statistiques
Bonjour,
jamais eu ce pb, peut-être puis-essayer de te faire des suggestions :
as-tu essayé de ne régénérer qu'un jour ?
Sais-tu depuis quand tu as ce pb ?
essaie de faire une requête avec PGAdmin3 pour essayer de voir si tu n'as pas de doublon sur le timestamp (je suppose que c'est ta clé primaire donc tu ne devrais pas en avoir).
as-tu essayé de faire une opération de maintenance sur ta table ? (Vacuum Full) par ex, ça pourrait peut-être identifier et réparer des anos.
Pour les autres utilisateurs de bases de données, que ce soit Postgre, MySQL, MsSQL... il es recommandé de faire de temps en temps une maintenance de la base.
Jean
jamais eu ce pb, peut-être puis-essayer de te faire des suggestions :
as-tu essayé de ne régénérer qu'un jour ?
Sais-tu depuis quand tu as ce pb ?
essaie de faire une requête avec PGAdmin3 pour essayer de voir si tu n'as pas de doublon sur le timestamp (je suppose que c'est ta clé primaire donc tu ne devrais pas en avoir).
as-tu essayé de faire une opération de maintenance sur ta table ? (Vacuum Full) par ex, ça pourrait peut-être identifier et réparer des anos.
Pour les autres utilisateurs de bases de données, que ce soit Postgre, MySQL, MsSQL... il es recommandé de faire de temps en temps une maintenance de la base.
Jean
Re: Impossible de régénérer les statistiques
Bonjour Jean,
Merci pour tes réponses, mais j'avais déjà tenté.
par ailleurs, les graphiques sont bien affichés, les courbes et données sont correctes sauf les données "statistiques", cumul de pluie ...
Le message d'erreur ""Exception occured during context processing" est peu "explicite", on le retrouve à un seul endroit dans les sources de GW, mais sans la pile d'appel, il est impossible de voir où il se produit vraiment dans le code.
Antoine, t'es-il possible de poster une DLL GWCore.dll plus verbeuse ?
cdlt,
- quand je régénère la base complète.
- quand je "supprime" database.bin pour tout réinitialiser.
J'ai sauvé dans mes données dans une table de sauvegarde et supprimé le dernier mois de données mais le problème persiste
il n'y pas d'erreurs sur la table.
Merci pour tes réponses, mais j'avais déjà tenté.
par ailleurs, les graphiques sont bien affichés, les courbes et données sont correctes sauf les données "statistiques", cumul de pluie ...
Le message d'erreur ""Exception occured during context processing" est peu "explicite", on le retrouve à un seul endroit dans les sources de GW, mais sans la pile d'appel, il est impossible de voir où il se produit vraiment dans le code.
Code : Tout sélectionner
BOOL CCore::Process(int ContextID, ULONG ControlFlag/*=C_DEFAULT*/, void* Value/*=NULL*/)
{
m_InstanceLock.Lock();
m_CriticalSection.Lock();
m_pLogger->Log(MSG_START_FLAG, AUTO_VERBOSE, "%s", __FUNCTION__);
try
{
CContext* pContext = GetContext(ContextID);
pContext->Process(ControlFlag);
}
catch (...)
{
m_pLogger->Log(MSG_EXCEPTION_FLAG, AUTO_VERBOSE, "Exception occured during context processing");
m_CriticalSection.Unlock();
m_InstanceLock.Unlock();
throw;
}
cdlt,
Oui, j'obtiens la même la même erreur :as-tu essayé de ne régénérer qu'un jour ?
- quand je régénère la base complète.
- quand je "supprime" database.bin pour tout réinitialiser.
Il y a deux jours ça fonctionnait encore, je fais régulièrement un "forcer la mise à jour" pour mettre à jour les stats de pluie (pour éviter d'avoir des NA).Sais-tu depuis quand tu as ce pb ?
J'ai sauvé dans mes données dans une table de sauvegarde et supprimé le dernier mois de données mais le problème persiste
Pas de doublon, il y a une contrainte d'unicité sur la table.essaie de faire une requête avec PGAdmin3 pour essayer de voir si tu n'as pas de doublon sur le timestamp (je suppose que c'est ta clé primaire donc tu ne devrais pas en avoir).
je fais quotidiennement, une maintenance avec une recontruction d'index chaque jour, avant chaque dump de base.as-tu essayé de faire une opération de maintenance sur ta table ? (Vacuum Full) par ex, ça pourrait peut-être identifier et réparer des anos.
il n'y pas d'erreurs sur la table.
- jturlier
- Membre
- Messages : 3149
- Inscription : mar. août 22, 2006 8:38 am
- Localisation : 34410 Sérignan - Languedoc
- Contact :
Re: Impossible de régénérer les statistiques
J'ai eu un bug il y a quelques mois, à la 3.0.2 avec "maximum context reached", mais ça n'a normalement rien à voir.
Je suis à la 3.0.11 avec PG.
Peut-être pourrais-tu faire une réinstall de GW ?
Aurais-tu eu une mise à jour de Windows ou du framework ? (Je n'installe pratiquement jamais les MàJ automatiques... la dernière que j'ai accepté m'a fait re-coder tout ce qui était en ADOdb pour le passer en ODBC... alors basta !!!)
As-tu, en dernier recours, essayé de faire une restauration de windows à une date où ça fonctionnait encore ?
Effectivement le code ne fournit aucune info. Je pense qu'Antoine en saurait un peu plus si on avait le ContextID.
Je suis désolé de ne pas pouvoir t'aider plus, mais là je suis sec !
Je suis à la 3.0.11 avec PG.
Peut-être pourrais-tu faire une réinstall de GW ?
Aurais-tu eu une mise à jour de Windows ou du framework ? (Je n'installe pratiquement jamais les MàJ automatiques... la dernière que j'ai accepté m'a fait re-coder tout ce qui était en ADOdb pour le passer en ODBC... alors basta !!!)
As-tu, en dernier recours, essayé de faire une restauration de windows à une date où ça fonctionnait encore ?
Effectivement le code ne fournit aucune info. Je pense qu'Antoine en saurait un peu plus si on avait le ContextID.
Je suis désolé de ne pas pouvoir t'aider plus, mais là je suis sec !
RESOLU Impossible de régénérer les statistiques
C'est liée à une valeur de date en base incohérente.
J'ai récupéré les sources de graphweather 3, et recompilé une version de GW en debug.
L'erreur se produit dans plugin.cpp, lors de l'appel suivant :
SQLString.Format("SELECT MIN(%s) FROM %s", m_Map.Time.DateField, m_DBName);
qui va chercher la date min en base.
Cette requête en base retourne : 101010000, il s'agit d'une date erronée qui a été injectée par ma station WMR200 !
(et oui, dans mon cas le champ date est type entier et 101010000 peut avoir été stocké en base)
La suppression de cette valeur en base à permis de régler le pb.
Antoine,
Quelques petites remarques pour améliorer GW :
ça serait pas mal que GW indique qu'il y a un pb de données sur la date min plutôt qu'un crash.
Sinon, te serait-il possible d'afficher la stacktrace (pile des appel) dans la log de GW en mode -v 100 ?
ça peut éviter de d'installer Visualstudio (heureusement que je l'avais, sinon je n'aurais pu résoudre ce pb).
ouf, je vais pouvoir continuer à utiliser GW.
Encore bravo pour ce super boulot Antoine (PS, ton code source est très bien écrit et organisé !, je n'ai aucun mal à compiler et trouver d'où pouvait provenir le pb)
et merci à Jean d'avoir essayé de m'aider.
A bientôt
J'ai récupéré les sources de graphweather 3, et recompilé une version de GW en debug.
L'erreur se produit dans plugin.cpp, lors de l'appel suivant :
SQLString.Format("SELECT MIN(%s) FROM %s", m_Map.Time.DateField, m_DBName);
qui va chercher la date min en base.
Cette requête en base retourne : 101010000, il s'agit d'une date erronée qui a été injectée par ma station WMR200 !
(et oui, dans mon cas le champ date est type entier et 101010000 peut avoir été stocké en base)
La suppression de cette valeur en base à permis de régler le pb.
Antoine,
Quelques petites remarques pour améliorer GW :
ça serait pas mal que GW indique qu'il y a un pb de données sur la date min plutôt qu'un crash.
Sinon, te serait-il possible d'afficher la stacktrace (pile des appel) dans la log de GW en mode -v 100 ?
ça peut éviter de d'installer Visualstudio (heureusement que je l'avais, sinon je n'aurais pu résoudre ce pb).
ouf, je vais pouvoir continuer à utiliser GW.
Encore bravo pour ce super boulot Antoine (PS, ton code source est très bien écrit et organisé !, je n'ai aucun mal à compiler et trouver d'où pouvait provenir le pb)
et merci à Jean d'avoir essayé de m'aider.
A bientôt
- jturlier
- Membre
- Messages : 3149
- Inscription : mar. août 22, 2006 8:38 am
- Localisation : 34410 Sérignan - Languedoc
- Contact :
Re: Impossible de régénérer les statistiques
Félicitation pour l'analyse, c'est du beau travail !!!
Jean
Jean