#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
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
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
Re: cache erreurs mapserver
Tiassma,
Mon message était plutôt destiné à tbonfort, puisque je sais qu'il s'y connait pas mal 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
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
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
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
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
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
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!
On va peut-être passer à la version 5 de mapserver d'ici peu....
merci quand même
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!
Hors ligne