Date: Thu, 28 Mar 2024 18:33:29 -0400 (EDT) Message-ID: <1326983453.29082.1711665209060@lyrasis1-roc-mp1> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_29081_402734538.1711665209060" ------=_Part_29081_402734538.1711665209060 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Since some users might want to get their test version up and running as = fast as possible, offered below is an unsupported out= line of getting DSpace to run quickly in a Unix-based environment us= ing the DSpace source release.
Only experienced unix admins should even attempt the following without g= oing to the detailed Installation Instructions
useradd= -m dspace gzip xzf dspace-6.x-src-release.tar.gz createuser --username=3Dpostgres --no-superuser --pwprompt dspace createdb --username=3Dpostgres --owner=3Ddspace --encoding=3DUNICODE dspace psql --username=3Dpostgres dspace -c "CREATE EXTENSION pgcrypto;" cd [dspace-source]/dspace/config/ cp local.cfg.EXAMPLE local.cfg vi local.cfg mkdir [dspace] chown dspace [dspace] su - dspace cd [dspace-source] mvn package cd [dspace-source]/dspace/target/dspace-installer ant fresh_install cp -r [dspace]/webapps/* [tomcat]/webapps /etc/init.d/tomcat start [dspace]/bin/dspace create-administrator
You can install and run DSpace on most modern PC, laptop or server hardw= are. However, if you intend to run DSpace for a large community of potentia= l end users, carefully review the Ha= rdware Recommendations in the User FAQ
The list below describes the third-party components and tools you'll nee= d to run a DSpace server. These are just guidelines. Since DSpace is built = on open source, standards-based tools, there are numerous other possibiliti= es and setups.
Also, please note that the configuration and installation guidelines rel= ating to a particular tool below are here for convenience. You should refer= to the documentation for each individual component for complete and up-to-= date details. Many of the tools are updated on a frequent basis, and the gu= idelines below may become out of date.
OpenJDK 8 is highly recommended
DSpace 6.x is untested on Java 11 or above. While some functionali=
ty may work fine, some DSpace 6.x dependencies cannot be updated to full Ja=
va 11 support (see DS-4348 (#7687)). Full =
Java 11 support will arrive in DSpace 7.
Therefore, for DSpace 6.x we recommend using OpenJDK 8, w=
hich is under support until at least May 2026.&=
nbsp;
OpenJDK download and installation instructions can be found here http://openjdk.java.net/install/. Most operating systems prov= ide an easy path to install OpenJDK. Just be sure to install the full JDK (= development kit), and not the JRE (which is often the default example).
Oracle's Java can be downloaded from the following location: http://www.oracle.com/technetwork/java/ja= vase/downloads/index.html. Make sure to download the appropriate versio= n of the Java SE JDK.
Make sure to install the JDK and not j= ust the JRE
At this time, DSpace requires the full JDK (Java Development Kit) = be installed, rather than just the JRE (Java Runtime Environment). So= , please be sure that you are installing the full JDK and not just the JRE.=
Be aware that Tomcat 7 uses Java 1.6 to compile JSPs by default. See information about Tomcat below on how to configure it to use Java= 1.7 for JSPs. Tomcat 8 uses Java 1.7 for JSPs by default. If = you use another Servlet Container please refer to its documentation on this= matter.
Optional ElasticSearch Usage Statistic= s feature has its own Java requirements
If you plan to use the (optional) Elasticsearch Usage Statistics feature in DSpace,= the ElasticSearch backend provides its own recommendations regarding Java = version.
http://www.el= asticsearch.org/guide/en/elasticsearch/reference/current/setup.html
"Elasticsearch is built using Java, and requires at least Java 7 in order to run. Only = Oracle=E2=80=99s Java and the OpenJDK are supported. We recommend installin= g the Java 8 update 20 or later , o= r Java 7 update 55 or later . Previ= ous versions of Java 7 are known to have bugs that can cause index corrupti= on and data loss."
(However, if you plan to use the Solr-based Usage Statistics that are enabled by default within DS= pace, you can ignore these additional requirements.)
Maven is necessary in the first stage of the build process to assemble t= he installation package for your DSpace instance. It gives you the flexibil= ity to customize DSpace using the existing Maven projects found in the = [dspace-source]/dspace/modules directory or by adding in your own Mave= n project to build the installation package for DSpace, and apply any custo= m interface "overlay" changes.
If you will be building the Mirage 2 theme, you will need Maven 3.3.9 or= above (see DS-2458 for details as to why).
Maven can be downloaded from the following location: htt= p://maven.apache.org/download.html
You can configure a proxy to use for some or all of your HTTP requests i= n Maven. The username and password are only required if your proxy requires= basic authentication (note that later releases may support storing your pa= sswords in a secured keystore=E2=80=9A in the mean time, please ensure your= settings.xml file (usually ${user.home}/.m2/settings.xml= ) is secured with permissions appropriate for your operating system).
Example:
<sett= ings> . . <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts= > </proxy> </proxies> . . </settings>
Apache Ant is required for the second stage of the build process (deploy=
ing/installing the application). First, Maven is used to construct the inst=
aller ([dspace-source]/dspace/target/dspace-installer
), after =
which Ant is used to install/deploy DSpace to the installation directory.
Ant can be downloaded from the following location: http://ant.apache.org
DSpace 6 requires Postgres 9.4+ with t= he pgcrypto extension enabled
PostgreSQL users MUST ensure they are running 9.4 or above AND have the = pgcrypto extension installed and enab= led.
The pgcrypto extension allows DSpace to create UUIDs (universally unique identifiers) for all objects in DSpace, which = means that (internal) object identifiers are now globally unique and no lon= ger tied to database sequences.
postgresql.conf
: uncomment the line starting: lis=
ten_addresses =3D 'localhost'
. This is the default, in recent =
PostgreSQL releases, but you should at least check it.pg_hba.conf
and =
adding this line:=20
host ds= pace dspace 127.0.0.1 255.255.255.255 md5
all
databases, because the first matching rule governs.tnsnames.ora
and listener.ora
files to the da=
tabase the Oracle server.Tomcat 8 Version
Tomcat 8.0.32 (found e= .g. in Debian 9 Stretch and Ubuntu= 16.04 Xenial) has a bug which will cause PropertyBatchUpdateException = or StringIndexOutOfBoundsException. This was fixed in 8.0.33.&nb= sp; More information can be found in DS-3142.Tomcat 7
[dspace]
). There are a few co=
mmon ways this may be achieved:=20
One option is to specifically give the = Tomcat user (often named "tomcat") ownership of the [dspace] directories, f= or example:
# Chang= e [dspace] and all subfolders to be owned by "tomcat" chown -R tomcat:tomcat [dspace]
Modifications in [tomcat]/conf/server.=
xml : You also need to alter Tomcat's default configuration t=
o support searching and browsing of multi-byte UTF-8 correctly. You need to=
add a configuration option to the <Connector> element in
<= ;!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port=3D"8080" minSpareThreads=3D"25" enableLookups=3D"false" redirectPort=3D"8443" connectionTimeout=3D"20000" disableUploadTimeout=3D"true" URIEncoding=3D"UTF-8"/>
You may change the port from 8080 by editing it in the file above,= and by setting the variable CONNECTOR_PORT in server.xml= . You should set the URIEncoding even if you are running Tomcat behin= d a proxy (Apache HTTPD, Nginx, etc.) via AJP.
Currently, there is a known bug in DSpace 6.x where a third-party Maven =
Module expects git
to be available (in order to support t=
he ./dspace version
commandline tool). We are worki=
ng on a solution within this ticket:
For the time being, you can work around this problem by installing Git l= ocally: https://git-scm.com/downloads
Two different distributions are available for DSpace, both of which requ= ire you to build the distribution using Apache Maven 3. The steps that are = required to execute the build are identical. In a nutshell, the binary rele= ase build will download pre-compiled parts of DSpace, while the building th= e source release will compile most of DSpace's source code on your local ma= chine.
It's important to notice that both releases will require outgoing intern= et connections on the machine or server where you are executing the build, = because maven needs to download 3rd party dependencies that are not even in= cluded in the DSpace source release distribution.
Before beginning an installation, it is important to get a general under= standing of the DSpace directories and the names by which they are generall= y referred. (Please attempt to use these below directory names when asking = for help on the DSpace Mailing Lists, as it will help everyone better under= stand what directory you may be referring to.)
DSpace uses three separate directory trees. Although you don't need to k= now all the details of them in order to install DSpace, you do need to know= they exist and also know how they're referred to in this document:
[dspa=
ce]
. This is the location where DSpace is installed and running.&nbs=
p; It is the location that is defined in the dspace.cfg
as "ds=
pace.dir". It is where all the DSpace configuration files, command line scr=
ipts, documentation and webapps will be installed.[dspace-sou=
rce]
. This is the location where the DSpace release distribution ha=
s been unpacked. It usually has the name of the archive that you expanded s=
uch as dspace
-<version>
-release
or dspace
-<version>
-src
-[dspac=
e]/webapps
by default. However, if you are using Tomcat, you may dec=
ide to copy your DSpace web applications from [dspace]/webapps/
to [tomcat]/webapps/
(with [tomcat]
being where=
ver you installed Tomcat=E2=80=9A also known as $CATALINA_HOME
=
).[dspace-source]
and=
[dspace]
directories are always separate!If you ever notice that many files seems to have duplicates under =
[dspace-source]/dspace/target
do not worry about it. This "target" d=
irectory will be used by Maven for the build process and you should not cha=
nge any file in it unless you know exactly what you are doing.
This method gets you up and running with DSpace quickly and easily. It i= s identical in both the Default Release and Source Release distributions.= p>
Create the DSpace user (optional) . =
As noted in the prerequisites above, Tomcat (or Jetty, etc) must ru=
n as an operating system user account that has full read/writ=
e access to the DSpace installation directory (i.e. [dspace]
).=
Either you must ensure the Tomcat owner also owns [dspace], OR you can create a new "dspace" user account, and ensure that Tomcat =
also runs as that account:
useradd= -m dspace
Zip file. If you downloaded dspace-6.x-release.= zip do the following:
unzip d= space-6.x-release.zip
.gz file. If you downloaded dspace-6.x-release.= tar.gz do the following:
gunzip = -c dspace-6.x-release.tar.gz | tar -xf -
.bz2 file. If you downloaded _dspace-6.x-release.ta= r.bz do the following:
bunzip2= dspace-6.x-release.tar.bz | tar -xf -
For ease of reference, we will refer to the location of this unzip= ped version of the DSpace release as [dspace-source] in the remain= der of these instructions. After unpacking the file, the user may wish to c= hange the ownership of the dspace-6.x-release to the "dspace" user= . (And you may need to change the group).
Create a dspace
database user (this user can have any n=
ame, but we'll assume you name them "dspace"). This is entirely separate fr=
om the dspace
operating-system user created above:
createu= ser --username=3Dpostgres --no-superuser --pwprompt dspace
You will be prompted (twice) for a password for the new dspa=
ce
user. Then you'll be prompted for the password of the Postg=
reSQL superuser (postgres
).
Create a dspace
database, owned by the dspace PostgreSQL user. Similar to the previous step, this can only be done by=
a "superuser" account in PostgreSQL (e.g.
postgres
):
created= b --username=3Dpostgres --owner=3Ddspace --encoding=3DUNICODE dspace
You will be prompted for the password of the PostgreSQL superuser =
(postgres
).
Finally, you MUST enable the pgcry=
pto extension on your new dspace database. Again, this can only b=
e enabled by a "superuser" account (e.g. postgres
)
# Login= to the database as a superuser, and enable the pgcrypto extension on this = database psql --username=3Dpostgres dspace -c "CREATE EXTENSION pgcrypto;"
The "CREATE EXTENSION" command should return with no result if it = succeeds. If it fails or throws an error, it is likely you are missing the = required pgcrypto extension (see Database Prerequisite= s above).
Alternative method: How to enable pgcrypto via a separa=
te database schema. While the above method of enabling p=
gcrypto is perfectly fine for the majority of users, there may be some scen=
arios where a database administrator would prefer to install extensions int=
o a database schema that is separate from the DSpace tables. Devel=
opers also may wish to install pgcrypto into a separate schema if they plan=
to "clean" (recreate) their development database frequently. Keeping exten=
sions in a separate schema from the DSpace tables will ensure developers wo=
uld NOT have to continually re-enable the extension each time you run a "
# Login = to the database as a superuser psql --username=3Dpostgres dspace # Create a new schema in this database named "extensions" (or whatever you = want to name it) CREATE SCHEMA extensions; # Enable this extension in this new schema CREATE EXTENSION pgcrypto SCHEMA extensions; # Grant rights to call functions in the extensions schema to your dspace us= er GRANT USAGE ON SCHEMA extensions TO dspace; # Append "extensions" on the current session's "search_path" (if it doesn't= already exist in search_path) # The "search_path" config is the list of schemas that Postgres will use SELECT set_config('search_path',current_setting('search_path') || ',extensi= ons',false) WHERE current_setting('search_path') !~ '(^|,)extensions(,|$)'; # Verify the current session's "search_path" and make sure it's correct SHOW search_path; # Now, update the "dspace" Database to use the same "search_path" (for all = future sessions) as we've set for this current session (i.e. via set_config= () above) ALTER DATABASE dspace SET search_path FROM CURRENT;
Setting up DSpace to use Oracle is a bit different now. You will nee= d still need to get a copy of the Oracle JDBC driver, but instead of copyin= g it into a lib directory you will need to install it into your local Maven= repository. (You'll need to download it first from this location: http://www.oracle.c= om/technetwork/database/enterprise-edition/jdbc-112010-090769.html.) Ru= n the following command (all on one line):
mvn ins= tall:install-file -Dfile=3Dojdbc6.jar -DgroupId=3Dcom.oracle -DartifactId=3Dojdbc6 -Dversion=3D11.2.0.4.0 -Dpackaging=3Djar -DgeneratePom=3Dtrue
You need to compile DSpace with an Oracle driver (ojdbc6.jar) corres= ponding to your Oracle version - update the version in [dspace-source]/= pom.xml E.g.:
<= ;dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.4.0</version> </dependency>
NOTE: You will need to ensure the proper db.*
settings =
are specified in your local.cfg
file (see next step), as the d=
efaults for all of these settings assuming a PostgreSQL database backend.=
p>
db.url = =3D jdbc:oracle:thin:@host:port/SID # e.g. db.url =3D jdbc:oracle:thin:@//localhost:1521/xe # NOTE: in db.url, SID is the SID of your database defined in tnsnames.ora # the default Oracle port is 1521 # You may also use a full SID definition, e.g. # db.url =3D jdbc:oracle:thin:@(description=3D(address_list=3D(address=3D(p= rotocol=3DTCP)(host=3Dlocalhost)(port=3D1521)))(connect_data=3D(service_nam= e=3DDSPACE))) # Oracle driver and dialect db.driver =3D oracle.jdbc.OracleDriver db.dialect =3D org.hibernate.dialect.Oracle10gDialect # Specify DB username, password and schema to use db.username =3D db.password =3D db.schema =3D ${db.username} # For Oracle, schema is equivalent to the username of your database account= , # so this may be set to ${db.username} in most scenarios
Later, during the Maven build step, don't forget to specify
[dspace-source]/dspace/config/local.cfg
configuration =
file (you may wish to simply copy the provided [dspace-source]/=
dspace/config/local.cfg.EXAMPLE
). This local.cfg file can be =
used to store any configuration changes that you wish to make whic=
h are local to your installation (see local.cfg configuration file documentation). ANY setting may be cop=
ied into this local.cfg file from the dspace.cfg or any other *.cfg file in=
order to override the default setting (see note below). For the init=
ial installation of DSpace, there are some key settings you'll likely want =
to override, those are provided in the [dspace-source]/dspace/c=
onfig/local.cfg.EXAMPLE
. (NOTE: Settings followed with an ast=
erisk (*) are highly recommended, while all others are optional during init=
ial installation and may be customized at a later time)dspace.dir*
- must be set to the [dspace] (instal=
lation) directory (NOTE: On Windows be sure to use forward slashe=
s for the directory path! For example: "C:/dspace
" =
is a valid path for Windows.)dspace.hostname
- fully-qualified domain name of web serve=
r (or "localhost" if you just want to run DSpace locally for now)dspace.baseUrl*
- complete URL of this server's DSpace hom=
e page (including port), but without any context eg. /xmlui, /oai, etc.dspace.name
- "Proper" name of your server, e.g. "My Digit=
al Library".solr.server
* - complete URL of the Solr server. DSpace mak=
es use of Solr for indexing purposes. default.language -
Default language for all metadata value=
s (defaults to "en_US")db.url* -
The full JDBC URL to your database (examples are=
provided in the local.cfg.EXAMPLE
)
db.driver* -
Which database driver to use, based on whethe=
r you are using PostgreSQL or Oracle
db.dialect* -
Which database dialect to use, based on whet=
her you are using PostgreSQL or Oracledb.username
* - the database username used in the previous =
step.db.password
* - the database password used in the previous =
step.db.schema
* - the database scheme to use (examples are prov=
ided in the local.cfg.EXAMPLE)mail.server
- fully-qualified domain name of your outgoing=
mail server.mail.from.address
- the "From:" address to put on email se=
nt by DSpace.mail.feedback.recipient
- mailbox for feedback mail.mail.admin
- mailbox for DSpace site administrator.mail.alert.recipient
- mailbox for server errors/alerts (n=
ot essential but very useful!)mail.registration.notify
- mailbox for emails when new u=
sers register (optional)
Your local.cfg file can override ANY s= ettings from other *.cfg files in DSpace
The provided local.cfg.EXAMPLE
only includes a small subset=
of the configuration settings available with DSpace. It provides a good st=
arting point for your own local.cfg
file.
However, you should be aware that ANY configuration can now be copied in=
to your local.cfg
to override the default settings. This=
includes ANY of the settings/configurations in:
[dspace]/config/dspace.cfg
)=
li>
[dspace]/config/modules/*.=
cfg
files)Individual settings may also be commented out or removed in your l=
ocal.cfg
, in order to re-enable default settings.
See the Configurati= on Reference section for more details.
DSpace Directory: Create the directory for the DSpa=
ce installation (i.e. [dspace]
). As root (or a user w=
ith appropriate permissions), run:
mkdir [= dspace] chown dspace [dspace]
(Assuming the dspace UNIX username.)
Build the Installation Package: As the dspace <= /em>UNIX user, generate the DSpace installation package.
cd [dsp= ace-source] mvn package
Building with Oracle Database Support<= /p>
Without any extra arguments, the DSpace installation package is initiali=
zed for PostgreSQL. If you want to use Oracle instead, you should build the=
DSpace installation package as follows:
<=
code>mvn -Ddb.name=3Doracle package
Enabling and building the Mirage 2 the= me (for XMLUI)
Mirage 2 is a responsive theme for the XML User Interface, added as a ne=
w feature in DSpace 5. It has not yet replaced the Mirage 1 theme as the XM=
LUI default theme.
The Mirage 2 build requires git to be installed on your s=
erver. Install git before attempting the Mirage 2 build.
To enable Mirage 2, install the dependencies required for building=
Mirage 2; Git, Node, Bower, Grunt, Ruby and Compass. The Mirage 2 developer documentation provide=
s detailed instructions for these installations and then add the following line to the [dspace-source]/dspace/config/xmlui.xconf
, replacing the currently active theme:
<theme= name=3D"Mirage 2" regex=3D".*" path=3D"Mirage2/" /&= gt;
It is important to do this before executing the maven build:
mvn package -Dmirage2.on=3Dtrue -Dmirage2.deps.in= cluded=3Dfalse
Warning: The Mirage 2 build process should NOT be run = as "root". It must be run as a non-root user. For more information see: Mirage 2 Common Build Issues=
Note: Until recently DSpace 6.3 with Mirage2 could be b= uilt without dependencies pre-installed. This build process relied on boots= trapping a local Ruby environment from torquebox.org, the domain registrati= on for which expired some time in early 2022. The torquebo= x project has not been maintained for a while which means that it is no= t possible to build DSpace 6.3 with Mirage2 anymore without dependencies pr= e-installed. A solution is being developed for 6.4, see Migrate Mirage 2 build from bower and Ruby sass to npm and node-sass.=
Install DSpace: As the dspace UNIX user, i=
nstall DSpace to [dspace]
:
cd [dsp= ace-source]/dspace/target/dspace-installer ant fresh_install
To see a complete list of build targets, run: ant help
=
The most likely thing to go wrong here is the test of your database connect=
ion. See the Common =
Problems Section below for more details.
Decide which DSpace Web Applications you want to install.&nb=
sp;DSpace comes with a variety of web applications (in =
[dspace]/
webapps), each of which provides a different "interface" to=
your DSpace. Which ones you install is up to you, but there are a fe=
w that we highly recommend (see below):
"xmlui" =3D This is the XML-based User Interface (XMLUI), based on Apach= e Cocoon. It comes with a variety of out-of-the-box themes, including Mirage 1= (the default) and Mirage 2 (based on Bootstrap). Bet= ween the "xmlui" and "jspui", you likely only need to choose one.
<= /li>"jspui" =3D This is the JSP-based User Interface (JSPUI), which is based= on Bootstrap. Between the "xmlui" and "jspui", you = likely only need to choose one.
"solr" (required) =3D This is Apache Solr web application, = which is used by the "xmlui" and "jspui" (for search & browse fun= ctionality), as well as the OAI-PMH interface. It must be in= stalled in support of either UI.
Technique A. Tell your Tomcat/Jetty/Resin installation wher=
e to find your DSpace web application(s). As an example, in the directory <=
code>[tomcat]/conf/Catalina/localhost you could add files similar to=
the following (but replace [dspace]
with your installation loc=
ation):
<= ;?xml version=3D'1.0'?> <Context =09docBase=3D"[dspace]/webapps/xmlui" =09reloadable=3D"true" =09cachingAllowed=3D"false"/>
<= ;?xml version=3D'1.0'?> <Context =09docBase=3D"[dspace]/webapps/jspui" =09reloadable=3D"true" =09cachingAllowed=3D"false"/>
<?xml= version=3D'1.0'?> <Context =09docBase=3D"[dspace]/webapps/solr" =09reloadable=3D"true" =09cachingAllowed=3D"false"/>
<= ;?xml version=3D'1.0'?> <Context =09docBase=3D"[dspace]/webapps/oai" =09reloadable=3D"true" =09cachingAllowed=3D"false"/>
<?xml= version=3D'1.0'?> <!-- CHANGE THE VALUE OF "[app]" FOR EACH APPLICATION YOU WISH TO ADD --= > <Context =09docBase=3D"[dspace]/webapps/[app]" =09reloadable=3D"true" =09cachingAllowed=3D"false"/>
The name of the file (not including the suffix ".xml") will be the=
name of the context, so for example xmlui.xml
defines th=
e context at http://host:8080/xmlui
. To define the r=
oot context (http://host:8080/
), name that context's file=
ROOT.xml
.
Tomcat Context Settings in Production<= /p>
The above Tomcat Context Settings show adding the following to each
reloadable=3D"true" cachingAllow=
ed=3D"false"
These settings are extremely useful to have when you are first getting s=
tarted with DSpace, as they let you tweak the DSpace XMLUI (XSLTs or CSS) o=
r JSPUI (JSPs) and see your changes get automatically reloaded by Tomcat (w=
ithout having to restart Tomcat). However, it is worth noting t=
hat the Apache Tomcat documentation recommends Production sites l=
eave the default values in place (reloadable=3D"false" cachingAllowed=
=3D"true"
), as allowing Tomcat to automatically reload all changes m=
ay result in "significant runtime overhead".
It is entirely up to you whether to keep these Tomcat settings in place.= We just recommend beginning with them, so that you can more easily c= ustomize your site without having to require a Tomcat restart. Smalle= r DSpace sites may not notice any performance issues with keeping these set= tings in place in Production. Larger DSpace sites may wish to ensure = that Tomcat performance is more streamlined.
cp -R [dspace]/webapps/=
* [tomcat]/webapps*
(This will copy all the web applications to Tomc=
at). cp -R [dspace]/webapps/jspui [t=
omcat]/webapps*
(This will copy only the jspui web application to To=
mcat.)To define the root context (http://host:8080/
), name that context's directory ROOT
.
Administrator Account: Create an initial= administrator account from the command line:
[dspace= ]/bin/dspace create-administrator
http:/=
/dspace.myu.edu:8080/jspui
http://dspace.myu.edu:8080/xmlui
http://dspace.myu.edu:8080/oai/request?verb=3DIdentify&n=
bsp;
(Should return an XML-based response)In order to set up some communities and collections, you'll need to logi=
n as your DSpace Administrator (which you created with create-adminis=
trator
above) and access the administration UI in either the JSP or =
XML user interface.
The above installation steps are sufficient to set up a test server to p= lay around with, but there are a few other steps and options you should pro= bably consider before deploying a DSpace production site.
A few DSpace features require that a script is run regu= larly (via cron, or similar):
For much more information on recommended scheduled tasks, please see Scheduled Tasks via Cron= .
In order to deploy a multilingual version of DSpace you have to configur=
e two parameters in [dspace-source]/dspace/config/l=
ocal.cfg
:
default.locale =3D en
webui.supported.locales =
=3D en, de
The Locales might have the form country, country_language, country_langu= age_variant.
According to the languages you wish to support, you have to make sure th= at all the i18n related files are available. See the Configuring Multiling= ual Support section for the JSPUI or the Multilingual Support for XMLUI in the configur= ation documentation.
If your DSpace is configured to have users login with a username and pas= sword (as opposed to, say, client Web certificates), then you should consid= er using HTTPS. Whenever a user logs in with the Web form (e.g. dspace.= myuni.edu/dspace/password-login) their DSpace password is exposed in p= lain text on the network. This is a very serious security risk since networ= k traffic monitoring is very common, especially at universities. If the ris= k seems minor, then consider that your DSpace administrators also login thi= s way and they have ultimate control over the archive.
The solution is to use HTTPS (HTTP over SSL, i.e. Secure Socket= Layer, an encrypted transport), which protects your passwords against bein= g captured. You can configure DSpace to require SSL on all "authenticated" = transactions so it only accepts passwords on SSL connections.
The following sections show how to set up the most commonly-used Java Se= rvlet containers to support HTTP over SSL. There are two options liste= d:
Loosely based on http://tomcat.apache.o= rg/tomcat-7.0-doc/ssl-howto.html.
Create a Java keystore for your server with the password changei=
t, and install your server certificate under the alias "tomcat". This assumes the certificate was put in the file server.pem:=
p>
$JAVA_H=
OME/bin/keytool -import -noprompt -v -storepass changeit
=09-keystore $CATALINA_BASE/conf/keystore -alias tomcat -file
=09myserver.pem
Install the CA (Certifying Authority) certificate for the CA that gr= anted your server cert, if necessary. This assumes the server CA certificat= e is in ca.pem:
$JAVA_H= OME/bin/keytool -import -noprompt -storepass changeit =09-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias ServerCA =09-file ca.pem
Optional =E2=80=93 ONLY if you need to accept client certificates fo= r the X.509 certificate stackable authentication module See the configurati= on section for instructions on enabling the X.509 authentication method. Lo= ad the keystore with the CA (certifying authority) certificates for the aut= horities of any clients whose certificates you wish to accept. For example,= assuming the client CA certificate is in client1.pem:
$JAVA_H= OME/bin/keytool -import -noprompt -storepass changeit =09-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1 =09-file client1.pem
Now add another Connector tag to your server.xml Tomca= t configuration file, like the example below. The parts affecting or specif= ic to SSL are shown in bold. (You may wish to change some details such as t= he port, pathnames, and keystore password)
<= ;Connector port=3D"8443" URIEncoding=3D"UTF-8" minSpareThreads=3D"25" enableLookups=3D"false" disableUploadTimeout=3D"true" scheme=3D"https" secure=3D"true" sslProtocol=3D"TLS" keystoreFile=3D"conf/keystore" keystorePass=3D"changeit" clientAuth=3D"true" - ONLY if using client X.509 certs f= or authentication! truststoreFile=3D"conf/keystore" truststorePass=3D"changeit" = />
Also, check that the default Connector is set up to redirect "secu= re" requests to the same port as your SSL connector, e.g.:
<= ;Connector port=3D"8080" minSpareThreads=3D"25" enableLookups=3D"false" redirectPort=3D"8443" />
Create a new key pair under the alias name "tomcat". When g= enerating your key, give the Distinguished Name fields the appropriate valu= es for your server and institution. CN should be the fully-qualified domain= name of your server host. Here is an example:
$JAVA_H= OME/bin/keytool -genkey \ -alias tomcat \ -keyalg RSA \ -keysize 1024 \ -keystore $CATALINA_BASE/conf/keystore \ -storepass changeit \ -validity 365 \ -dname 'CN=3Ddspace.myuni.edu, OU=3DMIT Libraries, O=3DMassachusetts Inst= itute of Technology, L=3DCambridge, S=3DMA, C=3DUS'
You should be prompted for a password to protect the private key.<= /p>
Since you now have a signed server certificate in your keystore you c= an, obviously, skip the next steps of installing a signed server certificat= e and the server CA's certificate.
Optional =E2=80=93 ONLY if you need to accept client certificates fo= r the X.509 certificate stackable authentication module See the configurati= on section for instructions on enabling the X.509 authentication method. Lo= ad the keystore with the CA (certifying authority) certificates for the aut= horities of any clients whose certificates you wish to accept. For example,= assuming the client CA certificate is in client1.pem:
$JAVA_H= OME/bin/keytool -import -noprompt -storepass changeit \ -trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1 \ -file client1.pem
When using Apache 2.4.2 (and lower= ) in front of a DSpace webapp deployed in Tomcat, mod_proxy_ajp and possibl= y mod_proxy_http breaks the connection to the back end (Tomcat) prematurely= leading to response mixups. This is reported as bug CVE-2012-3502 (= http://web.nvd.nist.gov/view/vul= n/detail?vulnId=3DCVE-2012-3502 )= of Apache and fixed in Apache 2.4.3 (see http://www.apache.org/dist/httpd/CHANGES_2.4). The 2.2.x branch hasn't shown this problem only the 2.4.x = branch has.
Before following these instructions, it's HIGHLY recommended to= first get DSpace running in standalone Tomcat on port 8080. Once DSpace is= running, you can use the below instructions to add Apache HTTP Server in front of Tomcat in order to allow DSpace = to run on port 80 and optionally port 443 (for SSL).
One of the easiest routes to both running DSpace on standard ports (80 a= nd 443) as well as using HTTPS is to install Apache HTTP Server as your primary HTTP server, and use it to forward = requests to Tomcat.
In your Tomcat's server.xml
, ensure that the AJP Connector is UNCOMMENTED. Usually =
this runs on port 8009, but you can decide to change the port if you desire=
<!-- = Define an AJP 1.3 Connector on port 8009 --> <Connector port=3D"8009" protocol=3D"AJP/1.3" />
sudo a2enmod proxy proxy_ajp
Create a new Virtual Host in Apache HTTP Serv= er to represent your DSpace site. Here's a basic example of a Virtual Host = responding to any port 80 requests for "my.dspace.edu":
<Virt= ualHost *:80> # Obviously, replace the ServerName with your DSpace site URL ServerName my.dspace.edu ## Apache HTTP Server Logging Settings - modify how you see fit ErrorLog ${APACHE_LOG_DIR}/my.dspace.edu-error.log CustomLog ${APACHE_LOG_DIR}/my.dspace.edu-access.log combined # Possible values include: debug, info, notice, warn, error, crit, alert= , emerg. LogLevel warn # There are many more configurations available for Virtual Hosts, # see the documentation for more details # http://httpd.apache.org/docs/2.4/vhosts/ </VirtualHost>
If you want your site to also respond to SSL requests, you'll need t= o install and enable "mod_ssl" and create a= second Virtual Host to respond to port 443 req= uests. An example is provided below. But much more details are available in= the Apache HTTP SSL Documentation and the mod_ssl documentation
<Virt= ualHost *:443> # Obviously, replace the ServerName with your DSpace site URL ServerName my.dspace.edu # You can have SSL Apache logging settings here too (see the port 80 exa= mple above) # Configure your SSL Certificate (you must create one, obviously) # See the "keytool" instructions above for examples of creating this cer= tificate # There are also many good guides on the web for generating SSL certific= ates for Apache SSLEngine on SSLCertificateChainFile /path/to/your/chainfile.crt SSLCertificateFile /path/to/your/public-cert.crt SSLCertificateKeyFile /path/to/your/private-key.key =20 # More information on SSL configurations can be found in the mod_ssl doc= umentation # http://httpd.apache.org/docs/2.4/mod/mod_ssl.html </VirtualHost>
Extra SSL Configurations for X.509 Cli= ent Certificates authentication
If you are using X.509 Client Certificates for authen= tication: add these configuration options to the appropriate= httpd configuration file, e.g. ssl.conf, and be sure the= y are in force for the virtual host and namespace locations dedicated to DS= pace:
## SSLVerifyClient can be "optional" or "require"
SSLVerifyClient optional
SSLVerifyDepth 10
In each of your Apache HTTP Virtual Hosts (see above), use = "ProxyPass" configurations to configure t= he redirects from Apache HTTP Server to Apache Tomcat. The exact configurat= ions depend on whether you want to redirect ALL requests to Tomcat, or just= certain paths. Here's a basic example. But much more information and examp= les can be found in the mod_proxy documentati= on
# These = are just examples. THEY LIKELY WILL NEED MODIFICATION. # Again, remember to add these to your EXISTING <VirtualHost> setting= s <VirtualHost> ... (existing settings) ... # If there's a single path you do NOT want redirected, you can use ! to i= gnore it # In this case any requests to "/ignored_path" will be handled by Apache = HTTPD and NOT forwarded to Tomcat ProxyPass /ignored_path ! # These configurations say: By default, redirect ALL requests to port 800= 9 # (The port MUST match the port of your Tomcat AJP Connector. By default = this usually is 8009) ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp://localhost:8009/ # You may also wish to provide additional "mod_proxy" configurations,=20 # for more examples and details see the documentation at # http://httpd.apache.org/docs/2.4/mod/mod_proxy.html </VirtualHost>
First a few facts to clear up some common misconceptions:
A Handle server runs as a separate process that receives TCP requests fr= om other Handle servers, and issues resolution requests to a global server = or servers if a Handle entered locally does not correspond to some local co= ntent. 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 ma= chine 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 start-handle-server
scripts d=
o not yet support startup with a passphrase.
If you choose to set a passphrase, you may need to start the Handle Serv=
er via: [dspace]\bin\dspace dsr=
un net.handle.server.Main [dspace]\handle-server
To configure your DSpace installation to run the handle server, run = the following command:
[dspace= ]/bin/dspace make-handle-config [dspace]/handle-server
Ensure that [dspace]/handle-server matches whatever you h= ave in dspace.cfg for the handle.dir property.
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 what= ever you have in dspace.cfg for the handle.dir<= /em> property.
Edit the resulting [dspace]/handle-server/config.dct file t= o include the following lines in the "server_config"clause:
"storag= e_type" =3D "CUSTOM" "storage_class" =3D "org.dspace.handle.HandlePlugin"
This tells the Handle server to get information about individual H= andles from the DSpace code.
handle.prefix
in=
[dspace]/config/local.cfg
from "123456789" to your assigned n=
aming authority prefix, so that DSpace will use that prefix in assigning ne=
w 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-ser= ver.bat' script:
[dspace= ]/bin/start-handle-server.bat
Note that since the DSpace code manages individual Handles, administrati= ve operations such as Handle creation and modification aren't supported by = DSpace's Handle server.
The Handle server you use must be dedicated to resolve Handles from DSpa= ce. You cannot use a Handle server that is in use with other software alrea= dy. You can use CNRI's Handle Software -- all you have to do is to add to i= t a plugin that is provided by DSpace. The following instructions were test= ed with CNRI's Handle software version 7.3.1. You can do the following step= s on another machine than the machine DSpace runs on, but you have to copy = some files from the machine on which DSpace is installed.
INSTALL.txt
w=
ith installation instructions -- follow it./hs/hsj-7.3.1
and the directory containing the configurati=
on of your local server is /hs/srv_1
. (We use the same p=
aths here as CNRIs INSTALL.txt.)dspace-remote-handle-resolver-VERSION.jar
, c=
opy it to the directory containing the CNRI software (/hs/hsj-7.3.1/l=
ib
). /hs/srv_1/logs.
Create the following two files in /hs/srv_1
.
log4j.ro=
otCategory=3DINFO, A1
log4j.ap=
pender.A1=3Dorg.apache.log4j.DailyRollingFileAppender
log4j.ap=
pender.A1.File=3D/hs/srv_1/logs/handle-plugin.log
log4j.ap=
pender.A1.DatePattern=3D '.' log4j.ap=
pender.A1.layout=3Dorg.apache.log4j.PatternLayout
log4j.ap=
pender.A1.layout.ConversionPattern=3D%d %-5p %c @ %m%n
log4j=
.logger.org.apache.axis.handlers.http.HTTPAuthHandler=3DINFO
|
Change the path in the third line, if necessary.
handle= -dspace-plugin.cfg
dspace.h=
andle.endpoint1 =3D http: //example.org/dspace/handleresolver
|
If you are using XMLUI take a look in [dspace-install]/confi=
g/dspace.cfg
, change the URL above to the value of your dspace=
.url
and add /handleresolver
to the end of it. If you a=
re using JSPUI take a look in [dspace-install]/config/dspace.cfg=
, change the URL above to the value of your dspace.url and add /json/hdlresolver
to the end of it. If you run more than one DSpace=
Installation, you may add more DSpace Endpoints. Just increase the n=
umber at the end of the key for each: endpoint2
, e=
ndpoint3
....
Edit the
file /hs/srv_1/config.dct
to incl=
ude the following lines in the " server_config" clause:
"storag=
e_type" =3D "CUSTOM"
"storag=
e_class" =3D "org.dspace.handle.MultiRemoteDSpaceRepositoryHandlePlugin"
|
/hs/hsj-7.3.1/bin/hdl-server
to /hs/srv_1/start=
-hdl-server.
/hs/srv_1/start-hdl-server
:HDLHOME=3D
HDLHOME=3D"/hs/hsj-7.3.1/"=
exec java ... net.handle.server.Main ..=
.
-Dlog4j.configuration=3Dfile:///hs/srv_1=
/log4j-handle-plugin.properties -Ddspace.handle.plugin.configuration=3D=
/hs/srv_1/handle-dspace-plugin.cfg
" right in front of net.hand=
le.server.Main
./hs/srv_1/s=
tart-hdl-server
Please note: The Handle Server will only start if it is= able to connect to at least one running DSpace Installation. It only resol= ves the handles of the DSpace Installations that were running when it was s= tarted.
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 C= NRI registration (e.g. setting up a demonstration system prior to migrating= it to production). The script takes the current and new prefix as paramete= rs. 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.
To aid web crawlers index the content within your repository, you can ma= ke use of sitemaps. There are currently two forms of sitemaps included in D= Space: Google sitemaps and HTML sitemaps.
Sitemaps allow DSpace to expose its content without the crawlers having = to index every page. HTML sitemaps provide a list of all items, collections= and communities in HTML format, whilst Google sitemaps provide the same in= formation in gzipped XML format.
To generate the sitemaps, you need to run [dspace]/bin/dspace genera= te-sitemaps This creates the sitemaps in [dspace]/sitemaps/= p>
The sitemaps can be accessed from the following URLs (DSpace demo site i= s provided as example):
When running [dspace]/bin/dspace generate-sitemaps the script i= nforms Google that the sitemaps have been updated. For this update to regis= ter correctly, you must first register your Google sitemap index page (= /dspace/sitemap) with Google at http://www.google.com/webmasters/sitema= ps/. If your DSpace server requires the use of a HTTP proxy to connect = to the Internet, ensure that you have set http.proxy.host and = http.proxy.port in [dspace]/config/dspace.cfg
The URL for pinging Google, and in future, other search engines, is conf= igured in [dspace]/config/dspace.cfg using the sitemap.engineu= rls setting where you can provide a comma-separated list of URLs to 'p= ing'.
You can generate the sitemaps automatically every day using an additiona= l cron job:
# Gener= ate sitemaps at 6:00 am local time each day 0 6 * * * [dspace]/bin/dspace generate-sitemaps
More information on why we highly recommend enabling si= temaps can be found at Search Engine Optimization (SEO).
DSpace uses the Apache Solr application underlaying the statistics. Ther= e is no need to download any separate software. All the necessary software = is included. To understand all of the configuration property keys, the user= should refer to DSpace Statis= tic Configuration for detailed information.
Note: The following uses Tomcat 7 as an example and links to documen= tation pertaining to that version of Tomcat. Consult the = Tomcat migration guide on the specific requirements for your environmen= t.
Before it builds a pool of database connections, DSpace always tries to =
look up an existing, pre-configured pool in a directory service (if such a =
service is provided). Many web application containers supply such a service=
and can be configured to provide the connection pool to DSpace. If DSpace =
does not find a pre-configured pool, each web application will fall back to=
creating its own pool using the settings in local.cfg
.=
p>
There are some advantages to using an external database pool:
local.cfg
. Note: the command line tools=
cannot use an externally configured pool, and always use the settings in&n=
bsp;local.cfg
to build their own pool.DSpace applications will specifically look for an object named jdb=
c/dspace
. The name is not configurable, but is specified in co=
nfig/spring/api/core-hibernate.xml
. You must configure the name of t=
he directory object provided to your web application context(s) to match th=
is. See below for an example in Tomcat 7.
First, you must make the JDBC driver for your database available to Tomc=
at. For example, the latest PostgreSQL JDBC driver can be downloaded from t=
he PostgreSQL project website and placed in Tomcat's =
lib
directory. The exact location of this directory varies depending=
on your operating system and Tomcat version, but on Ubuntu 16.04 with Tomc=
at 7 the location would be /usr/share/tomcat7/lib
.
Then add a <Resource>
in Tomcat's server.xml to define the pool. The pool
name
here is global and can =
be anything you want:
<Gl= obalNamingResources> ... <!-- Note that the following applies to Tomcat version 7 to review differences between Tomcat versions, consult http://tomcat.apache.org/migration.html --> <Resource name=3D"jdbc/instance" description=3D"Our DSpace DBMS connection pool" type=3D"javax.sql.DataSource" auth=3D"Container" username=3D"USER" password=3D"SECRET" driverClassName=3D"org.postgresql.Driver" url=3D"jdbc:postgresql://dbms.example.com:5432/dspace" initialSize=3D"5" maxTotal=3D"50" maxIdle=3D"15" minIdle=3D"5" maxWaitMillis=3D"5000" /> ... </GlobalNamingResources>
Then add a <ResourceLink> to each web application's context config=
uration. The name
parameter here is local to the applicat=
ion context, and must be jdbc/dspace
:
<Cont= ext> ... <!-- Note that the following applies to Tomcat version 7 to review differences between Tomcat versions, consult http://tomcat.apache.org/migration.html --> <ResourceLink name=3D"jdbc/dspace" global=3D"jdbc/instance" type=3D"javax.sql.DataSource" /> ... </Context>
Notice that the global
parameter in the ResourceLink<=
/code> matches the
name
of the global Resource
. S=
ee the JNDI Datasour=
ce HOW-TO for more information about this configuration.
Essentially installing on Windows is the same as installing on Unix so p= lease refer back to the main Installation Instructions section.
The administrator needs to check the installation to make sure all compo= nents are working. Here is list of checks to be performed. In brackets afte= r each item, it the associated component or components that might be the is= sue needing resolution.
In any software project of the scale of DSpace, there will be bugs. Some= times, a stable version of DSpace includes known bugs. We do not always wai= t until every known bug is fixed before a release. If the software is suffi= ciently stable and an improvement on the previous release, and the bugs are= minor and have known workarounds, we release it to enable the community to= take advantage of those improvements.
The known bugs in a release are documented in the KNOWN_BUGS fi= le in the source package.
Please see the DSpace bug tracker for further informa= tion on current bugs, and to find out if the bug has subsequently been fixe= d. This is also where you can report any further bugs you find.
In an ideal world everyone would follow the above steps and have a fully= functioning DSpace. Of course, in the real world it doesn't always seem to= work out that way. This section lists common problems that people encounte= r when installing DSpace, and likely causes and fixes. This is likely to gr= ow over time as we learn about users' experiences.
ant fresh_ins=
tall
: There are two common errors that occur.=20
If your error looks like this:
[java] = 2004-03-25 15:17:07,730 INFO =09 org.dspace.storage.rdbms.InitializeDatabase @ Initializing Database [java] 2004-03-25 15:17:08,816 FATAL =09 org.dspace.storage.rdbms.InitializeDatabase @ Caught exception: [java] org.postgresql.util.PSQLException: Connection refused. Check =09 that the hostname and port are correct and that the postmaster is =09 accepting TCP/IP connections. [java] at =09 org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(Abstract= Jd bc1Connection.java:204) [java] at org.postgresql.Driver.connect(Driver.java:139)
it usually means you haven't yet added the relevant configuration = parameter to your PostgreSQL configuration (see above), or perhaps you have= n't restarted PostgreSQL after making the change. Also, make sure that the = db.username and db.password properties are correctly set = in [dspace]/config/dspace.cfg. An easy way to check that your DB i= s working OK over TCP/IP is to try this on the command line:
psql -U= dspace -W -h localhost
Enter the dspace database password, and you should be dro= pped into the psql tool with a dspace=3D> prompt.
Another common error looks like this:
[java] = 2004-03-25 16:37:16,757 INFO =09 org.dspace.storage.rdbms.InitializeDatabase @ Initializing Database [java] 2004-03-25 16:37:17,139 WARN =09 org.dspace.storage.rdbms.DatabaseManager @ Exception initializing DB =09 pool [java] java.lang.ClassNotFoundException: org.postgresql.Driver [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:198) [java] at java.security.AccessController.doPrivileged(Native =09 Method) [java] at =09 java.net.URLClassLoader.findClass(URLClassLoader.java:186)
This means that the PostgreSQL JDBC driver is not present in [= dspace]/lib. See above.
ant fresh_install
: There are two common error=
s that may occur:=20
If your error looks like this:
[get] E= rror getting http://geolite.maxmind.com/download/geoip/database/GeoLite2-Ci= ty.tar.gz to /usr/local/dspace/config/GeoLite2-City.tar.gz BUILD FAILED /dspace-release/dspace/target/dspace-installer/build.xml:931: java.net.Conn= ectException: Connection timed out
it means that you likely either (a) don't have an internet connect= ion to download the necessary GeoLite Database file (used for DSpace Statis= tics), or (b) the GeoLite Database file's URL is no longer valid.
Another common message looks like this:
[echo] = WARNING : FAILED TO DOWNLOAD GEOLITE DATABASE FILE [echo] (Used for DSpace Solr Usage Statistics)
Again, this means the GeoLite Database file cannot be downloaded o= r is unavailable for some reason. You should be able to resolve this issue = by following the "Manually Installing/Updating GeoLite Database File"<= /span> instructions.
ps -ef | grep java
and look for Tomcat's Java processes. If they stay around after running T=
omcat's shutdown.sh script, trying running kill
on th=
em (or kill -9
if necessary), then starting Tomcat again.ps -ef | grep postgres=
code>
You might see some processes like this:
dspace = 16325 1997 0 Feb 14 ? 0:00 postgres: dspace dspace 127.0.0.1= idle in transaction
This is normal. DSpace maintains a 'pool' of open database connect= ions, which are re-used to avoid the overhead of constantly opening and clo= sing connections. If they're 'idle' it's OK; they're waiting to be used.
However sometimes, if something went wrong, they might be stuck in t= he middle of a query, which seems to prevent other connections from operati= ng, e.g.:
dspace = 16325 1997 0 Feb 14 ? 0:00 postgres: dspace dspace 127.0.0.1= SELECT
This means the connection is in the middle of a SELECT op=
eration, and if you're not using DSpace right that instant, it's probably a=
'zombie' connection. If this is the case, try running kill
on=
the process, and stopping and restarting Tomcat.