Back to top

OPeNDAP is pleased to announce Hyrax 1.13.0!

Submitted by ndp on Fri, 02/05/2016 - 16:30

Hyrax by OPeNDAP logoServer Documentation

Welcome to the Hyrax 1.13.0 release. This release contains new features, and bug patches.

New Features

  • Improved Compatibility With YUM Installed Tomcat. In previous versions of Hyrax, the OLFS would not start without human intervention when used with a Tomcat instance installed by the YUM package manager. Now the OLFS works well with Tomcat installed using RPM packages with YUM. See the installation notes below for more information. CAVEAT: Upgrading will require some extra steps for the new software to access a previously existing configuration!
  • Enhanced HDF5 Support.
    • We have added support for NASA'a SMAP and MEaSURES products.
    • New features for HDF5 when the CF option is turned on (the default):
      • By default, the leading underscore of a variable path is now removed for all files. Although not recommended, Users can change the BES key H5.KeepVarLeadingUnderscore in h5.conf to be true for backward compatibility if necessary.
      • There is improved support for generic HDF5 files that have 2-D lat/lon information. This eases plotting of many SMAP level 1, 3, and 4 products using tools such as Panoply.
  • Better Support for Server Timeout Behavior. In the past, configuring Hyrax's timeout behavior was somewhat of a black art. The timeout period (duration) can now be set using a parameter in the olfs.xml configuration file. This value will then be used by all of the BES instances. In addition, the BES instances can be configured to not include data transmission times in the timeout interval so users are not penalized for a slow network. Details are available in the olfs.xml and bes.conf files' comments.

Bug Fixes

olfs
  • Repaired error handling so that now, when errors happen:
    • Error messages are correctly returned in the response to the user.
    • Errors are encoded consistent with the item that the client requested. In other words, if the client is expecting HTML then that's what is sent. If the client is expecting a DAP4 response, then it gets a DAP4 error object, etc.
    • Changes in libdap, the BES, and various handlers have repaired problems in which user syntax errors were being reported as Internal Errors.
  • Problems with the way that the OLFS located it's configuration have been fixed so that now it should work happily with instances of Tomcat that were installed via YUM. This means that upgrading existing instances of the OLFS will require extra steps for the new version to locate the "old" configuration.
NetCDF file responses
  • New configuration parameters have been added to control compression and chunking when building the response file. See the handler documentation for more information.
  • HDF5 files with string data triggered a bug in the handler. Now the handler returns a valid netCDF3 or 4 classic-model file where an array of strings is a two-dimensional array of NC_CHAR (or, in general, a rank M array of strings is a rank M+1 array of NC_CHAR).
UGrid subsetting
  • The UGrid subsetting function now returns values that are easily accessible by clients that use the netCDF library to interact with Hyrax.
NCML Aggregations
  • We have included a command-line tool that can be used to pre-populate the cache used by JoinExisiting aggregations. This improves the initial responses made using these aggregations. Using this tool requires some simple set-up work; contact us if you would like details.
Caching
  • We have fixed a problem where files cached by different parts of the BES but which happened to have similar names would 'collide' and cause either inscrutable errors or unnecessary slowness. Now each of the different caches the BES uses has it's own set of configuration parameters. You can still configure the BES to use only one 'cache directory' if you want. These changes are documented in the bes.conf file as well as the relevant module configuration files.

Required External Dependencies

In order to get Hyrax 1.13 running, you will need:

  • Java 1.7 or greater
  • Tomcat 7.x or 8.x
  • Linux (We provide RPMs for CentOS 6.6; install them with yum); OSX source build using the optional hyrax-dependencies.tar sources or your own copies of HDF4, etc.

Software downloads for Hyrax 1.13

To run the Hyrax server, you will need to download and install the following (from source or binary):

  • OLFS (Java 1.7)
  • libdap
  • BES
  • ncWMS (optional)

Binaries for Hyrax 1.13

Java icon OLFS (Java-1.7)
  • OLFS 1.15.0 Web Archive File (gpg signature) Unpack using 'tar -xvf filename' and follow the instructions in the README file. (Requires Java 1.7 Built using Java 8 Tested against Tomcat 8.0.32).
  • CentOS 6.3 comes with Java 6; Oracle has stopped supporting that version of Java; update your machine if you haven't already. Use yum search java-1.7 to find the correct package. For our servlet you will only need the JRE - the Java Runtime Environment. You will also need to the "alternatives" tool to make java 7 JVM the preferred alternative.
Java icon OLFS+ncWMS (Java-1.7)
Linux Tux Logo BES
Linux (CentOS 6.6) x86_64 RPMs - All of the RPMs we build, including the devel and debuginfo packages
  • libdap-3.17.0 (gpg signature)
  • bes-3.17.0-static (gpg signature) This RPM includes statically linked copies of all of the modules/handlers we support, including HDF4 & 5 with HDFEOS support. There is no need to install packages from EPEL with this RPM. Other sources of RPM packages will likely provide a bes RPM that uses handlers linked (dynamically) to dependencies from their distributions (CentOS, Fedora, etc.). RPMFind is a good tool to locate those RPMs.

Installing the binary distribution

  • Download the RPM packages above
  • Use yum to install the libdap and bes RPMs (sudo yum install libdap-3.17*.rpm bes-3.17*.rpm). Unless you're going to be developing software for Hyrax, skip the *-devel and *-debuginfo RPMs since those are for development only.
  • At this point you can test the BES by typing the following into a terminal:
    • start it: sudo service besd start or use the script in /etc/init.d with sudo /etc/init.d/besd start
    • connect using a simple client: bescmdln
    • and get version information: show version;
    • exit from bescmdln
  • NOTES: If you are upgrading to Hyrax 1.13 from an existing installation.
    • BES Configuration Changes: In the bes.conf file the keys BES.CacheDir, BES.CacheSize, and BES.CachePrefix have been replaced with BES.UncompressCache.dir, BES.UncompressCache.size, and BES.UncompressCache.prefix respectively. Other changes include the gateway cache configuration (gateway.conf) which now uses the keys Gateway.Cache.dir, Gateway.Cache.size, and Gateway.Cache.prefix to configure its cache. Changing the names enabled the BES to use separate parameters for each of its several caches, which fixes the problem of 'cache collisions.'
    • OLFS Configuration Changes: The OLFS now has much better support for sites that use rpm to install Tomcat. To complement this, it has a new procedure for locating its configuration directory. During start up, the OLFS looks in two places for its configuration information. It checks the directory given by the environment variable OLFS_CONFIG_DIR first and then the directory /etc/olfs/, using the configuration information in the first place it is found. If either of those directories exist but are empty, the OLFS will unpack its default configuration information there. You can customize the configuration information using a text editor; the OLFS will not overwrite your changes. If neither OLFS_CONFIG_DIR nor /etc/olfs/ exist, the OLFS will fall back to its default configuration. Note that the OLFS_CONFIF_DIR or /etc/olfs must be writable by the tomcat user for this to work.
  • Check the java version on your system: "java -version"
  • If you have earlier than 1.7.x then you'll need to install java 7:
    • yum install java-1.7.0
    • If you are on a modern-ish Linux system you may need to use the alternatives tool to make java 7 the current JVM. Run the command:
      "alternatives --config java"
      You'll get an interactive terminal application that will allow you to select your newly installed java 8 as the preferred alternative.
  • Get Apache Tomcat-7.x if you don't already have it.
  • Download the OLFS Web ARchive (war) file (see above, by the Java logo) and put opendap.war in the tomcat webapps directory (cp opendap.war apache-tomcat-7.0.59/webapps). Alternatively, use yum to install tomcat.noarch and put the opendap.war file in /usr/share/tomcat/webaps. Make the directory /etc/olfs, change its group to tomcat, and set it 'group writable' (mkdir /etc/olfs; chgrp tomcat /etc/olfs; chmod g+w /etc/olfs).
  • At this point you should be able to start tomcat (./apache-tomcat-7.0.59/bin/startup.sh or sudo service tomcat start) and test the server:
    • In a web browser, use http://localhost:8080/opendap/
    • Look at sample data files shipped with the server
  • If you are installing the OLFS/ncWMS bundle, copy both the opendap.war and the ncWMS.war files in the Tomcat webapps directory. (Re)Start Tomcat. Go read about, and then configure ncWMS and the OLFS to work together.
  • From here, or if you are having problems, see our Hyrax documentation page

Source code for Hyrax 1.13

Source from GitHub

  • All of our source code is on GitHub. There you will find the hyrax repo, which is a meta-project that contains scripts to clone and build all of Hyrax. You will also see all of the repos that contain the Hyrax source code (libdap4, bes, and all of the handlers).
  • Directions on building Hyrax from GitHub are available at our documentation site.