DSpace comes with support for CNRI's Handle.Net Registry (HNR). This feature is completely optional, as DSpace functions the same with or without using a Handle Server/Registry.
A few things to keep in mind:
https://hdl.handle.net/[prefix]/[suffix]
) for every object within your DSpace site. Those persistent URLs may be useful for citations or even during upgrades/migrations, as DSpace + Handle.Net ensures that these URLs always go to the right object, even if your site's main URL changes.A Handle server runs as a separate process that receives TCP requests from other Handle servers, and issues resolution requests to a global server or servers if a Handle entered locally does not correspond to some local content. The Handle protocol is based on TCP, so it will need to be installed on a server that can send and receive TCP on port 2641.
You can either use a Handle server running on the same machine as DSpace, or you can install it on a separate machine. Installing it on the same machine is a little bit easier. If you install it on a separate machine, you can use one Handle server for more than one DSpace installation.
We recommend configuring your Handle server without a passphrase, as the current DSpace If you choose to set a passphrase, you may need to start the Handle Server via: |
To configure your DSpace installation to run the handle server, run the following command:
[dspace]/bin/make-handle-config |
If you are using Windows, the proper command is:
[dspace]/bin/dspace dsrun net.handle.server.SimpleSetup [dspace]/handle-server |
Ensure that [dspace]/handle-server matches whatever you have in dspace.cfg for the handle.dir property. You will need to answer a series of qestions to configure the server. For the most part, you can use the default options, except you should choose to not encrypt your certificates when prompted.
Edit the resulting [dspace]/handle-server/config.dct file to include the following lines in the "server_config"clause:
"storage_type" = "CUSTOM" "storage_class" = "org.dspace.handle.HandlePlugin" "enable_txn_queue" = "no" |
This tells the Handle server to get information about individual Handles from the DSpace code and to disable transaction replication. If you used the make-handle-config script, these should already be set in your config.dct file.
handle.prefix
in [dspace]/config/local.cfg
from "123456789" to your assigned naming authority prefix, so that DSpace will use that prefix in assigning new Handles.Now start your handle server (as the dspace user):
[dspace]/bin/start-handle-server |
If you are using Windows, there is a corresponding 'start-handle-server.bat' script:
[dspace]/bin/start-handle-server.bat |
Note that since the DSpace code manages individual Handles, administrative operations such as Handle creation and modification aren't supported by DSpace's Handle server.
This works with DSpace 7.4 and later. |
The Handle server you use must be dedicated to resolve Handles from DSpace. You cannot use a Handle server that is in use with other software already. You can use CNRI's Handle Software -- all you have to do is to add to it a plugin that is provided by DSpace. The following instructions were tested with CNRI's Handle software version 9.1.0. You can do the following steps on another machine than the machine DSpace runs on, but you have to copy some files from the machine on which DSpace is installed.
Set the following two configuration properties for every DSpace backend that your are running:
handle.remote-resolver.enabled = true handle.hide.listhandles = false |
README.txt
with installation instructions -- follow it./hs/
handle-9.1.0 and the directory containing the configuration of your local server is /hs/srv_1
. (We use the same paths here as CNRIs README.txt.)dspace-remote-handle-resolver-VERSION.jar
, copy it to the directory containing the CNRI software (/hs/handle-9.1.0/lib
). /hs/srv_1/logs
.Create the following two files in /hs/srv_1
.
log4j.rootCategory=INFO, A1 log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.File=/hs/srv_1/logs/handle-plugin.log log4j.appender.A1.DatePattern= '.' yyyy-MM-dd log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d %-5p %c @ %m%n log4j.logger.org.apache.axis.handlers.http.HTTPAuthHandler=INFO |
Change the path in the third line, if necessary. It must point to the DSpace 7 Rest API (as configured in $dspace.server.url).
dspace.handle.endpoint1 = http: //dspace.example.org/server |
If you run more than one DSpace Installation, you may add more DSpace Endpoints. Just increase the number at the end of the key for each: endpoint2
, endpoint3
....
Edit the
file /hs/srv_1/config.dct
to include the following lines in the " server_config"
clause:
"storage_type" = "CUSTOM" "storage_class" = "org.dspace.handle.MultiRemoteDSpaceRepositoryHandlePlugin" |
/hs/handle-9.1.0/bin/hdl
:exec java ... net.handle.server.Main ...
-Dlog4j.configuration=file:///hs/srv_1/log4j-handle-plugin.properties -Ddspace.handle.plugin.configuration=/hs/srv_1/handle-dspace-plugin.cfg
" right in front of net.handle.server.Main
.Please note: The Handle Server will only start if it is able to connect to at least one running DSpace Installation. It only resolves the handles of the DSpace Installations that were running when it was started.
Instead of using the described plugin above, you can configure a Handle server (version 8+) to resolve handles based on a template. Template handle require less configuration than the plugin, and do not require an additional download. However, there are two things to keep in mind when using template handles:
The Handle server you use must be dedicated to resolve Handles from DSpace. You cannot use a Handle server that is in use with other software already. The following instructions were tested with CNRI's Handle software version 9.1.0.
README.txt
with installation instructions. Follow the directions to install and configure your Handle server. Importantly, make sure your prefixes are set correctly in the "auto_homed_prefixes" setting.Edit the
server's config.dct
file to include the following line in the " server_config"
clause:
"namespace" = "<namespace><template delimiter'/'><value type='URL' index='1' data='https://demo.dspace.org/handle/${handle}'/></template></namespace>" |
In the "namespace" section, replace "https://demo.dspace.org/handle
/
" with the url endpoint for your DSpace server. The "${handle}" part of the template will be replaced with the full handle to be resolved.
This configuration is a minimal example of how to configure template handles for DSpace. For more details about configuring template handles, see the Handle Technical Manual, Chapter 11 (PDF download).
If you need to update the handle prefix on items created before the CNRI registration process you can run the [dspace]/bin/dspace update-handle-prefix script. You may need to do this if you loaded items prior to CNRI registration (e.g. setting up a demonstration system prior to migrating it to production). The script takes the current and new prefix as parameters. For example:
[dspace]/bin/dspace update-handle-prefix 123456789 1303 |
This script will change any handles currently assigned prefix 123456789 to prefix 1303, so for example handle 123456789/23 will be updated to 1303/23 in the database.