Nirvana Technical FAQs

The most often asked technical questions that we have encountered are answered here, but for questions not listed here, please either consult the General FAQs, or contact us.

Installation

The installer displays an error message about the JRE not being binary compatible or corrupt.
The installer does not start in graphical mode.
How do I update from an older version of Nirvana to Nirvana 2008?
An Nirvana Server is not initializing after installation.
An Nirvana Server is not starting after installation.
Any command issued to a Nirvana Server returns the error message: The Nirvana license file is invalid.
Any command issued to a Nirvana Server returns the error message: The Nirvana license has expired.

MCAT

The Oracle database used for MCAT is not receiving connections.
When using Postgres as an MCAT database an error occurs upon starting Nirvana.

Configuration

When viewing the Nirvana Web Client on Windows 2003 Server an HTTP error 404 is returned.
I can not connect to Oracle on 64bit Windows.

Interfaces

How do Nirvana Gateways work?
What is the Nirvana Windows Virtual Disk?
What is the Nirvana Windows Gateway?
Why is the Nirvana Windows Gateway slow when I try to use it?
How does the Nirvana Preload Library work?

Administration

I've installed and configured Nirvana. Now what?

Installation

The installer displays an error message about the JRE not being binary compatible or corrupt

The Nirvana installer might display an error message such as the following (could also be in the installer log file): Bundled JRE is not binary compatible with host OS/Arch or it is corrupt. Testing bundled JRE failed. There are two possible causes and solutions for this error: 1) you tried to install a Nirvana package that was not intended for the operating system where you are installing; try to obtain the correct Nirvana package. 2) the Nirvana installer file became corrupted (maybe when downloading it over the internet); try to get the file's MD5 and SHA1 checksums from Nirvana support and verify that your installer file has the correct checksums; if not download the Nirvana installer file again.

The installer does not start in graphical mode.
If the InstallShield does not start, the cause is due to not setting the Display Environment Variable in UNIX systems. The following procedure details how to set the variables appropriately and other steps that can be tried if the InstallShield keeps failing.

  1. Make sure that the $DISPLAY environment variable on UNIX/Linux is properly set (usually to host name/IP address:0.0) and the following command is used to grant access to the X server for everyone:
    xhost +
  2. To see possible errors if the InstallShield is not starting properly, a log file is produced if the setup file is executed with the following option:
    <InstallShield setup filename> -is: log <logFilename>
  3. At times, the InstallShield log file prints "JVM could not be found". If this occurs, run the setup file with the following option if the system does in fact have JVM installed (javaHomeDirectory is the absolute directory path where the Java lib and bin directories are present):
    <InstallShield setup filename> -is: <javaHomeDirectory>
  4. If everything fails one can also run the InstallShield in text mode by issuing the following command:
    <InstallShield setup filename> –console

How do I update from an older version of Nirvana to Nirvana 2008?
It is recommended that you first backup any configuration files (server.config, mcat.config, index.html, and default_values.js) , then uninstall the older version. An update first needs to be performed to Nirvana 2007 if an older version is installed. Then install Nirvana 2008 and run mcatUpdate. Besides the Web Client configuration, there are only two local configuration files in Nirvana 2008 (i.e., mcat.config and server.config). All other configuration remains in MCAT. The Web Client configuration files are located in $Nirvana_HOME/www/cgi and are called index.html and html/default_values.js. Nirvana Gateways and their configurations will have to be updated separately.

An Nirvana Server is not initializing after installation
Every Nirvana Server, before being started, needs to be initialized. This is done using srb init. For an srb init to function properly ensure that the following bullets are met:

  1. The MCAT Database must be operational and running.
  2. The MCAT Schema is installed into the MCAT Database (using $Nirvana_HOME/mcat/bin/mcatInstall; see MCAT Installation Overview for further details).
  3. The login information for the MCAT Database (in $Nirvana_HOME/config/mcat.config) on the MCAT Server needs to be correct, including the correct database type, user name, and password.
  4. In case you are trying to initialize a Nirvana Agent, the MCAT Server needs to be running. It also is started by srb init followed by srb start.
  5. Make sure that the $LD_LIBRARY_PATH environment variable on your MCAT Server points to the $Nirvana_HOME/modules directory where the database drivers are located and to the database installation's lib directories.
  6. The information entered during srb init was incorrect. When installing an MCAT Server, the "Location Name" and "Location Password" need to correspond with the entries made during MCAT Schema installation (using mcatInstall; see MCAT Installation Overview). When installing a Nirvana Agent, the "Location Name" and "Location Password" need to correspond to a Nirvana Location that was previously registered with MCAT through either the Java Admin or the Acommands. "MCAT Host Name" and "MCAT Host Port" need to point to a functioning MCAT Server, or to "localhost" in case of the initialization of an MCAT Server. The "MCAT Host Port" is typically "5625" unless that was changed during MCAT Schema installation (see MCAT Installation Overview).
  7. If everything fails consult the log file (typically $Nirvana_HOME/log/srbServer.log) and look for the cause of the failed initialization.

An Nirvana Server is not starting after installation.
After initialization a Nirvana Server is started using srb start. For srb start to function properly check the following scenarios:

  1. The Nirvana Server was initialized using srb init and the initialization succeeded.
  2. An Nirvana Server is already running on the same port. Verify that the Nirvana Server is not already started using srb status or on Windows by looking at the Services Control Panel. In case another Nirvana Server is running, attempt to stop that server using srb stop or on Windows by selecting 'Stop' in the Services Control Panel and then try to start it again.
  3. In case you are trying to start a Nirvana Agent, the MCAT Server needs to be running. Verify that the MCAT Server is initialized and running (srb init followed by srb start) before attempting to start a Nirvana Agent.
  4. If everything fails consult the log file (typically $Nirvana_HOME/log/srbServer.log) and look for the cause of the failed start.

Any command issued to a Nirvana Server returns the error message: The Nirvana license is invalid.
Make sure that a valid license file is installed under the following path on the MCAT Server only: $Nirvana_HOME/config/license.txt.  The license file is an ASCII text file that can be opened and examined with any text editor.  Make sure that all the attributes are correct and correspond with your environment.  A license file can be obtained from Nirvana directly.

Any command issued to a Nirvana Server returns the error message: The Nirvana license has expired.
Make sure that the license file at $Nirvana_HOME/config/license.txt on the MCAT Server has a valid date.  The license file is an ASCII text file that can be opened and examined with any text editor.  A new license file with a valid date can be obtained from Nirvana directly.

MCAT

The Oracle database used for MCAT is not receiving connections.
Although this might have a hundred different causes and the best resource for Oracle problems is the Oracle Technology Network or many other sites on the internet covering Oracle installation and startup problems (i.e., http://www.puschitz.com). But we have encountered one particular problem many times where the Oracle database is simply not mounted or open for connections but otherwise does not have any problems. You can follow these steps to determine whether that fixes your problem:

  1. As a user with access to the Oracle installation go to a command line or terminal window and make sure that you can run sqlplus. The sqlplus utility is typically located in $ORACLE_HOME/bin on Linux/UNIX or %ORACLE_HOME%in on Windows.
  2. Run the following sequence of commands:
> sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jun 13 12:57:39 2006

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> connect sys as sysdba;
Enter password:
Connected.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  205520896 bytes
Fixed Size                  1218532 bytes
Variable Size              75499548 bytes
Database Buffers          125829120 bytes
Redo Buffers                2973696 bytes
Database mounted.
SQL> alter database open;

Database altered.

SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

When using Postgres as an MCAT database an error occurs upon starting Nirvana.
Symptoms: After issuing of srb start an error is displayed namely Nirvana Servers FAILED to start!. The $Nirvana_HOME/log/srbServer.log file shows entries such as the following:

DEBUG :06-13-14.49.02.6194:P 02975:libSrbDBDriverPGS8V0.so :
libpq.so.4: cannot open shared object file: No such file or directory
...
ERROR :06-13-14.49.07.3460:P 02975:The "DatabaseDescriptorNew" API is
not supported for this system type
...
DEBUG :06-13-14.49.07.3890:P 02975:Nirvana Server's listening
HostName:HostPort ':' not initialized yet.
ERROR :06-13-14.49.07.4122:P 02975:Nirvana Server could not authenticate
or MCAT Nirvana Server may be down.

The Postgres drivers are compiled against v7.1 of the database so that backwards compatibility can be maintained. It is therefore possible that the driver is linked against a version of the Postgres client library (libpq.so) or other dependent libraries (libcrypto.so, libssl.so), which do not exist on the server where you are installing Postgres. This can easily be remedied by creating symbolic links that have the name of the linked-in libraries but point to new versions of those libraries. Follow these steps to fix the unresolved symbols (the driver name libSrbDBDriverPGS8V0.so can also have a different version number such as 7V1, 7V2, 7V3):

> ldd $Nirvana_HOME/modules/libSrbDBDriverPGS8V0.so
        linux-gate.so.1 =>  (0x00aa6000)
        libpq.so.2 => not found
        libssl.so.5 => /lib/libssl.so.5 (0x0067f000)
        libcrypto.so.5 => /lib/libcrypto.so.5 (0x00e09000)
        libm.so.6 => /lib/libm.so.6 (0x00981000)
        libdl.so.2 => /lib/libdl.so.2 (0x00870000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0030d000)
        libc.so.6 => /lib/libc.so.6 (0x0011f000)
        ...
> ln -s /usr/lib/libpq.so.4 /usr/lib/libpq.so.2

Configuration

When viewing the Nirvana Web Client on Windows 2003 Server an HTTP error 404 is returned.
Internet Information Services on Windows 2003 Server have started to enforce additional security constraints by prohibiting any unknown web service extensions from running. Follow these steps to enable the Nirvana Web Client on Windows 2003 Server:

  1. Click on START/Control Panel/Administrative Tools/Internet Information Service (IIS) Manager to open the IIS management console.
  2. Expand the (local computer) node.
  3. Click on Web Service Extensions.
  4. Click on the Add a new Web service extension... taks.
  5. For Extension Name enter Nirvana Web Client.
  6. Under Required Files click the Add... button.
  7. Browse for the browser.cgi file (typically under C:Program Files irvanasrbwwwcgicgi-bin) and click Open.
  8. Click OK.
  9. Check the box Set extension status to Allowed.
  10. Click OK again.

I can not connect to Oracle on 64bit Windows.
Nirvana drivers need the 32bit Oracle client, which can be installed alongside the 64bit client without problems. There is, however, a possible problem depending on the version of the Oracle Client and the installation path of the application. By default Nirvana will be installed into the "C:Program Files (x86)" directory because it is a 32bit application. Unfortunately there is a bug in the 10.2.0.0 Oracle Client such that you will get error ORA-12154 for any application that has a ( or ) character in their installation directory. To solve the issue, the application must be moved to a directory that doesn't contain the ( or ) characters. Alternatively, you can install a newer version of the Oracle Client that doesn't have this problem. This problem is documented in Oracle Bug #3807408 and should be fixed in newer client versions.

Interfaces

How do Nirvana Gateways work?
Nirvana Gateways are a transparent access mechanism into the Nirvana Global Namespace for existing applications such as Microsoft Office, Video playback or editing applications, GIS applications, etc. Nirvana Gateways expose a familiar interface such as a Windows network share, an NFS mount point, a Web Folder or a (grid-)FTP server to existing applications.

What is the Nirvana Windows Virtual Disk?
Starting with Nirvana 2008, the Nirvana Windows Virtual Disk is offering a new native Windows interface into Nirvana Global Namespaces from any Windows system. The Nirvana Windows Virtual Disk appears as a local hard drive in Windows and can be running as a Windows service or application. In either case, the installation of a Windows kernel component is required, which can typically be performed without rebooting the system.

What is the Nirvana Windows Gateway?
The entire Nirvana Global Namespace can be transparently accessed by Windows applications using the Nirvana Windows (CIFS) Gateway.  The gateway is implemented through a Samba Server, which can be installed on almost all UNIX and Linux operating systems.  A VFS module supports the translation of the Windows-specific CIFS protocol into Nirvana API calls.

Why is the Nirvana Windows Gateway slow when I try to use it?
The Nirvana Windows Gateway contains a cache that caches queries to the MCAT so they do not have to be made repeatedly. This cache is only valid during a single session between a Windows desktop and the Gateway server. If the session gets closed, the cache has to be refreshed with "real" queries to the MCAT. This takes time and slows down the interaction with the Gateway server. To achieve the best performance you should map the share to a network drive by right-clicking on the share and clicking "Map network drive...". This will keep the session between the Windows desktop and the Gateway server alive. When making ad hoc connections to the Gateway server (i.e., by typing "<gateway-server-address><share name> " into the Windows explorer address bar) Windows often closes the session sporadically and therefore resets the Gateway cache.

How does the Nirvana Preload Library work?
The Nirvana Preload Library provides another mechanism to access the Nirvana Global Namespace without any modification/re-compilation of the application.  The Nirvana Preload Library is supported on Linux and most UNIX operating systems. The respective operating system redirects system calls from ANY user-space (not kernel-space) application to the Preload Library, which in-turn redirects these calls to the Nirvana Global Namespace and hence to a Nirvana Resource.  The Preload Library will only redirect system calls that reference a certain prefix (by default /srb) so that any calls to the local file system will be executed as fast as they always were.

For example, the command cp /tmp/20GB /srb will copy the 20GB file into Nirvana and hence into the associated Nirvana Resource, whereas the command cp /tmp/20GB /vol/cla will copy the 20GB file into the local mount point /vol/cla without involving Nirvana in any way.  This maintains an application's high performance and local file system or database access, and can at the same time redirect data into and out of Nirvana if desired.

Administration

I've installed and configured Nirvana. Now what?
The objective for Nirvana is to facilitate easy data access, management, organization, and discovery. To achieve this objective Nirvana administrators bring several data sources under the umbrella of the Global Namespace and let automated Sync Daemons register the data into the Global Namespace. The Data Objects and Collections in that Global Namespace are then associated with appropriate metadata. Next, access rights are given so that users and administrators have the necessary rights but not too many rights. Finally policies are set for automated data management and synchronization.

At this point users and the owners of the Data Objects and Collections can organize the data within the Global Namespace to suite their needs. They can set up Virtual Collections and Collections Links to create taxonomies and cross references within the Global Namespace. Users can further refine Access Control Lists and Metadata attributes.

At this point administrators need to monitor the system using DAI reports. Such reports can tell them whether their policies are setup correctly and allow them to re-adjust the policies (i.e., run data migrations more frequently because cache Resources fill-up too quickly).