Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "CDO Server Configuration"

Line 122: Line 122:
 
The <code>type</code> attribute corresponds to the type of a store factory that is contributed via the <code>org.eclipse.emf.cdo.server.storeFactory</code> extension point. The remaining attributes depend on the specified type attribute value. The following values are possible with the shipped distribution (subject to user supplied extension):
 
The <code>type</code> attribute corresponds to the type of a store factory that is contributed via the <code>org.eclipse.emf.cdo.server.storeFactory</code> extension point. The remaining attributes depend on the specified type attribute value. The following values are possible with the shipped distribution (subject to user supplied extension):
 
* '''noop:''' Store that does nothing. A repository with a noop store can function properly as long as the the server is not restarted and the internal caches do not run full so that revisions get evicted and discarded. No additional attributes are recognized.
 
* '''noop:''' Store that does nothing. A repository with a noop store can function properly as long as the the server is not restarted and the internal caches do not run full so that revisions get evicted and discarded. No additional attributes are recognized.
 
+
* '''db:''' Store that connects via JDBC to a relational database and manages persistent revisions and models through a built-in O/R mapper. A DB store element can contain the following nested elements:
* '''db:''' Store that connects via JDBC to a relational database and manages persistent revisions and models through a built-in O/R mapper. The following additional attributes are recognized:
+
** [[#Element mappingStrategy|'''mappingStrategy''']]
 +
** [[#Element mappingStrategy|'''mappingStrategy''']]
 +
** [[#Element mappingStrategy|'''mappingStrategy''']]
 
** '''description:''' The absolute path to a file in the local file system that contains the credentials of the users in the form <code>userid: password</code>.
 
** '''description:''' The absolute path to a file in the local file system that contains the credentials of the users in the form <code>userid: password</code>.
 
The store element can contain zero or one property elements (see below) and must contain exactly one [[#Element store|store]] element.
 
 
<br>
 
<br>
  
Line 134: Line 134:
 
The <code>type</code> attribute corresponds to the type of a mapping strategy factory that is contributed via the <code>org.eclipse.emf.cdo.server.db.mappingStrategies</code> extension point. The following values are possible with the shipped distribution (subject to user supplied extension):
 
The <code>type</code> attribute corresponds to the type of a mapping strategy factory that is contributed via the <code>org.eclipse.emf.cdo.server.db.mappingStrategies</code> extension point. The following values are possible with the shipped distribution (subject to user supplied extension):
 
* '''horizontal:''' Mapping strategy that creates one DB table per concrete model class. The following nested property elements are recognized:
 
* '''horizontal:''' Mapping strategy that creates one DB table per concrete model class. The following nested property elements are recognized:
** '''toManyReferences:''' Specifies how the built-in O/R mapper will handle to-many references (collections). The following values are recognized:
+
** [[#Element toManyReferences|'''toManyReferences''']]
*** '''ONE_TABLE_PER_REFERENCE:''' Each to-many reference of the model will get its own DB table.
+
** [[#Element toOneReferences|'''toOneReferences''']]
*** '''ONE_TABLE_PER_CLASS:''' All to-many references of a model class will share a single DB table.
+
** [[#Element mappingPrecedence|'''mappingPrecedence''']]
*** '''ONE_TABLE_PER_PACKAGE:''' All to-many references of a model package will share a single DB table.
+
*** '''ONE_TABLE_PER_REPOSITORY:''' All to-many references of all model classes i the repository will share a single DB table.
+
*** '''LIKE_ATTRIBUTES:''' Collections will be serialized to a BLOB column in the same DB table that the attributes of the containing model class are stored in. This option is currently not supported.
+
** '''toOneReferences:''' Specifies how the built-in O/R mapper will handle to-one references. The following values are recognized:
+
*** '''LIKE_ATTRIBUTES:''' Single references will be stored in a CDOID column in the same DB table that the attributes of the containing model class are stored in. This option is the default option.
+
*** '''LIKE_TO_MANY_REFERENCES:''' Single references will be handled in the same way as specified for to-many references. This option is currently not supported.
+
** '''mappingPrecedence:''' Currently not supported.
+
 
+
 
* '''vertical:''' Mapping strategy that creates one DB table per class in the model hierarchy. The following nested property elements are recognized:
 
* '''vertical:''' Mapping strategy that creates one DB table per class in the model hierarchy. The following nested property elements are recognized:
** '''toManyReferences:''' Same like for horizontal mapping strategy.
+
** [[#Element toManyReferences|'''toManyReferences''']]
** '''toOneReferences:''' Same like for horizontal mapping strategy.
+
** [[#Element toOneReferences|'''toOneReferences''']]
** '''mappingPrecedence:''' Currently not supported.
+
** [[#Element mappingPrecedence|'''mappingPrecedence''']]
 
+
 
+
 
+
 
<br>
 
<br>
  
 
=====Property toManyReferences=====
 
=====Property toManyReferences=====
 +
Specifies how the built-in O/R mapper will handle to-many references (collections). The following values are recognized:
 +
* '''ONE_TABLE_PER_REFERENCE:''' Each to-many reference of the model will get its own DB table.
 +
* '''ONE_TABLE_PER_CLASS:''' All to-many references of a model class will share a single DB table.
 +
* '''ONE_TABLE_PER_PACKAGE:''' All to-many references of a model package will share a single DB table.
 +
* '''ONE_TABLE_PER_REPOSITORY:''' All to-many references of all model classes i the repository will share a single DB table.
 +
* '''LIKE_ATTRIBUTES:''' Collections will be serialized to a BLOB column in the same DB table that the attributes of the containing model class are stored in. This option is currently not supported.
 
<br>
 
<br>
  
 
=====Property toOneReferences=====
 
=====Property toOneReferences=====
 +
Specifies how the built-in O/R mapper will handle to-one references. The following values are recognized:
 +
* '''LIKE_ATTRIBUTES:''' Single references will be stored in a CDOID column in the same DB table that the attributes of the containing model class are stored in. This option is the default option.
 +
* '''LIKE_TO_MANY_REFERENCES:''' Single references will be handled in the same way as specified for to-many references. This option is currently not supported.
 
<br>
 
<br>
  
 
=====Property mappingPrecedence=====
 
=====Property mappingPrecedence=====
 +
Currently not supported.
 
<br>
 
<br>
  

Revision as of 10:27, 14 November 2007


Example XML

This section shows an example XML configuration file for the CDO server. It must be located in the folder that you declared via system property net4j.config. The subsequent section explains the used XML Elements. You can also click directly on the links in the XML file to navigate to the respective descriptions.

 <?xml version="1.0" encoding="UTF-8"?>
 <cdoServer>

   <acceptor type="tcp" listenAddr="0.0.0.0" port="2036">
     <!--
     <negotiator type="challenge" description="/temp/users.db"/> 
     -->
   </acceptor>
 
   <repository name="repo1">
     <property name="overrideUUID" value="1ff5d226-b1f0-40fb-aba2-0c31b38c764f"/>
     <property name="supportingAudits" value="true"/>
     <property name="verifyingRevisions" value="false"/>
     <property name="rememberingKnownTypes" value="false"/>
     <property name="currentLRUCapacity" value="10000"/>
     <property name="revisedLRUCapacity" value="100"/>
     
     <store type="db">
       <!-- type: horizontal | vertical | <any user-contributed type>-->
       <mappingStrategy type="horizontal">
         <!-- ONE_TABLE_PER_REFERENCE | ONE_TABLE_PER_CLASS | ONE_TABLE_PER_PACKAGE | ONE_TABLE_PER_REPOSITORY | LIKE_ATTRIBUTES -->
         <property name="toManyReferences" value="ONE_TABLE_PER_REFERENCE"/>
 
         <!-- LIKE_ATTRIBUTES | LIKE_TO_MANY_REFERENCES-->
         <property name="toOneReferences" value="LIKE_ATTRIBUTES"/>
         
         <!-- MODEL | STRATEGY-->
         <property name="mappingPrecedence" value="MODEL"/>
       </mappingStrategy>
       
       <!--<dbAdapter name="derby"/>
       <dataSource
         driverClass="org.apache.derby.jdbc.EmbeddedDataSource"
         databaseName="/temp/cdodb1"
         createDatabase="create"/>-->
 
       <dbAdapter name="derby"/>
       <dataSource 
         driverClass="org.apache.derby.jdbc.ClientDataSource" 
         databaseName="cdodb1"
         createDatabase="create"/>
 
       <!--<dbAdapter name="hsqldb"/>
       <dataSource
         driverClass="org.eclipse.net4j.db.hsqldb.HSQLDBDataSource"
         database="jdbc:hsqldb:mem:cdodb1"
         user="sa"/>-->
 
       <!--<dbAdapter name="mysql"/>
       <dataSource
         driverClass="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
         url="jdbc:mysql://localhost/cdodb1"
         user="sa"/>-->
     </store>
   </repository>
 
 </cdoServer>


Element cdoServer

The root element of the cdo-server.xml file. It can contain zero, one or several acceptor elements and zero, one or several repository elements.

Element acceptor

Defines an IAcceptor instance. Please refer to the Net4j documentation for details about acceptors and connectors.

The type attribute corresponds to the type of an acceptor factory that is contributed via the org.eclipse.net4j.util.factories extension point with a product group of org.eclipse.net4j.acceptors. The remaining attributes depend on the specified type attribute value. The following values are possible with the shipped distribution (subject to user supplied extension):

  • tcp: Acceptor for fast, new I/O based socket connections. The following additional attributes are recognized:
    • listenAddr: The network address the server socket shall be bound to. A value of "0.0.0.0" is the default (whole attribute can be omitted) and tells the socket to listen on all available addresses.
    • port: The network port the server socket shall be bound to. A value of "2036" is the default (whole attribute can be omitted).
  • jvm: Acceptor for JVM internal (non-socket based ) connections. Currently not supported by the Net4Configurator.

The acceptor element can contain zero or one negotiator element(s).

Please note that the acceptor element is likely to be moved to a separate Net4j configuration file in the future.

Element negotiator

Defines an INegotiator instance to be used by the connectors created by an acceptor (defined by the enclosing acceptor element). Please refer to the Net4j documentation for details about negotiators and the pluggable security concept that can be used for authentication and authorization.

The type attribute corresponds to the type of a negotiator factory that is contributed via the org.eclipse.net4j.util.factories extension point with a product group of org.eclipse.net4j.negotiators. The remaining attributes depend on the specified type attribute value. The following values are possible with the shipped distribution (subject to user supplied extension):

  • challenge: Negotiator for simple yet effective and cryptographically secure challenge/response based negotiations. The following additional attributes are recognized:
    • description: The absolute path to a file in the local file system that contains the credentials of the users in the form userid: password.


Element repository

Defines an IRepository instance. Please refer to CDO Server for details about repositories and sessions.

The name attribute uniquely identifies a repository in the scope of a repository configurator.

The repository element can contain several property elements (see below) and must contain exactly one store element.

Property overrideUUID


Property supportingAudits


Property verifyingRevisions


Property rememberingKnownTypes


Property currentLRUCapacity


Property revisedLRUCapacity


Element store

Defines an IStore instance. Please refer to CDO Storage Framework for details about stores, store readers and store writers.

The type attribute corresponds to the type of a store factory that is contributed via the org.eclipse.emf.cdo.server.storeFactory extension point. The remaining attributes depend on the specified type attribute value. The following values are possible with the shipped distribution (subject to user supplied extension):

  • noop: Store that does nothing. A repository with a noop store can function properly as long as the the server is not restarted and the internal caches do not run full so that revisions get evicted and discarded. No additional attributes are recognized.
  • db: Store that connects via JDBC to a relational database and manages persistent revisions and models through a built-in O/R mapper. A DB store element can contain the following nested elements:


Element mappingStrategy

This element is recognized by DB stores and defines the overall mapping strategy of the built-in O/R mapper.

The type attribute corresponds to the type of a mapping strategy factory that is contributed via the org.eclipse.emf.cdo.server.db.mappingStrategies extension point. The following values are possible with the shipped distribution (subject to user supplied extension):


Property toManyReferences

Specifies how the built-in O/R mapper will handle to-many references (collections). The following values are recognized:

  • ONE_TABLE_PER_REFERENCE: Each to-many reference of the model will get its own DB table.
  • ONE_TABLE_PER_CLASS: All to-many references of a model class will share a single DB table.
  • ONE_TABLE_PER_PACKAGE: All to-many references of a model package will share a single DB table.
  • ONE_TABLE_PER_REPOSITORY: All to-many references of all model classes i the repository will share a single DB table.
  • LIKE_ATTRIBUTES: Collections will be serialized to a BLOB column in the same DB table that the attributes of the containing model class are stored in. This option is currently not supported.


Property toOneReferences

Specifies how the built-in O/R mapper will handle to-one references. The following values are recognized:

  • LIKE_ATTRIBUTES: Single references will be stored in a CDOID column in the same DB table that the attributes of the containing model class are stored in. This option is the default option.
  • LIKE_TO_MANY_REFERENCES: Single references will be handled in the same way as specified for to-many references. This option is currently not supported.


Property mappingPrecedence

Currently not supported.

Element dbAdapter


Element dataSource




Wikis: CDO | Net4j | EMF | Eclipse

Back to the top