CORAL Component documentation: RelationalService

Ioannis Papadopoulos

CERN

October 2005


1. Introduction

1.1. Purpose of the component

The RelationalService package is a plugin library providing an implementation of the IRelationalService interface.

1.2. Repository of the component

:pserver:anonymoys@coral.cvs.cern.ch:/cvs/coral/coral/RelationalService

2. RelationalService Semantics

The RelationalService component is responsible for managing the IRelationalDomain objects that are delivered to the user. Given a connection string corresponding to an actual database service, it extracts the technology name and returns the corresponding IRelationalDomain object. It also loads if necessary into its local context the plugin library that provides the implementation of the specific technology.

By default, for a technology named rdbmsName, it will try to load a plugin labeled:

CORAL/RelationalPlugins/rdbmsName
which should correspond to an implementation based on the base (most commonly C) API of this RDBMS technology. In case no such plugin exists, it will try to load any plugin with a label of a format:
CORAL/RelationalPlugins/rdbmsName/anImplementationName

The user may chose to use a specific implementation, instead of the default or any other existing non-default implementation, either by giving a call to the setDefaultImplementationForDomain() method of the IRelationalService interface, or by setting accordingly the DefaultImplementations property of this component.

3. Implementation specifics

4. Related components

  • RelationalAccess, is the package where the CORAL abstract interfaces are defined.

  • CoralCommon, is the package where some developer-level interfaces and some common implementation classes are defined.

5. RelationalService Reference

5.1. Properties of the "CORAL/Services/RelationalService" component

  • DefaultImplementations : defines the list of default implementations for the given technology. Each entry should have the format

    technologyName:implementationName