Back to top


Submitted by ndp on Mon, 12/04/2017 - 12:33

Hyrax by OPeNDAP logoThis release, Hyrax-1.14, contains new features and bug fixes.

Server Documentation

1.14.0 release (4 December 2017)

Welcome to the Hyrax 1.14.0 release

Logging Improvements

  • Now the basic logging mode writes only one line per 'get' command the BES receives. This makes the bes logs file much easier to use. In verbose mode, the log contains detailed information about all of the work done by the BES. For developers we have introduced a way to trace which lines in the log file come from which parts of the server.

  • Along with the above, we have switched to ISO8601 date-time strings for the log; UTC is the default. You can switch to local time using BES.LogTimeLocal in the BES configuration file (bes.conf). The old date format is still in the code and can be accessed using a compile-time switch.

  • HYRAX-548: Use the  copytruncate directive in besd.logrotate to remove brute-force stop/start of the server when logs are rotated.

WCS 2.0

  • The Hyrax server's OGC Web Coverages Service (WCS 2.0) implementation is now a core part of Hyrax.

Improved Documentation

  • We have move the majority to the Hyrax documentation to AsciiDoc. The manual has many updated sections.

Handler fixes

HDF Handlers

For the new features and fixes see the section titled “What’s new for Hyrax 1.14.0” in the handlers README files: 

Bug Fixes

  • Fixed bug in the generation of the "viewers" pages.
  • Refactored the software used to serve GeoTiff files (gdal_handler) so it no longer keeps the GDALDataset handle open. This code was keeping the GDALDataset handle open across calls to the RequestHandler when returning data responses and this breaks the NCML handler.

  • Fixed the integration tests in bes/cmdln.

Specific tickets fixed

HYRAX-248 Fixed the GeoTiff and JPEG2000 responses; in some cases the raster output was upside down.
HYRAX-263 Geotiff output appears to have the latitude axis inverted.
HYRAX-281 The scale_array() server function now works with 3D arrays.
HYRAX-283 fileout geotiff doesn't work for NCEP dataset
HYRAX-294 Make this function (scale_grid) work correctly when subsetting an array drops it down to 2D
HYRAX-309 Test the geo functions with real data
HYRAX-362 Make the GeoTiff (GDAL) handler work with NCML aggregations
HYRAX-417 Determine axis order for scale_grid() and scale_array() functions.
HYRAX-432 WCS-2.0 war file/ deployment is broken
HYRAX-458 Use of mkstemp/mkstemps in libdap and bes is bogus
HYRAX-465 The bes (travis) build is broken
HYRAX-491 Missing single source of truth for supported Format
HYRAX-507 Fix double quote problems with WCS constraint expression eval
HYRAX-529 Hyrax fails to start using "service besd start"
HYRAX-547 FreeForm handler fmt file for ASCII data with two header lines
HYRAX-548 logrotate.d in the release 1.13.4 RPM restarts bes and tomcat every day

Required External Dependencies

In order to run Hyrax 1.14.0, you will need:

  • Java 1.7 or greater
  • Tomcat 7.x or 8.x Note: On CentOS 6.6 use Java 7 + Tomcat 7 if you're using yum to install software.
  • Linux (We provide RPMs for CentOS 6.9 and 7.13; install them with yum), Ubuntu, OSX or another suitable Unix OS.

Software downloads for Hyrax 1.14.0

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

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

Binaries for Hyrax 1.14.0

Docker Offical Hyrax-1.14.0 Docker Images
Java icon OLFS (Java-1.7)
  • OLFS 1.17.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 employ the "alternatives" tool to make java 7 JVM the preferred alternative.
  • Note: On CentOS 6.6 it's Java 7 + Tomcat 7 if you're using yum to install things. Tomcat 7 + Java 8 will not work!
Java icon ncWMS2 (Java-1.7)
Use the EDAL web page to locate the latest ncWMS2 "Servlet Container" software bundle as a WAR file. Install it into the same Tomcat instance as the OLFS. The configuration instructions may be found here.
Linux Tux Logo BES - These are the same RPM packages as for Hyrax 1.14.0
Linux (CentOS 6.x) x86_64 RPMs - All of the RPMs we build, including the devel and debuginfo packages
  • libdap-3.19.1 (gpg signature)
  • bes-3.19.1-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.
Linux (CentOS 7.x) x86_64 RPMs - The RPM packages for CentOS 7 / RHEL 7, otherwise, the same code as above.

Installing the binary distribution

  • Download the RPM packages above
  • Use yum to install the libdap and bes RPMs (sudo yum install libdap-3.19*.rpm bes-3.18.*.rpm). Unless you're going to be building software from source for Hyrax, skip the *-devel and *-debuginfo RPMs.
  • 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: exit
  • BES NOTE - If you are upgrading to Hyrax 1.14.0 from an existing installation older than 1.13.0
    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.'
  • 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.
  • Use yum to install tomcat.noarch. 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). Alternatively, get Apache Tomcat-7.x from the Apache Software Foundation and install it wherever you'd like (e.g., /usr/local/).
  • 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 /usr/share/tomcat/webaps or, if you installed tomcat from the ASF distribution, its web application directory, e.g., /usr/local/apache-tomcat-7.0.59/webapps)
  • At this point you should be able to start tomcat (sudo service tomcat start or ./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 in conjunction with ncWMS2 version 2.0 or higher: Copy both the opendap.war and the ncWMS2.war files into the Tomcat webapps directory. (Re)Start Tomcat. Go read about, and then configure ncWMS2 and the OLFS to work together.
  • From here, or if you are having problems, see our new Hyrax Manual and the older Hyrax documentation page
  • OLFS Note - If you are upgrading to Hyrax 1.14.0 from any previous installation older than 1.13.0
    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.

Source code for Hyrax 1.14.0

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.