Skip to content
Ondřej Košarko edited this page May 14, 2019 · 4 revisions

Overview

A handle server is responsible for generating and resolving PIDs (persistent identificators) so you can cite our resources consistently for a "long" period. Imagine it as an abstraction of URLs which can change in time.

We have two communities where one uses local handle server and the other external using EPIC APIv2.

DSpace supports local handle servers out of the box which means that if we buy a prefix from handle.net (100$/first year), we can start to use our own local handler server which will do the communication with the handle.net GHR (global handle registry). Simply put, GHR will contain one record with PREFIX and the IP address of our local handle server. If you ask for resolution of our handle the request will be delegated to our local handle server which will be further delegated to DSpace API HandlePlugin (official way how to extend the handle server, see http://www.handle.net/tech_manual/Handle_Technical_Manual.pdf p. 31, http://www.handle.net/hs-source/api_javadoc/net/handle/hdllib/HandleStorage.html).

Obtaining prefix from handle.net

[dspace]/bin/dspace make-handle-config [dspace]/handle-server

but do not set a passphrase or you would have hard time starting the handle server automatically

  • updated config.dct and sitebndl.zip with your prefix e.g., 11234
  • add the following into config.dct (between server_admins and replication_admins)
"storage_type" = "CUSTOM"
"storage_class" = "org.dspace.handle.HandlePlugin"

Note: If the DSpace instance is resolving handles for multiple prefixes, please adjust the file generated by bin/make-handle-prefix accordingly.

Init scripts

Copy the contents of $DSPACE_WORKSPACE/config/etc to /etc and modify /etc/default/handle-server configuration file so that DSPACE_INSTALLATION_DIRECTORY variable points to the DSpace installation.

And as root run

update-rc.d handle-server defaults

Handle Server can be then started/restarted/stopped in this way:

/etc/init.d/handle-server start
/etc/init.d/handle-server restart
/etc/init.d/handle-server stop

Note: Issue /etc/init.d/handle-server restart repeatedly and verify that there is only one process running and that the process is actually killed and new one started (with different PID). Use ps -ef | grep handle-server to verify that.

Note: If the handle server is not running after startup, but the pid file is created in /var/run/handle-server.pid, verify that the dspace command for extracting configuration values does not output any extra texts (for instance due to missing configuration variable values).

Documentation

Testing

Clone this wiki locally