Back to top

OPeNDAP is pleased to announce Hyrax 1.12.2!

Submitted by ndp on Wed, 09/16/2015 - 15:55

Hyrax by OPeNDAP logoServer Documentation

1.12.2 release (28 Oct. 2015)

Welcome to the Hyrax 1.12.2 release. This release contains new features, bug patches, and security modifications.

New Features
  • Multi-Homed Support Specify the host ip to which to bind the BES in a multi-homed system. (HR-47)
  • JoinExisting aggregations can now be configured to cache their member dataset dimensions. This cache provides a roughly 2 order of magnitude improvement in metadata response times and a similar improvement in the time until transmit start for data requests spanning many member datasets. This is in addition to the JoinNew improvements made with the previous release.
Bug Fixes
  • Fixed problem with "_FillValue type mismatch" issues as reported by our NASA partners.
  • HR-50 - New attributes now have a default type of string unless otherwise specified.
  • HR-49 - The NcML parser no longer objects to the presence of a schemaLocation attribute in NcML documents.
  • HR-48, HR-64 - The "Too Many Open Files" problem is fixed.
  • HR-63 - The DMR now works with 8-bit integers (Int8).
  • HR-66 - The getdap application now finds variables in non-root groups.
  • Improved Signal Handling - The BES was failing to correctly catch the SIGPIPE signal which was causing the BES to run amok when either the OLFS or a remote client broke its connection (to either the BES or the OLFS). This was the infamous 'runaway BES' bug.
  • We have refactored the way that the various caches are utilized in order to avoid unexpected configuration collisions between the caches. The file decompression cache is now named explicitly in the BES configuration and the use of the BES.CacheDir, BES.CacheSize, and BES.CachePrefix BES configuration keys has been retired. These keys have been replaced with configuration keys specific to each of the caches. If you are updating an existing Hyrax installation please see the installation details for this release below!

1.12.1 release (21 Sept. 2015)

Welcome to the Hyrax 1.12.1 release. This release contains numerous new features, bug patches, and security modifications. Thanks to our beta testers for the work they did with the 1.12.0 version!

New Features
  • NcML Aggregation Improvements - We have spent a significant effort improving the performance of the NcML aggregations module. Improvements include:
    • Reduced Memory Utilization - This new version of the server releases memory in a more timely manner, reducing overall memory consumption for aggregated responses by as much as 3 orders of magnitude. (No kidding!)
    • Decreased Response Latency - We define response latency as the elapsed time from the receipt of the request to the beginning of the response transmission. This new version of the server should greatly reduce, if not eliminate, the previous problem of clients timing-out while waiting for the response.
    • Parallel I/O Operations - The server now uses a multi-threaded model in which one thread is transmitting data to the requesting client while another thread is reading the data for the next part of the response. This will, especially when the client's network connection is slow, greatly reduce the overall time to retrieve the response from the server.
  • Bug fixes
    • HR-38 - BES configuration key/value pair character limit of 255 removed.
    • HR-45 - Content-Disposition headers added to fileout-netcdf responses.
    • HR-45 - Subsetting a joinNew aggregation variable causes the request to fail.
    • Memory leaks in NcML handler fixed.
    • Memory leak in the HDF4 handler fixed.
Improvements to specific formats or modules
  • Support for general 1D and 2D lat/lon HDF5 and netCDF-4-classic-like 2D lat/lon products.
  • A BES option to check the ignored object mapping information from HDF5 to DAP2 was added for the CF option.
  • 'Pure' DAP4 support - the handler now uses all of the DAP4 types, some of which were added to DAP4 specifically to capture the semantics of HDF5.
  • Added caching support for the NASA AIRS version 6 products.
  • Added caching support for non-HDFEOS data files.
  • Added 1-D coordinate variables and grid_mapping CF attributes for HDF-EOS2 Sinusoidal projection products.

Required External Dependencies

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

  • Java 1.7 or greater
  • Tomcat 7.x (Not tested with Tomcat 8)
  • 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.12

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.12

Java icon OLFS (Java-1.7)
  • OLFS 1.14.1 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 7 Tested against Tomcat 7.0.53).
  • 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.16.0 (gpg signature)
  • bes-3.16.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.15*.rpm bes-3.15*.rpm). Unless you're going to be developing software for Hyrax, skip the libdap-devel and bes-devel since those are for development only.
  • At this point you can test the BES by typing the following into a terminal:
    • start it: sudo besctl 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
  • NOTE: For those of you are upgrading to Hyrax 1.12.2 from an existing installation. Because of changes to the caching code, before you simple overwrite the newly installed configuration files with your localized ones be sure to do a "diff" and see what's changed w.r.t. the new configuration files(s). Minimally, 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.
  • 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 modernish 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).
  • At this point you should be able to start tomcat (./apache-tomcat-7.0.59/bin/ 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.

Source code for Hyrax 1.12

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.