eXtremeDB Extension Module Unix-Linux Libraries - target/bin

The /target/bin directory under your eXtremeDB installation root directory contains, in addition to the basic libraries, additional contents that depend on the specific eXtremeDB Extension Modules purchased. For C and C++ applications using these additional features, one or more of the libraries explained below will be required. And for any of these additional features the appropriate System Access Layer (SAL) libraries are required.

As mentioned in the basic libraries page, the native C libraries are provided in two forms: debug and release mode. In the sections below only release mode filenames are shown.

SQL Support

eXtremeSQL provides libraries for embedded "local" and "remote" SQL database support. All applications using the embedded SQL API requires the following library:

libmcosql.a The eXtremeSQL core internals

In addition, the following library is provided for xSQL in order to process schema definitions:

libmcocomp.a Support for importing schema files in xSQL

HTTP Viewer with SQL Capability

The HTTP Viewer in eXtremeSQL packages provides the following library which can be used to provide SQL capability in the HTTP Viewer. It replaces library libmcohv.a and must be used in conjunction with the library libmcocgi.a or libmcoews_cgi_cud.a:

libmcohv_sql.a HTTP Viewer with SQL Interface (required for the SQL variant of HTTP Viewer. Note that if this library is used, the other SQL support libraries must also be linked )

Remote SQL

Remote SQL applications require the following additional library:

libmcorsql.a Remote SQL implementation

Remote SQL client only

It is possible to obtain a specially built eXtremeSQL package that includes only client source files for RSQL client applications. If this is your package then additional contents in the following directories are added to the standard object-code distribution:

 
    target/mcosql
    target/mcorsql
    target/sal
    include
     

It is important to note that this package does not support the sequence data type. It is impossible to deliver sequences support without making fundamental changes, so this package simply has a placeholder library mcorsqlstub.lib (containing empty shells for all sequence functions) that must be linked with the runtime. With this package, RSQL client applications can be built without adding dependencies to the core runtime or any other eXtremeDB runtime components (except those listed above). Only the following runtime libraries must be linked with the application:

libmcosql.a The eXtremeSQL SQL core internals
libmcorsql.a Remote SQL implementation
libmcorsqlstdln.a Standard input stream overlay implementation for Remote SQL
libmconet.a System network layer
libmcosalmem.a System memory management
libmcosalsmp.a System mutex, semaphores, threading and other multi-thread/process related code

High Availability Support

eXtremeDB High Availability packages provide the following libraries. All applications that use the High Availability API must link with:

libmcoha.a High Availability API

and, in addition, one of the following transport layer libraries (or else implement its own custom transport layer):

libmconwpipes.a PIPE Transport Layer
libmconwtcp.a TCP/IP Transport Layer
libmconwudp.a UDP Transport Layer
libmcoiter.a Implements iterators and streams for publishing detailed information about all database changes made by transactions; used in HA to publish operations on the replica side (see page High Availability Dynamic Schema Modification for further details)

Cluster Support

eXtremeDB High Availability packages also include the following Cluster libraries. All applications that use the Cluster API must link with:

libmcocluster.a Cluster core implementation

and, in addition, either the following transport layer library (or else implement its own custom transport layer):

libmcocltcp.a TCP/IP Transport Layer

Performance Monitor

The Performance Monitory API can be implemented in a custom application and in this case include just the libmcoperf library. Or it can be used with the provided HTTP implementation in libmcohvperf in which case both libraries are required:

libmcoperf.a Performance Monitor implementation
libmcohvperf.a HTTP interface to the Performance Monitor

Web Services

C and C++ applications that wish to use the web services must link with the following libraries:

libmcorest.a The embedded Web Services REST API
libmcoews.a HTTP server implementation
libmcosaltimer.a Low-resolution and high-resolution timer implementations
libmcosalsmp.a Required for multithreading support

Applications that wish to expose an existing web service will link with its library, as well as its dependencies:

libmcorestdb.a The database Web Service; requires mcouda for UDA APIs
libmcorestsql.a The SQL Web Service; requires mcosql
libmcorestperf.a The perfmon Web Service; requires mcoperf