Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 11 October 2007 17:28

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

cache erreurs mapserver

Bonjour,

Je travaille sous MapServer version 4.8.3, php 5.1, mapscript 1.242.2.2, Apache/2.0.55 (Ubuntu) sous Linux.

Tout se passe plutôt bien et j'avance petit à petit, si ce n'est que j'ai un sérieux problème avec les messages d'erreur. En effet, je reçois des messages qui correspondent à des erreurs que j'ai commises auparavant mais qui ne coïncident plus avec l'erreur actuelle. J'imagine que ces messages sont stockés en cache quelque part et qu'il me les renvoie après le nouveau mesage d'erreur (et oui, j'en fais pas mal faut dire!). Un redémarrage d'Apache réinitialise le log mais c'est pas le plus pratique...

Si quelqu'un voit de quoi je parle et peux me dépanner je lui en serai extrêmement gré.

Merci d'avance cool

Hors ligne

 

#2 Thu 11 October 2007 18:11

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: cache erreurs mapserver

bonjour,
il n'y a pas de cache des messages d'erreur avec mapserver. pouvez vous etre plus precis quant aux messages que vous recevez, et/ou où ils aparaissent ( dans les logs apache c'est ca? )

tb

Hors ligne

 

#3 Thu 11 October 2007 18:34

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

Non, c'est sur la page html renvoyée par le code php

par ex:

- premier chargement

Code:

Warning: [MapServer Error]: msDrawMap(): Failed to draw layer named 'commune'. in /var/www/lunette/Auray/mapserver/TEST_WMS_GEOSIGNAL.php on line 14

Warning: [MapServer Error]: prepare_database(): Error executing POSTGIS DECLARE (the actual query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT nom_commune::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),OID::text from commune WHERE the_geom && setSRID('BOX3D(177250 2261975,215000 2337475)'::BOX3D, find_srid('','commune','the_geom') )'

Postgresql reports the error as 'ERROR: column "nom_commune" does not exist '

More Help:

Error with POSTGIS data variable. You specified '<check your .map file>'.
Standard ways of specifiying are :
(1) 'geometry_column from geometry_table'
(2) 'geometry_column from (<sub query>) as foo using unique <column name> using SRID=<srid#>'

Make sure you put in the 'using unique <column name>' and 'using SRID=#' clauses in.

For more help, please see http://postgis.refractions.net/documentation/

Mappostgis.c - version of Jan 23/2004. in /var/www/lunette/Auray/mapserver/TEST_WMS_GEOSIGNAL.php on line 14

- second chargement (juste un F5 : pas de modification du code !)

Code:

Warning: [MapServer Error]: msDrawMap(): Failed to draw layer named 'commune'. in /var/www/lunette/Auray/mapserver/TEST_WMS_GEOSIGNAL.php on line 14

Warning: [MapServer Error]: prepare_database(): Error executing POSTGIS DECLARE (the actual query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT nom_commune::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),OID::text from commune WHERE the_geom && setSRID('BOX3D(177250 2261975,215000 2337475)'::BOX3D, find_srid('','commune','the_geom') )'

Postgresql reports the error as 'ERROR: column "nom_commune" does not exist '

More Help:

Error with POSTGIS data variable. You specified '<check your .map file>'.
Standard ways of specifiying are :
(1) 'geometry_column from geometry_table'
(2) 'geometry_column from (<sub query>) as foo using unique <column name> using SRID=<srid#>'

Make sure you put in the 'using unique <column name>' and 'using SRID=#' clauses in.

For more help, please see http://postgis.refractions.net/documentation/

Mappostgis.c - version of Jan 23/2004. in /var/www/lunette/Auray/mapserver/TEST_WMS_GEOSIGNAL.php on line 14

Warning: [MapServer Error]: msDrawMap(): Failed to draw layer named 'commune'. in /var/www/lunette/Auray/mapserver/TEST_WMS_GEOSIGNAL.php on line 14

Warning: [MapServer Error]: prepare_database(): Error executing POSTGIS DECLARE (the actual query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT nom_commune::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),OID::text from commune WHERE the_geom && setSRID('BOX3D(177250 2261975,215000 2337475)'::BOX3D, find_srid('','commune','the_geom') )'

Postgresql reports the error as 'ERROR: column "nom_commune" does not exist '

More Help:

Error with POSTGIS data variable. You specified '<check your .map file>'.
Standard ways of specifiying are :
(1) 'geometry_column from geometry_table'
(2) 'geometry_column from (<sub query>) as foo using unique <column name> using SRID=<srid#>'

Make sure you put in the 'using unique <column name>' and 'using SRID=#' clauses in.

For more help, please see http://postgis.refractions.net/documentation/

Mappostgis.c - version of Jan 23/2004. in /var/www/lunette/Auray/mapserver/TEST_WMS_GEOSIGNAL.php on line 14

et ainsi de suite...

Hors ligne

 

#4 Fri 12 October 2007 08:40

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: cache erreurs mapserver

Bonjour,

Je confirme ce problème que j'ai parfois aussi avec mon appli. Par contre si vous avez besoin d'information supplémentaire, je peux vous en fournir. (Mapserver 4.10.1, avec MapScript).

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Fri 12 October 2007 08:54

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

Bonjour Yves,

je veux bien des informations supplémentaires pour comprendre et remédier à ce problème si vous en connaissez les ressorts .

Merci d'avance

Hors ligne

 

#6 Fri 12 October 2007 09:20

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: cache erreurs mapserver

Tiassma,

Mon message était plutôt destiné à tbonfort, puisque je sais qu'il s'y connait pas mal wink Je suis dans le même cas que toi, impossible de voir d'où cela provient.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Fri 12 October 2007 09:41

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: cache erreurs mapserver

Yves a écrit:

Bonjour,

Je confirme ce problème que j'ai parfois aussi avec mon appli. Par contre si vous avez besoin d'information supplémentaire, je peux vous en fournir. (Mapserver 4.10.1, avec MapScript).

Y.


effectivement, si c'etait possible d'avoir un bout de code php qui permette de reproduire simplement l'erreur ca aiderait pas mal...
sinon, vous utilisez un php en cgi ou module dso, et/ou quelle version d'apache (voir http://www.php.net/manual/en/faq.instal … on.apache2 ou http://www.php.net/manual/fr/faq.instal … on.apache2 pour la version en francais mais dont la traduction fait perdre beaucoup de substance)

tb

Hors ligne

 

#8 Fri 12 October 2007 10:07

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

En fait ça peut arriver avec n'importe quel script.... c'est toujours des erreurs mapserver

Hors ligne

 

#9 Fri 12 October 2007 10:15

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

Voilà le message d'apache concernant mapserver

[Thu Oct 11 17:38:28 2007].197241 msDrawMap(): Layer 0 (geosignal), 0.257s
[Thu Oct 11 17:38:28 2007].249784 FAILURE!!![Thu Oct 11 17:41:16 2007].273859 msDrawMap(): Layer 0 (geosignal), 0.252s
[Thu Oct 11 17:41:16 2007].585451 msDrawMap(): Layer 1 (commune), 0.311s
[Thu Oct 11 17:41:16 2007].903407 msDrawMap(): Drawing Label Cache, 0.309s
[Thu Oct 11 17:41:16 2007].903457 msDrawMap() total time: 2.756s
[Thu Oct 11 18:31:25 2007].114883 msDrawMap(): Layer 0 (geosignal), 0.258s
[Thu Oct 11 18:31:31 2007].557193 msDrawMap(): Layer 0 (geosignal), 0.253s
[Thu Oct 11 18:31:34 2007].197767 msDrawMap(): Layer 0 (geosignal), 0.253s
[Fri Oct 12 10:10:01 2007] [notice] SIGHUP received.  Attempting to restart
[Fri Oct 12 10:10:02 2007] [notice] mod_python: Creating 8 session mutexes based on 20 max processes and 0 max threads.
[Fri Oct 12 10:10:02 2007] [notice] Apache/2.0.55 (Ubuntu) DAV/2 SVN/1.3.2 mod_python/3.2.8 Python/2.4.4c1 PHP/5.1.6 configured -- resuming normal operations


Apriori mapserver ne s'éteint pas entre chaque requête et accumule les messages d'erreur. Quand il s'éteint, cela réinitialise les erreurs, evidemment. Mon administrateur me parle de problème de mapserver tournant en mode zombie...

Hors ligne

 

#10 Fri 12 October 2007 10:47

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: cache erreurs mapserver

Bonjour,

Voici le bout de code qui fait planter aléatoirement mapserv, à prioir il affiche une erreur d'écriture sur une icone (ce code créer les icones pour créer une arborescence de couche (à la manière de cartoweb3 par exemple). Je commence à douter que mon problème est similaire à ce lui de Tiassma.

Code:

  //load mapfile
  $map = ms_newMapObj($mapfileUrl);

  $tmp_path = WRITEABLE_HOME."images/carto/generated/";
  $i=0;
  //pour chaque layers (dans layers.ini) :
  foreach($layersIniArray["layers"] as $idLayer => $content)
  {
    if($content["className"]=="LayerGroup") continue;

    if(!isset($content["msLayer"]))
    {
      $layersIniArray["layers"][$idLayer]["msLayer"] = $idLayer;
      $content["msLayer"] = $idLayer;
    }
    $msLayer = $content["msLayer"];
    $layerObj = $map->getLayerByName($msLayer);
    $zoomMin = $layerObj->minscale;
    $zoomMax = $layerObj->maxscale;

    if($zoomMin>0) {$layersIniArray['layers'][$idLayer]['zoomMin'] = $zoomMin;}
    else { $layersIniArray['layers'][$idLayer]['zoomMin'] = 0;}
    if($zoomMax>0) {$layersIniArray['layers'][$idLayer]['zoomMax'] = $zoomMax;}
    else  {$layersIniArray['layers'][$idLayer]['zoomMax'] = 0;}
    if(!$layerObj) print "error: ".$idLayer;

    $j=0;
    while($classObj = $layerObj->getClass($j))
    {
     //create icon and place filename in array
      $filename = $layerObj->name.'_'.$j.'.png';

      //si l'icone existe, ne rien faire sauf si sa création date un peu
      $timeLimit = time()-24*60*3600;
      if(!file_exists($tmp_path.$filename) OR (filemtime($tmp_path.$filename) < $timeLimit))
      {
        $tmp = $classObj->createLegendIcon("20","10");

        $tmp->saveImage($tmp_path.$filename);
        $tmp->free();
        
      }
      //Gestion des labels:
      $label = $layersIniArray["layers"][$idLayer]['label'];
      if(!empty($classObj->name)) $label=$classObj->name;

      $layersIniArray['layers'][$idLayer]['legend'][]=array('label'=>$label,'filename'=>$filename);
      $j++;
    }
    
  }

Server version: Apache/2.2.3
Server built:   Mar 27 2007 15:06:55

avec mod_php5 chargée (PHP 5.2.0-8+etch7)

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#11 Fri 12 October 2007 12:11

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: cache erreurs mapserver

la facon recommandee d'utiliser mapscript avec php reste d'utiliser php en mode cgi, et non en module apache. il regne un certain flou quant a la stabilite de mapscript avec php en dso, avec certaines personnes ayant obtenu des resultats satisfaisants, d'autres non.
d'apres la doc mapserver, les combinaisons les mieux a utiliser avec php en dso sont
    * Mapscript 4.10 with PHP 5.2.1 and up
    * Mapscript 4.10 with PHP 4.4.6 and up

et apache en version non threadée (i.e soit la version 1.3 , soit la version 2 mais en mode "prefork"  et pas "worker"

Yves: les erreurs que tu observes proviennent de

$tmp = $classObj->createLegendIcon("20","10");
$tmp->saveImage($tmp_path.$filename);


?. pour le moment je ne vois effectivement pas bien le rapport avec le probleme de messages d'erreur qui s'accumulent, tu peux expliciter si c'est le cas stp?

Hors ligne

 

#12 Fri 12 October 2007 12:17

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: cache erreurs mapserver

Merci Thomas,

Je crois bien que mon problème n'a rien a voir (je n'ai pas d'accumulation de message d'erreur, mais cela m'est arrivé d'avoir d'ancienne erreur revenir et je suis obligé de relancer apache aussi, je pensais que c'était lié), désolé Tiassma d'avoir squatté ton topic sad

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#13 Fri 12 October 2007 13:57

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

Merci Thomas pour ces précisions forts utiles big_smile
Mon administrateur va me passer ça en mode CGI et on essaye de te tenir au courant de ce que ça donne
Squatte tant que tu veux Yves, pas de problème.

Merci à tous les deux cool

Hors ligne

 

#14 Fri 12 October 2007 14:18

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

Bon, ben en mode CGI, thread à 1 (ce qui ralenti pas mal...) et "prefork"  c'est pas beaucoup mieux, voire pas du tout! sad

On va peut-être passer à la version 5 de mapserver d'ici peu....

merci quand même cool

Hors ligne

 

#15 Fri 12 October 2007 14:56

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: cache erreurs mapserver

si c'est effectivement la version cgi qui repete les messages d'erreur ca parait plus que bizarre.
c'est un script php maison? si c'est pas trop enorme, je peux jeter un oeil dessus?
le mapfile passe-t-il avec un shp2img?
le processus php reste en zombie avec la version cgi aussi?

tb

Hors ligne

 

#16 Thu 15 November 2007 16:53

Tiassma
Participant occasionnel
Date d'inscription: 4 Dec 2006
Messages: 39

Re: cache erreurs mapserver

pour le suivi:
Je reviens sur mon problème, on a essayé de passer à la version 5 mais on a pas eu encore le temps. cependant, en reinstallant l'ancienne version les problèmes de messages redondants s'est arrêté. Donc pas d'explications supplémentaires à fournir, un conseil: "réinstallez,réinstallez, il en restera toujours qq chose!!"
Merci quand même! cool

Hors ligne

 

Pied de page des forums

Powered by FluxBB