[GeoNetwork-users-fr] Problème d'initialisation de GeoSource : postgresql remplacé par H2

Bonjour,

j'ai installé GeoSource sur un Ubuntu server LTS 12.04 sans problème (dans
/usr/local/geosource).
PostgreSQL 9.1 et Tomcat 7 sont déjà installés sur la machine.

Mon but est d'utiliser la base de donnée postgresql que j'ai installé pour
geosource et de faire tourner geosource dans tomcat.
J'ai suivi les instructions de la doc (cf. détails plus bas), mais
l'initialisation de GeoSource échoue :

2013-11-28 20:28:14,485 INFO [jeeves] - Overrides being applied to

configuration file: .*/WEB-INF/config.xml
2013-11-28 20:28:14,498 INFO [jeeves] - Replacing attribute value of node
appHandler/param[@name='preferredSchema']
2013-11-28 20:28:14,498 DEBUG [jeeves] - New attribute is:iso19139
2013-11-28 20:28:14,500 DEBUG [jeeves] - Updating attibute of node
/geonet/appHandler/param[6]
2013-11-28 20:28:14,501 INFO [jeeves] - Replacing attribute value of node
appHandler/param[@name='useSubversion']
2013-11-28 20:28:14,501 DEBUG [jeeves] - New attribute is:false
2013-11-28 20:28:14,501 DEBUG [jeeves] - Updating attibute of node
/geonet/appHandler/param[13]
2013-11-28 20:28:14,502 INFO [jeeves] - Replacing text of
general/maxUploadSize
2013-11-28 20:28:14,502 DEBUG [jeeves] - New text is:100
2013-11-28 20:28:14,502 DEBUG [jeeves] - replacing Text of
/geonet/general/maxUploadSize
2013-11-28 20:28:14,515 INFO [jeeves] - Replacing child xml elements of
resources
2013-11-28 20:28:14,526 DEBUG [jeeves] - New elements are:<toAdd>
  <resource enabled="true">
    <name>main-db</name>
    <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
    <config>
      <user>admin</user>
      <password>gnos</password>
      <driver>org.h2.Driver</driver>
      <url>jdbc:h2:geonetwork</url>
      <poolSize>33</poolSize>
      <validationQuery>SELECT 1</validationQuery>
    </config>
  </resource>
</toAdd>
2013-11-28 20:28:14,527 DEBUG [jeeves] - replacingXML of /geonet/resources
2013-11-28 20:28:14,582 WARN [jeeves.dbmspool] - Using transaction
isolation setting READ_COMMITTED
2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Raised exception while
initializing resource main-db in
/usr/local/geosource/web/geosource/WEB-INF/config.xml. Skipped.
2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Resource : main-db
2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Provider :
jeeves.resources.dbms.ApacheDBCPool
2013-11-28 20:28:17,111 ERROR [jeeves.engine] - Exception :
org.apache.commons.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (IO Exception: "java.io.FileNotFoundException:
/var/lib/tomcat7/geonetwork.lock.db (Permission denied)";
"/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
2013-11-28 20:28:17,111 ERROR [jeeves.engine] - Message : Cannot
create PoolableConnectionFactory (IO Exception:
"java.io.FileNotFoundException: /var/lib/tomcat7/geonetwork.lock.db
(Permission denied)"; "/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
2013-11-28 20:28:17,112 ERROR [jeeves.engine] - Stack :
org.apache.commons.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory (IO Exception: "java.io.FileNotFoundException:
/var/lib/tomcat7/geonetwork.lock.db (Permission denied)";
"/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
at
org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
[...]

D'après ces logs, je comprends bien que GeoSource ne prends pas en compte
mon config.xml et qu'il remplace ma ressource postgresql par une resource
H2. Par contre, je ne comprends pas du tout pourquoi...
La moindre piste serait la bienvenue.

*Détail de mon installation :*
J'ai créé une base de données et un utilisateur geosource.
J'ai modifié le fichier web/geosource/WEB-INF/config.xml pour utiliser ma
base de donnée :

   - j'ai désactivé la base par défaut H2 :

<resource enabled="false">
  <name>main-db</name>
  <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
  <config>
    <user>admin</user>
    <password>gnos</password>
    <driver>org.h2.Driver</driver>
    <url>jdbc:h2:geonetwork;LOCK_TIMEOUT=20000;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE</url>
    <poolSize>33</poolSize>
    <validationQuery>SELECT 1</validationQuery>
  </config>
</resource>

   - et j'ai activé la base postgresql :

<resource enabled="true">
      <name>main-db</name>
      <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
      <config>
              <user>geosource</user>
              <password>monpassword</password>
              <driver>org.postgresql.Driver</driver>
              <url>jdbc:postgresql://localhost:5432/geosource</url>
              <poolSize>10</poolSize>
              <validationQuery>SELECT 1</validationQuery>
      </config>
</resource>

j'ai bien vérifié qu'il n'y avait qu'une seule section resource avec
l'attribut "enable" à true.

Pour publié geosource dans tomcat, j'ai suivi les instructions de
http://trac.osgeo.org/geonetwork/wiki/HowToRunUnderTomcat

   - création le fichier geosource.xml
   dans /etc/tomcat7/Catalina/localhost/ :

    <Context docBase="/usr/local/geosource/web/geosource"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
    </Context>

   - j'ai rendu tomcat7 propriétaire des dossiers geosource/web
   et geosource/data
   - j'ai vérifié que TOMCAT7_SECURITY=no
   - j'ai redémarré tomcat.

est-ce que j'ai oublié quelque chose?

Merci d'avance pour toutes vos suggestions.

Cordialement,
Mathilde Pellerin

Bonjour Mathilde,

Pour simplifier les mises à jour, GéoSource surcharge [1] les options par
défaut avec le fichier de configuration
config-overrides-geosource.xm<https://github.com/geosource-catalogue/core-geonetwork/blob/2.9.1/web/src/main/webapp/WEB-INF/config-overrides-geosource.xml#L14&gt;l
[2]
qui lui importe un fichier de propiétés qui contient les informations
contenant la connexion à la base [3]. Une bonne pratique est de créer votre
fichier d'"override".

Salutations.

Francois

[1]
http://geonetwork-opensource.org/manuals/trunk/fra/users/admin/advanced/advanced/index.html#surcharge-de-configuration
[2]
https://github.com/geosource-catalogue/core-geonetwork/blob/2.9.1/web/src/main/webapp/WEB-INF/config-overrides-geosource.xml#L14
[3]
https://github.com/geosource-catalogue/core-geonetwork/blob/2.9.1/web/src/main/webapp/WEB-INF/config-overrides-geosource-props.xml

Le 18 décembre 2013 15:52, Mathilde Pellerin <
mathilde.pellerin@anonymised.com> a écrit :

Bonjour,

j'ai installé GeoSource sur un Ubuntu server LTS 12.04 sans problème (dans
/usr/local/geosource).
PostgreSQL 9.1 et Tomcat 7 sont déjà installés sur la machine.

Mon but est d'utiliser la base de donnée postgresql que j'ai installé pour
geosource et de faire tourner geosource dans tomcat.
J'ai suivi les instructions de la doc (cf. détails plus bas), mais
l'initialisation de GeoSource échoue :

2013-11-28 20:28:14,485 INFO [jeeves] - Overrides being applied to
> configuration file: .*/WEB-INF/config.xml
> 2013-11-28 20:28:14,498 INFO [jeeves] - Replacing attribute value of
node
> appHandler/param[@name='preferredSchema']
> 2013-11-28 20:28:14,498 DEBUG [jeeves] - New attribute is:iso19139
> 2013-11-28 20:28:14,500 DEBUG [jeeves] - Updating attibute of node
> /geonet/appHandler/param[6]
> 2013-11-28 20:28:14,501 INFO [jeeves] - Replacing attribute value of
node
> appHandler/param[@name='useSubversion']
> 2013-11-28 20:28:14,501 DEBUG [jeeves] - New attribute is:false
> 2013-11-28 20:28:14,501 DEBUG [jeeves] - Updating attibute of node
> /geonet/appHandler/param[13]
> 2013-11-28 20:28:14,502 INFO [jeeves] - Replacing text of
> general/maxUploadSize
> 2013-11-28 20:28:14,502 DEBUG [jeeves] - New text is:100
> 2013-11-28 20:28:14,502 DEBUG [jeeves] - replacing Text of
> /geonet/general/maxUploadSize
> 2013-11-28 20:28:14,515 INFO [jeeves] - Replacing child xml elements of
> resources
> 2013-11-28 20:28:14,526 DEBUG [jeeves] - New elements are:<toAdd>
> <resource enabled="true">
> <name>main-db</name>
> <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
> <config>
> <user>admin</user>
> <password>gnos</password>
> <driver>org.h2.Driver</driver>
> <url>jdbc:h2:geonetwork</url>
> <poolSize>33</poolSize>
> <validationQuery>SELECT 1</validationQuery>
> </config>
> </resource>
> </toAdd>
> 2013-11-28 20:28:14,527 DEBUG [jeeves] - replacingXML of
/geonet/resources
> 2013-11-28 20:28:14,582 WARN [jeeves.dbmspool] - Using transaction
> isolation setting READ_COMMITTED
> 2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Raised exception while
> initializing resource main-db in
> /usr/local/geosource/web/geosource/WEB-INF/config.xml. Skipped.
> 2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Resource : main-db
> 2013-11-28 20:28:17,110 ERROR [jeeves.engine] - Provider :
> jeeves.resources.dbms.ApacheDBCPool
> 2013-11-28 20:28:17,111 ERROR [jeeves.engine] - Exception :
> org.apache.commons.dbcp.SQLNestedException: Cannot create
> PoolableConnectionFactory (IO Exception: "java.io.FileNotFoundException:
> /var/lib/tomcat7/geonetwork.lock.db (Permission denied)";
> "/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
> 2013-11-28 20:28:17,111 ERROR [jeeves.engine] - Message : Cannot
> create PoolableConnectionFactory (IO Exception:
> "java.io.FileNotFoundException: /var/lib/tomcat7/geonetwork.lock.db
> (Permission denied)"; "/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
> 2013-11-28 20:28:17,112 ERROR [jeeves.engine] - Stack :
> org.apache.commons.dbcp.SQLNestedException: Cannot create
> PoolableConnectionFactory (IO Exception: "java.io.FileNotFoundException:
> /var/lib/tomcat7/geonetwork.lock.db (Permission denied)";
> "/var/lib/tomcat7/geonetwork.lock.db" [90031-152])
> at
>
org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
> at
>
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
> at
>
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
> [...]

D'après ces logs, je comprends bien que GeoSource ne prends pas en compte
mon config.xml et qu'il remplace ma ressource postgresql par une resource
H2. Par contre, je ne comprends pas du tout pourquoi...
La moindre piste serait la bienvenue.

*Détail de mon installation :*
J'ai créé une base de données et un utilisateur geosource.
J'ai modifié le fichier web/geosource/WEB-INF/config.xml pour utiliser ma
base de donnée :

   - j'ai désactivé la base par défaut H2 :

<resource enabled="false">
  <name>main-db</name>
  <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
  <config>
    <user>admin</user>
    <password>gnos</password>
    <driver>org.h2.Driver</driver>

<url>jdbc:h2:geonetwork;LOCK_TIMEOUT=20000;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE</url>
    <poolSize>33</poolSize>
    <validationQuery>SELECT 1</validationQuery>
  </config>
</resource>

   - et j'ai activé la base postgresql :

<resource enabled="true">
      <name>main-db</name>
      <provider>jeeves.resources.dbms.ApacheDBCPool</provider>
      <config>
              <user>geosource</user>
              <password>monpassword</password>
              <driver>org.postgresql.Driver</driver>
              <url>jdbc:postgresql://localhost:5432/geosource</url>
              <poolSize>10</poolSize>
              <validationQuery>SELECT 1</validationQuery>
      </config>
</resource>

j'ai bien vérifié qu'il n'y avait qu'une seule section resource avec
l'attribut "enable" à true.

Pour publié geosource dans tomcat, j'ai suivi les instructions de
http://trac.osgeo.org/geonetwork/wiki/HowToRunUnderTomcat

   - création le fichier geosource.xml
   dans /etc/tomcat7/Catalina/localhost/ :

    <Context docBase="/usr/local/geosource/web/geosource"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
    </Context>

   - j'ai rendu tomcat7 propriétaire des dossiers geosource/web
   et geosource/data
   - j'ai vérifié que TOMCAT7_SECURITY=no
   - j'ai redémarré tomcat.

est-ce que j'ai oublié quelque chose?

Merci d'avance pour toutes vos suggestions.

Cordialement,
Mathilde Pellerin

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics
Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-users-fr mailing list
GeoNetwork-users-fr@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-users-fr