Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Upgrading to VIVO 1.10 requires unloading and reloading upgrading your triple stores (content and configuration).  A procedure is provided below.  You should consider:

  1. System downtime is required to upgrade the triple stores
  2. SPARQL queries will need to be checked for use of string datatypes. See Data types for string and language
  3. Applications directly accessing the SDB triple store will need to be upgraded to use Jena 3 libraries.
  4. With the upgrade to Jena 3.x, Java 8 is required. The Maven projects have been upgraded to state a dependency on version 8, and Maven will not run without it.
  5. If you have customizations, please see Preserving Customizations During Build

Jena 3

Upgrading The Triple

...

Stores

Upgrading the triple stores (there are two - content and configuration) involves dumping the contents of your stores, and then reloading them, using tools provided with VIVO

Warning

This needs to be done by everybody upgrading from a previous version, using the (default) Jena triple stores. It is necessary due to the changes in handling untyped literals in RDF 1.1. If you fail to perform the upgrade, or you mix Jena libraries

If you are using an alternative triple store implementation (e.g. Virtuoso, Stardog), then you do not need to reload that triple store. But please remember that VIVO uses two triple stores - content and configuration - and if you are only using an alternative content triple store, you will still need to upgrade the configuration store.

Upgrading the triple store(s) (there are two - content and configuration) involves dumping the contents of your stores, and then reloading them. Whilst it is possible to do this using command line tools that are part of the Jena projects, VIVO has created and distributes tools that work with your VIVO configurations to make the process easier.

In order to upgrade your triple storestores, use the following steps (replace <your-settings.xml> and <vivo_home> with the appropriate values for your system:.

  1. Stop Tomcat - it is vital that Tomcat / VIVO, and any other applications that may access the triple stores, are not running during this process.

  2. Run "mvn clean install -s <your-settings.xml>"  in your VIVO 1.10.0 development area to update your web application and home directory
    This will install the required tools into your <vivo_home>/bin directory.

    Export your existing triple stores:

    warning

  3. To export

    successfully, you need to ensure no other programs are accessing your triple stores.
  4. Your file system must have the space available and be capable of storing files large enough to contain your entire triple store serialisation.
  5. To export your triples store

    your triple stores, use the jena2tools utility provided with VIVO 1.10.0, in <vivo home dir>/bin, specifying the export command, as shown below.

    Code Block
    java -jar jena2tools.jar -e -d <vivo home dir> -e_home>

    Arguments:

    -d - the location of the Vitro/VIVO home directory

    -e - run in export mode

    On execution, the program will read your configuration files, find your Vitro or VIVO configuration within the vivo /vitro home directory, and get the necessary information to connect to your configuration triple store (usually <vivo home dir>/tdbModels), and your content triple store (usually in SDB). If your triple store(s) are not SDB or TDB backed, then it will simply skip themthey will be skipped.

    jena2tools will then extract the contents of the available triple stores, and dump write them to <vivo home dir>_home>/dumps in TriG format.

    Warning

    In rare cases jena2tools will fail with a java.lang.NullPointerException. This can occur if VIVO was not properly shut down before upgrading.

    The preferred fix for this is to restore VIVO 1.9.x and see that it is properly started and shut down before upgrading. If this is not practical, another workaround is to delete the file named tdbModels/journal.jrnl in the Vitro/VIVO home directory. This may result in the loss of the most recent login information.


  6. Check that the export has completed - you should have a <vivo_home>/dumps directory, that contains the files "configuration.trig" and "content.trig".

  7. Empty your triple stores
    • Drop your database and recreate it as empty, just as you would for creating a new VIVO install.  jena3tools must find an empty database (no tables) as named in your runtime.properties and will recreate your SDB content triple store as tables in the named database using the triples produced by jena2tools and stored in <vivo home dir>/dumps/content.trig

      Code Block
      mysql> DROP DATABASE vitrodb;
      mysql> CREATE DATABASE vitrodb CHARACTER SET utf8;
      mysql> GRANT ALL ON vitrodb.* TO 'vitrodbUsername'@'localhost' IDENTIFIED BY 'vitrodbPassword';


    • Delete all files in <vivo

      home dir>

      _home>/tdbModels.  Jena3tools will rebuild your configuration tdbModels based on the content created by jena2tools

      and stored in <vivo home dir>/dumps/configuration.trig

      Code Block
      rm -rf <vivo_home>/tdbModels



  8. Reload your triple stores

    Having exported your triple stores, you can reload them using jena3tools, also available with VIVO 1.10.0, specifying the import command.

    Code Block
    java -jar jena3tools.jar -i -d <vivo home dir> -i_home>

    Arguments:

    -d - the location of the Vitro/VIVO home directory

    -i - run in import mode

    On execution, the program will find your Vitro or VIVO configuration within the home directory, as well as the dumps that you have created with jena2tools. It will import them into the SDB and TDB triple stores, based on the configuration of your Vitro/ VIVO instance.

    jena3tools will be present in <vivo home dir>/bin when you install the 1.10.0 beta. Alternatively, it can be downloaded from GitHub.


    Note that this can take a while. A rough guide is to expect about 600 triples per second to reload. (Roughly 1 hour per 2 million triples).

  9. Restart Tomcat

    VIVO checks its filegraphs when starting.  Restarting for the first time after an upgrade will take some time.

...

22 dependencies will appear to have been added, but these are mostly from unbundling the owlapi OSGi dependency, and these - along with other conflicting classes - had been packaged as part of the bundle.

Whilst while every effort has been made to eliminate known vulnerabilities, the Maven dependency-check plugin still reports 13 vulnerabilities across 8 libraries - for which these are currently the latest releases.

...