Skip to content
François Prunayre edited this page Dec 1, 2013 · 13 revisions
Date 30 November 2013 Contacts Francois Prunayre / Jesse Eichar
Status In progress Release 2.12
Resources Available Ticket # See PR
Source code https://github.com/jesseeichar/core-geonetwork/tree/feature/multinode
Funding BRGM

Overview

The multinodes mode add the capability to setup more than one catalog using the same web application. Each catalogs have its own:

  • data directory (index, files)
  • databases

All catalogs share the same schemas and thesaurus (to save memory). This could be configured.

Technical Details:

Configuration

Registering a new node is a 2 steps process. First declare the new node in web.xml:

<servlet-mapping>
  <servlet-name>gn-servlet</servlet-name>
  <url-pattern>/geosource-8/*</url-pattern>
</servlet-mapping>

Then define its configuration in config-node/<node_id>.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="true"
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context">

    <import resource="classpath*:/config-spring-geonetwork.xml"/>
    <import resource="../config-db/database_migration.xml"/>

    <context:property-override properties-ref="geosource-8-configuration-overrides" />

    <bean id="nodeInfo" class="org.fao.geonet.NodeInfo">
        <property name="id" value="geosource-8" />
        <property name="defaultNode" value="false" />
    </bean>

    <bean id="geosource-8-configuration-overrides"
        class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="properties">
            <props>
                <prop key="jdbcDataSource.username">www-data</prop>
                <prop key="jdbcDataSource.password">www-data</prop>
                <prop key="jdbcDataSource.maxActive">2</prop>
                <prop key="jdbcDataSource.maxIdle">2</prop>
                <prop key="jdbcDataSource.initialSize">2</prop>
                <prop key="jdbcDataSource.Url">jdbc:postgresql://localhost:5432/db_8</prop>
            </props>
        </property>
    </bean>

    <import resource="../config-db/postgres.xml"/>

</beans>

Custom data directory configuration

The data directory contains one folder per node.

<init-param>
  <param-name>geonetwork.dir</param-name>
  <param-value>/application/nodes-data/data</param-value>
</init-param>
<init-param>
  <param-name>geonetwork.schema.dir</param-name>
  <param-value>/application/webapp/geonetwork/WEB-INF/data/config/schema_plugins</param-value>
</init-param>
<init-param>
  <param-name>geonetwork.codeList.dir</param-name>
  <param-value>/application/webapp/geonetwork/WEB-INF/data/config/codelist</param-value>
</init-param>
        

Proposal Type:

  • Type: Server
  • Module: Webapp

Voting History

  • Vote Proposed: TBA

Participants

  • Jesse Eichar
  • Francois Prunayre
  • Etienne Taffoureau

Based on previous work made on Jeevlet (https://github.com/geosource-catalogue/jeevlet/) and draft multinode implementation (https://github.com/geosource-catalogue/core-geonetwork/tree/feature/multisite) by:

  • Mathieu Coudert
  • Thierry Chevalier
  • Jean Pascal Boignard
Clone this wiki locally