From SRB

This is a general overview of how database systems are used as the MCAT in SRB system.

Storage Resouce Broker servers (SRBs) communicate with other SRBs. Not all SRBs need to be MCAT-enabled but at least one SRB in the system has to be MetaData Catalog(MCAT)-enabled to store the Meta-data (the data about the data). Many sites choose to install the SRB with the MCAT-enabled SRB hosted at SDSC. But for a completely stand-alone SRB system, you will need an MCAT-enabled SRB.

The MCAT software is a library that interfaces to a database management system (a DBMS: Oracle, DB2, Postgres, or Sybase). To build and install an MCAT, you need to build the library, and initialize the database. Of course, this will require proper authentication at DBMS level. Errors can occur at various levels, and it can be difficult for a novice to differentiate between them, but the following decriptions should be of some help.

In most cases, the DBMS is client/server too. A typical Oracle installation on Linux will be the Oracle client software, which talks to the Oracle server on another host were the actual database exists.

The following describes using Oracle on a Linux system as an example.

To use Oracle, the following environment variables must be set. These could be in your .login or .cshrc file. In my case, I kept them in a separate file that I sourced when I wanted to work with Oracle. This is also needed before starting the SRB server so that it too can interact with the MCAT database.

Contents of setora:
set path=($path /usr/local/apps/Oracle/bin)
setenv ORACLE_SID dev7
setenv ORACLE_HOME /usr/local/apps/Oracle
setenv LD_LIBRARY_PATH /usr/local/apps/Oracle/lib
setenv ORACLE_BASE /usr/local/apps/Oracle
setenv ORACLE_TERM xsun5
setenv ORACLE_PATH /usr/local/apps/Oracle/bin
setenv ORACLE_PAGER /usr/local/bin/less

  The .../Oracle/bin directory is added to the path so that Oracle
  commands, such as sqlplus can be found.

  ORACLE_SID is the System ID, meaning the particular instance of a
  database.  'dev7' was used for testing, instead of 'MCAT'.  

  [dev7 is used in the MdasConfig file and on command-lines, so this
  this ORACLE_SID environment variable might not be used.]

You also need to have an Oracle user set up.  For testing at SDSC,
we would use 'srbtester'.

On Linux at SDSC, we had to use the full name of the database
instance, including the domain (  This was due to how
Linux had been installed here.  Normally, the short name (dev7) would
have been enough.

For interactive use, the command line I would use was:
at which point it would prompt for srbtester's password.

Tests and troubleshooting for installing (using Oracle as an example):

1) Basic DBMS communication/authentication test

   Run sqlplus as described above with your DBMS System ID, userid and
   password.  A successful login confirms that your DBMS is running
   properly, the database instance is created, your userid is created,
   and you have the matching userid password.

2) Use the following interactive sqlplus command, after the above
   connect/login, to confirm that your database instance is set up

   select table_name from tabs;

   This will show you how many tables are defined.  The table 'tabs',
   in Oracle, is a special table that provides some access to the user
   table definitions.

   If you've just created a new instance for testing, the result from this
   select command should be 0.  This means that no tables are defined
   in the instance.

   If you've inserted the normal SRB/MCAT tables, then the result
   should be 83 (it should list various table names and then end with
   '83 rows selected.').  In the current version of the SRB/MCAT there
   are 83 tables.


Example MdasConfig contents:

zuri (45) % more MdasConfig
MDASDBTYPE        oracle
MDASSCHEMENAME    srbtester.
MDASDBNAME        dev7
MDASINSERTSFILE  /projects/diglib/srb/SRB1_1_8rel/data/mdas_inserts
METADATA_FKREL_FILE metadata.fkrel
DB2INSTANCE       db2v2
DB2PASSWORD        xxxxxx
DB2USER            srbtester
DB2LOGFILE       /projects/diglib/srb/SRB1_1_8rel/data/db2logfile
DBHOME        /usr/local/apps/Oracle
zuir (46) %

Note that the period after the username for the MDASSCHEMENAME is

I was using dev7 database instance for testing.  MDASDBNAME would normally be

The Oracle password and userid are in the DB2PASSWORD and DB2USER
fields (here we use the same fieldname for both DB2, Oracle and other
DBMSes).  The actual password in normally in the xxxxxx area.