Primo System Administration Guide
Primo System Administration Guide
Guide
Version 4.x
Ex Libris Confidential
CONFIDENTIAL INFORMATION
The information herein is the property of Ex Libris Ltd. or its affiliates and any misuse or abuse
will result in economic loss. DO NOT COPY UNLESS YOU HAVE BEEN GIVEN SPECIFIC
WRITTEN AUTHORIZATION FROM EX LIBRIS LTD.
This document is provided for limited and restricted purposes in accordance with a binding
contract with Ex Libris Ltd. or an affiliate. The information herein includes trade secrets and is
confidential.
DISCLAIMER
The information in this document will be subject to periodic change and updating. Please confirm
that you have the most current documentation. There are no warranties of any kind, express or
implied, provided in this documentation, other than those expressly agreed upon in the
applicable Ex Libris contract. This information is provided AS IS. Unless otherwise agreed, Ex
Libris shall not be liable for any damages for use of this document, including, without limitation,
consequential, punitive, indirect or direct damages.
Any references in this document to third-party material (including third-party Web sites) are
provided for convenience only and do not in any manner serve as an endorsement of that thirdparty material or those Web sites. The third-party materials are not part of the materials for this Ex
Libris product and Ex Libris has no liability for such materials.
TRADEMARKS
"Ex Libris," the Ex Libris bridge , Primo, Aleph, Alephino, Voyager, SFX, MetaLib, Verde,
DigiTool, Preservation, URM, Voyager, ENCompass, Endeavor eZConnect, WebVoyage, Citation
Server, LinkFinder and LinkFinder Plus, and other marks are trademarks or registered
trademarks of Ex Libris Ltd. or its affiliates.
The absence of a name or logo in this list does not constitute a waiver of any and all intellectual
property rights that Ex Libris Ltd. or its affiliates have established in any of its products, features,
or service names or logos.
Trademarks of various third-party products, which may include the following, are referenced in
this documentation. Ex Libris does not claim any rights in these trademarks. Use of these marks
does not imply endorsement by Ex Libris of these third-party products, or endorsement by these
third parties of Ex Libris products.
Oracle is a registered trademark of Oracle Corporation.
UNIX is a registered trademark in the United States and other countries, licensed exclusively
through X/Open Company Ltd.
Microsoft, the Microsoft logo, MS, MS-DOS, Microsoft PowerPoint, Visual Basic, Visual C++,
Win32,
Microsoft Windows, the Windows logo, Microsoft Notepad, Microsoft Windows Explorer,
Microsoft Internet Explorer, and Windows NT are registered trademarks and ActiveX is a
trademark of the Microsoft Corporation in the United States and/or other countries.
Unicode and the Unicode logo are registered trademarks of Unicode, Inc.
Google is a registered trademark of Google, Inc.
Ex Libris Confidential
Table of Contents
Updates to This Guide.............................................................................. 9
About This Guide.................................................................................... 11
Organization of the Guide....................................................................... 11
Resources ................................................................................................... 12
Chapter 1
3
Ex Libris Confidential
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
5
Ex Libris Confidential
Chapter 9
Index
................................................................................................................... 149
7
Ex Libris Confidential
9
Ex Libris Confidential
10
Resources on page 12
11
Ex Libris Confidential
Configuring SSL for PrimoProvides the details for configuring SSL for
Primo.
Resources
The following are other guides available for the Primo system:
http://docs.exlibrisgroup.com/docportal
http://www.exlibrisgroup.org/display/ElCommons/Home
12
1
System Architecture
This section includes:
Introduction on page 13
Components on page 13
Accessibility on page 32
Introduction
Primo provides users with a universal solution for the discovery and delivery of
print and digital information sources, regardless of format and location.
Primo offers advanced, high quality search results based on existing metadata.
After finding the desired materials, Primo can facilitate the delivery of the
physical item from the library or provide immediate access to digital copies.
Primo is a Web-based solution that runs under UNIX. It comes with a built-in
publishing platform that is used to process raw data (MARC, XML, MAB, and
Dublin Core) and turn it into high-quality, indexed information that is saved in
Primo Normalized XML (PNX) format. The processing of the data source
information is performed by pipes that understand the various library source
formats. The PNX data can be quickly and efficiently searched by the Search
Engine.
Components
Primo consists of the following components:
13
Ex Libris Confidential
Publishing Platform
Indexer
Back Office
Search Federator
Search Agents
Search Engine
Front End
Database
The following figure illustrates the logical view of Primo, including its various
components. Each of its components is described in the following sections.
14
Publishing Platform
The Publishing Platform enables the institution to consolidate the full range of
institutional resources, including print collections, digital repositories, and
electronic resources. The Publishing Platform manages the harvesting of this
raw data from various data sources and its transformation into high quality,
indexed information that can be quickly and efficiently searched by the Primo
Search Engine. This data is stored in the Primo Normalized XML (PNX) format.
15
Ex Libris Confidential
Primo can harvest and normalize any data in standard XML format. Standard
formatsfor example, MARC, MAB and Dublin Corehave built-in template
mappings. Templates can be customized during the implementation process.
The processing of each data source is performed by pipes that recognize various
source formats.
The Publishing Platform performs:
Normalization of the data to the PNX format, which is stored in the Primo
database
FRBRization
Indexer
The Indexer is part of the Search Engine and is used to create slices. The Search
Engine supports multiple slices of search data. Slices are an efficient way to
allocate groups of equal-sized chunks of memory.
The Indexer automatically swaps itself with search machines so that slices can
be made available without downtime.
The Indexer splits the actual data into manageable slices, which are loaded into
memory. Each slice is searched by a dedicated thread; however, multiple slices
can reside on the same machine so that all CPUs are utilized. Multiple machines
may be used so that the system is not limited to the memory of one machine.
16
The following figure illustrates the indexing process in the Primo system.
Figure 1:
For more information about the indexing process and swapping, refer to
Overview of the Index and Search Process on page 24.
Back Office
The Primo Back Office enables configuration and monitoring of all Primo
components in an easy-to-use graphical interface.
The configuration of Primo in the Back Office is organized by the lifecycle of
Primo, and includes:
Initial configuration
Ongoing maintenance
17
Ex Libris Confidential
Search Federator
The Search Federator coordinates the search, utilizing all slices, and combines
the search results into a unified result set.
Search Agents
Search agents are located on remote machines. These agents stop and start the
search instance and the indexing process. When an agent starts, it sends a
registration request to the Federator. The agent and the Federator communicate
using the Java RMI protocol.
Search Engine
The Primo Search Engine retrieves library metadata from the local PNX
database table and transforms it into useful information. The Search Engine
extends Lucene functionality and supports multiple slices for very large data
sets. These slices are prepared by the Indexer. Each slice is searched by a
dedicated thread; however, multiple slices can reside on the same machine, so
that all CPUs are utilized. Multiple machines may be used so that you are not
limited to the memory of one machine.
Search functionality includes faceted navigation, did you mean suggestions,
paging, and sorting.
Front End
The Primo Front End user interface is responsible for all interactions with the
end user. It is a search tool that is both powerful and easy to use. Each
institution can have its own fully customized view. Every view can have one or
more tabs. Tabs enable a site to divide the Primo repository and records from
remote resources into resource groups or types. Within a tab, several search
scopes can be defined. Search scopes group records so they can be searched
together.
Using the Front End user interface, the end user searches the PNX database
table for relevant items. After discovery, Primo indicates the availability of the
resource in the source system and interacts with the source system to provide
more information about the resource or delivers the resource to the end user.
The Front End generates the actual HTML pages viewed by the end user.
18
The following figure illustrates the querying process in the Primo system.
Primo Database
The Primo database is based on Oracle 11g R2 RDBMS. The Oracle database
contains the following primary types of content:
19
Ex Libris Confidential
The Primo software contains four different processes as shown in the following
figure.
The processes can run on different machines, the same machine, or some on the
same machine and the rest on different machines. Usually, it is recommended to
have the Oracle and the Tomcat - Publishing Platform Primo Back Office on one
machine and the Tomcat - Front End and the RMI Search Server on another
machine.
20
Each of the steps in the publishing process is discussed in detail in the following
sections.
The complete data source for the initial harvesting of the data.
A delta of the data, including only changed records (new, updated, and
deleted), for the ongoing update of the database.
MARCXML (http://www.loc.gov/standards/marcxml/).
21
Ex Libris Confidential
NOTE:
The record can include non-standard MARC or Dublin Core fields,
including non-numeric codes for MARC.
Harvesting Data
A single source system can contain several data sources, such as the following
systems:
For SFX, Primo may harvest a single SFX instance, but a single SFX
installation may include several data sources (that is, instances).
The harvesting stage is the first step in the publishing pipe. Primo supports
several harvesting methods, including:
Normal records include new and updated records from the data source that
need to be normalized and enriched before being loaded to the persistence
layer.
Deleted records are records that were deleted in the data source and need to
be deleted from the persistence layer. These records are deleted directly
from the persistence layer and do not go through the normalization and
enrichment stages.
22
Records are divided into groups called bulks. The default bulk size is up to 1,000
records. Bulks are zipped in order to reduce the file count and the written data
sizes, as well as improve performance.
In the normalization process, the source records are converted to the PNX
format using the normalization mapping set of the pipe. For more information
about the PNX format, refer to the Primo Technical Guide.
Dedup Process
The persistence layer duplication detection database stores the Dedup vector.
Once the vector is stored in the database, it is removed from the normalized
record. Part of the vector is indexed in order to locate candidates for a match.
When a record is matched against the database, the system first attempts to find
a match based on the RecordID. If a match is not found, the record is new and
the system tries to find a matching record based on the vector. If a match is
found, the record is assigned the MatchID of the record with which it is
matched. Once a match is found, the matching process stops. If a match is not
found, the record is assigned a new MatchID.
If there is a match on the RecordID, the system compares the vector in the
incoming record with its vector in the database. If the vector is the same, the
record is assigned its present MatchID. If it is not the same, the record is treated
23
Ex Libris Confidential
as a new record (the MatchID is removed) and the system tries to find it a
matching record.
It is important to distinguish between the initial and ongoing Dedup process.
During the initial publishing stage, all data sources are first loaded to the
persistence layer, and only when all records have been loaded, will the
duplicate detection process start. In the ongoing publishing stage, the duplicate
detection process is run as part of every pipe. The difference is due to the fact
that in the initial publishing stage, the Dedup is run in multi-processing mode to
save time, while in ongoing publishing stage, every record is Deduped
sequentially.
File system-based slices match large document collections and have lower
memory consumption.
The type of slice defines the search, the indexing technique, and the hot swap
behavior.
24
Indexing in Primo
The following figure is an example of how Primo indexes data.
IndexingThe Index Manager takes the XML records and parses them. It
then writes them to a temporary folder (<path>.mir) and indexes them.
During the indexing, the PNX tokens are normalized (conversion to
lowercase characters, removal of punctuation, and so forth).
SwapThis phase replaces the old indexes with the new indexes with no
downtime. Hot swap is done on the redundant machine for the N+1 Agent
topology and the slice machine for the N+1 Slice topology.
25
Ex Libris Confidential
Method 2: 2-Tier/3-Tier
When Primo needs to create a new index, the FE activates the Agent manager on
the Back Office to prepare the index. Once index is ready, the Front End will
activate an additional Agent residing on the Search engine and instructs it to
start up the new slice, that is, to load a new index. Once the new slice is running,
the FE will start to use the new slice and the Search engine will shutdown the
old slice.
Searching in Primo
Primo uses the following types of searches to enhance search performance:
RAM slice searches use the Lucene RAMDirectoy, which loads the index
into RAM, so that search operations are performed directly from RAM. This
provides higher search performance; however, operation of this mode
requires the available RAM to be at least 2.4 times the index size.
When a user performs a search in the Primo Front End, the Search Engine sends
a query to all registered slices (not via the agent on the slice machine). The slice
26
searches its index in RAM and returns the top 200 IDs, their scores, and statuses
to the Federator. At the same time, the slice begins calculating facets, using
another thread. The Search Manager merges the results from all of the slices and
does the following:
Adds synonyms of each word being searched for to the query. The system
searches for the synonyms as well as the words specified in the query by the
user.
Takes the top ten values (according to scores) and requests the full records
from the PNX. It receives the records and stores these records to be
displayed to the user in the Front End user interface.
When the search results in either no or very few records, Primo searches
again using stemming in order to retrieve additional records.
Merges all records and retrieves the top 200 merged results. It then sends the
facets of these records to the appropriate slices. The slices calculate how
many times these records appear in the entire result set and return this
information to the Search Manager.
Searches for specific static facets in addition to the 200 facets searched for
based on the search query.
Retrieves an accurate count of facet values. It then sends the full PNX
records and the facet information for the top ten values to the Front End
user interface.
27
Ex Libris Confidential
For N+1 topologies that have a single slice (N=1), Primo searches will not
be processed until the indexer starts up the failed slice.
Until a replacement of the failed server is up and running, the system will
not be able to run indexing or swapping.
In all other topologies, the monitor automatically tries to restart the slice and
sends an e-mail notification to the System Administrator when a earch engine
failure occurs.
Filters are used as constraints that are added to the search and are used for quick
matches (this is the same as using the Deploy button in the Back Office
interface).
Linguistic Issues
Primo creates indexes for stop words to allow end users to search phrases
that contain stop words.
28
N-gram encoding (for example, people - peple, pople, and so forth). Using N
gram encoding, the system checks how close the word being searched for is
to the candidate.
The metaphone and N-Gram repositories are based on the regular index and
are extended with phrases/typographical/grammatical mistakes that are
learned from the search statistics.
NOTE:
If the word exists in the dictionary, the Did you mean link is not
displayed in the Front End.
In addition to searching in the local PNX database, Primo searches on remote
repositories using MetaLib.
The actual data to be searched is split into manageable slices. These slices are
prepared by the Indexer. Each slice is searched by a dedicated thread, but
multiple slices can reside on the same machine so that all CPUs are utilized. In
addition, multiple machines may be used so that the search process is not
limited to the memory of one machine.
The Federator manages the dispersal of the search to all slices and the federation
of the results into a unified result set, which is returned to the Front End and
displayed to the user.
search_schema.xml
The search_schema.xml defines the number and location of each slice.
To view the file:
Enter the following commands to view the search_schema.xml file:
se_conf
vi search_schema.xml
29
Ex Libris Confidential
30
31
Ex Libris Confidential
<mfe_slaves>il-primo04.corp.exlibrisgroup.com:2701</
mfe_slaves>
<mfe_config>none</mfe_config>
</multiple_front_ends>
</search_schema>
Metasearch Functionality
Primo uses MetaLib as a metaSearch Engine, via the MetaLib X-Server. Primo
sends MetaLib a list of resources and a query and receives a list of results as
MARC records. Each result includes an OpenURL. Primo then converts the
metasearch MARC records to PNX records using the on-the-fly MetaLib pipe.
When relevant, the metasearch results are added to the local results and the
merged list is then deduplicated and ranked, and facets are calculated.
Accessibility
Primo complies with the following HTML standards and guidelines:
CSS level 3
In addtion, the following tool was used to validate Primos Web pages:
32
2
Starting and Stopping the System
This section provides commands to start and stop the system servers.
This section includes:
Alias/Script
Description
be_start
be_stop
be_restart
fe_start
fe_stop
33
Ex Libris Confidential
Alias/Script
Description
fe_restart
NOTE:
Because this command may restart your server
before it has finished shutting down, Ex Libris
recommends using the following commands to
restart the FE:
fe_stop
fe_start
se_start
se_stop
se_restart
NOTE:
The FE servers must be up and running before
you can start the SE servers.
start_apache
stop_apache
wd_start
wd_stop
$primoe_root/
primo_startup_all
$primoe_root/
primo_shutdown_all
34
If you are receiving Primo requests on HTTP port 80, log in as the root user
and enter the following commands to stop the Apache server:
apcb
./apachectl stop
NOTE:
If the Apache server is not running, you will see and can ignore the
following error message:
./apachectl stop: httpd (no pid file) not running
b
3
Shut down the Front End (FE) servers, starting with the master FE:
a
b
4
35
Ex Libris Confidential
b
2
Start up the Front End (FE) servers, starting with the master FE:
a
b
3
NOTE:
The FE servers must be up and running before you start the SEs.
4
If you are receiving Primo requests on HTTP port 80, log in as the root user
and enter the following commands to start the Apache server:
apcb
./apachectl_auto
36
This mechanism only affects the Primo application. If you need to start/stop the
Apache and database servers, refer to those sections in this guide.
Figure 2:
Welcome to the Central Start/Stop Utility
This utility allows you start/stop all the Primo servers on this
installation.
Please choose the action you want to run:
1. primo central start
2. primo central stop
3. primo central restart
Each time an action is executed, the logs are stored in the following directory on
the master server:
/exlibris/primo/p3_1/primoe/central_start/log
NOTE:
This utility is usually installed on the Back Office server, which must have
SSH access to all other Primo servers in multi-server topologies. To
provide automatic access, SSH keys must be implemented for each Primo
server in your topology. Otherwise, the system will prompt you to enter a
password each time another server is accessed by the utility.
To start up Primo:
1
Enter 1.
The utility displays the progress of the startup.
37
Ex Libris Confidential
Stopping Primo
To shut down Primo:
1
Enter 2.
The utility displays the progress of the shutdown.
Restarting Primo
To restart Primo:
1
Enter 3.
The utility displays the progress of the restart.
Perform a search.
38
Check the system reports (refer to Accessing Reports and Log Files on
page 65).
39
Ex Libris Confidential
40
3
Overview of the Primo Directory Structure
This section includes:
Introduction on page 41
Introduction
The root directory of the Primo system is /exlibris/primo/p<r>_<x>/. You
can install several instances of the Primo system on a single server. For example,
you may initially install an instance of Primo for testing purposes, as well as a
production instance. The <r> indicates the release in which Primo was initially
installed and <x> indicates the instance number of the installation.
The Primo system directories and subdirectories are described in the following
sections.
41
Ex Libris Confidential
NOTE:
The publish directory is the default directory used by the Primo Back End
and the search directory is the default directory used by the Primo Front
End.
Path
Description
home/system/publish/bin
home/system/search/bin
home/system/search/conf
home/profile/publish/
publish/templates
home/profile/publish/
publish/production
42
Description
conf
conf/normalizationExport
log
pipes
pipes/<pipe-name>
pipes/<pipe-name>/conf
pipes/<job-name>/<Source_Code>
43
Ex Libris Confidential
Description
processes
Description
harvest
log
Description
home/profile/analysis
44
Description
home/profile/indexes/
last_fetched_date_
index.date
home/profile/indexes/
last_fetched_date_
mir.date
home/system/conf/
search_schema.xml
home/system/conf/
indexing_schema.xml
Description
profile
profile/publish/overwrites
profile/search/overwrites
system
system/publish/bin
system/search/bin
system/publish/conf
system/search/conf
45
Ex Libris Confidential
Description
system/publish/conf/i18n
system/search/conf/i18n
system/tomcat/publish
system/tomcat/search
profile/publish/publish/
production/log
profile/search/log
system/tomcat/publish/
webapps
system/tomcat/search/
webapps/
46
Alias
Path
Primo:
primo_home
/exlibris/primo/p<r>_<x>/ng/primo/home
Front End:
fe_bin
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
search/bin
fe_conf
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
search/conf
fe_log
/exlibris/primo/p<r>_<x>/ng/primo/home/profile/
search/log
fe_deploy
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
tomcat/search
fe_profile
/exlibris/primo/p<r>_<x>/ng/primo/home/profile/
search
fe_web
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
tomcat/search/webapps/primo_library#libweb
Back Office:
be_bin
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
publish/bin
be_conf
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
publish/conf
be_log
/exlibris/primo/p<r>_<x>/ng/primo/home/profile/
publish/publish/production/log
be_deploy
/exlibris/primo/p<r>_<x>/ng/primo/home/system/
tomcat/publish
be_profile
/exlibris/primo/p<r>_<x>/ng/primo/home/profile/
publish
be_production
/exlibris/primo/p<r>_<x>/ng/primo/home/profile/
publish/publish/production
be_pipes
/exlibris/primo/p<r>_<x>/ng/primo/home/profile/
publish/publish/production/pipes
Search Engine:
se_bin
/exlibris/primo/p<r>_<x>/ng/jaguar/home/system/bin
se_conf
/exlibris/primo/p<r>_<x>/ng/jaguar/home/system/
conf
se_profile
/exlibris/primo/p<r>_<x>/ng/jaguar/home/profile
47
Ex Libris Confidential
Alias
Path
se_log
/exlibris/primo/p<r>_<x>/ng/jaguar/home/profile/
log
48
4
Performing System Cleanup
This section describes the scripts and procedures that you can use to remove
unwanted data, indexes, and log files.
CAUTION:
The procedures in this section can cause unrecoverable loss of data or
unplanned downtime. Contact Ex Libris Support if you need assistance
with any of these procedures.
and indexes, but does not delete dedup IDs and user-generated content
(including tags, reviews, e-Shelf, and statistics). This script is intended for
sites that are in production and need to re-create the PNX database and re-
49
Ex Libris Confidential
index from scratch. For more information, see Deleting and Re-Indexing
the Database on page 52.
CAUTION:
Following the execution of the clean_data_before_reload.sh
command, pipes can take longer to run.
Log on to the FE server and enter the following commands to view the
search_schema.xml file:
se_conf
vi search_schema.xml
50
Search for the <agent> tag to view the path of the <indexes> directory.
In the following example, /exlibris/primo/p1_1/ng/jaguar/home/
profile/indexes is the path of the <indexes> directory:
<agents desc="collections of all search instances to be searched by jaguar"
auto_deploy="active" swapping_type="slices">
<agent port="9501" connection_type="local"
host="primo1.corp.exlibrisgroup.com" active="true">
<slices slice_count="1" name="main" active="true">
<slice id="1">
<path>/exlibris/primo/p1_1/ng/jaguar/home/profile/indexes/
inst_1_index</path>
<load2ram>true</load2ram>
</slice>
</slices>
</agent>
On the server that contains the indexes, enter the following command to
back up the indexes directory, where <date> is the current date:
cp -Rp indexes indexes.<date>
From a Web browser, enter the URL for the Back Office server. For example:
http://primo.exlibris.com:1602/primo_publishing/admin/
acegilogin.jsp
From the Back Office home page, click Primo Home > Monitor Primo Status
> Process Monitoring.
10 Enter the following commands to monitor the job execution on the FE:
fe_log
tail -f library_server.log
NOTE:
Do not restart the FE and search servers so that you will be able to keep
searching with the existing indexes.
51
Ex Libris Confidential
No Harvesting - Update Data Source This pipe uses the data from the
already harvested records for the data source.
Log on to the BE server as the primo user and enter the following command
to stop the Back Office:
be_stop
Enter the following commands to clean the database and indexes. If you
want to clean only the indexes, use the clean_indexes.sh command
instead of the clean_data_before_reload.sh command.
be_bin
./clean_data_before_reload.sh
CAUTION:
Following the execution of the clean_data_before_reload.sh
command, pipes can take longer to run.
If you want to clean only the indexes, use the clean_indexes.sh command.
3
For the FE server and the SE servers, log on as the primo user and enter the
relevant commands to restart the Primo modules:
a
fe_stop
fe_start
se_stop
52
d
5
se_start
From a Web browser, enter the URL for the Back Office server. For example:
http://primo.exlibris.com:1602/primo_publishing/admin/
acegilogin.jsp
From the Back Office home page, click Primo Home > Monitor Primo Status
> Pipe Monitoring.
NOTE:
Since only one pipe can run at a time, execute the next relevant pipe after
the previous pipe completes.
8
After all relevant pipes have completed, log on to the BE server as the primo
user and enter the following command to connect old tags with PNX
records:
./restore_ext_tags.sh
From the Back Office home page, click Primo Home > Monitor Primo Status
> Process Monitoring.
Enter the be_pipes alias to move to the pipes directory. For example:
be_pipes
Enter the pwd command to display the PATH of the current directory:
/exlibris/primo/p1_1/ng/primo/home/profile/publish/publish/
production/pipes
53
Ex Libris Confidential
Enter the ls command to display the contents of the directory. For example:
ls
Blue_Bay_Aleph/
Blue_Bay_Aleph_No_Harvest/
Blue_Bay_Digitol/
Primo_Demo_Marc_Pipe/
Primo_Demo_Metalib_Pipe/
Primo_Demo_Metalib_Update_DS/
Enter the ls command to display the contents of the directory. For example:
ls
[email protected]/
[email protected]/
[email protected]/
[email protected]/
[email protected]/
[email protected]/
Enter the <fe|be|se>_log alias to move to the logs directory. For example:
be_log
54
Enter an alias to move to the directory that contains the log script that you
want to run. For example, to run the clean_all_logs.sh script, enter the
following command:
be_bin
Enter the delete log script. For example, to clear all log directories, enter the
following command:
./clean_all_logs.sh [number of days old]
NOTE:
If you do not specify a value for [number of days old], the default
value of 30 days is used.
4
At the following prompt, enter y to delete the log files that are 30 days old:
Are you certain you want to delete the BE, FE and SE logs that are
30 days old? Continue? y/n:
access_log
access_log_ssl
error_log
error_log_ssl
This script is located under the following directory (be_bin), where <r>
indicates the release in which Primo was initially installed and <c> indicates the
Primo copy:
/exlibris/primo/p<r><c>/ng/primo/home/system/publish/bin
55
Ex Libris Confidential
NOTE:
If your environment redirects Apache to port 80, you will need to log on as
the root user to run the script. To log on as the root user, enter su and then
enter the password of the root user when prompted.
2
Enter the following command to move to the directory that contains the log
script:
be_bin
Enter the following command to move to the directory that contains the log
script:
be_bin
56
setting up the initial amount of disk space, your system might need more
space for example, if you add new libraries to your data sources.
Disk space in the following two locations can become a critical factor:
Pipes directories
Index directory
Enter the following command to display the total amount of disk space of
the directory, the amount of used disk space, and the available disk space:
df -kh
57
Ex Libris Confidential
58
5
Primo Port Configurations
This section includes:
Introduction on page 59
IP Tables on page 60
Introduction
The default HTTP ports for Primos Back Office (BO), Front End (FE), and PDS
are 160y, 170y, and 899y, respectively (where y is the copy number, starting with
1). The default HTTPS port (Secure HTTP) for PDS is 1443.
The non-standard nature of these defaults can present a barrier to use. To
overcome this barrier, these ports should not be changed and access to them
should not be blocked. Instead, the standard ports (such as 80 for HTTP and 443
for HTTPS) should be redirected or translated to Primos default ports.
IMPORTANT:
The use of mod_jk to redirect the port to port 80 is not recommended or
supported by Ex Libris Support.
Redirecting Ports
To perform port redirection on your Primo server, you can choose from the
following methods:
59
Ex Libris Confidential
Given the large variety of environments, there is no single solution that will
work in all cases. A solution should be selected based on current and future
need, along with available resources and technical skill. The ability of the
vendors to assist with both initial setup and ongoing issues should also be
considered.
To redirect ports, Ex Libris recommends the use of IP tables, which is a hostbased firewall found on most modern Linux systems. It is often already being
used, is well understood, and performs well. An example implementation can
be found below.
NOTE:
Because port redirection is provided by load balancers and firewalls, Ex
Libris does not provide support for the methods described in this section.
Overlapping Services
A request needs to be uniquely identifiable in order for it to be redirected
correctly. In a default configuration, using a different port is sufficient.
However, there can be a problem if two services (such as the Primo FE and PDS)
run on the same server and need to be accessed from the same port (such as port
80). In this case, the only uniquely identifiable element is the URL. To use the
URL, the solution must be Layer 7 aware that is understands HTTP/HTTPS.
This can both limit possible solutions and increase complexity.
One alternative is to setup PDS to use SSL-encrypted sessions to move the
default PDS port to 1443 and the redirect port to 443. Since the services no
longer need the same port, there is no longer a conflict.
Another alternative is to use distinctive IP addresses and/or DNS names to
change the destination port based on the destination IP address and DNS name.
For example, assume that the Primo FE and PDS both run on server1, which has
IP address = 10.20.30.40 and DNS server1=10.20.30.40. If IP address 10.20.30.41
and DNS server1-pds = 10.20.30.41 are added to server1 to change the access for
Primo and PDS to server1-pds, port redirection would be set up as follows:
IP Tables
Linux 2.4.x and 2.6.x kernels provide the ip_tables packet filter that allows for
stateful and stateless packet filtering, NAPT, PAT, and other packet
manipulations. Specific rules are grouped into chains, which are also grouped
into tables.
60
The command-line program iptables allows you to set up, maintain, and
inspect the tables, chains, and rules. In the examples below, each solution is
presented as a set of iptables commands. For more information, refer to the
iptables documentation for your operating system.
Since these commands must usually be run as the root user, they should be
reviewed carefully before execution. In addition, the commands will need to be
run every time the server is rebooted. On many systems this can be automated
by saving the output of iptables-save in /etc/sysconfig/iptables.
IP Table Examples
In the following examples, Primo and the PDS are both installed on a single
server called server1 (All-in-One topology). It has an IP address of 10.10.5.5 in
which the DNS maps to primo.library.edu. The BO, FE, and PDS use the default
ports of 1601, 1701, and 8991, respectively.
NOTE:
This solution can also be used to redirect to the BO and PDS.
# Port Redirection
iptables t nat A OUTPUT d localhost p tcp --dport 80 j REDIRECT
--to-ports 1701
iptables t nat A OUTPUT d 10.10.5.5 p tcp --dport 80 j REDIRECT
--to-ports 1701
iptables t nat A PREROUTING d 10.10.5.5 p tcp --dport 80 j
REDIRECt --to-ports 1701
# Allow access to ports 80 and 1701
iptables A INPUT p tcp i eth0 --dport 80 j ACCEPT
iptables A INPUT p tcp i eth0 --dport 1701 j ACCEPT
# Allow established connections to continue
iptables A INPUT m state --state RELATED,ESTABLISHED j ACCEPT
iptables A OUTPUT m state --state RELATED,ESTABLISHED j ACCEPT
61
Ex Libris Confidential
ports 80,
p tcp i
p tcp i
p tcp i
p tcp i
1443
80 j ACCEPT
1701 j ACCEPT
443 j ACCEPT
1443 j ACCEPT
62
ports 80,
p tcp i
p tcp i
p tcp i
This list should include all Primo Front End host names, one per row. If any host
names are defined, the system will prevent the re-direction to any other servers
and display an error page.
After a change to the file, the Front End servers must be restarted.
63
Ex Libris Confidential
64
6
Accessing Reports and Log Files
You can access reports and log files to obtain information about your system.
This section includes:
Primo Reports
The following table lists the reports available in Primo. The Primo reports are
created in printable PDF format. For information on how to access reports, refer
to the Primo Back Office Guide.
Table 8. Primo Reports
Report Name
Description
List Reports:
Code tables
Data Sources
General Parameters
IPs
Institutions
Mapping Tables
Pipes
Processes
65
Ex Libris Confidential
Report Name
Description
Restrictions
Scopes
Staff Users
Views
Statistical Reports:
Click Statistics
PNX Statistics
Search Statistics
66
Timestamp
INFOInformation messages.
Log message
67
Ex Libris Confidential
Tomcat-Related Logs
By default, all Tomcat-related log files are located in the following directories:
/exlibris/primo/p<v>_<c>/ng/primo/home/profile/publish/
publish/production/log
/exlibris/primo/p<v>_<c>/ng/primo/home/profile/search/log
/exlibris/primo/p<v>_<c>/ng/jaguar/home/profile/log
localhost_access_log.log
localhost_access_log.log
The localhost_access_log.<date>.log is an HTTP access log. It lists all
HTTP requests with a GET/POST listing. This log file is similar to the Apache
HTTPD server access log.
The following is an example of the contents of a log file:
Client Ip,
Date & Time,
HTTP Method, URL, Http
Version Http return code, msg length
10.1.235.71 - [01/Jan/2006:12:08:11 +0200] "GET /mng/css/
loginStyles.css HTTP/1.1" 200 6350
10.1.235.71 - [01/Jan/2006:12:08:11 +0200] "GET /mng/css/
generalStyles.css HTTP/1.1" 200 43888
The localhost_access_log log is refreshed daily and the date is
included in the log file name. For example:
localhost_access_log.2005-12-31.log
localhost_access_log.2006-01-01.log
68
Each time the server is restarted, a timestamp is added. Your log directory
might appear as follows:
-rw-rw-r-1 prm
exlibris
library_server.log.2005-12-29
-rw-rw-r-1 prm
exlibris 17546674 Dec 30 23:57
library_server.log.2005-12-30
-rw-rw-r-1 prm
exlibris
library_server.log.2005-12-31
-rw-rw-r-1 prm
exlibris
library_server.log.0101.1050
5698992 Jan
1 11:09
-rw-rw-r-1 prm
exlibris
library_server.log.0101.1100
36822 Jan
1 10:51
-rw-rw-r-1 prm
exlibris
library_server.log.0101.1108
36822 Jan
1 11:01
142407 Jan
1 14:25
-rw-rw-r-1 prm
library_server.log
exlibris
From this example, it is clear that the server was up from the 29/12 - 31/12
(rolled over). On 01/01, the server was restarted at 10:50, 11:00, and 11:08.
The library_server.log file is the current active log file. Using the following
command can be useful when debugging the server.
tail -f library_server.log
For example:
2005-11-06 19:10:17,988 INFO [com.exlibris.Primo.
delivery.DeliverySessionsMng] Cleaning old delivery session 1131296885128.
2005-11-06 19:15:32,941 INFO [com.exlibris.Primo.repository.jobs.
IndexFileSynchronizerJob] found 8 items to index
2005-11-06 19:15:33,425 INFO [com.exlibris. Primo.
repository.jobs.IndexFileSynchronizerJob] Indexing DIGITAL ENTITY:4530
at 484ms
2005-11-06 19:08:49,128 ERROR [com.exlibris. Primo
.delivery.DefaultAccessRightsChecker] Fail to parse access right
metadata. Exception: error: The element type "xb:access_right_md" must
be terminated by the matching end-tag "</xb:access_right_md>". Cause:
org.xml.sax.SAXParseException: The element type "xb:access_right_md"
must be terminated by the matching end-tag "</xb:access_right_md>".
69
Ex Libris Confidential
Watchdog Logs
The watchdog.log file enables you to keep track of all watchdog activity and
the status of all monitored components.
To view the log file:
1
For example:
2008-08-29 09:29:04,765 INFO
xml completed
2008-08-29 09:29:08,790 INFO [t-DefaultQuartzScheduler_Worker-1] [cMonitorSchedularJob] - be.Back End retruned status: 'OK'
2008-08-29 09:29:08,837 INFO [t-DefaultQuartzScheduler_Worker-0] [cMonitorSchedularJob] - be.Database retruned status: 'OK'
2008-08-29 09:29:09,773 INFO [t-DefaultQuartzScheduler_Worker-2] [cMonitorSchedularJob] - be.PDS retruned status: 'NOT OK'
2008-08-29 09:29:15,645 INFO [t-DefaultQuartzScheduler_Worker-0] [cEmailNotifier] - Sending failure email notification to
70
7
Managing the Primo Database
The Primo database is based on Oracle 11g RDBMS.
This section includes:
user can create, delete, and alter Oracle tables, indexes, users, triggers, and
so forth. The PRIMO_ADMIN user is used in all Primo procedures.
from tables in PRM00. These views allow you to create your own BIRT
reports, which can be viewed from the Back Office. For example, the
PRIMO_BO_AUDIT_TABLE view provides access to the data regarding
71
Ex Libris Confidential
database activity in the Back Office. For more information on creating userdefined reports, see the Primo Technical Guide.
Tablespaces in Primo
An Oracle database consists of several logical units called tablespaces. Each
tablespace consists of one or more physical data files that can be stored on one
or more disks.
The following table shows the Primo tablespaces. Note that each tablspace may
have multiple files.
Table 9. Primo Tablespace Information
Physical File
LOG
/exlibris/oradata/prm3/
log01.dbf
SYSAUX
/exlibris/oradata/prm3/
sysaux01.dbf
SYSTEM
/exlibris/oradata/prm3/
system01.dbf
TEMP
/exlibris/oradata/prm3/
temp01.dbf
TS_P_DAT
Primo tables
/exlibris/oradata/prm3/
prm3_ts_p_dat_01.dbf
TS_P_IDX
Primo indexes
/exlibris/oradata/prm3/
prm3_ts_p_idx_01.dbf
TS_ENRICH_DATA
/exlibris/oradata/prm3/
prm3_ts_enrich_data_01.dbf
TS_ENRICH_IDX
Enrichment indexes
/exlibris/oradata/prm3/
prm3_ts_enrich_idx_01.dbf
TS_EXL_DEF
Ex Libris definitions
/exlibris/oradata/prm3/
prm3_ts_exl_def_01.dbf
TS_PNX_ADD_DATA
/exlibris/oradata/prm3/
prm3_ts_pnx_add_data_01.dbf
72
Tablespace Name
Usage
Physical File
TS_PNX_ADD_IDX
/exlibris/oradata/prm3/
prm3_ts_pnx_add_idx_01.dbf
TS_PNX_DATA
PNX content
/exlibris/oradata/prm3/
prm3_ts_pnx_data_01.dbf
TS_PNX_IDX
PNX indexex
/exlibris/oradata/prm3/
prm3_ts_pnx_idx_01.dbf
TS_PNX_EXT_DATA
/exlibris/oradata/prm3/
prm3_ts_pnx_ext_data_01.dbf
TS_PNX_EXT_IDX
/exlibris/oradata/prm3/
prm3_ts_pnx_ext_idx_01.dbf
TS_SRC_REC_DATA
/exlibris/oradata/prm3/
prm3_ts_src_rec_data_01.dbf
TS_SRC_REC_IDX
/exlibris/oradata/prm3/
prm3_ts_src_rec_idx_01.dbf
TS_STATS_DATA
/exlibris/oradata/prm3/
prm3_ts_stats_data_01.dbf
TS_STATS_IDX
/exlibris/oradata/prm3/
prm3_ts_stats_idx_01.dbf
TSLOB
/exlibris/oradata/prm3/
tslob01.dbf
UNDOTBS1
/exlibris/oradata/prm3/
undotbs101.dbf
USERS
/exlibris/oradata/prm3/
users01.dbf
Database Schema
The Primo database consists of many tables used to store data, system
information, process states, and more.
73
Ex Libris Confidential
The following is a list of the table types in the Primo database. The prefix of each
table describes its major function.
Table 10. Primo Database Tables
Schema
Description
Tables
C_C Tables
C_C_TABLE_OF_TABLEScontains
metadata information for the
C_C_MAPPING_TABLES and
C_C_CODE_TABLES tables.
C_C_CODE_COLUMN_NAMEScontai
ns metadata information on
each column for the
C_C_MAPPING_TABLES and
C_C_CODE_TABLES tables.
C_C_MAPPING_TABLEScontainst
he records of the generic tables
(each table has six columns).
C_C_CODE_TABLEScontains
the records of code tables (for
internalization support).
C_G Tables
C_G_CONFIGURATIONcontains
global system configuration
parameters.
C_I Tables
C_I_INSTITUTION
C_N Tables
Normalization Configuration
Tables. Tables that contain global
normalization rules for the
publishing process.
C_I_INSTITUTION_IP
C_I_LIBRARY
C_I_RESTRICTION
C_N_BASIC_ROUTINES
C_N_ENRICHMENT
C_N_ENRICHMENT_MAPPING
C_N_ENRICHMENT_SET
C_N_MAPPING_SET
C_N_MAPPING_SOURCE
C_N_MAPPING_TARGET
C_N_MAPPING_TRANSFORMATION
C_N_SCOPES
C_N_SOURCE_CONDITION
C_N_TRANSFORMATION_GROUP
C_N_DATA_SOURCE
C_N_PROCESS_CONFIGURATION
74
Schema
Description
Tables
C_V Tables
C_V_LAYOUT_SET
C_V_LAYOUT_SET_PAGES
C_V_PAGES
C_V_PAGE_TILES
C_V_SCOPES
C_V_SCOPE_VALUES
C_V_TABS
C_V_TAB_SCOPE
C_V_TILES
C_V_VIEWS
C_V_VIEW_LAYOUT_SET
C_V_VIEW_TILE_CONFIG
M_P Tables
M_P_BULK_CONTEXT
M_P_FAILED_RECORDS
M_P_PROCESS_CONTEXT
M_P_WORK
M_P_PROC_EXE
R Tables
R_ROLE
R_STAFF
R_STAFF_ROLE_MAPPING
S Tables
U Tables
S_CLICK_SUMMARIES
S_SEARCH_SUMMARIES
U_BASKETcontains the
electronic basket.
U_PREFERENCEcontains user
preferences.
U_RSScontains RSS
information.
U_SAVED_SEARCHcontains
user-saved searches.
75
Ex Libris Confidential
Schema
Description
Tables
P Tables
NOTE:
All default data created by the Primo system is noted as updated by
Primo.
76
P_PNX Table
The P_PNX table contains the Primo PNX records. The following table lists and
describes the fields in the P_PNX table.
Table 11. P_PNX Table Fields
Field Name
Description
ID
RECORDID
PART_1, PART_2,PART_3,
PART_4, PART_5,
STRING_CLOB
CREATION_DATE
UPDATED_DATE
UPDATED_BY
The name of the user who ran the pipe that created the
record.
MATCHID
GROUPID
PERSISTCONTROL
SECONTROL
PIPE_NAME
PREVIOUS_TYPE
77
Ex Libris Confidential
Field Name
Description
SOURCE_ID
DATA_SOURCE_CODE
BULK_ID
TYPE
EXTENSION_EXISTS
PUBLISHING_WORK_ID
Pipe ID.
Database Utilities
The following table lists the database utilities that are supported in Primo.
Table 12. Supported Database Utilities
Number
Utility Name
Refer to
O/1
Oracle Server
O/1/1
O/1/2
O/1/3
O/1/4
78
Number
Utility Name
Refer to
O/2
Oracle Listener
O/2/1
O/2/2
O/2/3
O/2/4
O/2/5
O/3
Oracle Logs
O/3/1
O/6
NLS
O/6/1
O/7
Archiving
O/7/1
Turning Archiving On
O/7/2
O/7/3
O/9
Database Users
O/9/1
O/9/2
O/11
O/13
Database Files
79
Ex Libris Confidential
Number
Utility Name
Refer to
O/13/1
O/13/2
O/13/3
O/13/4
O/13/5
O/14
O/14/1
O/14/2
O/14/3
O/14/4
O/14/5
O/14/6
O/14/8
O/14/9
O/14/10
80
Number
Utility Name
Refer to
O/17
Database Tablespaces
O/17/1
Create a Tablespace
O/17/2
O/17/4
O/17/5
O/18
Oracle Statistics
O/18/1
Performance Statistics
O/18/2
O/18/3
O/18/4
O/18/5
I/O Statistics
O/18/6
Sort Operations
O/19
Shared Pool
O/19/1
O/19/2
O/20
O/20/1
81
Ex Libris Confidential
Number
Utility Name
Refer to
O/20/2
Log on to a Primo server (BE, FE, or SE) with the primo user.
NOTE:
If you are using a dedicated Oracle server, you must log on to a server that
has a Primo component (BE, FE, or SE) installed in order to access Util O.
2
82
Figure 4:
O.1 Oracle Server
--------------0. Exit Procedure
1. Activate Oracle Server
2. Close Oracle Server
3. Show Running Oracle Server
4. Show Oracle Server Status
Figure 10: Oracle Server Menu
This utility will not be available if the Oracle database and the Primo
application are installed on separate servers.
Enter the PRIMO_DBA user name and password to activate the Oracle server.
NOTE:
The PRIMO_DBA user, which is created during installation, is provided
with database administration privileges that allow you to start up or shut
down the database.
83
Ex Libris Confidential
Enter option 2 from the Oracle Server menu. To access this menu, see Oracle
Server (Util O/1).
The following prompt displays:
Do you want to restart Oracle server after closing? yes/[no]
Enter yes to shut down and the restart the server automatically.
The following prompt displays:
To close Oracle server enter PRIMO DBA username/password.
username/password:primo_dba/<primo_dba password>
NOTE:
To restart the server later, see Activate Oracle Server (Util O/1/1) on
page 83.
3
Enter the PRIMO_DBA user name and password to activate the Oracle server.
NOTE:
The PRIMO_DBA user, which is created during installation, is provided
with database administration privileges that allow you to start up or shut
down the database.
84
The running processes for your Oracle instance displays. For example:
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
oracle
22017
22019
22021
22024
22026
22028
22030
22032
22034
22044
22069
22071
22073
22075
22077
22079
22081
22099
22101
22422
22662
22697
25373
29099
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 0 Jan01
1 28 Jan05
1 31 Jan05
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
00:00:34
00:00:01
00:00:05
00:36:37
00:13:56
00:02:23
00:01:18
00:00:01
00:00:45
00:00:48
00:00:41
00:34:52
00:43:00
00:44:03
00:42:52
00:46:16
00:42:26
00:43:38
00:43:22
00:00:00
00:00:00
00:00:05
13:23:52
13:23:30
ora_pmon_prm1
ora_psp0_prm1
ora_mman_prm1
ora_dbw0_prm1
ora_lgwr_prm1
ora_ckpt_prm1
ora_smon_prm1
ora_reco_prm1
ora_cjq0_prm1
ora_mmon_prm1
ora_mmnl_prm1
ora_d000_prm1
ora_d001_prm1
ora_d002_prm1
ora_d003_prm1
ora_d004_prm1
ora_d005_prm1
ora_d006_prm1
ora_d007_prm1
ora_qmnc_prm1
ora_q000_prm1
ora_q001_prm1
ora_s000_prm1
ora_s001_prm1
NOTE:
This utility is relevant only if you are running the Oracle server on the
same node as the Primo server.
85
Ex Libris Confidential
The following is an example of the output of the Util O/1/4 Show Oracle Server
Status utility:
Figure 5:
INSTANCE_N HOST_NAME
VERSION
STARTUP_TI STATUS
LOGINS
---------- --------------- ------------ ---------- ---------- --------prm1
il-primo05.corp 10.2.0.1.0
01-JAN-07
OPEN
ALLOWED
.exlibrisgroup.
com
BANNER
---------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE
10.2.0.1.0
Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
NOTE:
This utility will not be available if the Oracle database and the Primo
application are installed on separate servers.
To access the Oracle Listener menu:
1
86
Enter yes to shut down and then restart the Listener automatically.
The following prompt displays:
To restart Oracle Listener enter oracle's password.
Password:
87
Ex Libris Confidential
NOTE:
To start the Listener later, see Activate Oracle Listener (Util O/2/1) on
page 87.
3
88
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
-----------------------Alias
LISTENER
Version
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date
01-JAN-2007 07:14:47
Uptime
6 days 6 hr. 52 min. 11 sec
Trace Level
off
Security
ON: Local OS Authentication
SNMP
ON
Listener Log File
/exlibris/app/oracle/product/102/network/log/
listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=1521)))
Services Summary...
Service "prm1.il-primo05.corp.exlibrisgroup.com" has 1 instance(s).
Instance "prm1", status READY, has 9 handler(s) for this
service...
Service "prm1_XPT.il-primo05.corp.exlibrisgroup.com" has 1
instance(s).
Instance "prm1", status READY, has 9 handler(s) for this
service...
The command completed successfully
89
Ex Libris Confidential
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "prm1.il-primo05.corp.exlibrisgroup.com" has 1 instance(s).
Instance "prm1", status READY, has 9 handler(s) for this
service...
Handler(s):
"DEDICATED" established:3 refused:0 state:ready
LOCAL SERVER
"D007" established:72296 refused:0 current:5 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com, pid:
22101>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22101.1))
"D006" established:71245 refused:0 current:5 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com, pid:
22099>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22099.1))
"D005" established:71779 refused:0 current:3 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com, pid:
22081>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22081.1))
"D004" established:72279 refused:0 current:2 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com, pid:
22079>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22079.1))
"D003" established:71468 refused:0 current:1 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com, pid:
22077>
(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=38790))
"D002" established:72525 refused:0 current:0 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com, pid:
22075>
90
(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=38789))
"D001" established:71704 refused:0 current:4 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22073>
(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=38788))
"D000" established:60036 refused:0 current:1 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22071>
(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=38787))
Service "prm1_XPT.il-primo05.corp.exlibrisgroup.com" has 1
instance(s).
Instance "prm1", status READY, has 9 handler(s) for this
service...
Handler(s):
"DEDICATED" established:3 refused:0 state:ready
LOCAL SERVER
"D007" established:72296 refused:0 current:5 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22101>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22101.1))
"D006" established:71245 refused:0 current:5 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22099>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22099.1))
"D005" established:71779 refused:0 current:3 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22081>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22081.1))
"D004" established:72279 refused:0 current:2 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22079>
(ADDRESS=(PROTOCOL=ipc)(KEY=#22079.1))
"D003" established:71468 refused:0 current:1 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22077>
(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=38790))
"D002" established:72525 refused:0 current:0 max:972
state:ready
DISPATCHER <machine: il-primo05.corp.exlibrisgroup.com,
22075>
(ADDRESS=(PROTOCOL=tcp)(HOST=ilprimo05.corp.exlibrisgroup.com)(PORT=38789))
pid:
pid:
pid:
pid:
pid:
pid:
pid:
pid:
91
Ex Libris Confidential
92
93
Ex Libris Confidential
94
Ex Libris highly recommends archivelog mode because in this mode, both cold
and hot backups can be used to recover the database right up to the time of the
failure. To ensure a complete recovery, all the archive files that were generated
from the time of the backup (hot or cold) until the time of failure must be
available.
Refer to the Oracle backup manual for more information on the preliminary
actions that are required before using Util O/7.
NOTES:
Changing the archiving mode shuts down the database and restarts it in
archivelog mode.
When running pipes (such as pipes set to No Harvesting - Update Data
Source) that add or change a large amount of data, it is recommended
that you stop Oracle archiving, as this slows down the process and fills
up the disk. Immediately after the process is complete, perform a full
cold backup and then turn archiving back on.
95
Ex Libris Confidential
Changing the archiving mode shuts down the database and restarts it in
archivelog mode.
Stop Primo processes (servers and batch procedures) using the startup
scripts described in Starting and Stopping the System on page 33.
Restart Primo using the startup scripts described in Starting and Stopping
the System on page 33.
Changing the archiving mode shuts down the database and restarts it
with archivelog mode off.
Stop Primo processes (servers and batch procedures) using the startup
scripts, as described in Starting and Stopping the System on page 33.
96
Restart Primo using the startup scripts described in Starting and Stopping
the System on page 33.
idle> Connected.
idle> idle> Database log mode
No Archive Mode
Automatic archival
Disabled
Archive destination
/exlibris/oradata/prm1/arch/
Oldest online log sequence
6717
Current log sequence
6721
idle> Disconnected from Oracle Database 10g Enterprise Edition
Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining Scoring Engine options
When archiving is on, the following two lines are displayed, as
follows:
SQL> SQL> Database log mode
Archive Mode
Automatic archival
Enabled
Figure 15: Archiving Status
In a production database, always set the Database log mode to Archive mode.
97
Ex Libris Confidential
Figure 12:
O.9. Database Users
------------------0. Exit Procedure
1. List Database Users
2. Create a New User
Please select [exit]:
Figure 16: Database Users Menu
98
Figure 13:
The Database prm1 Contains the Following Users:
======================================================
ANONYMOUS
CTXSYS
DBSNMP
DIP
DMSYS
EXFSYS
MDSYS
MGMT_VIEW
ORACLE_OCM
ORDPLUGINS
ORDSYS
OUTLN
P21_PRM00
P23_PRM00
PRIMO
PRIMO_ADMIN
PRIMO_BACKUP
PRIMO_DBA
SI_INFORMTN_SCHEMA
SYS
SYSMAN
SYSTEM
TSMSYS
WMSYS
XDB
Enter CR to continue...
Figure 17: List of Database Users
NOTE:
Some of the users are Primo collection users and others are administrative
users.
99
Ex Libris Confidential
100
At the following prompt, type ENTER to return to the Database Users menu:
source create_ora_user_b P21_<new_user>
create_ora_user_b P21_<new_user>
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jul 11 06:46:35
2009
Copyright (c) 1982, 2007, Oracle.
Enter user-name:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
SQL> EXIT
Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jul 11 06:46:35
2009
Copyright (c) 1982, 2007, Oracle.
Enter user-name:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
SQL> old
1: DROP USER &&1 CASCADE
new
1: DROP USER P21_<new_user> CASCADE
DROP USER P21_<new_user> CASCADE
*
ERROR at line 1:
ORA-01918: user 'P21_<new_user>' does not exist
User created.
Grant succeeded.
Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
Enter CR to continue...
101
Ex Libris Confidential
This utility allows you to change the passwords for the following Oracle users:
PRIMO_ADMIN
PRIMO_DBA
P<r><n>_PRM00
P<r><n>_PRM00_SHARED
P<r><n>_RPT00
PRIMO_BACKUP
PRIMO
NOTE:
The password for each Oracle user must be identical on all Primo servers
(BE, FE, and SE).
To change the password of an Oracle user:
1
From the BE server, enter the following commands to display the Managing
Oracle menu:
dlib prm00
util o
102
NOTE:
This step is omitted for the FE and SE servers because the password was
changed previously on the BE server.
7
NOTE:
When changing the password for the PRIMO_ADMIN and PRIMO_DBA users,
the system does not apply changes to the global.properties files.
9
103
Ex Libris Confidential
NAME
--------------------------------------------------
T
---------TEMP
NAME
--------------------------------------------------
/exlibris/oradata/prm1/prm1_log01.dbf
/exlibris/oradata/prm1/prm1_sysaux01.dbf
/exlibris/oradata/prm1/prm1_system01.dbf
/exlibris/oradata/prm1/prm1_tslob01.dbf
/exlibris/oradata/prm1/prm1_ts_p_dat_01.dbf
/exlibris/oradata/prm1/prm1_undotbs01.dbf
/exlibris/oradata/prm1/prm1_users01.dbf
SIZE K
---------71680
1048576
655360
512000
7340032
2097152
204800
/exlibris/oradata/prm1/prm1_temp01.dbf
SIZE K
---------4194304
F
-6
3
1
5
7
2
4
F
-1
Enter CR to continue...
104
At the following prompt, enter the file name (including the full path) that
you want to resize:
Enter file name to resize:
idle> Connected.
idle> idle>
Database altered.
idle> Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing
options
Enter CR to continue...
105
Ex Libris Confidential
At the following prompt, enter the new file name (including the full path):
Enter new file name:
idle> Connected.
idle> idle>
Tablespace altered.
idle> Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing
options
Enter CR to continue...
106
F
--7
BLOCK_ID
---------162169
KBYTES
---------128
NAME
----------------------------------/exlibris/oradata/prm1/prm1_ts_p_da
t_01.dbf
SYSTEM
55681
64
/exlibris/oradata/prm1/prm1_system0
1.dbf
SYSAUX
24977
64
/exlibris/oradata/prm1/prm1_sysaux0
1.dbf
SYSAUX
24993
64
/exlibris/oradata/prm1/prm1_sysaux0
1.dbf
TABLES
------
F
---
BLOCK_ID
----------
KBYTES
----------
NAME
-----------------------------------
SYSAUX
25185
64
/exlibris/oradata/prm1/prm1_sysaux0
1.dbf
SYSAUX
32889
64
/exlibris/oradata/prm1/prm1_sysaux0
1.dbf
UNDOTB
S1
81
64
/exlibris/oradata/prm1/prm1_undotbs
01.dbf
Enter CR to continue...
107
Ex Libris Confidential
NOTE:
To determine the datafile number, see List of Database Files (Util O/13/1)
on page 104.
4
At the following prompt, type ENTER to return to the Database Files menu:
Figure 17:
Enter
new
Enter
new
BLOCK_ID
BYTES
---------- ---------33149737
93782016
33068329 665845760
33013801 445644800
32946601 550502400
32847913 807403520
32786729 500170752
32761001 208666624
32760361
3145728
32758697
2097152
32758441
1048576
32758185
1048576
Enter CR to continue...
Figure 21: List of Free Data Blocks by Block ID
108
If a tablespace has no free space left, it will not appear in the report.
NOTE:
It is important to review this report from time to time to prepare
additional resources for the database.
109
Ex Libris Confidential
To display a summary of the free space for tablespaces, enter option 1 from the
Database Free/Used Space menu. For example:
Figure 19:
TABLESPACE_NAME
-----------------TS0
TS_P_IDX
UNDOTBS1
SYSAUX
TSLOB
USERS
LOG
SYSTEM
TS1
TS_P_DAT
TOTAL_FREE_SPACE
---------------9.94296183
1024.50027
2861.94711
69.9759389
71.9770382
200.031756
63.9726412
159.96287
9.94296183
229289.89
MAX_EXTENT
---------9.94296183
1024.50027
729.338137
21.6994198
71.9770382
200.031756
63.9726412
159.96287
9.94296183
3970.18089
NUM_FREE_EXTENTS
---------------1
1
33
17
1
1
1
1
1
438
110
At the following prompt, enter the minimum size of the extents to display.
Enter to 0 to display all of the extents.
Enter Min size (MB) of free extent [0=ALL]:
111
Ex Libris Confidential
At the following prompt, enter the unit name (such as prm or prm00):
Enter unit name (full or truncated, e.g. primo):
SIZE_MB
----------8008.27408
Enter CR to continue...
112
To display the total amount of space for all of the repositories per
tablespace:
1
At the following prompt, enter the PRIMO_DBA user name and password:
To Coalesce Tablespaces enter PRIMO_DBA username/password.
username/password:
113
Ex Libris Confidential
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit
Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
SQL> alter tablespace LOG coalesce;
alter tablespace SYSAUX coalesce;
alter tablespace SYSTEM coalesce;
alter tablespace TS0 coalesce;
alter tablespace TS1 coalesce;
alter tablespace TSLOB coalesce;
alter tablespace TS_P_DAT coalesce;
alter tablespace TS_P_IDX coalesce;
alter tablespace USERS coalesce;
Disconnected from Oracle Database 10g Enterprise Edition Release
10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jul 11 20:37:29
2009
Copyright (c) 1982, 2007, Oracle.
SQL> Connected.
114
SQL> SQL>
'ALTERTABLESPACE'||TABLESPACE_NAME||'COALESCE;'
----------------------------------------------------------alter tablespace LOG coalesce;
alter tablespace SYSAUX coalesce;
alter tablespace SYSTEM coalesce;
alter tablespace TS0 coalesce;
alter tablespace TS1 coalesce;
alter tablespace TSLOB coalesce;
alter tablespace TS_P_DAT coalesce;
alter tablespace TS_P_IDX coalesce;
alter tablespace USERS coalesce;
9 rows selected.
Tablespace altered.
Tablespace altered.
SQL> Disconnected from Oracle Database 10g Enterprise Edition
Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
Enter CR to continue...
115
Ex Libris Confidential
At the following prompt, enter the PRIMO_DBA user name and password:
Enter PRIMO_DBA username/password:
116
idle> Connected.
idle>
Tablespace altered.
idle> idle> Disconnected from Oracle Database 10g Enterprise Edition
Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
Enter CR to continue...
117
Ex Libris Confidential
At the following prompt, enter the PRIMO_DBA user name and password:
To Create a new Tablespace, Enter PRIMO_DBA username/password.
username/password:
At the following prompt, enter the new file name (include full path):
Enter new file name (full path) :
If you have selected UNIFORM, enter the uniform size of each extent:
UNIFORM SIZE : [128K/1M/4M/128M/1920M]
118
119
Ex Libris Confidential
SIZE K
---------7340032
F
--7
Enter CR to continue...
120
EXT_MGMT
---------LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
LOCAL
ALLOC_TYP
--------SYSTEM
SYSTEM
SYSTEM
UNIFORM
UNIFORM
SYSTEM
SYSTEM
SYSTEM
UNIFORM
INIT_EXT
---------65536
65536
65536
1048576
4194304
65536
65536
65536
40960
NEXT_EXT
----------
1048576
4194304
40960
TYPE
---PERM
PERM
PERM
TEMP
PERM
PERM
PERM
UNDO
PERM
STAT
---ONL
ONL
ONL
ONL
ONL
ONL
ONL
ONL
ONL
Enter CR to continue...
In addition to the extent management types, this utility display the following
information for each tablespace:
Segment allocation
121
Ex Libris Confidential
122
123
Ex Libris Confidential
At the following prompt, type ENTER to return to the Oracle Statistics menu:
=======================================================
DATA DICTIONARY CACHE (shared_pool_size)
GETS
MISSES RATIO
1442213
22892 98.41%
=======================================================
LIBRARY CACHE (shared_pool_size)
EXECUTIONS
MISSES LIBCACHEPROZ
552613
1160 99.79%
Enter CR to continue...
124
EXT
6
69
72
68
72
64
73
72
64
64
70
RSSIZE
385024
121757696
146923520
142729216
168943616
101834752
162652160
154263552
101834752
175235072
152166400
WRITES SHRN
5160
0
4661252
2
4952028
2
11195842
3
7438446
3
2825568
3
6144544
3
11230104
3
3382754
2
6435860
3
5199072
3
AVGSHR WRAPS
0
0
2097152
4
2097152
2
2796202
6
2446677
1
2446677
2
1398101
0
1747626
3
3145728
4
3495253
5
2097152
2
CUREXT
0
2
68
0
69
2
70
3
2
2
2
WAITS
0
0
0
1
0
0
0
0
0
1
0
Enter CR to continue...
Enter option 4.
125
Ex Libris Confidential
To display I/O statistics, enter option 5 from the Oracle Statistics menu. For
example:
Figure 28:
TO STOP DO ctrl C
BLOCK_GETS CONSISTENT_GETS PHYSICAL_READS BLOCK_CHANGES CONSISTENT_CHANGES
34881
418724
4141
34949
2
34881
418727
4141
34949
2
.
.
.
126
127
Ex Libris Confidential
BYTES
---------2043456
461373440
6340608
11928
3736
417296
896
232
2336
9800
320
NAME
-----------------------------ASM file
qmn tasks
kwqmncal: allocate buffer
kspd run-time context
kzekm heap descriptor
incr ckpt write count arr
kglsim main lru size
FileOpenBlock
Core dump directory
log_checkpoint_timeout
PX subheap
BYTES
---------19200
4128
4048
16
304
168
151040
1447104
520
12360
130616
NAME
-----------------------------partitioning d
message pool freequeue
sched job queue
LGWR-network Server info
Parameter Handle
PARAMETER TABLE
state objects
pso tbs: ksunfy
recov_kgqbtctx
Cursor Stats
enqueue
BYTES
---------352520
954768
3616
27648
1656
2048
5680
78000
4392
1290728
355224
Enter CR to continue...
128
At the following prompt, enter the PRIMO_DBA user name and password:
To continue you will need to enter PRIMO_DBA username/password.
username/password:
129
Ex Libris Confidential
idle> Connected.
idle> idle> idle> Disconnected from Oracle Database 10g Enterprise
Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application
Testing options
Enter CR to continue...
Figure 31: Show MTS Parameters
130
8
Guidelines for Fault-Tolerant
Configurations
This section provides the guidelines needed to define fault-tolerant Primo
configurations.
This section includes:
Multiple BO Configuration
A multiple BO configuration in Primo allows clients to configure one or more
failover servers for the Primo BO. In this configuration, only one server is active,
while the others are inactive.
NOTE:
If a failure occurs in the active BO server, an inactive server must be
started manually to provide BO service.
Guidelines
When configuring a multiple BO configuration, the following guidelines must
be followed:
Only one BO server can be active at a time; all others must be inactive.
131
Ex Libris Confidential
of the General Configuration Wizard in the Primo Back Office and change
the following parameters to use the host name of the new Back Office:
Add an entry to the be_stop script to remove the startup control file from
the ng/primo/home/profile/publish/publish/production directory.
To ensure that only one BO server is active and running, add the following
checks to the be_start script:
Check to see that the other BO servers are accessible and run the
be_stop script for BO servers.
Check that the start up control file does not exist in the shared
ng/primo/home/profile/publish/publish/production directory.
Add an entry to the be_start script to create a startup control file in the
ng/primo/home/profile/publish/publish/production directory for the
active BO server.
NOTE:
To benefit from these configurations, a load balancer must be integrated
within your Primo installation. For more information, see Load Balancer
Requirements on page 136.
132
Many-to-One Configuration
In this configuration (as shown in the following figure), every FE has the same
SE configuration. One of the FEs is defined as the "master," which receives
commands from the Back Office (BO) and performs agent slicing monitoring.
The other FEs are defined as "slaves," which receive commands that are
forwarded from the master.
Figure 35:
Many-to-Many Configuration
In addition to workload balancing across FEs, this configuration (as shown in
the following figure) distributes the load of numerous searches over multiple
Search Engines, preventing downtime if a Search Engine fails.
133
Ex Libris Confidential
Figure 36:
NOTES:
In a Many-to-Many configuration, the parent index directories of the
master and slave FEs should be different. The following example shows a
correct directory structure in which the parent directories (as shown in
bold) are different:
Master FE:
/exlibris/primo/indexes/master_index/inst_1_index
Slave FE:
/exlibris/primo/indexes/slave_index/inst_1_index
Failover of an FE
When the BO is started, it checks to see if the master FE is running. If it is
initially down, the following message may display:
The FrontEnd seems to be down. Continuing to check every 30
seconds
It will check the master every 30 seconds until it is up. Once the master is up, the
BO will retrieve a list of the slave FEs in case the master fails. If the master fails,
the BO randomly chooses one of the slaves to be the new master.
134
Guidelines
When configuring a multiple PDS configuration, the following guidelines must
be followed:
All PDS servers must be configured using the following page in the Back
Office:
Primo Home > Ongoing Configuration Wizards > PDS Configuration
Wizard
All PDS servers must use the host name of the currently configured PDS.
Update the pds_configuration_url field on the following page in the Back
Office:
Primo Home > Advanced Configuration > General Configuration
Only one PDS server can be active at a time. All other PDS servers must be
inactive. Set the pds_url and pds_internal_url fields on the following page
in the Back Office to the host name of the active PDS:
Primo Home > Advanced Configuration > General Configuration
All FE servers must be restarted after a change to the Primo Home >
Advanced Configuration > General Configuration page.
135
Ex Libris Confidential
136
Figure 38:
137
Ex Libris Confidential
Sticky Sessions
The sticky session feature enables the load balancer to bind a user's session to a
specific application instance so that all requests coming from the user during the
session are sent to the same application instance.
Primo requires this feature to be activated on the LB so that all of the HTTP
requests belonging to a users session are routed to the same server.
Status
138
NOTES:
The LB must support sticky sessions in order for Primo to work properly.
139
Ex Libris Confidential
140
9
Configuring SSL for Primo
This section details the procedure required to implement Secure Socket Layers
(SSL) for the following:
Provide secure authentication via PDS. For more information on PDS, refer
to the Patron Directory Services Guide.
If the local installation is the first installation on the server, the $httpd_root
environment parameter in Primo typically refers to the following path:
/exlibris/primo/p1_1/primoe/apache
$httpd_root/conf/ssl.conf
$httpd_root/conf/ssl.conf.tml
Confirm or change the port (the default port within the ssl.conf table
is 443). For example, change the following line:
Listen @_HTTPS_PORT
to:
Listen 443
141
Ex Libris Confidential
to:
SSLCertificateFile /exlibris/primo/p<r><c>/primoe/apache/
SSLconf/conf/new.cert.cert
SSLCertificateKeyFile /exlibris/primoe/p<r><c>/primoe/
apache/SSLconf/conf/new.cert.key
In the /exlibris/primo/p<r><c>/primoe/apache/bin/apachectl_auto
file, add the -DSSL string to the $httpd_bin/httpd -d $httpd_root line.
For example:
$httpd_bin/httpd -d $httpd_root -DSSL
/exlibris/primo/p<r><c>/primoe/apache/bin/apachectl
/exlibris/primo/p<r><c>/primoe/apache/bin/apachectl.tml
Add the -DSSL string to each of the files. For example, change the following
line:
HTTPD="/exlibris/primo/p<r><c>/product/bin/httpd -d
/exlibris/primo/p<r><c>/primoe/apache"
to:
HTTPD="/exlibris/primo/p<r><c>/product/bin/httpd -d
/exlibris/primo/p<r><c>/primoe/apache -DSSL"
Enter the following command to see that the mod_ssl.so file exists:
ls $primo_product/local/apache/modules
142
NOTE:
If port 443 is used, you will need to restart the Apache server as the root
user.
8
= "http://servername:8991";
= "http://servername:443";
= "http://servername:8991/pds";
to:
> our ($server_httpd)
= "https://servername:443";
= "https://servername:443";
= "https://servername:443/pds";
143
Ex Libris Confidential
Enter the following commands, making sure that the keypass and
storepass are the same:
keytool -genkey -alias primo -keypass <passwd> -keystore
/tmp/primo.keystore -storepass <passwd> -dname
"cn=<Primo_hostname>, ou=primo, o=<company_name>,
c=<country_prefix>" -validity 3650
keytool -selfcert -alias primo -keypass <passwd> -keystore
/tmp/primo.keystore -storepass <passwd> -dname
"cn=<Primo_hostname>, ou=primo, o=<company_name>,
c=<country_prefix>" -validity 3650
keytool -list -keypass <passwd> -storepass <passwd>
-keystore
/tmp/primo.keystore -rfc > /tmp/primo.crt
Edit the file so that it contains only the certificate information, which
includes the following beginning and ending lines:
-----BEGIN CERTIFICATE----.
.
.
-----END CERTIFICATE-----
Enter the following commands, making sure that the keypass and
storepass are the same:
keytool -genkey -alias aleph -keypass <passwd> -keystore
/exlibris/aleph/a21_8/ng/aleph/home/system/thirdparty/
openserver/server/default/conf/aleph.keystore -storepass
<passwd> -dname "cn=<aleph_hostname>, ou=aleph,
o=<company_name>, c=<country_prefix>" -validity 3650
keytool -selfcert -alias aleph -keypass <passwd> -keystore
/exlibris/aleph/a21_8/ng/aleph/home/system/thirdparty/
openserver/server/default/conf/aleph.keystore -storepass
<passwd> -dname "cn=<aleph_hostname>, ou=aleph,
o=<company_name>, c=<country_prefix>" -validity 3650
keytool -list -keypass <passwd> -storepass <passwd>
-keystore
/exlibris/aleph/a21_8/ng/aleph/home/system/thirdparty/
openserver/server/default/conf/aleph.keystore -rfc >
/tmp/aleph.crt
144
Edit the file so that it contains only the certificate information, which
includes the following beginning and ending lines:
-----BEGIN CERTIFICATE----.
.
.
-----END CERTIFICATE-----
Enter the following commands to copy the certificates to and from the
Primo server:
scp aleph.crt primo@<primo_server>:/tmp
scp primo@<primo_server>:/tmp/primo.crt /tmp
Enter the following command on the Primo server to import aleph.crt into
Primos keystore:
keytool -import -alias aleph -file /tmp/aleph.crt -storepass
<passwd> -keystore /tmp/primo.keystore -noprompt
If the above directory does not exist, enter the following command:
cd $aleph_dev/ng/aleph/home/system/thirdparty/
openserver/server/default/deploy/jbossweb.sar
In the following section in the server.xml file, modify the path of the
keystore file and its password if needed.
145
Ex Libris Confidential
NOTE:
Make sure that the above lines are not commented out before saving the
server.xml file.
When selecting a port for SSL communication, enter the following
command to make sure that port is open and free:
telnet <server_name_or_ip> <ssl_port>
In the following example, port 8888 is open for communication to the ilaleph07 server:
telnet il-aleph07 8888
Trying 10.1.235.93...
Connected to il-aleph07.
Escape character is '^]'.
Figure 39: Telnet Example
Add the following line to the main.properties file to make sure that
access to the REST API only is available in HTTPS:
api.rest.https=Y
file.
javax.net.ssl.keyStore Enter the full path to the primo.keystore
file.
javax.net.ssl.trustStorePassword Enter the password used for the
truststore.
146
keystore.
On the Edit Institution page, specify the HTTPS URL in the API field
under the Delivery Base URLs section.
147
Ex Libris Confidential
148
Index
Symbols
$httpd_root, 141
grouping process, 24
Aleph, 22
Apache, 35, 36
apachectl, 35, 36
Harvesting, 21
Harvesting methods, 22
Copy harvesting, 22
FTP/SFTP harvesting, 22
OAI harvesting, 22
B
Back Office, 14, 17, 38
Initial configuration, 17
Ongoing maintenance, 17
be_start, 36
be_stop, 35
bibliographic record, 21
I
Indexer, 14, 16
Indexing, 24, 25
Initial configuration, 17
L
C
Copy harvesting, 22
D
Database, 14
Dedup process, 23
Dedup records
merge, 24
De-duplication, 16, 23
Did you mean, 29
Documents
related, 12
E
Enrichment, 16, 23
F
Facets, 27
fe_start, 36
fe_stop, 35
File System Slice, 26
FRBR, 24
FRBR group, 24
FRBR ID, 24
Front End, 14, 18
FTP/SFTP harvesting, 22
library_server.log, 68
Linguistic Issues, 28
List reports, 65
Loading data, 23
localhost_access_log.log, 68
Logs
JBoss, 68
Pipes, 66
Watchdog, 70
Lucene, 18
M
Metaphone, 29
Mirroring, 25
Multiple Front End configurations, 132
Many-to-Many, 132
Many-to-One, 132
Multiple PDS configuration, 135
N
N-gram encoding, 29
N-Gram repositories, 29
Normalization, 16, 22
O
OAI harvesting, 22
149
Ex Libris Confidential
Ongoing configuration, 17
Optimization, 25
Oracle
tablespaces, 72
Users, 71
Oracle database server, 19
Oracle database table, 23
Oracle Users
PRIMO_ADMIN, 71
PRIMO_DBA, 71
PRM00_SHARED, 72
RPT00, 71
P
PDS, 141
PDS server, 135
persistent ID, 21
Pipe, 65
Pipe logs, 66
PNX, 27
PNX format, 15
PNX table, 23
Primo components
Back Office, 14
Database, 14
Front End, 14
Indexer, 14
Publishing platform, 14
Search agent, 14
Search Engine, 14
Search Federator, 14
Primo database, 19
primo.log, 66
PRIMO_ADMIN, 71
PRIMO_DBA, 71
primo_shutdown_all, 34
primo_startup_all, 34
PRM00_SHARED, 72
Publishing platform, 14, 15, 19
Publishing process, 20
Search manager, 27
Searching, 24, 26
search_schema.xml, 28
se_start, 36
se_stop, 35
SFX, 22
Slices, 24
File system-based, 24
RAM-based, 24
SSL, 32
SSL (Secure Socket Layers), 141
Statistical reports, 66
Statistics, 66
Swap, 25
T
tablespaces, 72
U
Users
Oracle, 71
V
Voyager, 22
W
Watchdog
Logs, 70
watchdog.log, 70
R
RAM Slice, 25, 26
Reports, 65
RMI server, 19
RPT00, 71
S
Search agent, 14, 18, 19
Search Engine, 14, 16, 18
Search Federator, 14, 18, 28
150