Vous êtes sur la page 1sur 213

Web Content Management Server

System Integration Manual

Type 1 System
Release 9.5.0
Version 3.3
Copyright 2004 by Open Text Corporation. The copyright to these materials and any
accompanying software is owned, without reservation, by Open Text. These materials and any
accompanying software may not be copied in whole or part without the express, written permission of
Open Text.
Open Text Corporation is the owner of the trademarks Open Text, ‘Great Minds Working Together’,
Livelink, and MeetingZone among others. This list is not exhaustive. All other products or company
names are used for identification purposes only, and are trademarks of their respective owners. All rights
reserved.
Open Text Corporation provides certain warranties and limitations in connection with the software that
this document describes. For information about these warranties and limitations, refer to the license
agreement entered into between the licensee and Open Text Corporation.
Contacting Us
Corporate Headquarters
Open Text Corporation
185 Columbia Street West,
Waterloo, Ontario
N2L 5Z5
Canada
(519) 888-7111
If you subscribe to our Software Maintenance Program or would like more information about additional
support programs, visit Open Text Customer Support at http://www.opentext.com/services/support.html.
If you have suggestions for this publication, send an e-mail message to pubs@opentext.com to contact the
Open Text Publications Group.
Visit our home page at http://www.opentext.com for more information about Open Text products and
services.
© 2004 IXOS SOFTWARE AG
Bretonischer Ring 12
85630 Grasbrunn, Germany
Tel.: +49 (89) 4629-0
Fax: +49 (89) 4629-1199
eMail: office@ixos.de
Internet: http://www.ixos.de
All rights reserved, including those regarding reproduction, copying or other use or communication of the
contents of this document or parts thereof. No part of this publication may be reproduced, transmitted to
third parties, processed using electronic retrieval systems, copied, distributed or used for public
demonstration in any form without the written consent of IXOS SOFTWARE AG. We reserve the right to
update or modify the contents. Any and all information that appears within illustrations of screenshots is
provided coincidentally to better demonstrate the functioning of the software. IXOS SOFTWARE AG
hereby declares that this information reflects no statistics of nor has any validity for any existing
company.
Portions of the license material were created using open source codes of third parties. These source codes
are free for use subject to the terms of the corresponding licenses. All of these licenses are available at
www.obtree.com/opensource-info.
Contacting Us
IXOS Engineering (Switzerland) AG
Peter Merian-Strasse 80
Postfach
CH-4002 Basel
Tel.: +41 (61) 278 96 96
Document Info
English (Original)
Based on Livelink Web Content Management Server, Type 1 System, Release 9.5.0
© IXOS Software AG, May 2005

Author:
Axel Hanikel & al.

If you have feedback or suggestions for this publication, please send an e-mail message to
documentation@obtree.com to contact the Documentation Group responsible for this product.
I’ll show you how to

In eight easy steps…

ALANIS MORISSETTE
Livelink WCM Server Table of Contents

Table of Contents
1. General Information............................................................................................................. 11
1.1 Welcome!......................................................................................................................................... 11
1.1.1 How To Read This Book............................................................................................................11
1.2 The Knowledge Center.................................................................................................................... 12
1.3 What’s New?.................................................................................................................................... 12
1.3.1 Only One Engine....................................................................................................................... 13
1.3.2 New Database Model................................................................................................................ 13
2. System Overview and Concepts......................................................................................... 15
2.1 The Components of a Livelink WCM Server Installation..................................................................15
2.2 The Staging/Live Concept................................................................................................................16
2.2.1 The Live Server......................................................................................................................... 16
2.2.2 The Staging Server....................................................................................................................17
2.2.3 Bringing Stage and Live Together............................................................................................. 17
2.2.4 Size considerations................................................................................................................... 18
2.3 Example of a larger installation........................................................................................................ 18
2.4 Configuration Files........................................................................................................................... 20
2.4.1 Configuration File Format.......................................................................................................... 20
2.4.2 URLMAGIC and HOSTMAGIC: Matching An Incoming Request To A Site.............................. 20
2.4.3 Internationalized Domain Names (IDN).....................................................................................22
2.5 Common Pitfalls............................................................................................................................... 22
2.5.1 Library Search Paths................................................................................................................. 22
2.5.2 Environment variables and cron (Linux/Solaris only)................................................................ 22
2.5.3 Time Synchronization................................................................................................................ 23
3. Basic Installation.................................................................................................................. 25
3.1 Automatic Demo Setup (Windows Platform)....................................................................................25
3.2 Quick Start Setup (Windows Platform).............................................................................................25
3.2.1 Create the Installation Directory................................................................................................ 25
3.2.2 Prepare the Database: Microsoft SQL Server........................................................................... 27
3.2.3 Load WCM Server Web Site Data.............................................................................................29
3.2.4 Configure the Web Server: Microsoft Internet Information Service 6.0..................................... 30
3.2.5 Customize the configuration file................................................................................................ 33
3.3 Manual Setup (Windows Platform)...................................................................................................34
3.3.1 Create the Installation Directory................................................................................................ 34
3.3.2 Prepare the Database: Microsoft SQL Server........................................................................... 36
3.3.3 Prepare the Database: Oracle...................................................................................................38
3.3.4 Load WCM Server Web Site Data.............................................................................................40
3.3.5 A word about web server processes......................................................................................... 41
3.3.6 Configure the Web Server: Microsoft Internet Information Service 5.0 (Windows 2000).......... 42
3.3.7 Configure the Web Server: Microsoft Internet Information Service 6.0 (Windows 2003).......... 45
3.3.8 Configure the Web Server: Apache HTTP Server 2.0...............................................................50
3.3.9 Configure the Web Server: Sun Java System Web Server 6.1 (aka iPlanet)............................51
3.4 Quick Start Setup (Solaris and Linux Platforms)..............................................................................52
3.4.1 Create the Installation Directory (from packages)..................................................................... 52

Livelink WCM Server - System Integration Manual Page 7


Table of Contents Livelink WCM Server

3.4.2 Prepare the Database: Oracle...................................................................................................54


3.4.3 Configure the Web Server: Apache HTTP Server 2.0...............................................................56
3.5 Manual Setup (Solaris Platform)...................................................................................................... 60
3.5.1 Create the Installation Directory (from packages)..................................................................... 60
3.5.2 Create the Installation Directory (manually).............................................................................. 62
3.5.3 Prepare the Database: Oracle...................................................................................................65
3.5.4 A word about web server processes......................................................................................... 68
3.5.5 Configure the Web Server: Apache HTTP Server 2.0...............................................................69
3.5.6 Configure the Web Server: Sun Java System Web Server 6.1 (aka iPlanet)............................71
3.6 Manual Setup (Linux Platform).........................................................................................................72
3.6.1 Create the Installation Directory (from packages)..................................................................... 73
3.6.2 Create the Installation Directory (manually).............................................................................. 74
3.6.3 Prepare the Database: Oracle...................................................................................................78
3.6.4 A word about web server processes......................................................................................... 80
3.6.5 Configure the Web Server: Apache HTTP Server 2.0...............................................................81
3.7 Customizing the WCM Server Configuration Files...........................................................................83
3.8 Testing your installation................................................................................................................... 84
3.9 Updating your Installation.................................................................................................................86
4. Additional Components....................................................................................................... 89
4.1 SOAP............................................................................................................................................... 89
4.2 Session Management...................................................................................................................... 89
4.2.1 Setup under Windows............................................................................................................... 90
4.2.2 Setup under Solaris and Linux.................................................................................................. 91
4.2.3 Advanced Configuration............................................................................................................ 93
4.3 WCM Server Replication..................................................................................................................93
4.3.1 WCM Server Replication from the shell.....................................................................................97
4.3.2 Offline Replication..................................................................................................................... 98
4.4 LDAP..............................................................................................................................................100
4.4.1 Authentication and authorization options.................................................................................100
4.4.2 Matching rules......................................................................................................................... 103
4.4.3 Customize the login process................................................................................................... 104
4.4.4 LDAP Plug-in Authentication (Windows)................................................................................. 105
4.4.5 LDAP Plug-in Authentication (Solaris).....................................................................................107
4.4.6 LDAP Plug-in Authentication (Linux)....................................................................................... 109
4.5 Livelink Enterprise Integration........................................................................................................111
4.5.1 Prerequisites............................................................................................................................112
4.5.2 Configuration........................................................................................................................... 112
4.5.3 Define a Connection to Livelink Enterprise..............................................................................114
4.5.4 Single Sign-On between Livelink WCM Server and Livelink Enterprise..................................118
4.6 Java Connectivity (LiveConnect)....................................................................................................121
4.6.1 Java Connectivity (LiveConnect) (Windows)........................................................................... 121
4.6.2 Java Connectivity (LiveConnect) (Solaris)...............................................................................122
4.6.3 Java Connectivity (LiveConnect) (Linux)................................................................................. 123
4.7 WebDAV Service........................................................................................................................... 124
4.7.1 Server Configuration................................................................................................................124
4.7.2 Installation of the Java VM...................................................................................................... 125
4.7.3 Installation of Apache Tomcat................................................................................................. 125

Page 8 Livelink WCM Server - System Integration Manual


Livelink WCM Server Table of Contents

4.7.4 Installation and Configuration of the WebDAV Service........................................................... 125


4.7.5 Installation of the WebDAV Service Authentication Module.................................................... 128
4.7.6 Configuration of a WebDAV Client.......................................................................................... 129
4.8 Synchronization..............................................................................................................................129
4.9 WordWizard (Microsoft Word Integration)......................................................................................136
4.9.1 Server Configuration................................................................................................................136
4.10 TaskAgent.................................................................................................................................... 137
4.10.1 What’s the feature all about?.................................................................................................137
4.10.2 Files delivered with the TaskAgent........................................................................................138
4.10.3 Using the TaskAgent............................................................................................................. 138
4.10.4 Configuration of the TaskAgent............................................................................................. 141
4.10.5 Format of „ARGUMENT“ and „HEADER“ values.................................................................. 155
4.10.6 Examples...............................................................................................................................160
4.10.7 Installation as a UNIX daemon resp. a MS Windows service................................................161
4.10.8 Warnings and error messages.............................................................................................. 162
4.10.9 Applications........................................................................................................................... 165
4.11 Professional Workflow..................................................................................................................171
4.12 Deployment.................................................................................................................................. 171
4.12.1 Synchronization..................................................................................................................... 171
4.12.2 Online Synchronization..........................................................................................................172
4.12.3 Offline Synchronization..........................................................................................................174
4.12.4 Object Transfer......................................................................................................................177
4.13 Server Architecture for the Distributed CMEngine....................................................................... 178
4.13.1 Distributed Architecture under Windows............................................................................... 180
4.13.2 Distributed Architecture under Linux and Solaris.................................................................. 181
5. Client Installation................................................................................................................185
5.1 Introduction.................................................................................................................................... 185
5.2 Site Administrator...........................................................................................................................185
5.3 Site Manager (a.k.a. Content Manager).........................................................................................186
5.4 WordWizard (Microsoft Word Integration)......................................................................................187
5.4.1 Installing the WordWizard........................................................................................................187
5.5 SQLTransfer...................................................................................................................................188
5.5.1 Creating a DAT file.................................................................................................................. 189
5.5.2 Loading DAT files.................................................................................................................... 190
5.5.3 Direct Transfer.........................................................................................................................190
5.5.4 Transfer Script......................................................................................................................... 190
5.5.5 Parameter Sections................................................................................................................. 191
5.5.6 Options.................................................................................................................................... 195
5.5.7 Specific functions of the GUI version.......................................................................................196
5.6 WCM Server Service Control......................................................................................................... 197
6. Advanced Topics................................................................................................................ 199
6.1 Web Server / NTLM Authentication................................................................................................199
7. Maintenance Tasks.............................................................................................................201
7.1 Backup........................................................................................................................................... 201
7.1.1 MS SQL Server....................................................................................................................... 201
7.1.2 Oracle...................................................................................................................................... 202
7.2 Log File Handling........................................................................................................................... 203

Livelink WCM Server - System Integration Manual Page 9


Table of Contents Livelink WCM Server

8. Appendix............................................................................................................................. 207
8.1 Installing Oracle 9i Version 9.0.1.1 under Windows.......................................................................207
8.2 Installing Oracle 9i Version 9.2.0 under Solaris............................................................................. 208
8.3 Installing Oracle 9i Version 9.2.0 under Linux................................................................................210
8.3.1 Configuring Oracle 9.2.0 under Solaris and Linux...................................................................212

Page 10 Livelink WCM Server - System Integration Manual


General Information Welcome!

1 General Information

1.1 Welcome!
Welcome to Livelink WCM Server! You are reading the System Integration
Manual, which is about how to install and administrate Livelink WCM Server
Type 1 System. Installation and maintenance of Livelink WCM Server is not a
difficult task, but there are a few conceptual things you should know before you
start with the actual installation. You will find the details right here in this
chapter.

Livelink WCM Server supports different operating systems, web servers and
databases, which is why this manual might seem rather big at first sight. But don’t
let the number of pages scare you off, you won’t have to read all of them. Let the
next section be your guide.

1.1.1 How To Read This Book

Structure This manual consists of:

• a system overview
• a description of concepts
• best practice guides
• installation procedures
• tool manuals
• a description of maintenance tasks
• additional information about 3rd party products

If you are new to Livelink WCM Server, it is probably best if you start with the
overview and concepts chapters. After that, you could go to the Quick Start
section of your operating system / platform in order to quickly get a small
installation running and see “what it looks like”.

If you’re an old hand, read the “What’s New?” section, the release notes (which
you can find on the Knowledge Center) and “Updating your Installation”.

Livelink WCM Server - System Integration Manual Page 11


The Knowledge Center General Information

Audience The intended audience of this manual are system administrators and system
integrators. They should have a good knowledge about the operating system they
use, about web servers, database servers, TCP/IP, HTTP and SQL, and they
should have an idea about which layer these belong to (if you have ever heard
about the OSI model, you know what I mean ;-)). But this is not about the model
itself, it is about knowing which component depends on which other component,
in order to find the right spot to look at, if something does not work as it should.
And it is about interpreting error messages correctly.

Auxiliary verbs When reading this manual, many people are unsure about what they must (not),
should (not), or may do. Throughout this manual, things which you must or must
not do are explicitely stated as such, e.g. “you must not rename the
cmengine.dll for IIS”. Everything else in the “Basic Installation” chapter is to
be understood as what you should do, e.g. “you should follow the file system
layout” used in that chapter (because it will be easier for you and for somebody
else to find himself “at home”) - but you don’t have to. The “Best Practice”
guides, then, should give you an idea of how to deal with certain situations, but
are entirely optional.

Language This manual is available in English only.


support

1.2 The Knowledge Center


The Knowledge Center (https://knowledge.opentext.com) is an indispensable source for any kind of
information not found in the official documentation. You will find there a tremendous amount of
HOWTOs, best-practice guides, troubleshooting information, a product roadmap and lots of other stuff
you might be interested in. Also, the Knowledge Center features discussion groups where you can ask for
help when you’re stuck: Not only long-time customers and partners but also many Open Text employees
follow the forum posts on a regular basis and are willing to help you out. Furthermore, the Knowledge
Center has a powerful search function that you should use before asking in the forum (chances are that
others have had the same problem before).

Give the Knowledge Center a try — you will wonder how you could ever live without it!

1.3 What’s New?


This chapter is for those who already know the previous version of Livelink WCM Server and would like
to get a quick overview on what has changed since the last release (from a System Integrator’s point of
view). If you are new to Livelink WCM Server, just skip this and read the next chapter about the

Page 12 Livelink WCM Server - System Integration Manual


General Information What’s New?

components of a WCM Server installation.

1.3.1 Only One Engine

We do not make a difference between the WebEngine and the CMEngine any more. There is only one
rendering engine, the CMEngine. It is entirely a matter of configuration whether the CMEngine behaves
as a staging or as a live server.

1.3.2 New Database Model

Our database model has been extended by a couple of tables and some of the existing tables have got
additional fields. This has been necessary to support some of the new features like e.g. “auditing”.

See chapter “Updating your Installation” on page 86 !

Livelink WCM Server - System Integration Manual Page 13


What’s New? General Information

Page 14 Livelink WCM Server - System Integration Manual


System Overview and Concepts The Components of a Livelink WCM Server Installation

2 System Overview and Concepts

2.1 The Components of a Livelink WCM Server Installation


A Livelink WCM Server Type 1 System (or “WCM Server” for short) installation can be divided into
server and client. The server can be further divided into a presentation part, a repository part and other
third-party systems that the WCM Server somehow interacts with. The presentation part consists of a
web server and a WCM Server module, which is loaded by the web server on startup. It is the module’s
responsibility to dynamically create the requested web pages and hand them over to the web server for
delivery. This module is called the CMEngine. (A note for users of previous versions of WCM Server:
The WebEngine does not exist any more as a separate component. The CMEngine acts its role depending
on the configuration.)

Livelink WCM Server - System Integration Manual Page 15


The Staging/Live Concept System Overview and Concepts

The repository part consists of a database server. The database server holds all the data belonging to a
particular web site. When an HTTP request is to be delivered, the CMEngine connects to the database
server and fetches the necessary data to assemble the requested page. For performance reasons, the
CMEngine features a sophisticated caching mechanism, which minimizes the number of database
accesses (I/O) as well as the CPU cycles necessary to assemble (or render) the page.

The web server with a loaded CMEngine module together with a database form the minimum of what
needs to be installed to get a working WCM Server installation.

External systems are accessed either directly by means of interfaces which are built into the CMEngine
itself, or indirectly via plugins. Examples of protocols that the CMEngine has built in include HTTP,
FTP, POP3, SMTP and others, and, of course, SQL databases. Systems that are accessed via plugins
include e.g. LDAP, SAP, Microsoft COM etc. A plugin runs independently from the web server in a
separate process. The CMEngine communicates with the plugins via TCP, while the plugin
communicates with the external system in whatever its “native language” is.

The client part can be divided according to the two types of users that access the system, administrators
and content authors. Administrators work with a tool called Site Administrator. The Site Administrator
has all the functionality to create and administrate the web site. It communicates directly with the
database and therefore needs the corresponding database vendor’s client software installed. The content
author, on the other hand, does not need any additional client software installed. The only thing a content
author needs is a browser and a Java Virtual Machine (JVM). He/she works with a tool called Site
Manager, which is completely browser-based. Texts are edited using the TextWizard, a program
implemented as a Java applet and started directly from the browser. Optionally, it is possible to use
Microsoft Word for editing text objects. However, this functionality (which we call the WordWizard)
implies the installation of a small executable and some additional files on the client computer.

2.2 The Staging/Live Concept


The staging/live concept is one of the fundamentals you should know about before planning your
installation. This section tries to explain the basic idea behind the staging/live concept and its
implications for a successful installation of the WCM Server.

2.2.1 The Live Server

The live server is responsible for delivering web pages to the outside world. Web site content is made
available for browsing/reading, but cannot be changed. Therefore the emphasis in the live environment
lies on maximizing performance by caching as much as the dynamics of the pages and available RAM
allow. As a minimum, a live server consists of

• One web server instance

Page 16 Livelink WCM Server - System Integration Manual


System Overview and Concepts The Staging/Live Concept

• One database (or database schema) for the web site data
• The CMEngine
• The cmengine.cfg configuration file, based on the cmengine_live.cfg template (see the
installation chapters for information on where the various files are located), and containing a
[common] section and one section for the site.

2.2.2 The Staging Server

The staging server delivers web pages to the content authors and runs the Site Manager. Of course,
performance is also an issue here. However, it is important that any changes to the content are
immediately visible to the authors, so that they are able to see what their pages look like before making
them active. For this reason, the data may not be as heavily cached as in a live environment, which leads
to higher CPU and disk I/O usage. As a minimum, a staging server consists of

• One web server instance (usually running on a different machine than the live server)
• One database (or database schema) for the web site data (different from the one for the live server).
• One database (or database schema) for the Site Manager
• The CMEngine
• The cmengine.cfg configuration file, based on the cmengine_stage.cfg template(see the
installation chapters for information on where the various files are located), and containing a
[common] section (where the CM_* parameters point to the database connection where the Site
Manager resides) and one section for the site. (Note: If there is more than one site, each site has its
own configuration section, but they all share the same Site Manager database defined in the
[common] section.)

2.2.3 Bringing Stage and Live Together

The changes made on the staging server have to be transferred to the live server by one of the following
means:

• With SQLTransfer, which transfers the complete site. SQLTransfer is available as a GUI version
and as a commandline version suitable for being executed by an operating system scheduler like
cron.
• With database replication, which transfers only the rows that have been changed since the last
synchronization.
• With the WCM Server replication, which transfers only the rows of active WCM Server objects that
have been changed since the last replication.

Livelink WCM Server - System Integration Manual Page 17


Example of a larger installation System Overview and Concepts

Please refer to the appropriate chapters later on in this manual for information on database and
WCM Server replication.

2.2.4 Size considerations

Under Oracle, when using a newly created tablespace with a blocksize of 8K, our default SQL script
with 128K extents and the example web site (demosite.zip), the tablespace will occupy about 100 MB
on disk. This can be reduced to about 55 MB by using smaller extent sizes, e.g. 16K instead of 128K,
but doing so might have a negative impact on performance, especially in larger installations.

Under MSSQL, the example site takes about 17 MB on harddisk.

A full installation with all the program files uses about 60 MB on Linux, 80 MB on Solaris and 125 MB
on Windows.

Of course, these are the minimum figures, just to give you an idea. In practice, more space will be used,
e.g. by log files, or depending on the amount of data (large PDFs, videos, etc.) that you put into your
database.

2.3 Example of a larger installation


The following picture contains an overview of what a larger installation might look like. It can be
roughly divided into three columns: The leftmost column shows the live server(s) (note that all the
servers shown in the diagram need not necessarily run on a physically separate machine), the middle
column is the staging part and the rightmost column is the development server.

Page 18 Livelink WCM Server - System Integration Manual


System Overview and Concepts Example of a larger installation

Both staging and live have a load balancer in front of them, which equally distributes the incoming
requests to two trails. Each trail consists of a reverse proxy, followed by the web server with the
CMEngine, and the database below. The SessionManagement plugins are used to store session data.
They are needed as soon as more than one web server process is running the same site, because session
data must be available to all running processes simultaneously. Only the primary session plugin is active
for both web servers, the other one is just a fallback, should the primary become unavailable. The LDAP
servers provide the user data and are accessed via plugins as well.

The development server has not been introduced so far: It is thought mainly for script/web application
developers, so that they are able to do their testing without disrupting the stage environment where the
content authors work. Data from the development server is transferred to the staging environment by
exporting and reimporting objects as .oxp packages, an XML format. This can be done with the
deployment utility or the Site Administrator. The replication utility is used in order to transfer the
data from the staging to the live environment.

Livelink WCM Server - System Integration Manual Page 19


Configuration Files System Overview and Concepts

2.4 Configuration Files

2.4.1 Configuration File Format

WCM Server configuration files (or config files for short) have a .cfg suffix and there is usually one
configuration file for each component. They are in .ini format, containing one or more sections, and
each section consists of parameter/value pairs, one per line. A section starts with the section identifier,
which is a name enclosed in square brackets, and it ends either at the beginning of a new section or at
the end of the file. Some section names are mandatory, while others can be chosen to be whatever you
like, depending on the component you are configuring. In any case a section name must be unique
within the containing configuration file. A parameter is assigned a value using the “equals” sign ([=]).
Parameter names are case-insensitive. Comments start with a hash sign ([#]) at the beginning of the line
and extend to its end.

There is a maximum of 200 sections per configuration file.

2.4.2 URLMAGIC and HOSTMAGIC: Matching An Incoming Request To A Site

One of the most important configuration files is the one of the CMEngine, cmengine.cfg. This is not
the place to discuss every parameter in detail here. If it comes to creating an appropriate config file for
your intended setup, there are samples in the release set for you to start with, and the parameters are
documented in SiteAdmin_Reference.chm, which you can find in the release set, as well. Instead,
we will only be looking at one important question: How is an incoming request matched to a particular
section in the configuration file?

We said earlier that there is one database schema for every site. In the cmengine.cfg, there is one
corresponding section for each site, which basically contains two important pieces of information: The
database connection parameters, and the parameters that determine whether or not an incoming request
belongs to this particular site. For the matching mechanism, the URL of an incoming request is split into
two parts: the host (including the port, if any) and the path to the requested resource. For example, if the
requested URL is http://www.myserver.com:8555/some/path/index.html, then
www.myserver.com:8555 is the host part, and /some/path/index.html is the path.
Correspondingly, there are two parameters in the config file that are used for the matching: HOSTMAGIC
and URLMAGIC.

The HOSTMAGIC matches the Host: header of the incoming HTTP request either if it is exactly the
same, or if HOSTMAGIC is not defined. In other words: an undefined HOSTMAGIC matches any host. To
stick with our example: If the HOSTMAGIC is set to www.myserver.com, it does not match; if it is set to
www.myserver.com:8555 or if it is undefined, it matches.

Page 20 Livelink WCM Server - System Integration Manual


System Overview and Concepts Configuration Files

The URLMAGIC matches the path of a request if it is exactly the same as the first characters of the path.
For example URLMAGIC=/some/path would match our request from above, URLMAGIC=/some and
URLMAGIC=/ would match, too (URLMAGIC=/ matches any request). Instead,
URLMAGIC=/another/path and URLMAGIC=/another do not match.

Now what about the following situation: We have two site sections in our config file, like this:

[mysite]
SERVERURL=http://www.myserver.com:8555
HOSTMAGIC=www.myserver.com:8555
URLMAGIC=/some
DBTYPE=ORACLE
DBNAME=mydb
DBUSER=mysite
DBPWD=secret

[anothersite]
SERVERURL=http://www.myserver.com:8555
#HOSTMAGIC=www.myserver.com:8555
URLMAGIC=/some/path
DBTYPE=ORACLE
DBNAME=mydb
DBUSER=anothersite
DBPWD=secret

Here, our example request would match the first section and not the second. Why? Because the
matching is always done sequentially from the top to the bottom of the config file. When the first section
is considered, the condition is fulfilled (/some/path/index.html starts with /some) and therefore,
the request will be served by this section. The other section, which would be more specific, is not taken
into consideration anymore. This is probably not what you intended, therefore keep in mind the
following rule of thumb: Always put more specific sections first, and the more general ones afterwards,
i.e. first /some/path, then /some, and then /, not the other way round.

Did you notice the SERVERURL parameter above? Contrarily to what you might have expected, this one
does not have anything to do with the matching mechanism!

The SERVERURL is needed for generating the <base href=”...” /> tag in the generated web page,
or for creating absolute addresses in IMG and A tags, if base tag generation is suppressed via
CREATEBASETAG. Therefore it is important to define this parameter as well. If it is undefined, the value
of the SERVER_URL web server environment variable is used. This is very useful if you run a site under a
lot of different names, e.g. if www.mysite.com, www.mysite.net, and www.mysite.org all point to
the same WCM site. Instead of creating three different sections with the respective SERVERURLs and
HOSTMAGICs, just use a single section without SERVERURL and HOSTMAGIC unset, and have your web
server set the SERVER_URL variable to the correct value. For example in Apache, you can put a SetEnv
directive into each virtual host section. You can even use a RewriteRule with a
[E=SERVER_URL:%{HTTP_HOST}] flag to make your web server generate a page for every host name
that manages to get through to it (if that is what you want ;-)).

Livelink WCM Server - System Integration Manual Page 21


Common Pitfalls System Overview and Concepts

2.4.3 Internationalized Domain Names (IDN)

If you run a site with non-ASCII characters in its host name, i.e. www.ténéré.ne, then use the
punycode-encoded name for SERVERURL (and HOSTMAGIC, if required), e.g.

SERVERURL=http://www.xn--tnr-bmabb.ne

2.5 Common Pitfalls


This section discusses some of the most common pitfalls that you might encounter during setup. They are
for the most part easy to overcome, but very often, they stress your nerves and it takes hours to find
them, that's why we list them here.

You are not expected to learn all this by heart. Just remember that this section exists, and come back here
if any problems arise.

2.5.1 Library Search Paths

A very common problem is that database, LDAP, or other connections to external resources fail because
the necessary libraries cannot be loaded successfully. Having the correct path / filename in the config
file is not the only prerequisite for the library to be loaded successfully. Very often, the library itself
loads other libraries in turn. In order to find them, the dynamic loader follows a search path which is
defined in the LD_LIBRARY_PATH variable (Linux, Solaris), or in the PATH variable (Windows). It is
therefore important that these variables are set as described in the installation chapter further below. If
you would like to know, which libraries a particular library depends on, you can use the ldd command
under Linux and Solaris. For Windows users, there is a nice utility available at
http://www.dependencywalker.com/.

In this respect, special care must be taken when using cron to automate tasks under Linux or Solaris.
See below.

2.5.2 Environment variables and cron (Linux/Solaris only)

While at jobs inherit the environment from the shell they are created from, cron jobs do not. You
therefore have to set all the necessary environment variables when the job executes. The easiest way to
do this is to set everything in a shell script which then executes the actual command. If you have several
jobs that need the same environment, you could also set the variables directly in the crontab. See the

Page 22 Livelink WCM Server - System Integration Manual


System Overview and Concepts Common Pitfalls

crontab(5) manpage for details.

2.5.3 Time Synchronization

It is very important that all your servers agree on the current time. If there is a difference between web
server time and database server time, strange things will happen (such as newly created objects that can
be seen in one place, but can't be accessed in another). Time synchronization can be achieved by using
NTP (Network Time Protocol) under Linux/Solaris, or by placing your servers into the same domain
under Windows.

Livelink WCM Server - System Integration Manual Page 23


Common Pitfalls System Overview and Concepts

Page 24 Livelink WCM Server - System Integration Manual


Basic Installation Automatic Demo Setup (Windows Platform)

3 Basic Installation

3.1 Automatic Demo Setup (Windows Platform)


Purpose The basic idea behind the automatic demo setup is to quickly have a basic
installation up and running for sales or demonstration purposes. This setup
includes a database server, a web server and the WCM Server itself.

The demo setup is documented in its own separate manual, which is part of the
demo setup distribution.

3.2 Quick Start Setup (Windows Platform)


Introduction This chapter is for the impatient! If you want to get a minimal installation up and
running without reading through the whole documentation, then the following is
for you. The aim is to provide step-by-step installation instructions for a staging
server, using the IIS web server and the Microsoft SQL Server database. If you
are looking for more detailed explanations, or if you would like to use a web
server other than IIS or a database other than MSSQL, please have a look at the
“Manual Setup” chapters.

Installation The installation is divided into these steps:


procedure
1. Creating the WCM Server directory structure
2. Creating the database(s)
3. Creating the WCM Server table structure
4. Loading the contents into the database (schema)
5. Setting up and configuring the web server
6. Customizing the WCM Server configuration file(s)

3.2.1 Create the Installation Directory

Comments First of all, create the basic directory structure and all the required files in it. You

Livelink WCM Server - System Integration Manual Page 25


Quick Start Setup (Windows Platform) Basic Installation

can do this by unpacking the ready-to-install ZIP archives which you can
download from the Knowledge Center.

Unpack Create a directory C:\Livelink\wcm\type1 and extract the contents of


ready-to-install livelink-wcm-type1-base-9.5.0.nnn.zip into it. E.g. if you use WinZIP,
ZIP archives right-click the archive and select Extract to… from the context menu. Then
select C:\Livelink\wcm\type1 as the path to extract to and make sure that
Use folder names is checked. If you use the archiver wizard which is
integrated into the Windows XP Explorer, you will never reach the final screen
when extracting an older (pre 9.5.0) version of the base package. This is because
this archive contains only folders and no files. Nevertheless, after having clicked
Next, the folders should have been created and you can click the Cancel button.
Starting with 9.5.0, the base package contains a dummy text file, and the archive
should unpack normally. After the base package, unpack the other zip files you
need. For a minimal installation, you need at least: client,
datfiles+scripts, one of the engines packages (namely engines-iis),
and plugins+tools. If you want to try out everything, you can also unpack all
the packages together; they do not conflict with each other (well, actually the
engine packages do, because they all contain sample configuration files of the
same name, but these are in fact identical). If you have unzip.exe in your path
and you want to unpack all the packages, do the following:

C:\>cd Livelink\wcm\type1
C:\Livelink\wcm\type1>for %f in (c:\temp\livelink*.zip) do unzip –o %f

If you are prompted whether you want to overwrite an already existing sample
configuration file in sampleconf, respond [A] (always) or [N] (never) (it does not
matter).You can also try and use the -o switch in order to avoid these prompts
and overwrite any existing files.

Set the System Include C:\Livelink\wcm\type1\bin in your system path:


Path
Right-click My Computer → Properties → Advanced → Environment
Variables and double-click on the Path variable among the System variables.
Append C:\Livelink\wcm\type1\bin to the list of directories and click OK
twice. Reboot the machine to make sure that the services are initialized with the
new environment.

Page 26 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Windows Platform)

3.2.2 Prepare the Database: Microsoft SQL Server

Create new Create an owner (SQL server login) and three new databases: wcmstarter,
databases wcmdemo, wcmsitemanager.

1. Launch the Enterprise Manager: On the Start menu, point to Programs,


then point to Microsoft SQL Server and click Enterprise Manager.
2. Choose your server and open the Security folder by double-clicking, then
right-click Login and select New Login from the context menu. The SQL
Server Login Properties dialog will open.
3. Enter the login ID for the user in the Name field, e.g. wcmowner.
4. Then select SQL Server Authentication and enter a password for the
user. SQL Server will present a dialog for password confirmation.
5. Right-click on Databases and select New Database… from the context
menu. The Database Properties dialog will open.
6. Enter the database name (wcmstarter) in the Name field.
7. Right-click on the created database and select Properties from the context
menu. The Properties dialog will open.
8. Select Simple for the recovery model within Options. The “Simple”
recovery model is usually sufficient for the WCM Server.
9. Then change the database owner for the WCM Server databases. To do this,
open the SQL Server Query Analyzer from the Program group in the
Start menu or from the Tools menu in the Enterprise Manager. If the SQL
Server Query Analyzer is launched from the Enterprise Manager, it will
usually show the last selected database.
Use the SQL Server command sp_changedbowner to change the database
owner.
Command input: sp_changedbowner %owner%, true
For example, if you used the name wcm_owner for the new user, type:

sp_changedbowner wcm_owner, true

To execute a SQL Server command, click the green Play button in the
toolbar, select Execute from the Query menu or press the [F5] key.

Repeat the steps starting with step 5 for the remaining two databases (wcmdemo
and wcmsitemanager).

Livelink WCM Server - System Integration Manual Page 27


Quick Start Setup (Windows Platform) Basic Installation

Create the table The script SiteDatabase-Create-R95-mssql.sql will be used to create the
structure table structure for the new database.

1. Start the SQL Server Query Analyzer.


2. Make sure that the correct database is selected for creating the table structure.
If it is not, select the correct database from the drop-down menu.
3. Open the SQL script SiteDatabase-Create-R95-mssql.sql for
creating the WCM Server table structure. It is found in
C:\Livelink\wcm\type1\scripts.
4. Run the SQL script using the [F5] key.
5. Repeat this for the remaining databases.
6. Close the SQL Server Query Analyzer.

Create ODBC 1. Open the Data Sources (ODBC) control panel (for Windows or later it will be
connections to found under Administrative Tools).
the databases
2. Add a new ODBC connection under the System DSN tab.
3. Select the driver to be used for the connection. In this case, select SQL
Server. Click Finish.
4. Enter a unique name for the ODBC connection in the Name field. This name
must be specified in the configuration files. We recommend using the same
name as for the database to avoid too many different names.
5. A description may be entered in the corresponding field.
6. Select (local) for the server connection. Click Next.
7. Choose With SQL Server authentication… and enter the database
owner and password.
8. Click the Client Configuration... and select TCP/IP for the network
connection protocol. Click Next.
9. Activate Change the default database to and select your database.
Click Next.
10. Use the default settings here. Click Finish.
11. The Test Data Source... button may be used to test the ODBC
connection. Click OK.
12. Now the new system data source name (DSN) for the ODBC connection will
appear in the list.
13. Create ODBC DSNs for the other databases in the same way, then close the
ODBC Data Source Administrator dialog by confirming with OK.

Page 28 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Windows Platform)

3.2.3 Load WCM Server Web Site Data

Transfer web site Loading web site data to the database is performed with the SQLTransfer tool
data to the (after the WCM Server table structure has been created). The release set includes
database using files for an example database (SiteExample.zip for database/user wcmdemo),
SQLTransfer the Site Manager (formerly known as Content Manager, in file
SiteManager.zip for database/user wcmsitemanager) and a starter database
(SiteStarter.zip for database/user wcmstarter). These files are normal ZIP
archives, containing one single file of the same name as the archive, but with a
.dat extension. The SQLTransfer tool is able to process such archives directly,
you do not need to unpack them first. Analogously, when exporting data, you may
enter a file name with a .zip extension and SQLTransfer directly creates a
compressed archive. Therefore, as a generalization, such ZIP files are referred to
as “DAT files” as well.

SQLTransfer reads the data from these DAT files and SQL-inserts them into the
tables that have been created in the last step.

1. Start the SQLTransfer.exe tool from the C:\Livelink\wcm\type1\bin


subdirectory.
2. Launch the ScriptWizard from the menu bar.
3. DAT files can be loaded or created in the source and target device settings.
To load a DAT file, select the file as the source device.
4. Under target device, indicate the destination type (database).
5. Then select the ODBC DSN for the target database.
6. Enter the database owner and password after choosing your connection.
7. Confirm the next four steps of the script wizard with Next and the last step
with Finish.
8. The script has now been created. Run the script using the Start
SQLTransfer! command in the menu bar.
9. A warning will be displayed that all data in the tables will be overwritten.
Confirm with Yes to begin loading.
10. When the data transfer is complete, repeat these steps for the remaining two
DAT files and their respective databases/users. Then close the SQLTransfer
tool.
11. You probably don’t want to save the transfer script and protocol, therefore
say No when asked whether you want to save changes.

Please refer to chapter “SQLTransfer” on page 188 for detailed information on


SQLTransfer.

Livelink WCM Server - System Integration Manual Page 29


Quick Start Setup (Windows Platform) Basic Installation

3.2.4 Configure the Web Server: Microsoft Internet Information Service 6.0

Verify file system Start an Explorer window and display the properties of
permissions C:\Livelink\wcm\type1\bin. Go to Security → Advanced → Effective
Rights and select IIS_WPG. Make sure that this group has read permissions in
this directory. Then do the same for the C:\Livelink\wcm\type1\cache and
C:\Livelink\wcm\type1\logs directories. Here, IIS_WPG should have read
and write rights.

Configure default Go to Start → Administrative Tools → Internet Information


application pool Services Manager and select Application Pools. Display the properties of
DefaultAppPool and change them according to the following two screenshots:

Page 30 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Windows Platform)

Grant execute Go to Internet Information Services Manager → Web Service


permission for Extensions → Add new web service extension.
CMEngine in IIS
Fill in the properties like this:

Create virtual 1. Set up a new virtual directory named iisengine, which references the
directory directory with the DLLs and related configuration files, using the Internet
Service Manager. It is mandatory that the new application use this name.

Livelink WCM Server - System Integration Manual Page 31


Quick Start Setup (Windows Platform) Basic Installation

2. Right-click Default Web Site, point to New and click Virtual


Directory.
3. When the Virtual Directory Creation Wizard appears, click Next. It is
mandatory that the virtual directory be named iisengine and point to the
directory with the DLLs and related configuration files. Confirm with Next.
4. Click Browse... and select the directory with the DLLs and related
configuration files (C:\Livelink\wcm\type1\bin). Confirm with Next.
5. In the permissions dialog, select Execute (such as ISAPI
applications or CGI)and deselect Read.
6. Click Finish to exit the wizard and complete configuration. The virtual
directory has been created. The WCM Server files can be seen in the right
window frame.
7. Right-click the virtual directory iisengine and select Properties.

8. Right-click Default Web Site and select Properties.


9. Select the ISAPI Filters tab. Click Add… and load a new filter.
10. Assign it the same name as specified in the Web Service Extensions dialog
(i.e. CMEngine) and specify the path where the file (cmengine.dll) is
located.
11. Click Apply to activate the filter. Then click OK to close the properties
dialog.

Page 32 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Windows Platform)

3.2.5 Customize the configuration file

Minimal set of Copy the cmengine-n.n.n.cfg sample from


parameters that C:\Livelink\wcm\type1\sampleconf to the web server directory
need to be (C:\Livelink\wcm\type1\bin) and rename it to cmengine.cfg. Then the
changed placeholder entries (between angle brackets, e.g. <hostname>) should be
replaced with appropriate values for the local setup. Comment lines start with a
[#] character.

You should change (and eventually uncomment) at least the following


configuration directives to ensure proper operation:

• LICENSEKEY, LICENSEHOLDER

• CM_DBTYPE=MSSQL
• CM_DBNAME=wcmsitemanager
• CM_DBUSER=wcmowner
• CM_DBPWD=(whatever you chose before)
• LOGBASE=C:\Livelink\wcm\type1\logs\
• MAILSERVER= 127.0.0.1
• SERVERURL=http://localhost
• URLMAGIC=/
• DBTYPE=MSSQL
• DBNAME=wcmstarter
• DBUSER=wcmowner
• DBPWD=(whatever you chose before)
• and the [<Section Name>] by [starter].

Now the web server must be restarted to make the configuration changes active.

Try it! Now you are ready to start a browser on the server and hit http://localhost/.
You should now see a nice welcome page. If you do: Congratulations!

If not, it is probably best if you read the explanations in the “Manual Setup”
chapters and the “General Information” at the beginning of this manual. Also,
have a look at “Testing your installation” on page 84 and at the log files located in
C:\Livelink\wcm\type1\logs.

Livelink WCM Server - System Integration Manual Page 33


Manual Setup (Windows Platform) Basic Installation

3.3 Manual Setup (Windows Platform)


Installation The installation is divided into these steps:
procedure
1. Creating the WCM Server directory structure
2. Creating the database(s) / database schemata
3. Creating the WCM Server table structure
4. Loading the contents into the database (schema)
5. Setting up and configuring the web server
6. Customizing the WCM Server configuration file(s)

3.3.1 Create the Installation Directory

Comments First of all, create the basic directory structure and copy all the required files into
it. You can do this either manually, using the files on the distribution CD, or by
unpacking the ready-to-install ZIP archives which you can download from the
Knowledge Center.

Unpack (If you don’t have the ZIP archives, go straight to the next step, “Copy files
ready-to-install manually”). Create a directory C:\Livelink\wcm\type1 and extract the
ZIP archives contents of livelink-wcm-type1-base-9.5.0.nnn.zip into it. E.g. if you
use WinZIP, right-click the archive and select Extract to… from the context
menu. Then select C:\Livelink\wcm\type1 as the path to extract to and make
sure that Use folder names is checked. If you use the archiver wizard which is
integrated into the Windows XP Explorer, you will never reach the final screen
when extracting an older version (pre 9.5.0) of the base package. This is because
this archive contains only folders and no files. Nevertheless, after having clicked
Next, the folders should have been created and you can click the Cancel button.
Starting with 9.5.0, the base package contains a dummy text file, and the archive
should unpack normally. After the base package, unpack the other zip files you
need. For a minimal installation, you need at least: client,
datfiles+scripts, one of the engines packages, depending on the web
server you use, and plugins+tools. If you are unsure, or if you want to try out
everything, you can also unpack all the packages together; they do not conflict
with each other (well, actually the engine packages do, because they all contain
sample configuration files of the same name, but these are in fact identical). If
you have unzip.exe in your path and you want to unpack all the packages, do
the following:

Page 34 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

C:\>cd Livelink\wcm\type1
C:\Livelink\wcm\type1>for %f in (c:\temp\livelink*.zip) do unzip %f

If you are prompted whether you want to overwrite an already existing sample
configuration file in sampleconf, respond [A] (always) or [N] (never) (it does not
matter).You can also try and use the -o switch in order to avoid these prompts
and overwrite any existing files.

Then skip the next step and go straight to “Prepare the Database”.

Copy files (If you have already unpacked the ZIP archives in the last step, just skip this one.)
manually Log in as Administrator, start a command line, and enter the following (we
assume the WCM Server distribution CD is placed in the CDROM drive on drive
D:):

C:\Documents and Settings\Administrator>cd \


C:\>md Livelink
C:\>cd Livelink
C:\Livelink>md wcm
C:\Livelink>cd wcm
C:\Livelink\wcm>md type1
C:\Livelink\wcm>cd type1
C:\Livelink\wcm\type1>md backup bin cache dat logs maps sampleconf scripts
word
C:\Livelink\wcm\type1>md cache\session cache\cmengine cache\vo
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\InformationServer\CMEngine.dll” bin\cmengine.dll
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\InformationServer\CMEngine-IIS.pdb” bin\CMEngine-IIS.pdb
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\Apache
2.0\CMEngine.dll” bin\cmengine-ap2.dll
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\Apache
2.0\CMEngine-ap2.pdb” bin\CMEngine-ap2.pdb
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\SunONE\CMEngine.dll” bin\cmengine-ns.dll
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\SunONE\CMEngine-ns.pdb” bin\CMEngine-ns.pdb
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\dbghelp.dll”
bin\dbghelp.dll
C:\Livelink\wcm\type1>copy D:\Windows\Tools\Deployment\Deployment.exe
bin\deployment.exe
C:\Livelink\wcm\type1>copy D:\Windows\Tools\Deployment\Deployment.pdb
bin\Deployment.pdb
C:\Livelink\wcm\type1>copy “D:\Windows\Site Management\*.*” bin
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\Livelink Enter
prise\*.dll” bin
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\LDAP\Ldap.exe”
bin\ldap.exe
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\LDAP\Ldap.pdb”
bin\Ldap.pdb
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\LDAP\LibrariesV5\*.dll” bin
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\LDAP\ldapsslsc.dll” bin
C:\Livelink\wcm\type1>copy “D:\Solutions\Java Connectiv
ity\LiveConnect\liveconnect.jar” bin
C:\Livelink\wcm\type1>copy D:\Windows\Tools\Replication\Replication.exe

Livelink WCM Server - System Integration Manual Page 35


Manual Setup (Windows Platform) Basic Installation

bin\replication.exe
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\SessionManagement\SessionManagement.exe” bin\sessionmanagement.exe
C:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv
er\SessionManagement\SessionManagement3.pdb” bin\SessionManagement3.pdb
C:\Livelink\wcm\type1>copy “D:\Windows\Tools\SQLTransfer\*.*” bin
C:\Livelink\wcm\type1>copy
“D:\Documentation\Manuals\SiteAdmin_Reference.chm bin
C:\Livelink\wcm\type1>copy D:\Windows\Tools\TaskAgent\TaskAgent.exe
bin\taskagent.exe
C:\Livelink\wcm\type1>copy “D:\Databases\Examples\*.*” dat
C:\Livelink\wcm\type1>copy “D:\Databases\Site Manager\*.*” dat
C:\Livelink\wcm\type1>copy D:\Configuration\*.cfg sampleconf
C:\Livelink\wcm\type1>copy D:\Databases\Scripts\*.* scripts
C:\Livelink\wcm\type1>copy D:\Configuration\UnicodeMaps\*.* maps
C:\Livelink\wcm\type1>copy D:\Solutions\Word Authoring\*.* word

Finally, copy a sample configuration file to the bin directory:

C:\Livelink\wcm\type1>copy sampleconf\cmengine_stage.cfg bin\cmengine.cfg

Set the System Include C:\Livelink\wcm\type1\bin in your system path:


Path
Right-click My Computer → Properties → Advanced → Environment
Variables and double-click on the Path variable among the System variables.
Append C:\Livelink\wcm\type1\bin to the list of directories and click OK
twice. Reboot the machine to make sure that the services are initialized with the
new environment.

3.3.2 Prepare the Database: Microsoft SQL Server

Comments The creation and administration of a new database for Microsoft SQL Server is
done using the SQL Enterprise Manager.

MS SQL Server must not be installed with case-sensitive settings! Also, SQL
Server and Windows authentication in the server properties’ Security
tab must be enabled.
Important

Create new Create an


owner and three new databases: wcmstarter, wcmdemo,
databases wcmsitemanager.

1. Launch the Enterprise Manager: On the Start menu, point to


Programs, then point to Microsoft SQL Serverand click Enterprise
Manager.

Page 36 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

2. Choose your server and open the Security folder by double-clicking, then
right-click Login and select New Login… from the context menu. The SQL
Server Login Properties dialog will open.
3. Enter the login ID for the user in the Name field, e.g. wcmowner.
4. Then select SQL Server Authentication and enter a password for the
user. SQL Server will present a dialog for password confirmation.
5. Right-click on Databases and select New Database… from the context
menu. The Database Properties dialog will open.
6. Enter the database name (wcmstarter) in the Name field.
7. Right-click on the created database and select Properties from the context
menu. The Properties dialog will open.
8. Select Simple for the recovery model within Options. The “Simple”
recovery model is usually sufficient for the WCM Server.
9. Then change the database owner for the WCM Server databases. To do this,
open the SQL Server Query Analyzer from the program group in the
Start menu or from the Tools menu in the Enterprise Manager. If the
SQL Server Query Analyzer is launched from the Enterprise
Manager, it will usually show the last selected database.
10. Use the SQL Server command sp_changedbowner to change the database
owner.
11. Command input: sp_changedbowner %owner%, true
12. For example, if you used the name wcm_owner for the new user, type:

sp_changedbowner wcm_owner, true

To execute a SQL Server command, click the green Play button in the
toolbar, select Execute from the Query menu or press the [F5] key.

Repeat the steps starting with step 5 for the remaining two databases (wcmdemo
and wcmsitemanager).

Create the table The script SiteDatabase-Create-R95-mssql.sql will be used to create the
structure table structure for the new database.

1. Start the SQL Server Query Analyzer.


2. Make sure that the correct database is selected for creating the table structure.
If it is not, select the correct database from the drop-down menu.
3. Open the SQL script SiteDatabase-Create-R95-mssql.sql for
creating the WCM Server table structure. It is found in
C:\Livelink\wcm\type1\scripts.

Livelink WCM Server - System Integration Manual Page 37


Manual Setup (Windows Platform) Basic Installation

4. Run the SQL script using the [F5] key.


5. Repeat this for the remaining databases.
6. Close the SQL Server Query Analyzer.

Create ODBC 1. Open the Data Sources (ODBC) control panel (for Windows 2000 or later it
connections to will be found under Administrative Tools).
the databases
2. Add a new ODBC connection under the System DSN tab.
3. Select the driver to be used for the connection. In this case, select SQL
Server. Click Finish.
4. Enter a unique name for the ODBC connection in the Name field. This name
must be specified in the configuration files. We recommend using the same
name as for the database to avoid too many different names.
5. A description may be entered in the corresponding field.
6. Select (local) for the server connection. Click Next.
7. Choose With SQL Server authentication…and enter the database
owner and password.
8. Click the Client Configuration... and select TCP/IP for the network
connection protocol. Click Next.
9. Activate Change the default database to and select your
database. Click Next.
10. Use the default settings here. Click Finish.
11. The Test Data Source... button may be used to test the ODBC
connection. Click OK.
12. Now the new system data source name (DSN) for the ODBC connection will
appear in the list.

Create ODBC DSNs for the other databases in the same way, then close the
ODBC Data Source Administrator dialog by confirming with OK.

3.3.3 Prepare the Database: Oracle

Comments For each new web site you have to create a new database user. We are going to
create three different sites, and therefore we need three database users. These
users are: wcmdemo (for the example/demo site), wcmstarter (an almost empty
site for you to play with, starting from scratch), and wcmsitemanager (the
WCM Server Site Manager aka Content Manager). In our example we suppose
that there exists a tablespace USERS where we store our tables and indexes.

Page 38 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

Create new DB 1. Open a new command window: On the Start menu, click Run.
schemata
2. Enter cmd and click OK.
3. Log into the Oracle SQL Server by typing sqlplus on the command prompt
and pressing the [Enter] key.
4. Log in using sys or system. By default, Oracle installs the users system
and sys with the passwords manager and change_on_install
respectively.
5. Create three new users with the connect and resource roles. You can find
the necessary statements below and on top of the
SiteDatabase-Create-R95-oracle.sql script, which we will use to
create the table structure.
This is shown in the following example:

C:\>sqlplus system/manager@mydb
SQL*Plus: Release 9.2.0.5.0 - Production on Tue Sep 9 14:54:17 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
JServer Release 9.2.0.5.0 - Production
SQL>create user wcmstarter identified by secret default tablespace
users temporary
tablespace temp;
User created.
SQL>create user wcmdemo identified by secret default tablespace users
temporary tablespace
temp;
User created.
SQL>create user wcmsitemanager identified by secret default tablespace
users temporary tablespace
temp;
User created.
SQL>grant connect, resource to wcmstarter, wcmdemo, wcmsitemanager;
Grant succeeded.
SQL>exit

6. Exit sqlplus with “exit”, so that the user system is no longer logged in.

Create the table The script SiteDatabase-Create-R95-oracle.sql will be used to create the
structure table structure for the new databases. This is also done using the command
prompt.

Log into the Oracle SQL Server as the schema owner by typing

C:\>sqlplus wcmstarter/secret@mydb

and pressing the [Enter] key.

Livelink WCM Server - System Integration Manual Page 39


Manual Setup (Windows Platform) Basic Installation

Run the SQL script SiteDatabase-Create-R95-oracle.sql:

SQL>@C:\Livelink\wcm\type1\scripts\SiteDatabase-Create-R95-oracle.sql

Log out of the Oracle server with exit after the tables have been created. Repeat
the above two steps for the remaining two users wcmdemo and wcmsitemanager.

3.3.4 Load WCM Server Web Site Data

Transfer web site Loading web site data to the database is performed with the SQLTransfer tool
data to the (after the WCM Server table structure has been created). The release set includes
database using files for an example database (SiteExample.zip for database/user wcmdemo),
SQLTransfer the Site Manager (formerly known as Content Manager, in file
SiteManager.zip for database/user wcmsitemanager) and a starter database
(SiteStarter.zip for database/user wcmstarter). These files are normal ZIP
archives, containing one single file of the same name as the archive, but with a
.dat extension. The SQLTransfer tool is able to process such archives directly,
you do not need to unpack them first. Analogously, when exporting data, you may
enter a file name with a ZIP extension and SQLTransfer directly creates a
compressed archive. Therefore, as a generalization, such ZIP files are referred to
as “DAT files” as well.

SQLTransfer reads the data from these DAT files and SQL-inserts them into the
tables that have been created in the last step.

1. Start the SQLTransfer.exe tool from the C:\Livelink\wcm\type1\bin


subdirectory.
2. Launch the ScriptWizard from the menu bar.
3. DAT files can be loaded or created in the source and target device settings.
To load a DAT file, select the file as the source device.
4. Under target device, indicate the destination type (database).
5. Then, if you use MSSQL, select the ODBC DSN for the target database, or, if
you use Oracle, type in the Net8 service name of your database instance (i.e.
the one you have in your tnsnames.ora).
6. Enter the database owner and password after choosing your connection.
7. Confirm the next four steps of the script wizard with Next and the last step
with Finish.
8. The script has now been created. Run the script using the Start
SQLTransfer! command in the menu bar.

Page 40 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

9. A warning will be displayed that all data in the tables will be overwritten.
Confirm with Yes to begin loading.
10. When the data transfer is complete, repeat these steps for the remaining two
DAT files and their respective databases/users. Then close the SQLTransfer
tool.
11. You probably don’t want to save the transfer script and protocol, therefore
say No when asked whether you want to save changes.

Please refer to chapter “SQLTransfer” on page 188 for detailed information on


SQLTransfer.

3.3.5 A word about web server processes

Intro The CMEngine cache has a per-process cache and a per-process database
connection pool. When the web server more than one process, it takes several
requests to fill the cache of all of them. If the load on the web server decreases
(i.e. there are less simultaneous requests), and the web server drops superfluous
processes, then all their cache contents are lost. When, upon increasing load, the
web server starts creating new server processes, they are recreated with an empty
cache. Such behaviour is very bad for performance. IIS and Sun Web Server both
only use one process in their default configuration, and therefore you will not
encounter this problem if you don’t change it. Apache, on the other hand, must
explicitely be configured to use a constant number of processes. Please see the
respective paragraph below for configuration details.

Reasons for If your server has more than one CPU (especially if it has more than two), you
using more than might want to use an equal number of web server processes and (especially under
one process Solaris) bind each of them to a CPU. Binding a process to a CPU is done with the
pbind command under Solaris, and by setting the process's affinity under
Windows. Linux does not currently support processor binding.

If you decide to run more than one process, please make sure that the number of
processes remains the same, no matter if the load is high or not, for the reasons
outlined above.

If you have a machine with only two processors, or if you have more but your
web site does not have many requests to serve concurrently, then you should
probably do it the easy way and use only one web server process.

Livelink WCM Server - System Integration Manual Page 41


Manual Setup (Windows Platform) Basic Installation

3.3.6 Configure the Web Server: Microsoft Internet Information Service 5.0
(Windows 2000)

Procedure 1. On the Start menu, point to Programs, then point to Administrative


Tools and click Internet Services Manager.
2. Right-click Default Web Site, point to New and click Virtual
Directory.
3. When the Virtual Directory Creation Wizard appears, click Next.
4. It is mandatory that the virtual directory be named iisengine and point to
the directory with the DLLs and related configuration files. Confirm with
Next.
5. Click Browse... and select the directory with the DLLs and related
configuration files (C:\Livelink\wcm\type1\bin). Confirm with Next.
6. In the permissions
dialog, select Execute (such as ISAPI
applications or CGI) and deselect Read.
7. Click Finish to exit the wizard and complete the configuration.
8. The virtual directory has been created. The WCM Server files can be seen in
the right window frame.
9. Right-click the virtual directory iisengine and select Properties.
10. The default settings should appear as follows.

Page 42 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

11. Right-click the Default Web Site and select Properties.


12. Select the ISAPI Filters tab. Click Add… and load a new filter.
13. Assign a unique name (e.g. CMEngine) and specify the path where the file is
located.
14. Load the filter required for your system (read the tip at the beginning of this
section). Click Apply to activate the filter. Then click OK to close the
properties dialog.
15. Reopen the properties dialog and select the ISAPI Filters tab. The DLL
should now be loaded and marked green as shown below. If the DLL is not
loaded (red arrow pointing down), it could be that the associated
configuration file could not be found, perhaps due to an incorrect name.
16. The ISAPI filters should appear as follows.

Livelink WCM Server - System Integration Manual Page 43


Manual Setup (Windows Platform) Basic Installation

17. Edit the configuration files for the corresponding databases (see Modifying
the CFG Files).
18. To activate changes in the configuration file, it is not enough to stop and
restart the web server using the Internet Service Manager, because the
DLL’s will not be reloaded. Restart the World Wide Web Publishing
service. Restarting the service flushes the DLL’s from memory and reloads
everything anew, including the new configuration.

Multiple web sites can also be operated under the default web site of the web
server with the same configuration file, using customized section entries.

Tip If the default web site is not being used but rather several virtual servers, loading
the DLL’s is not done in the web site properties but instead one level higher in the
properties of the web server: Right-click the Default Web Site and select the
server properties. Then in the Master Properties section, click Edit… for the
WWW Service. (Configuring the filter is done as in step 12.)

Page 44 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

To replace the engines with a new version, the web server must be stopped before
the DLLs may be overwritten! The web server must also be restarted if the
configuration file has been changed.
Tip

The user running the web server (usually a user called “IUSR_…”) must have at
least “read and execute” permissions on the files. Although the ISAPI filters show
up green, the IIS web server will hang immediately after the first request if the
Tip
NTFS permissions are not set correctly.

In contrast to other web servers, the engine for IIS must be called cmengine.dll
and must not be renamed!

Important

3.3.7 Configure the Web Server: Microsoft Internet Information Service 6.0
(Windows 2003)

Note In contrast to earlier versions of Windows, the Windows Server 2003 has a
restrictive permission set by default. This means that you have to explicitly allow
a user file system access, or an ISAPI filter to run inside the web server
application pools.

Verify file system Start an Explorer window and display the properties of
permissions C:\Livelink\wcm\type1\bin. Go to Security → Advanced → Effective
Rights and select IIS_WPG. Make sure that this group has read permissions in
this directory. Then do the same for the C:\Livelink\wcm\type1\cache and
C:\Livelink\wcm\type1\logs directories. Here, IIS_WPG should have read
and write rights. If you are using Oracle, give the IIS_WPG group read and
execute access to C:\Oracle, C:\Oracle\Ora92 and C:\Oracle\ora92\bin
(or whereever your ORACLE_BASE and ORACLE_HOME are located).

Configure default Go to Start → Administrative Tools → Internet Information


application pool Services Manager and select Application Pools. Display the properties of
DefaultAppPool and change them according to the following two screenshots:

Livelink WCM Server - System Integration Manual Page 45


Manual Setup (Windows Platform) Basic Installation

Page 46 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

Grant execute Go to Internet Information Services Manager → Web Service


permission for Extensions → Add new web service extension.
CMEngine in IIS
Fill in the properties like this:

Livelink WCM Server - System Integration Manual Page 47


Manual Setup (Windows Platform) Basic Installation

Create virtual 1. Set up a new virtual directory named iisengine, which references the
directory directory with the DLLs and related configuration files, using the Internet
Service Manager. It is mandatory that the new application use this name.
2. Right-click Default Web Site, point to New and click Virtual
Directory.
3. When the Virtual Directory Creation Wizard appears, click Next. It is
mandatory that the virtual directory be named iisengine and point to the
directory with the DLLs and related configuration files. Confirm with Next.
4. Click Browse... and select the directory with the DLLs and related
configuration files (C:\Livelink\wcm\type1\bin). Confirm with Next.
5. In the permissions dialog, select Execute (such as ISAPI
applications or CGI) and deselect Read.
6. Click Finish to exit the wizard and complete configuration. The virtual
directory has been created. The WCM Server files can be seen in the right
window frame.
7. Right-click the virtual directory iisengine and select Properties.

Page 48 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

8. Right-click Default Web Site and select Properties.


9. Select the ISAPI Filters tab. Click Add… and load a new filter.
10. Assign it the same name as specified in the Web Service Extensions dialog
(i.e. CMEngine) and specify the path where the file (cmengine.dll) is
located.
11. Click Apply to activate the filter. Then click OK to close the properties
dialog.

The next step is to adapt the configuration files to your environment, see page 83

Provided that you have already edited your cmengine.cfg, open a browser and
do a first hit on your WCM Server web site. Then reopen the properties dialog
and select the ISAPI Filters tab. The DLL should now be loaded and marked
green as shown below. If a DLL is not loaded (red arrow pointing down), it could
be that the associated configuration file has an incorrect name and could not be
found. (Please note that, in contrast to older versions of IIS, the green arrow is
only shown after the first hit to your web site!).

Livelink WCM Server - System Integration Manual Page 49


Manual Setup (Windows Platform) Basic Installation

In contrast to other web servers, the engine for IIS must be called cmengine.dll
and must not be renamed!

Important

3.3.8 Configure the Web Server: Apache HTTP Server 2.0

Procedure Open the httpd.conf file for the Apache web server. This may be done using an
ordinary text editor. The file is usually located under C:\Program
Files\Apache Group\Apache2\conf\httpd.conf.

The following line must be appended to the bottom of httpd.conf for the
CMEngine:

LoadModule CMEngine_Module
"C:/Livelink/wcm/type1/server/bin/cmengine-ap2.dll"

Page 50 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Windows Platform)

It is recommended to use slashes (“/”) instead of back-slashes (“\”) within the


path.

Important The order of the lines defines the order of loading and initializing and it is
important to set the engine as the last module to be initialized.

Important Please remove (or comment out) the following lines from your httpd.conf in
order to avoid ‘Page not found’ problems when using the CMEngine:

#LoadModule dir_module modules/mod_dir.so


#DirectoryIndex index.html index.html.var

This module tries to convert accesses to a directory /foo/ into a localized index
page like /foo/index.html.en, and as this module can be called before the
CMEngine handles the request, you will get a 404 error message, because a WCM
database usually doesn’t contain page names like index.html.en.

3.3.9 Configure the Web Server: Sun Java System Web Server 6.1 (aka iPlanet)

Procedure 1. Open the magnus.conf file. This may be done using an ordinary text editor.
The file is usually located under
C:\iPlanet\Servers\https-yourserver\config\magnus.conf.
Add the following lines to magnus.conf (Note that there must not be a line
break on the Init… line, and no spaces in the argument to funcs):

<end of the initialization entries>


Init fn=load-modules shlib="C:/Livelink/wcm/type1/bin/cmengine-ns.dll"
funcs=”CMEngine_Init,CMEngine_Service,CMEngine_ObjectType”↵
Init fn=”CMEngine_Init”↵

2. Open the obj.conf file. The file is located in the same directory as
magnus.conf.
Add the following lines to obj.conf:

<end of the object type entries>


ObjectType fn="CMEngine_ObjectType"↵
<end of the service method entries>
Service method=(GET|HEAD|POST) type="magnus-internal/cmengine"
fn="CMEngine_Service"↵

Livelink WCM Server - System Integration Manual Page 51


Quick Start Setup (Solaris and Linux Platforms) Basic Installation

To replace the engines with a new version, the web server must be stopped before
the DLL’s can be overwritten! The web server must also be restarted if the
configuration file has been changed.
Tip

3.4 Quick Start Setup (Solaris and Linux Platforms)


Installation The installation is divided into these steps:
procedure
1. Setting up Oracle.
2. Creating a runtime user and unpacking the archives.
3. Creating a database schema and importing web site data
4. Adapting the CMEngine’s configuration file.
5. Setting up and configuring the web server

Important 1. Read first: We advise you to read through this document before you start
with the installation.
2. In this text, the character $ is representative for the prompt in any desired
shell (bash, ksh, and so on). This character doesn’t need to be entered. The
prompt # stands for any desired shell if you are logged in as root. A bold
monospaced font distinguishes text that you have to type in from system
messages, which are set in plain monospaced font.
3. This chapter is meant to be a “Quick Start” chapter, which should provide
you with a standard installation in a minimal amount of time. If you are
looking for more detailed explanations, or if you would like to use a web
server other than Apache 2, please have a look at the “Manual Setup”
chapters.
4. When installing under Red Hat Enterprise Linux 4, you have to install the
compat-libstdc++-33 package.

3.4.1 Create the Installation Directory (from packages)

Install Oracle Install Oracle with


ORACLE_BASE=/opt/oracle and
ORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the version
number, we’ll assume 10.1.0 in the following examples) and don’t forget to install
the current patches as well. If you need more information on how to perform an

Page 52 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Solaris and Linux Platforms)

Oracle installation, see the appendix of this manual and the relevant Oracle
documentation.

Create a runtime In order to run the web server and the various daemons, create a user (and group)
user and unpack that has the minimal permissions necessary for these tasks:
archives

# groupadd livelink
# useradd –c “Livelink Runtime User” –d /opt/livelink –g livelink livelink
# passwd livelink
New Password:
Re-enter new Password:
passwd: password successfully changed for livelink
# chown root:root /opt/livelink
# chmod 755 /opt/livelink
# cd /opt/livelink
# mkdir -p wcm/type1
# chown root:other .profile
# chmod 755 .profile
# vi .profile

:$
o
EDITOR=vi
WCM1_HOME=/opt/livelink/wcm/type1
OBTREE_HOME=/opt/livelink/wcm/type1/conf
ORACLE_HOME=/opt/oracle/product/10.1.0
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
JAVA_HOME=/usr/java/j2sdk
# i386 or sparc
arch=i386

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/bin
LD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_HOME}/jre/lib/${arch}
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_HOME}/jre/lib/${arch}/server
export EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANG
export JAVA_HOME PATH LD_LIBRARY_PATH WCM1_HOME
:wq

Now unpack the archives:

# cd /opt/livelink/wcm/type1
# for file in /tmp/livelink-*.tar.gz
> do
> gzip –cd $file | tar xvf –
> done

And copy the sample startup script for later amendment:

# cd bin
# cp ../sampleconf/livelink-wcm-type1-9.5.0.nnn livelink-wcm-type1
# chmod +x livelink-wcm-type1

Livelink WCM Server - System Integration Manual Page 53


Quick Start Setup (Solaris and Linux Platforms) Basic Installation

To have the script executed at system boot under Solaris, type:

# for dir in rc0.d rc1.d rc2.d rcS.d; do


> (cd /etc/$dir && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
K02livelink-wcm-type1)
> done
# (cd rc3.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
S98livelink-wcm-type1)

under Linux, type:

# (cd /etc/init.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1


.)
# chkconfig --add livelink-wcm-type1

3.4.2 Prepare the Database: Oracle

Create database For each new web site you have to create a new database user. We are going to
schemata create three different sites, and therefore we need three database users. These
users are: wcmdemo (for the obtree.com example), wcmstarter (an almost
empty site for you to play with, starting from scratch), and wcmsitemanager
(the new WCM Server Site Manager, formerly known as Content Manager). In
our example we suppose that there exists a tablespace USERS where we store our
tables and indexes. You can find the statements to create a database user below
and on top of the SiteDatabase-Create-R95-oracle.sql script, which we
will use soon after this to create the table structure.

Log in with sqlplus as DBA:

# su - oracle
$ sqlplus ”/ as sysdba”

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Apr 28 13:23:26 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Release 10.1.0.2.0 - Production

SQL> create user wcmdemo identified by secret default tablespace users tem
porary tablespace temp;
User created.
SQL> create user wcmstarter identified by secret default tablespace users
temporary tablespace temp;
User created.
SQL> create user wcmsitemanager identified by secret default tablespace
users temporary tablespace temp;
User created.

Page 54 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Solaris and Linux Platforms)

SQL> grant connect, resource to wcmdemo, wcmstarter, wcmsitemanager;


Grant succeeded.
SQL> exit

Import web site In order to create the table and index structure and import the web site data in our
data freshly created schemas, a couple of scripts
(/opt/livelink/wcm/type1/scripts/import-{sitemanager,
siteexample,sitestarter}.sqx) are provided. You have to edit them and
change the default database login parameters on line 12 to the ones that apply to
your installation. If you have followed the above instructions exactly, you only
have to change the database name:

# cd /opt/livelink/wcm/type1/scripts
# vi import-sitemanager.sqx
:12s/wcm/mydatabasename/
:wq
# vi import-siteexample.sqx
:12s/wcm/mydatabasename/
:wq
# vi import-sitestarter.sqx
:12s/wcm/mydatabasename/
:wq

Now run the scripts. We do this as user “livelink” in order to make sure that we
have the correct environment variables set for Oracle:

# su – livelink
$ cd scripts
$ ./import-sitemanager.sqx

SQL-Transfer, Version 9.5.0.nnn

************************************************
Processing script
‘./import-sitemanager.sqx’.
Transfer time is 13.05.2004 19:37:13.
[…]
Transferred totally 10579 of 10579 rows (0 skipped, 0 errors).
Transfer ended.
[…]

Make sure that both numbers in the “Transferred totally” line are equal. If they
are, go on with the other two scripts.

$ ./import-siteexample.sqx
$ ./import-sitestarter.sqx
$ exit

Livelink WCM Server - System Integration Manual Page 55


Quick Start Setup (Solaris and Linux Platforms) Basic Installation

Configure the The CMEngine’s configuration file


CMEngine (/opt/livelink/wcm/type1/conf/cmengine.cfg) contains information
about the web sites it serves. There is one section for each web site and one
section which contains either parameters which apply to the CMEngine as a
whole or parameters that serve as a default for the site sections. This section has
to be called [common] and is the first one in the file. The other sections can be
named at will, provided that their names are unique within the file.

First, copy a sample cmengine.cfg from the sampleconf directory:

# cd /opt/livelink/wcm/type1/conf
# cp ../sampleconf/cmengine-9.5.0.nnn.cfg cmengine.cfg

The following parameters need to be changed:

LICENSEKEY=
LICENSEHOLDER=
CM_DBNAME=
CM_DBUSER=wcmsitemanager
CM_DBPWD=secret

Then delete the section called [help] (if any) and edit section [mysite]. First
rename the section to [demo], then:

SERVERURL=http://www.myserver.com [replace with your server name]


#SECURESERVERURL=https://www.myserver.com
URLMAGIC=/demo
DBNAME= [add your database name]
DBUSER=wcmdemo
DBPWD=secret

Now copy section [demo] and rename the copy to [starter]. Then change:

URLMAGIC=/starter
DBUSER=wcmstarter

3.4.3 Configure the Web Server: Apache HTTP Server 2.0

Set up and You can either use a precompiled version of Apache, (e.g. from
configure http://www.sunfreeware.com/ for Solaris, or the one which is part of your Linux
Apache 2 distribution) or compile one yourself. If you choose to use a precompiled Apache,
it is very important that you make sure it has been compiled with the “worker”
MPM.

Page 56 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Solaris and Linux Platforms)

Using an Apache which has not been compiled with the “worker” MPM has a
major (negative) impact on performance and is neither recommended nor
supported.
Important

You can verify whether your Apache has been compiled with the “worker” MPM
by using the -l switch:

$ ./httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
worker.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgid.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c

If you cannot find worker.c in this list, it means that Apache has not been
compiled with the “worker” MPM, and you should compile one yourself.

In order to compile Apache yourself, you need a compiler and a linker installed
on your machine. Then get the source from http://httpd.apache.org/ or one of its
mirrors and enter the following commands:

# cd /usr/local/src
# gzip -cd /tmp/httpd-2.0.54.tar.gz | tar xvf -
# cd httpd-2.0.54
# ./configure --with-mpm=worker --prefix=/opt/apache2
[...]
# make
# make install

The following things need to be changed in httpd.conf:

# cd /opt/apache2/conf
# vi httpd.conf

:134 [change these lines to ensure that only one process is running]
StartServers 1

Livelink WCM Server - System Integration Manual Page 57


Quick Start Setup (Solaris and Linux Platforms) Basic Installation

MaxClients 64
MinSpareThreads 1
MaxSpareThreads 64
ThreadsPerChild 64
ServerLimit 1
:267 [change these lines to make Apache run under our runtime user]
User livelink
Group livelink
:291 [change this line to set the server name that is visible from outside]
ServerName www.myserver.com:80
:394 [comment out this line to avoid “CMEngine Page Not Found” errors]
#DirectoryIndex index.html index.html.var
:$ [add this line at the end to load the CMEngine]
LoadModule CMEngine_Module /opt/livelink/wcm/type1/lib/cmengine-ap2.so

Edit /opt/apache2/bin/envvars and insert the following:

. /opt/livelink/.profile

so that all environment variables are set correctly. Now you can start Apache:

# /opt/apache2/bin/apachectl start

Test the Start a browser and display the following URL:


installation
http://www.myserver.com/demo?about=version

You should get a status screen that says something like:

Livelink WCM Server – Presentation Server 9.5.0 SP1 (CMEngine Build nnn)

compiled May 5 2004 - 13:39:59 for SunOS - APACHE 2 API - DB2/UDB ORACLE SYBASE

running on Apache/2.0.54 (Unix)

includes

Livelink WCM Server – Presentation Server 9.5.0 SP1 (WebEngine Build nnn)
-
(c) 1997-2005 by Open Text Corporation

If you don’t get a screen like this, there is probably something wrong with the
configuration:

• Is the path in the LoadModule directive of the httpd.conf correct?


• Does the user which Apache runs as have read access to everything in
/opt/livelink/wcm/type1 (especially
/opt/livelink/wcm/type1/conf/cmengine.cfg) and write access to
/opt/livelink/wcm/type1/cache and

Page 58 Livelink WCM Server - System Integration Manual


Basic Installation Quick Start Setup (Solaris and Linux Platforms)

/opt/livelink/wcm/type1/logs?
• Is the URLMAGIC in cmengine.cfg set correctly (URLMAGIC=/demo)?

Next, point your browser to:

http://www.myserver.com/demo?about=connect

You should get a status screen similar to this one:

Livelink WCM Server – Presentation Server 9.5.0 SP1 (CMEngine Build nnn)

compiled May 5 2004 - 15:17:02 for SunOS - APACHE 2 API - DB2/UDB ORACLE SYBASE

running on Apache/2.0.54 (Unix)

includes

Livelink WCM Server – Presentation Server 9.5.0 SP1 (WebEngine Build nnn)
-
(c) 1997-2005 by Open Text Corporation

Database Connection OK

If you don’t get a “Database Connection OK”, there must be something wrong
with the Oracle configuration:

• Are the database name, user name and password (DBNAME, DBUSER, DBPWD)
correct? You can verify this like this:

# su – livelink
$ tnsping mydatabasename

If the ping is successful, try to connect with sqlplus:

$ sqlplus wcmdemo/secret@mydatabasename

• Does the user which Apache runs as have read access to everything below
/opt/oracle, especially
/opt/oracle/product/10.1.0/lib/libclntsh.so?
• Are the environment variables in /opt/livelink/.profile set correctly?

If everything is ok, you can browse to

http://www.myserver.com/demo and
http://www.myserver.com/starter

and enjoy!

Livelink WCM Server - System Integration Manual Page 59


Manual Setup (Solaris Platform) Basic Installation

3.5 Manual Setup (Solaris Platform)


Installation The installation is divided into these steps:
procedure
1. Creating the WCM Server directory structure
2. Setting up Oracle
3. Creating a database schema
4. Creating the WCM Server table structure
5. Loading the contents into the database schema
6. Setting up and configuring the web server
7. Customizing the WCM Server configuration file(s)

Important 1. We advise you to read through this document before you start with the
installation.
2. In this text, the character $ is representative for the prompt in any desired
shell (bash, ksh, and so on). This character doesn’t need to be entered. The
prompt # stands for any desired shell if you are logged in as root. A bold
monospaced font distinguishes text that you have to type in from system
messages, which are set in plain monospaced font.

Note The authorization of all files or directories that were created, copied or changed
with FTP have to be checked. If the web server’s file permissions for the WCM
Server component (CMEngine) are not sufficient, the modules/files cannot be
used. Unfortunately the web server does not always send an error message in that
case, so that the search for the cause of the problem can be very time-consuming.

It is also important to pay attention to the case sensitivity of commands.

3.5.1 Create the Installation Directory (from packages)

Install Oracle Install Oracle with


ORACLE_BASE=/opt/oracle and
ORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the version
number, we’ll assume 10.1.0 in the follwing examples) and don’t forget to install
the current patches as well. If you need more information on how to perform an
Oracle installation, see the appendix of this manual and the relevant Oracle
documentation.

Page 60 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Solaris Platform)

Create a runtime In order to run the web server and the various daemons, create a user (and group)
user and unpack that has the minimal permissions necessary for these tasks:
archives

# groupadd livelink
# useradd –c “Livelink Runtime User” –d /opt/livelink –g livelink livelink
# passwd livelink

New Password:
Re-enter new Password:
passwd: password successfully changed for livelink

# chown root:root /opt/livelink


# chmod 755 /opt/livelink
# cd /opt/livelink
# mkdir -p wcm/type1
# chown root:other .profile
# chmod 755 .profile
# vi .profile
:$
o
EDITOR=vi
WCM1_HOME=/opt/livelink/wcm/type1
OBTREE_HOME=/opt/livelink/wcm/type1/conf
ORACLE_HOME=/opt/oracle/product/10.1.0
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
JAVA_HOME=/usr/java
# i386 or sparc
arch=sparc

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/bin
LD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JA
VA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/server
export EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANG
export JAVA_HOME PATH LD_LIBRARY_PATH WCM1_HOME
:wq
#

Now unpack the archives:

# cd /opt/livelink/wcm/type1
# for file in /tmp/livelink-*.tar.gz
> do
> gzip –cd $file | tar xvf –
> done

And copy the sample startup script for later amendment:

# cd bin
# cp ../sampleconf/livelink-wcm-type1-9.5.0.nnn livelink-wcm-type1
# chmod +x livelink-wcm-type1
# for dir in rc0.d rc1.d rc2.d rcS.d; do
> (cd /etc/$dir && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
K02livelink-wcm-type1)
> done
# (cd rc3.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
S98livelink-wcm-type1)

Livelink WCM Server - System Integration Manual Page 61


Manual Setup (Solaris Platform) Basic Installation

3.5.2 Create the Installation Directory (manually)

Install Oracle Install Oracle with ORACLE_BASE=/opt/oracle and


ORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the version
number, we’ll assume 10.1.0 in the follwing examples) and don’t forget to install
the current patches as well. If you need more information on how to perform an
Oracle installation, see the appendix of this manual and the relevant Oracle
documentation.

Create Livelink In order to run the web server and the various daemons, create a user (and group)
user and group that has the minimal permissions necessary for these tasks:

# groupadd livelink
# useradd –c “Livelink Runtime User” –d /opt/livelink –g livelink livelink
# passwd livelink

New Password:
Re-enter new Password:
passwd: password successfully changed for livelink

# chown root:root /opt/livelink


# chmod 755 /opt/livelink
# cd /opt/livelink
# mkdir -p wcm/type1
# chown root:other .profile
# chmod 755 .profile
# vi .profile
:$
o
EDITOR=vi
WCM1_HOME=/opt/livelink/wcm/type1
OBTREE_HOME=/opt/livelink/wcm/type1/conf
ORACLE_HOME=/opt/oracle/product/10.1.0
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
JAVA_HOME=/usr/java
# i386 or sparc
arch=sparc

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/bin
LD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JA
VA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/server
export EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANG
export JAVA_HOME PATH LD_LIBRARY_PATH WCM1_HOME
:wq
#

Create directories The cache and logs directories are assigned to the group the web server runs as,
in order to give the cmengine.so write access to them:

# mkdir backup bin cache conf dat lib logs maps sampleconf scripts

Page 62 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Solaris Platform)

# mkdir cache/cmengine cache/session cache/vo


# chmod -R 775 cache logs
# chgrp -R livelink cache logs

Copy files Mount the WCM Server distribution CD and copy the necessary files, still as user
root (you don’t have to copy all of the files mentioned here, just the ones you
need; if you are unsure, copy them all). In our example, the CD is mounted on
/cdrom/cdrom0:

cd /opt/livelink/wcm/type1
cp /cdrom/cdrom0/Solaris/Presentation\ Server/LDAP/ldapplugin bin/
ldapplugin-9.5.0.nnn
cp /cdrom/cdrom0/Solaris/Tools/Replication/replication bin/replica
tion-9.5.0.nnn
cp /cdrom/cdrom0/Solaris/Presentation\ Server/SessionManage
ment/sessionmanagement bin/sessionmanagement-9.5.0.nnn
cp /cdrom/cdrom0/Solaris/Tools/SQLTransfer/sqltransfer bin/sql
transfer-9.5.0.nnn
cp /cdrom/cdrom0/Solaris/Tools/Deployment/deployment bin/deploy
ment-9.5.0.nnn
cp /cdrom/cdrom0/Solaris/Tools/TaskAgent/taskagent bin/taskagent-9.5.0.nnn
for file in /cdrom/cdrom0/Configuration/*.cfg
do
dos2unix $file sampleconf/`basename $file .cfg`-9.5.0.nnn.cfg
done
mv sampleconf/ldap-9.5.0.nnn.cfg sampleconf/ldapplugin-9.5.0.nnn.cfg
dos2unix /cdrom/cdrom0/Databases/Examples/_engine-demosite.cfg sampleconf/
_engine-demosite-9.5.0.nnn.cfg
for file in `find /cdrom/cdrom0/Databases -name '*.zip'`
do
cp $file dat/`basename $file .zip`-9.5.0.nnn.zip
done
cp /cdrom/cdrom0/Solaris/Presentation\ Server/Apache\ 2.0/cmengine.so lib/
cmengine-ap2-9.5.0.nnn.so
cp /cdrom/cdrom0/Solaris/Presentation\ Server/SunONE/cmengine.so lib/
cmengine-ns-9.5.0.nnn.so
cp /cdrom/cdrom0/Solutions/Java\ Connectivity/LiveConnect/liveconnect.jar
lib/
cp /cdrom/cdrom0/Solaris/Presentation\ Server/LDAP/LibrariesV5/* lib/
cp /cdrom/cdrom0/Solaris/Presentation\ Server/LDAP/libldapsslsc.so lib/
cp /cdrom/cdrom0/Solaris/Presentation\ Server/Livelink\ Enterprise/
liblapi.so.1.0 lib/
cp /cdrom/cdrom0/Solaris/Presentation\ Server/Livelink\ Enterprise/
liblladapter.so lib/
cp /cdrom/cdrom0/Solaris/Presentation\ Server/Livelink\ Enterprise/
libllkernel.so lib/
for file in /cdrom/cdrom0/Databases/Scripts/*-oracle.sql
do
dos2unix $file scripts/`basename $file`
done
cp /cdrom/cdrom0/Configuration/UnicodeMaps/* maps/
chmod +x bin/*
chmod -x dat/*
chmod -x lib/*
chmod +x lib/*.so
chmod -x maps/*

Create links

Livelink WCM Server - System Integration Manual Page 63


Manual Setup (Solaris Platform) Basic Installation

cd /opt/livelink/wcm/type1/bin
for file in ldapplugin replication sessionmanagement sqltransfer deployment
taskagent
do
ln -s $file-9.5.0.nnn $file
done
cd ../lib
ln -s cmengine-ap2-9.5.0.nnn.so cmengine-ap2.so
ln -s cmengine-ns-9.5.0.nnn.so cmengine-ns.so
ln –s liblapi.so.1.0 liblapi.so
cd ../dat
ln –s sitemanager-9.5.0.nnn.zip sitemanager.zip
ln –s sitestarter-9.5.0.nnn.zip sitestarter.zip
ln –s demosite-9.5.0.nnn.zip demosite.zip
cd ../scripts
ln –s SiteDatabase-Create-R95-oracle.sql sitedb95.sql
ln –s SiteReplControlDB-Create-R95-oracle.sql siterepl95.sql

Create a startup In order to have the standalone WCM Server components started on system boot,
script create the startup script as follows (the relevant parts are commented out, so the
script does nothing at this time; the comments will eventually be removed later as
needed, depending on your setup):

# vi /opt/livelink/wcm/type1/bin/livelink-wcm-type1
#!/bin/sh

. /opt/livelink/.profile
PATH=/usr/bin:/bin; export PATH
WCM1_USER=livelink

######################################
# usage
######################################
usage()
{
echo "Usage: $0 [start|stop]"
echo
}

######################################
# killall processname_pattern
######################################
killall()
{
ps –e | \
grep –v "<defunct>" | \
grep "$1" | \
awk '{ print $1 }' | \
xargs kill
}

######################################
# main
######################################

if [ "$#" != "1" ]; then


usage
exit 1
fi

Page 64 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Solaris Platform)

case "$1" in
start)
cd ${WCM1_HOME}/logs
ulimit –c unlimited
# su ${WCM1_USER} –c "${WCM1_HOME}/bin/cmengine renderer1
20333" > /dev/null 2>&1 &
# su ${WCM1_USER} –c "${WCM1_HOME}\ /bin/sessionmanagement
–CfgFile: ${WCM1_HOME}/conf/sessionmanagement.cfg –Service –ChildProc"
>/dev/null 2>&1 &
# su ${WCM1_USER} –c "${WCM1_HOME}/bin/ldapplugin –CfgFile:
${WCM1_HOME}/conf/ldapplugin.cfg –Service –ChildProc" >/dev/null 2>&1 &
# su ${WCM1_USER} –c "${WCM1_HOME}/bin/taskagent –daemon
–conf ${WCM1_HOME}/conf/taskagent.cfg workflowManager \
–macro workflowManager \$user0=admin \
–macro workflowManager \$password0=admin \
–macro workflowManager \$user1=admin \
–macro workflowManager \$password1=admin" >/dev/null 2>&1
echo "Livelink WCM services started."
;;
stop)
# if [ -f /var/tmp/taskagent.pid ]; then kill `cat /
var/tmp/taskagent.pid`; fi
# su ${WCM1_USER} –c "${WCM1_HOME}/bin/ldapplugin –CfgFile:
${WCM1_HOME}/conf/ldapplugin.cfg –Stop" >/dev/null 2>&1
# su ${WCM1_USER} –c "${WCM1_HOME}/bin/sessionmanagement
–CfgFile: ${WCM1_HOME}/conf/sessionmanagement.cfg –Stop" >/dev/null 2>&1
# killall cmengine
echo "Livelink WCM services stopped."
;;
*)
usage
;;
esac

######
# Note: If one of the daemons does not start as it should,
# comment out the redirects to /dev/null at the end of
# the line and try again, so you can see the error
# message, if any.
######
:wq

# chmod +x /opt/livelink/wcm/type1/bin/livelink-wcm-type1
# for dir in rc0.d rc1.d rc2.d rcS.d; do
> (cd /etc/$dir && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
K02livelink-wcm-type1)
> done
# (cd rc3.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
S98livelink-wcm-type1)

3.5.3 Prepare the Database: Oracle

Comments For each new web site, you have to create a new database user. We are going to
create three different sites, and therefore we need three database users. These
users are: wcmdemo (for the obtree.com example), wcmstarter (an almost empty
site for you to play with, starting from scratch), and wcmsitemanager (the
WCM Server Site Manager, aka Content Manager). In our example we suppose

Livelink WCM Server - System Integration Manual Page 65


Manual Setup (Solaris Platform) Basic Installation

that there exists a tablespace USERS where we store our tables and indexes. You
can find the statements to create a database user below and on top of the
SiteDatabase-Create-R95-oracle.sql script, which we will use to create
the table structure.

Create new Log in with sqlplus as DBA:


schemata/users
# su - oracle
$ sqlplus ”/ as sysdba”

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Apr 28 13:23:26 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Release 10.1.0.2.0 - Production

SQL> create user wcmdemo identified by secret default tablespace users tem
porary tablespace temp;
User created.
SQL> create user wcmstarter identified by secret default tablespace users
temporary tablespace temp;
User created.
SQL> create user wcmsitemanager identified by secret default tablespace
users temporary tablespace temp;
User created.
SQL> grant connect, resource to wcmdemo, wcmstarter, wcmsitemanager;
Grant succeeded.
SQL> exit

Create the table The table structure is created with the help of the script
structure /opt/livelink/wcm/type1/scripts/SiteDatabase-Create-R95-oracle.sql
(sitedb95.sql), which can also be found on the release CD (in the directory
Databases/Scripts). The script uses two different tablespaces (USERS and
INDX) whose names may have to be modified, depending on your setup (e.g. in a
default database created with Oracle 10g, there is no tablespace INDX anymore) .
Do not replace the string USERS if your tablespace is named differently, but
TABLESPACE USERS because there is also a table named USERS. With sed, the
tablespace names can be substituted as follows:

$ cd /opt/livelink/wcm/type1/scripts
$ sed -e 's/TABLESPACE USERS/TABLESPACE DATA/g' -e 's/TABLESPACE INDX/
TABLESPACE INDEX/g' SiteDatabase-Create-R95-oracle.sql >weo950.sql

Log in with sqlplus as user wcmdemo:

$ sqlplus wcmdemo/livelink

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Apr 28 13:23:26 2005

Page 66 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Solaris Platform)

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Release 10.1.0.2.0 - Production

SQL> @weo950

Repeat this step for the other users.

Load the web site With the SQLTransfer script below, you can load a DAT file into a database
data using schema:
SQLTransfer

# vi /opt/livelink/wcm/type1/scripts/import-siteexample.sqx

#!/opt/livelink/wcm/type1/bin/sqltransfer
begin transfer
load from file=/opt/livelink/wcm/type1/dat/siteexample-9.5.0.nnn.zip
usedbversion=Oracle 10.1.0
usedblibrary=/opt/oracle/product/10.1.0/lib/libclntsh.so
env=ORACLE_HOME=/opt/oracle/product/10.1.0
target database type=ORACLE
target database connect=DSN=mydb.mydomain.com;UID=wcmdemo;PWD=secret
usedbrowprefetch=100
set max field size=20000000
end transfer
:wq

# chmod +x /opt/livelink/wcm/type1/scripts/import-siteexample.sqx
# su - livelink
$ /opt/livelink/wcm/type1/scripts/import-siteexample.sqx

As an alternative, you can also generate a script in the Windows GUI version with
Extras and ScriptWizard. The transfer is then started with Start
SQL-Transfer!.

The transfer of the sample database is now executed. Please check after the
termination of the script that the number of transferred rows corresponds with the
number of records in the DAT file.

Transferred totally 5178 of 5178 rows (0 skipped, 0 errors).


Transfer ended.

Again, repeat this step for the remaining users. Instead of siteexample-
9.5.0.nnn.zip, use sitestarter-9.5.0.nnn.zip (wcmstarter), and
sitemanager-9.5.0.nnn.zip (wcmsitemanager).

The databases are now ready for editing with the Site Administrator.

Livelink WCM Server - System Integration Manual Page 67


Manual Setup (Solaris Platform) Basic Installation

The default login for the system is “admin” with password “admin”.

Tip

3.5.4 A word about web server processes

Multiprocessing The CMEngine cache has a per-process cache and a per-process database
connection pool. When the web server runs with more than one process, it takes
several requests to fill the cache of all of them. If the load on the web server
decreases (i.e. there are less simultaneous requests), and the web server drops
superfluous processes, then all their cache contents are lost. When, upon
increasing load, the web server starts creating new server processes, they are
recreated with an empty cache. Such behaviour is very bad for performance. IIS
and Sun Web Server both only use one process in their default configuration, and
therefore you will not encounter this problem if you don’t change it. Apache, on
the other hand, must explicitely be configured to use a constant number of
processes. Please see the respective paragraph below for configuration details.

Reasons for If your server has more than one CPU (especially if it has more than two), you
using more than might want to use an equal number of web server processes and (especially under
one process Solaris) bind each of them to a CPU. Binding a process to a CPU is done with the
pbind command under Solaris, and by setting the process’s affinity under
Windows. Linux does not currently support processor binding.

If you decide to run more than one process, please make sure that the number of
processes remains the same, no matter if the load is high or not, for the reasons
outlined above.

You could bind the apache processes with a script like this:

#!/bin/bash

pids=`ps -ef|grep httpd|grep livelink|awk '{print $2}'|sort -n`


noProcs=`psrinfo|wc -l`
declare -a procList
procList=(`psrinfo|awk '{print $1}'`)

i=0
for pid in $pids
do
proc=$(($i % $noProcs))
pbind -b ${procList[$proc]} $pid
((++i))
done

Page 68 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Solaris Platform)

But this is just an example and you may have to adapt it to your needs. E.g. if you
use Sun ONE Web Server, replace httpd with webservd. If the script works for
you, you could add it to the web server startup script in order to have it executed
each time the server is started.

If you have a machine with only two processors, or if you have more but your
web site does not have many requests to serve concurrently, then you should
probably do it the easy way and use only one web server process.

3.5.5 Configure the Web Server: Apache HTTP Server 2.0

Setup You can either use a precompiled version of Apache, (e.g. from
http://www.sunfreeware.com/ for Solaris or compile one yourself. If you choose
to use a precompiled Apache, it is very important that you make sure it has been
compiled with the “worker” MPM.

Using an Apache which has not been compiled with the “worker” MPM has a
major (negative) impact on performance and is neither recommended nor
supported.
Important

You can verify whether your Apache has been compiled with the “worker” MPM
by using the -l switch:

$ ./httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
worker.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgid.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c

If you cannot find worker.c in this list, it means that Apache has not been

Livelink WCM Server - System Integration Manual Page 69


Manual Setup (Solaris Platform) Basic Installation

compiled with the “worker” MPM, and you should compile one yourself.

In order to compile Apache yourself, you need a compiler and a linker installed
on your machine. Then get the source from http://httpd.apache.org/ or one of its
mirrors and enter the following commands:

# cd /usr/local/src
# gzcat /tmp/httpd-2.0.xx.tar.gz | tar xvf -
[...]
# cd httpd-2.0.xx
# ./configure --with-mpm=worker --prefix=/opt/apache2
[...]
# make
[...]
# make install
[...]

That way, the Apache web server is installed into the directory /opt/apache2.

httpd.conf In the directory /opt/apache2/conf, one of the following row must be


appended to the file httpd.conf:

LoadModule CMEngine_Module /opt/livelink/wcm/type1/lib/cmengine-ap2.so

Also, set the following parameters:

User livelink
Group livelink
ServerName www.myserver.com

If you have a single processor machine, set the parameters enclosed by the
<IfModule worker.c> tag as follows:

<IfModule worker.c>
ServerLimit 1
StartServers 1
MaxClients 64
MinSpareThreads 1
MaxSpareThreads 64
ThreadsPerChild 64
MaxRequestsPerChild 0
</IfModule>

Make sure you add the ServerLimit parameter, which is not there in the
original httpd.conf.

If you have more than one processor, these values could be set according to the

Page 70 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Solaris Platform)

following schema:

<IfModule worker.c>
ServerLimit [ number of processors ]
StartServers [ number of processors ]
MaxClients [ number of processors * 64 ]
MinSpareThreads [ (number of processors - 1) * 64 + 1 ]
MaxSpareThreads [ number of processors * 64 ]
ThreadsPerChild 64
MaxRequestsPerChild 0
</IfModule>

Important Please comment out the following lines from your httpd.conf in order to avoid
‘Page not found’ problems when using the CMEngine:

#LoadModule dir_module modules/mod_dir.so


#DirectoryIndex index.html index.html.var

This module tries to convert accesses to a directory /foo/ into a localized index
page like /foo/index.html.en, and as this module can be called before the
CMEngine handles the request, you will get a 404 error message, because a WCM
Server database usually doesn’t contain a page named index.html.en.

Edit /opt/apache2/bin/envvars and insert the following:

. /opt/livelink/.profile

Now you can start Apache:

# /opt/apache2/bin/apachectl start

3.5.6 Configure the Web Server: Sun Java System Web Server 6.1 (aka iPlanet)

Configuration As a default, Sun Web Server is installed in the directory /opt/SUNWwbsvr (and
iPlanet in /usr/iplanet/servers). There exists a directory for each web
server instance below that, in our case https-livelink. In this directory, you
will find among others the directories config (configuration files) and logs (log
files).

magnus.conf In the directory config, the file magnus.conf has to be edited. (Line breaks are
marked with an [↵] at the end.)

Livelink WCM Server - System Integration Manual Page 71


Manual Setup (Linux Platform) Basic Installation


<end of the initialization entries>

Init fn=load-modules shlib=/opt/livelink/wcm/type1/lib/cmengine-ns.so


funcs=CMEngine_Init,CMEngine_ObjectType,CMEngine_Service↵
Init fn=CMEngine_Init↵

Obj.conf Same with the file obj.conf.


<Object name=default>

<end of the object type entries>
ObjectType fn=CMEngine_ObjectType↵

<end of the service method entries>
Service method=(GET|HEAD|POST) type=magnus-internal/cmengine
fn=CMEngine_Service↵

</Object>

Edit start script You have to modify the instance's


/opt/SUNWwbsvr/https-myinstance/start script to ensure that all
necessary environment variables are set. In order to do this, add the line

. /opt/livelink/.profile

somewhere near the beginning of the file.

3.6 Manual Setup (Linux Platform)


Installation The installation is divided into these steps:
procedure
1. Creating the WCM Server directory structure
2. Setting up Oracle
3. Creating a database schema
4. Creating the WCM Server table structure
5. Loading the contents into the database schema
6. Setting up and configuring the web server
7. Customizing the WCM server configuration file(s)

Page 72 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Linux Platform)

Important 1. We advise you to read through this document before you start with the
installation.
2. In this text, the character $ is representative for the prompt in any desired
shell (bash, ksh, and so on). This character doesn’t need to be entered. The
prompt # stands for any desired shell if you are logged in as root. A bold
monospaced font distinguishes text that you have to type in from system
messages, which are set in plain monospaced font.
3. When installing under Red Hat Enterprise Linux 4, you have to install the
compat-libstdc++-33 package.

Note The authorization of all files or directories that were created, copied or changed
with FTP have to be checked. If the web server’s file permissions for the WCM
Server component (CMEngine) are not sufficient, the modules/files cannot be
used. Unfortunately the web server does not always send an error message in that
case, so that the search for the cause of the problem can be very time-consuming.

It is also important to pay attention to the case sensitivity of commands.

3.6.1 Create the Installation Directory (from packages)

Install Oracle Install Oracle with


ORACLE_BASE=/opt/oracle and
ORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the version
number, we’ll assume 10.1.0 in the follwing examples) and don’t forget to install
the current patches as well. If you need more information on how to perform an
Oracle installation, see the appendix of this manual and the relevant Oracle
documentation.

Create a runtime In order to run the web server and the various daemons, create a user (and group)
user and unpack that has the minimal permissions necessary for these tasks:
archives

# groupadd livelink
# useradd –c "Livelink Runtime User" –d /opt/livelink –g livelink livelink
# passwd livelink

New Password:
Re-enter new Password:
passwd: password successfully changed for livelink

# chown root:root /opt/livelink


# chmod 755 /opt/livelink
# cd /opt/livelink
# mkdir -p wcm/type1
# chown root:other .profile

Livelink WCM Server - System Integration Manual Page 73


Manual Setup (Linux Platform) Basic Installation

# chmod 755 .profile


# vi .profile
:$
o
EDITOR=vi
WCM1_HOME=/opt/livelink/wcm/type1
OBTREE_HOME=/opt/livelink/wcm/type1/conf
ORACLE_HOME=/opt/oracle/product/10.1.0
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
JAVA_HOME=/usr/java/j2sdk
# i386 or sparc
arch=i386

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/bin
LD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JA
VA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/server
export EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANG
export JAVA_HOME PATH LD_LIBRARY_PATH WCM1_HOME
:wq

Now unpack the archives:

# cd /opt/livelink/wcm/type1
# for file in /tmp/livelink-*.tar.gz
> do
> gzip –cd $file | tar xvf –
> done

And copy the sample startup script for later amendment:

# cd bin
# cp ../sampleconf/livelink-wcm-type1-9.5.0.nnn livelink-wcm-type1
# chmod +x livelink-wcm-type1
# (cd /etc/init.d && ln -s /opt/livelink/wcm/type1/bin/livelink-wcm-type1
.)
# chkconfig --add livelink-wcm-type1

3.6.2 Create the Installation Directory (manually)

Install Oracle Install Oracle with ORACLE_BASE=/opt/oracle and


ORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the version
number, we’ll assume 10.1.0 in the follwing examples) and don’t forget to install
the current patches as well. If you need more information on how to perform an
Oracle installation, see the appendix of this manual and the relevant Oracle
documentation.

Create Livelink In order to run the web server and the various daemons, create a user (and group)
user and group that has the minimal permissions necessary for these tasks:

Page 74 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Linux Platform)

# groupadd livelink
# useradd –c "Livelink Runtime User" –d /opt/livelink –g livelink livelink
# passwd livelink

Changing password for user livelink.


New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

# chown -R root:root /opt/livelink


# chmod 755 /opt/livelink
# cd /opt/livelink
# mkdir -p wcm/type1
# vi .profile
:$
o
EDITOR=vi
WCM1_HOME=/opt/livelink/wcm/type1
OBTREE_HOME=/opt/livelink/wcm/type1/conf
ORACLE_HOME=/opt/oracle/product/10.1.0
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
JAVA_HOME=/usr/java/j2sdk
# i386 or sparc
arch=i386

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/bin
LD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JA
VA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/server
export EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANG
export JAVA_HOME PATH LD_LIBRARY_PATH WCM1_HOME
:wq

Create directories The cache and logs directories are assigned to the group the web server runs as,
in order to give the cmengine.so write access to it:

# mkdir backup bin cache conf dat lib logs maps sampleconf scripts
# mkdir cache/cmengine cache/session cache/vo
# chmod -R 775 cache logs
# chgrp -R livelink cache logs

Copy files Mount the WCM Server distribution CD and copy the necessary files, still as user
root (you don’t have to copy all of the files mentioned here, just the ones you
need; if you are unsure, copy them all). In our example, the CD is mounted on
/mnt/cdrom.

Note: ^M is typed as [CTRL]-[V] [CTRL]-[M].

cd /opt/livelink/wcm/type1
cp /mnt/cdrom/Linux/Presentation\ Server/LDAP/ldapplugin bin/ldap
plugin-9.5.0.nnn
cp /mnt/cdrom/Linux/Tools/Replication/replication bin/replication-9.5.0.nnn
cp /mnt/cdrom/Linux/Presentation\ Server/SessionManage
ment/sessionmanagement bin/sessionmanagement-9.5.0.nnn
cp /mnt/cdrom/Linux/Tools/SQLTransfer/sqltransfer bin/sqltransfer-9.5.0.nnn

Livelink WCM Server - System Integration Manual Page 75


Manual Setup (Linux Platform) Basic Installation

cp /mnt/cdrom/Linux/Tools/Deployment/deployment bin/deployment-9.5.0.nnn
cp /mnt/cdrom/Linux/Tools/TaskAgent/taskagent bin/taskagent-9.5.0.nnn
for file in /mnt/cdrom/Configuration/*.cfg
do
sed -e 's/^M//' $file > sampleconf/`basename $file
.cfg`-9.5.0.nnn.cfg
done
mv sampleconf/ldap-9.5.0.nnn.cfg sampleconf/ldapplugin-9.5.0.nnn.cfg
sed -e 's/^M//' /mnt/cdrom/Databases/Examples/_engine-demosite.cfg >
sampleconf/_engine-demosite-9.5.0.nnn.cfg
for file in `find /mnt/cdrom/Databases -name '*.zip'`
do
cp $file dat/`basename $file .zip`-9.5.0.nnn.zip
done
cp /mnt/cdrom/Linux/Presentation\ Server/Apache\ 2.0/cmengine.so lib/
cmengine-ap2-9.5.0.nnn.so
cp /mnt/cdrom/Solutions/Java\ Connectivity/LiveConnect/liveconnect.jar lib/
cp /mnt/cdrom/Linux/Presentation\ Server/LDAP/LibrariesV5/* lib/
cp /mnt/cdrom/Linux/Presentation\ Server/LDAP/libldapsslsc.so lib/
for file in /mnt/cdrom/Databases/Scripts/*-oracle.sql
do
sed -e 's/^M//' $file > scripts/`basename $file`
done
chmod +x bin/*
chmod -x dat/*
chmod -x lib/*
chmod +x lib/*.so
chmod -x maps/*

Create links
cd /opt/livelink/wcm/type1/bin
for file in ldapplugin replication sessionmanagement sqltransfer deployment
taskagent
do
ln -s $file-9.5.0.nnn $file
done
cd ../lib
ln -s cmengine-ap2-9.5.0.nnn.so cmengine-ap2.so
cd ../dat
ln –s sitemanager-9.5.0.nnn.zip sitemanager.zip
ln –s sitestarter-9.5.0.nnn.zip sitestarter.zip
ln –s demosite-9.5.0.nnn.zip demosite.zip
cd ../scripts
ln –s SiteDatabase-Create-R95-oracle.sql sitedb95.sql
ln –s SiteReplControlDB-Create-R95-oracle.sql siterepl95.sql

Create a startup In order to have the standalone WCM Server components started on system boot,
script create the startup script as follows (the relevant parts are commented out, so the
script does nothing at this time; the comments will eventually be removed later as
needed, depending on your setup):

# vi /opt/livelink/wcm/type1/bin/livelink-wcm-type1
#!/bin/sh
# chkconfig: 35 99 01
# description: Start and stop WCM Server components

. /opt/livelink/.profile
PATH=/usr/bin:/bin; export PATH

Page 76 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Linux Platform)

WCM1_USER=livelink

######################################
# usage
######################################
usage()
{
echo "Usage: $0 [start|stop]"
echo
}

######################################
# main
######################################

if [ “$#” != “1” ]; then


usage
exit 1
fi

case “$1” in
start)
cd ${WCM1_HOME}/logs
ulimit –c unlimited
# su ${WCM1_USER} –c “${WCM1_HOME}/bin/cmengine renderer1
20333” > /dev/null 2>&1 &
# su ${WCM1_USER} –c “${WCM1_HOME}/bin/sessionmanagement
–CfgFile: ${WCM1_HOME}/conf/sessionmanagement.cfg –Service –ChildProc”
>/dev/null 2>&1 &
# su ${WCM1_USER} –c “${WCM1_HOME}/bin/ldapplugin –CfgFile:
${WCM1_HOME}/conf/ldapplugin.cfg –Service –ChildProc” >/dev/null 2>&1 &
# su ${WCM1_USER} –c “${WCM1_HOME}/bin/taskagent –daemon
–conf ${WCM1_HOME}/conf/taskagent.cfg workflowManager
–macro workflowManager \$user0=admin \
–macro workflowManager \$password0=admin \
–macro workflowManager \$user1=admin \
–macro workflowManager \$password1=admin” >/dev/null 2>&1
echo “Livelink WCM services started.”
;;

stop)
# if [ -f /var/tmp/taskagent.pid ]; then kill `cat /
var/tmp/taskagent.pid`; fi
# su ${WCM1_USER} –c “${WCM1_HOME}/bin/ldapplugin –CfgFile:
${WCM1_HOME}/conf/ldapplugin.cfg –Stop” >/dev/null 2>&1
# su ${WCM1_USER} –c “${WCM1_HOME}/bin/sessionmanagement
–CfgFile: ${WCM1_HOME}/conf/sessionmanagement.cfg –Stop” >/dev/null 2>&1
# killall cmengine
echo “Livelink WCM services stopped.”
;;

*)
usage
;;
esac

######
# Note: If one of the daemons does not start as it should,
# comment out the redirects to /dev/null at the end of
# the line and try again, so you can see the error
# message, if any.
######
:wq

# chmod +x /opt/livelink/wcm/type1/bin/livelink-wcm-type1

Livelink WCM Server - System Integration Manual Page 77


Manual Setup (Linux Platform) Basic Installation

# (cd /etc/init.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1


.)
# chkconfig --add livelink-wcm-type1

3.6.3 Prepare the Database: Oracle

Comments For each new web site, you have to create a new database user. We are going to
create three different sites, and therefore we need three database users. These
users are: wcmdemo (for the obtree.com example), wcmstarter (an almost empty
site for you to play with, starting from scratch), and wcmsitemanager (the
WCM Server Site Manager, aka Content Manager). In our example we suppose
that there exists a tablespace USERS where we store our tables and indexes. You
can find the statements to create a database user below and on top of the
SiteDatabase-Create-R95-oracle.sql script, which we will use to create
the table structure.

Create new Log in with sqlplus as DBA:


schemata/users
# su - oracle
$ sqlplus ”/ as sysdba”

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Apr 28 13:23:26 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Release 10.1.0.2.0 - Production

SQL> create user wcmdemo identified by secret default tablespace users tem
porary tablespace temp;
User created.
SQL> create user wcmstarter identified by secret default tablespace users
temporary tablespace temp;
User created.
SQL> create user wcmsitemanager identified by secret default tablespace
users temporary tablespace temp;
User created.
SQL> grant connect, resource to wcmdemo, wcmstarter, wcmsitemanager;
Grant succeeded.
SQL> exit

Create a table The table structure is created with the help of the script
structure /opt/livelink/wcm/type1/scripts/SiteDatabase-Create-R95-oracle.sql
(sitedb95.sql), which can also be found on the release CD (in the directory
Databases/Scripts). The script uses two different tablespaces (USERS and

Page 78 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Linux Platform)

INDX) whose names may have to be modified, depending on your setup (e.g. in a
default database created with Oracle 10g, there is no tablespace INDX anymore) .
Do not replace the string USERS if your tablespace is named differently, but
TABLESPACE USERS because there is also a table named USERS. With sed, the
tablespace names can be substituted as follows:

$ cd /opt/livelink/wcm/type1/scripts
$ sed -e 's/TABLESPACE USERS/TABLESPACE DATA/g' -e 's/TABLESPACE INDX/
TABLESPACE INDEX/g' WebEngineR40UX-Oracle.sql >weo950.sql

Log in with sqlplus as user wcmdemo:

$ sqlplus wcmdemo/livelink

SQL*Plus: Release 10.1.0.2.0 - Production on Thu Apr 28 13:23:26 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Release 10.1.0.2.0 - Production

SQL> @weo950

Repeat this step for the other users.

Load the web site With the SQLTransfer script below, you can load a DAT file into the database
data using schema:
SQLTransfer

# vi /opt/livelink/wcm/type1/scripts/import-siteexample.sqx
#!/opt/livelink/wcm/type1/bin/sqltransfer
begin transfer
load from file=/opt/livelink/wcm/type1/dat/siteexample-9.5.0.nnn.zip
usedbversion=Oracle 10.1.0
usedblibrary=/opt/oracle/product/10.1.0/lib/libclntsh.so
env=ORACLE_HOME=/opt/oracle/product/10.1.0
target database type=ORACLE
target database connect=DSN=mydb.mydomain.com;UID=wcmdemo;PWD=livelink
usedbrowprefetch=100
set max field size=20000000
end transfer
:wq
# chmod +x /opt/livelink/wcm/type1/scripts/import-siteexample.sqx
# su - livelink
$ /opt/livelink/wcm/type1/scripts/import-siteexample.sqx

As an alternative, you can also generate a script in the Windows GUI version with
Extras and ScriptWizard. The transfer is then started with Start
SQL-Transfer!.

Livelink WCM Server - System Integration Manual Page 79


Manual Setup (Linux Platform) Basic Installation

The transfer of the sample database is now executed. Please check after the
termination of the script that the number of transferred rows corresponds with the
number of records in the DAT file.

Transferred totally 5178 of 5178 rows (0 skipped, 0 errors).


Transfer ended.

Again, repeat this step for the remaining users. Instead of


siteexample-9.5.0.nnn.zip, use sitestarter-9.5.0.nnn.zip
(wcmstarter), and sitemanager-9.5.0.nnn.zip (wcmsitemanager).

The databases are now ready for editing with the Site Administrator.

The default login for the system is “admin” with password “admin”.

Tip

3.6.4 A word about web server processes

Intro The CMEngine cache has a per-process cache and a per-process database
connection pool. When the web server more than one process, it takes several
requests to fill the cache of all of them. If the load on the web server decreases
(i.e. there are less simultaneous requests), and the web server drops superfluous
processes, then all their cache contents are lost. When, upon increasing load, the
web server starts creating new server processes, they are recreated with an empty
cache. Such behaviour is very bad for performance. IIS and Sun Web Server both
only use one process in their default configuration, and therefore you will not
encounter this problem if you don’t change it. Apache, on the other hand, must
explicitely be configured to use a constant number of processes. Please see the
respective paragraph below for configuration details.

Reasons for If your server has more than one CPU (especially if it has more than two), you
using more than might want to use an equal number of web server processes and (especially under
one process Solaris) bind each of them to a CPU. Binding a process to a CPU is done with the
pbind command under Solaris, and by setting the process’s affinity under
Windows. Linux does not currently support processor binding.

If you decide to run more than one process, please make sure that the number of
processes remains the same, no matter if the load is high or not, for the reasons
outlined above.

Page 80 Livelink WCM Server - System Integration Manual


Basic Installation Manual Setup (Linux Platform)

If you have a machine with only two processors, or if you have more but your
web site does not have many requests to serve concurrently, then you should
probably do it the easy way and use only one web server process.

3.6.5 Configure the Web Server: Apache HTTP Server 2.0

Setup You can either use a precompiled version of Apache, (e.g. the one that comes
with your Linux distribution) or compile one yourself. If you choose to use a
precompiled Apache, it is very important that you make sure it has been compiled
with the “worker” MPM.

Using an Apache which has not been compiled with the “worker” MPM has a
major (negative) impact on performance and is neither recommended nor
supported.
Important

You can verify whether your Apache has been compiled with the “worker” MPM
by using the -l switch:

$ ./httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
worker.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgid.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c

If you cannot find worker.c in this list, it means that Apache has not been
compiled with the “worker” MPM, and you should compile one yourself.

In order to compile Apache yourself, you need a compiler and a linker installed
on your machine. Then get the source from http://httpd.apache.org/ or one of its
mirrors and enter the following commands:

Livelink WCM Server - System Integration Manual Page 81


Manual Setup (Linux Platform) Basic Installation

$ tar zxvf /tmp/httpd-2.0.xx.tar.gz


[...]
$ cd httpd-2.0.xx
$ ./configure --with-mpm=worker --prefix=/opt/apache2
[...]
$ make
[...]
$ su
Password:
# make install
[...]

That way, the Apache web server is installed into the directory /opt/apache2.

httpd.conf In the directory /opt/apache2/conf, the following row must be appended to


the file httpd.conf:

LoadModule CMEngine_Module /opt/livelink/wcm/type1/lib/cmengine-ap2.so

Also, set the following parameters:

User livelink
Group livelink
ServerName www.myserver.com

If you have a single processor machine, set the parameters enclosed by the
<IfModule worker.c> tag as follows:

<IfModule worker.c>
ServerLimit 1
StartServers 1
MaxClients 64
MinSpareThreads 1
MaxSpareThreads 64
ThreadsPerChild 64
MaxRequestsPerChild 0
</IfModule>

Make sure you add the ServerLimit parameter, which is not there in the
original httpd.conf.

If you have more than one processor, these values should be set according to the
following schema:

<IfModule worker.c>
ServerLimit [ number of processors ]
StartServers [ number of processors ]
MaxClients [ number of processors * 64 ]
MinSpareThreads [ (number of processors - 1) * 64 + 1 ]

Page 82 Livelink WCM Server - System Integration Manual


Basic Installation Customizing the WCM Server Configuration Files

MaxSpareThreads [ number of processors * 64 ]


ThreadsPerChild 64
MaxRequestsPerChild 0
</IfModule>

Important Please comment out the following lines from your httpd.conf in order to avoid
‘Page not found’ problems when using the CMEngine:

#LoadModule dir_module modules/mod_dir.so


#DirectoryIndex index.html index.html.var

This module tries to convert accesses to a directory /foo/ into a localized index
page like /foo/index.html.en, and as this module can be called before the
CMEngine handles the request, there will be a 404 error message, because a
WCM Server database usually doesn’t contain a page named index.html.en.

Edit /opt/apache2/bin/envvars and insert the following:

. /opt/livelink/.profile

Now you can start Apache:

# /opt/apache2/bin/apachectl start

3.7 Customizing the WCM Server Configuration Files


Minimal set of A detailed description of the configuration parameters is found in the help files or
parameters that the extracted HTML documentation on the release CD.
need to be
changed There are several configuration file templates on the release CD, e.g. for live
server, staging server, development server, LDAP integration, etc.

Under Windows, copy the required configuration file to the web server directory
(C:\Livelink\wcm\type1\bin) and rename it to cmengine.cfg. Under
Unix, the cfg files are located under /opt/livelink/wcm/type1/conf.

Then the placeholder entries (between angle brackets, e.g. <hostname>) should
be replaced with appropriate values for the local setup. Comment lines start with a
[#] character.

The web server must be restarted to make the configuration changes active.

Livelink WCM Server - System Integration Manual Page 83


Testing your installation Basic Installation

You should change (and eventually uncomment) at least the following


configuration directives to ensure proper operation:

• LICENSEKEY, LICENSEHOLDER
• CM_DBTYPE, CM_DBNAME, CM_DBUSER, CM_DBPWD (staging server only)
• LOGBASE
• MAILSERVER (use 127.0.0.1 if you are unsure)
• SERVERURL
• URLMAGIC
• DBTYPE, DBNAME, DBUSER, DBPWD
• and the [<Section Name>] by e.g. [mysite] (the section name can be
whatever you like, but it must be unique throughout the config file. The first
section [common] is mandatory under this name and must not be renamed).
• If you use Oracle: USEDBVERSION (which refers to the version of the Oracle
client library, for the (rare) cases where it is different from the Oracle server
version)
• If you use Oracle under Solaris/Linux: USEDBORACLELIBRARY,
ENV=ORACLE_HOME= …

Adding another If you would like to configure another site, just add another section to the bottom
site of the cmengine.cfg file. The easiest way to do this is to copy the last site
section (as created above) and adapt the parameters, i.e.:

1. Change the section name to something unique within the file


2. Set SERVERURL and URLMAGIC (re-read the chapter about configuration files
in the “General Information” section, and remember that the order of the
sections is important)
3. Create a new database (schema) for the site as explained in the “Prepare the
Database” chapters and configure its connection parameters using DBTYPE
(MSSQL or Oracle), DBNAME (ODBC name of the database if you use
MSSQL, Net8 name if you use Oracle), DBUSER and DBPWD
4. Restart the web server to activate the configuration changes.

3.8 Testing your installation

Page 84 Livelink WCM Server - System Integration Manual


Basic Installation Testing your installation

Test the Start a browser and display the following URL:


installation
http://www.myserver.com/demo?about=version

You should get a status screen similar to this one:

Livelink WCM Server – Presentation Server 9.5.0 SP1 (CMEngine Build nnn)

compiled May 5 2004 - 13:39:59 for SunOS - APACHE 2 API - DB2/UDB ORACLE SYBASE

running on Apache/2.0.54 (Unix)

includes

Livelink WCM Server Presentation Server 9.5.0 SP1 (WebEngine Build nnn)
-
(c) 1997-2005 by Open Text Corporation

If you don’t get a screen like this, there is probably something wrong with the
configuration:

1. Is the path to the engine.so/engine.dll in the web server configuration


correct?
2. Does the user which the web server runs as have read access to everything in
…/livelink/wcm/type1 (especially
…/livelink/wcm/type1/conf/cmengine.cfg) and write access to
…/livelink/wcm/type1/cache and …/livelink/wcm/type1/logs?
3. Is the URLMAGIC in cmengine.cfg set correctly (URLMAGIC=/demo)?

Next, point your browser to:

http://www.myserver.com/demo?about=connect

You should get a status screen like this one:

Livelink WCM Server – Presentation Server 9.5.0 SP1 (CMEngine Build nnn)

compiled May 5 2004 - 15:17:02 for SunOS - APACHE 2 API - DB2/UDB ORACLE SYBASE

running on Apache/2.0.54 (Unix)

includes

Livelink WCM Server – Presentation Server 9.5.0 SP1 (WebEngine Build nnn)
-
(c) 1997-2005 by Open Text Corporation
Database Connection OK

If you don’t get a “Database Connection OK”, there must be something wrong
with the database configuration:

Livelink WCM Server - System Integration Manual Page 85


Updating your Installation Basic Installation

1. Are the database name, user name and password (DBNAME, DBUSER, DBPWD)
correct? You can verify this under Unix/Oracle like this:

# su – livelink
$ tnsping mydatabasename

If the ping is successful, try to connect with sqlplus:

$ sqlplus wcmdemo/secret@mydatabasename

2. Under Windows/MSSQL, check your ODBC configuration (use the Test


button in the configurator to test the connection).
3. If you run Oracle: Does the user which the web server runs as have read
access to everything below /opt/oracle / C:\Oracle\ora92, especially
/opt/oracle/product/10.1.0/lib/libclntsh.so /
C:\Oracle\ora92\bin\oci.dll?
4. Are the environment variables in /opt/apache2/bin/envvars set
correctly?

If everything is ok, you can browse to

http://www.myserver.com/demo and
http://www.myserver.com/starter

and enjoy!

3.9 Updating your Installation


General In order to update an existing installation, follow these steps:
Procedure
1. Read the Release Notes. They contain any particularities for the specific
release which are not covered in the general description here.
2. Backup your data (especially the databases that contain the web content).
3. Copy the new files to your installation directory.
4. Review configuration files.
5. Import the new Site Manager DAT file.
6. Run “Optimize Database” in Site Administrator.
7. Restart the web server.

Steps 3 and 4 will be explained in more detail below.

Page 86 Livelink WCM Server - System Integration Manual


Basic Installation Updating your Installation

Do a dry run first It is important that you perform the update in a test environment before making
any changes to your productive environment. This helps you get familiar with the
changes and new functionality and gives you the time to solve in advance any
problems that may arise. Ask your content authors and web developers to have a
look at the updated site and let them check if everything works as before.

Copy the new If you use the installation packages, do the following:
files to your
installation • Unpack the required packages into your installation directory (e.g.
directory C:\Livelink\wcm\type1 or /opt/livelink/wcm/type1)

If you install the files “manually” (i.e. without the packages), do the following:

1. Copy the required files from the release set to your installation directory. If
you are running a Solaris or Linux server, incorporate the web server type (
ap for Apache 1.x, ap2 for Apache 2.x, ns for Sun Web Server) and release
and build number into the destination file name, e.g. copy cmengine.so to
cmengine-ap2-9.5.0.1386.so
2. If you are running a Solaris or Linux server, create a link from the versioned
file name to the unversioned file name, e.g. ln –s
cmengine-ap2-9.5.0.1386.so cmengine-ap2.so

Review Have a look at the new sample configuration files for any changes with respect to
configuration files their older version and decide whether you want to incorporate them in your
configuration (usually you want to do so, except for those parameters, that you
have set to a value different from the old standard configuration file).

Under Linux and Solaris, you can do this using the diff3 utility (there are also
diff3 versions for Windows around, just google for “diff3 windows”). The
diff3 utility compares three files (called “mine”, “older” and “yours”) and
produces a new one out of them. “Mine” is your current version of the
configuration file. “Older” is the sample configuration file from the release set
that your config file is based upon. “Yours” is the sample configuration file from
the new release set. The file that is produced by diff3 incorporates all changes in
your current configuration file as well as those from the config file of the new
release, as long as they do not conflict. If there is a conflict, both changes are
incorporated in the new config file with line markers before and after them, like
this:

<<<<<<<<<< File name of your config file.cfg (“mine”)


PARAMETER=value1
==========

Livelink WCM Server - System Integration Manual Page 87


Updating your Installation Basic Installation

PARAMETER=value2
>>>>>>>>>> File name of new config file.cfg (“yours”)

(see also the diff3 man page for a probably better explanation). Now you can
edit this file and decide which of the parameters you want to keep, deleting the
unwanted value and the line markers. Here is an example under Linux for
cmengine.cfg:

[root@localhost:root]# cd /opt/livelink/wcm/type1/conf
[root@localhost:conf]# now=`date +%Y%m%d-%H%M`
[root@localhost:conf]# mv cmengine.cfg cmengine-$now.cfg
[root@localhost:conf]# diff3 –m cmengine-$now.cfg
../sampleconf/cmengine-4.2.0.833.cfg ../sampleconf/cmengine-9.5.0.1386.cfg
> cmengine.cfg

Now edit cmengine.cfg and resolve any conflicts. Under Solaris, you can do
the same with a little different syntax:

[root@localhost:root]# cd /opt/livelink/wcm/type1/conf
[root@localhost:conf]# now=`date +%Y%m%d-%H%M`
[root@localhost:conf]# mv cmengine.cfg cmengine-$now.cfg
[root@localhost:conf]# cp cmengine-$now.cfg cmengine.cfg
[root@localhost:conf]# diff3 –E cmengine-$now.cfg
../sampleconf/cmengine-4.2.0.833.cfg ../sampleconf/cmengine-9.5.0.1386.cfg
| ed - cmengine.cfg

Page 88 Livelink WCM Server - System Integration Manual


Additional Components SOAP

4 Additional Components

4.1 SOAP
Configuration The staging server must be configured to accept and handle SOAP requests,
because the Site Administrator, the TextWizard, the WordWizard, and the
WebDAV service use SOAP to communicate with the CMEngine.

SOAPENABLED=yes
SOAPMODULE=ObjectManager,ObjectManager,yes,no,no
SOAPMODULE=ViewtreeManager,ViewtreeManager,yes,no,no
SOAPMODULE=UserManager,UserManager,yes,no,no
SOAPMODULE=SearchManager,SearchManager,yes,no,no
SOAPMODULE=ConfigManager,ConfigManager,yes,no,no
SOAPMODULE=RepositoryManager,RepositoryManager,yes,no,no
SOAPMODULE=GUIManager,GUIManager,yes,no,no
SOAPMODULE=WorkflowManager,WorkflowManager,yes,no,no
SOAPMODULE=WebScripts,*,yes,no,no
SOAPMODULE=PolicyManager,PolicyManager,yes,no,no

These parameters are already part of the sample cmengine.cfg file.

The first parameter is the name of the SOAP module, the second one is the URL
by which the module can be accessed, the third one indicates whether
authentication is necessary to access the module, the fourth one is reserved for
future use, and the last one indicates whether any accesses should be logged.
Logging is quite verbose and should be enabled only for debugging purposes. The
log file can be configured using the SOAPLOGFILE parameter.

4.2 Session Management


Purpose If your setup includes more than one web server with a load balancer in front of it,
you are going to have problems with session data, as these are by default kept in
memory and are therefore accessible only on the machine where they were
generated. Use the session plug-in in these situations. The session plug-in is a
stand-alone process that acts as a centralized storage for temporary session data.

Livelink WCM Server - System Integration Manual Page 89


Session Management Additional Components

4.2.1 Setup under Windows

Procedure 1. Copy SessionManagement.exe and SessionManagement.cfg to the


web server directory.
2. Run SessionManagement.exe from the command prompt as follows:

SessionManagement –install -childproc

3. After the services list is refreshed, the Livelink WCM Session Management
will also be listed as a service. If it is not set to Automatic, change this in the
properties for the service. This will cause the service to start automatically
when the computer is restarted.
4. The following entries must be altered in the corresponding cmengine.cfg
file:

#======================================================#
[COMMON]
BUCKETSTORAGE=PLUGIN

[SessionManagement]
TransportType=TCP
ServerPort=20124
ServerName=127.0.0.1
RxTimeout=0

5. Adapt the sessionmanagement.cfg according to the sample in the


following paragraph.
6. Restart the web server and the session management service.

Session
#==========================================================#
Management.cfg [COMMON]
example file
PluginLog=C:\Livelink\wcm\type1\logs\SessionManagement_pl.log
SupervisionLog=C:\Livelink\wcm\type1\logs\SessionManagement_su.log
UserLog=C:\Livelink\wcm\type1\logs\SessionManagement_user.log
#UserLogLevel=99

# Enable session persistence on file system


#BUCKETSTORAGE=FILE
#BUCKETSTORAGEFOLDER=C:\Livelink\wcm\type1\cache\session

#==========================================================#
[TRANSPORT]
TransportType=TCP
ServerTcpPort=20124
RxTimeout=0

Page 90 Livelink WCM Server - System Integration Manual


Additional Components Session Management

#=EOF======================================================#

Enable persistent By default the session plug-in holds its data in the system memory. The drawback
session of this is that after a restart of the plug-in process, all session data is lost.

To enable persistent session management, set the following parameters in the


SessionManagement.cfg:

BUCKETSTORAGE=FILE
BUCKETSTORAGEFOLDER=C:\Livelink\wcm\type1\cache\session

Restart the Session Plugin Service.

The session plug-in will now store all session data into the local file system. After
a restart of the service the plug-in can recover the session data, and the visitors on
the web servers will not be affected.

Please refer to the Site Administrator Reference Manual


(SiteAdmin_Reference.chm) for a detailed description of additional
configuration options for the session management

4.2.2 Setup under Solaris and Linux

Plugin The configuration file of the session plug-in is located in


configuration /opt/livelink/wcm/type1/conf/sessionmanagement.cfg. If you did a
package-based installation, you should be able to use it right away without any
changes, but you might want to have a look at it anyway, e.g. for changing the
port number the plug-in should listen on (ServerTcpPort). If you did a manual
installation, adapt the config file as in the following example:

Session
#==========================================================#
Management.cfg [COMMON]
example file PluginLog=/opt/livelink/wcm/type1/logs/SessionManagement_pl.log
SupervisionLog=/opt/livelink/wcm/type1/logs/SessionManagement_su.log
UserLog=/opt/livelink/wcm/type1/logs/SessionManagement_user.log
#UserLogLevel=99

# Enable session persistence on file system


#BUCKETSTORAGE=FILE
#SESSIONFOLDER=/opt/livelink/wcm/type1/cache/session

#==========================================================#
[TRANSPORT]

Livelink WCM Server - System Integration Manual Page 91


Session Management Additional Components

TransportType=TCP
ServerTcpPort=20124
RxTimeout=0

#=EOF======================================================#

Tell the The following entries must be altered in the corresponding cmengine.cfg file:
CMEngine to use
the session
#======================================================#
plugin. [common]
BUCKETSTORAGE=PLUGIN

[SessionManagement]
TransportType=TCP
ServerPort=20124
ServerName=127.0.0.1
RxTimeout=0

Starting and You can start the plug-in manually as user livelink with:
stopping the
plug-in, automatic
$ /opt/livelink/wcm/type1/bin/sessionmanagement
startup at boot –CfgFile:/opt/livelink/wcm/type1/conf/sessionmanagement.cfg –Service
time –ChildProc

and stop it with

$ /opt/livelink/wcm/type1/bin/sessionmanagement –Stop

In order to start the plug-in automatically on system startup, edit


/opt/livelink/wcm/type1/bin/livelink-wcm-type1 and remove the
comment in front of the two lines containing sessionmanagement. (One line is
the one that starts the plugin, and the other one the one that stops it).

Enable persistent Per default the session plug-in holds its data in the system memory. The drawback
session storage of this is that after a restart of the plug-in process, all session data is lost.

To enable persistent session management, set the following parameters in the


sessionmanagement.cfg:

BUCKETSTORAGE=FILE
SESSIONFOLDER=/opt/livelink/wcm/type1/cache/session

Restart the session plug-in.

Page 92 Livelink WCM Server - System Integration Manual


Additional Components WCM Server Replication

The session plug-in will now store all session data into the local file system. After
a restart of the service, the plug-in can recover the session data, and the visitors on
the web servers will not be affected.

4.2.3 Advanced Configuration

Failover You can run more than one session plug-in instance on separate servers and have
the CMEngine fall back to it if the first instance should fail to respond for some
reason. In order to achieve this, the cmengine.cfg must list the server names
and the corresponding ports in the ServerName/ServerPort directives,
separated with comma, and in the same order, as in this example:

[SessionManagement]

ServerName=sessionhost1.mydomain.com,sessionhost2.mydomain.com
ServerPort=20124,20124

Because the session data of the currently active sessions is still stored in the
session plug-in’s RAM, it is lost if the engine switches over to the failover
plug-in. In order to avoid this, you can configure a backup folder that is accessible
and used by both plug-ins.

Persistent The session plug-ins can be configured to use a backup folder for storing the
session data session data in the file system. The plug-ins write to the backup folder
asynchronously, which avoids a performance impact when there are many
changes to the session data. Also, if, for some reason, the backup folder is not
available over the network, sessions can still be created and modified. A backup
folder can be configured as follows:

BUCKETSTORAGEBACKUP=YES
BSBACKUPFOLDER=\\filer\session\backup
#BSBACKUPFOLDER=/mnt/filer/session/backup

Further reading Please refer to the Site Administrator Reference Manual for a detailed description
of additional configuration options for the session management.

4.3 WCM Server Replication

Livelink WCM Server - System Integration Manual Page 93


WCM Server Replication Additional Components

Comments Three additional databases are required for WCM Server replication. These are:

• A database on the staging server containing administrative data such as


replication profiles and jobs, and
• two databases on the live server which contain the data from the web site.

Replication can only be set up for an operational database.

Tip

Procedure 1. Create a database on the staging server using the Enterprise Manager.
Open Text recommend the following name: wcm_replication. Load the
SQL script SiteReplControlDB-Create-R95-mssql.sql for setting up
the WCM Server table structure. It is found in the
<CDROM>:\Databases\Scripts subdirectory.
2. Create two new databases on the production server using the Enterprise
Manager. Open Text recommend the following names: Live_A and Live_B.
Load the SQL script SiteDatabase-Create-R95-mssql.sql for setting
up the WCM Server table structure. It is found in the
<CDROM>:\Databases\Scripts subdirectory.
3. Set up the necessary ODBC DSNs or Net-8 connections for the three
databases.
4. Open the Site Administrator
5. On the Extras menu, point to Administration, then point to Advanced
and click Replication Tool.
6. Click Configure Connect to set up replication.
7. Name: Enter a unique name of your choice. DB type: Select the database
type. DSN: Enter the name of the connection (for example the ODBC
connection for MS SQL or Net-8 connection for Oracle). User: Enter the
database owner and password (for example wcm_owner).
8. Click Add to set up a new replication entry.
9. Enter the following information: Device type: Database Name: A unique
name for the source database DB type: Select the database type. DSN: Enter
the ODBC DSN or the Oracle Net-8 connection User: Enter the database
user. Password: Enter the password of the database user. Log path: Enter
the path to which the log file is to be written.
10. Create a replication definition under Destinations. To do this, click the icon
just below the word Destinations.
11. Specify which two databases are your production databases. Device type:
Database. Name: A unique name for the replication destination. Live DB

Page 94 Livelink WCM Server - System Integration Manual


Additional Components WCM Server Replication

connect A (production database A) db type: Select the database


type. DSN: Enter the ODBC DSN or the Oracle Net-8 connection User: Enter
the database user. Password: Enter the password of the database user.
Repeat the entire procedure for Live DB connect B (second
production database). In the Active Live connect section, choose
which of the databases should be active on startup.

12. Create a new job definition. To do this, click the icon just below the word
Jobs.
13. Name: A unique name for the job. Move the replication definition from
Available destinations to the Select destinations list. In the
Replication options section, indicate whether a full or differential
replication is to be performed. Indicate whether it is the default job.
Since release 4.1 the replication process runs twice in full replication mode (once
for every live DB connect).

Note

14.

Livelink WCM Server - System Integration Manual Page 95


WCM Server Replication Additional Components

15. To tell the live server to switch between the Live_A and Live_B databases,
add the following parameters to the cmengine.cfg on the live server:

SERVERMODE=LIVE
DBTYPEALT=
DBNAMEALT=
DBUSERALT=
DBPWDALT=

and set them to point to the Live_B database. Let the "normal" DBNAME etc.
parameters point to the Live_A database.
16. In order to make sure that WCM Server sessions are not lost when the
database is switched on the live server, add the following parameters to the
cmengine.cfg:

SESSIONDBTYPE=
SESSIONDBNAME=
SESSIONDBUSER=
SESSIONDBPWD=

and set them to the corresponding values you have set for DBTYPE, DBNAME,
etc.
These parameters are used to separate the session-relevant data from the
site-specific data and involve the USERS, BUCKETDATA and ACCESSLOG
tables.

Page 96 Livelink WCM Server - System Integration Manual


Additional Components WCM Server Replication

We recommend always using a full WCM Server DB model because of possible


future extensions!

Caution

4.3.1 WCM Server Replication from the shell

Comments Replication can also be initiated from the command prompt. This presumes that
everything has been pre-defined in the Site Administrator.

Procedure 1. Copy replication.exe and replication.cfg to the web server


directory.
2. Customize the replication.cfg file.
3. Make the required changes to the replication.cfg file.

[COMMON]
# Oracle Settings
#USEDBVERSION = Oracle 10.1.0
#USEDBORACLELIBRARY = C:\Oracle\Ora920\bin\oci.dll
#ENV=ORACLE_HOME=/opt/oracle/product/10.1.0
DBTYPE=MSSQL
DBNAME=wcm_replication
DBUSER=<database user>
DBPWD=<user password>

4. Just type replication.exe to see all supported parameters.


5. The required information will be found in the Replication Tool dialog.
From the Site Administrator menu bar, select Extras →
Administration → Advanced → Replication Tool.... Run
replication.exe from the command prompt as follows: replication

Livelink WCM Server - System Integration Manual Page 97


WCM Server Replication Additional Components

4.3.2 Offline Replication

General Offline replication can be used if there is no server in the network that has
Information database access to the stage as well as the live database at the same time. In this
case, the data are saved to a file by the replication executable, which is then
transferred to the live system via scp, ftp or some other means. On the live
system, the replication executable uses an .odd file (object deployment
descriptor) to get the configuration data of the target database.

Configuration in The configuration is done using the Site Administrator, more or less the
the Site same way as in an online replication. However, two destinations have to be
Administrator created, one for the file that is to be exported, and one for the live database, where
the file is to be applied to.

Page 98 Livelink WCM Server - System Integration Manual


Additional Components WCM Server Replication

Create the “file” The destination for the file to be exported might look as follows:
destination

This destination is then chosen in the job definition.

Create the “live The destination for the live database looks like a destination for an online
database” replication:
destination

This destination configuration is then exported to an .odd file using the Export
ODD button.

Livelink WCM Server - System Integration Manual Page 99


LDAP Additional Components

Run the We are now ready to export the replication data from the staging site by running
replication the replication executable in the usual way:
executable at the
stage site
replication.exe –profile=Production –job=diff

This produces the .zip file containing the replicated data, and we are going to
transfer it along with the .odd file to the live site.

Run the Applying the replication data to the live site is done like in this example:
replication
executable at the
replication.exe –offline –odd=Production.odd –dat=rep-20041212.zip
live site

4.4 LDAP

4.4.1 Authentication and authorization options

What is auth...? Basically, we are talking about the process of granting or denying access to a
network resource. Most computer security systems are based on a two-step
process.

• The first stage is authentication, which ensures that a user is who he or she
claims to be.
• The second stage is authorization, which allows the user access to various
resources based on the user’s identity.

The WCM Server has this two-step process and opens various options to integrate
into your existing authentication and authorization infrastructure. This chapter
gives an overview and steps through two scenarios.

Overview

Page 100 Livelink WCM Server - System Integration Manual


Additional Components LDAP

Scenario 1: WCM This is the default behavior. Users are managed with the Site Administrator
Server-internal and the access rights are assigned with freely definable roles, object groups and
authentication permission patterns. The user information (login name, full name, email…) and
access rights are stored inside the WCM Server repository.

This scenario is mostly used for Internet sites, because only a limited amount of
users has to be managed.

The username and password are input in an HTML form, which is sent back to
the engine with an HTTP POST request. The engine checks whether username
and password are correct and loads the user and his/her permissions.

The login can be secured with SSL if required.

Scenario 2: In case the installed environment is equipped with an LDAP directory server
Authentication via containing user, group and company information, the engine can use this as user
LDAP directory database. Users do not have to be managed in several places - the engine accesses
the directory at each login and is therefore always up-to-date.

Well-known LDAP directory servers are e.g.:

• Microsoft Active Directory Server


• Sun ONE Directory Server
• Novell eDirectory
• Siemens DirX
• OpenLDAP

Livelink WCM Server - System Integration Manual Page 101


LDAP Additional Components

This scenario is used when an LDAP directory is in place, mostly in intranets.

The username and password check is done with an “LDAP bind” request (login
attempt to a LDAP directory). The LDAP bind can either be done by the web
server equipped with an LDAP module («External User») or with the WCM
Server LDAP Authentication Plug-in («Plug-in User»). Depending the way
chosen, the user gets an HTML form or a browser popup dialog to supply his
credentials.

Browser login A browser login dialog is triggered by HTTP headers (HTTP/401 – Unauthorized)
dialog that the web server sends to the browser when authentication is necessary. The
format of these headers depends on the authentication scheme.

Well-known authentication schemes are e.g.:

• Basic & Digest


• NTLM
• Kerberos
• SSL Authentication

The most simple one is “Basic” - username and password are sent in clear text to
the server. Single-sign-on systems like the Microsoft NTLM use special
authentication schemes where the browser automatically answers the
username/password request. Due to the generic way the web server authentication
modules can be integrated in the WCM Server, it is possible to use all kinds of
authentication schemes.

So, as soon as a user wants to access a page that is part of a group with the “Deny
Web User” flag set, the web server returns an HTTP/401 ("Authorization
Required”) to the client, and the browser displays a pop-up asking for credentials.
The web server authenticates the user and, if successful, writes the user’s id in an
environment variable (REMOTE_USER in case of Apache and Netscape/iPlanet,
AUTH_USER in case of IIS). The CMEngine starts an LDAP query in
LDAPUSERBASE with LDAPUSERFILTER and expects to get zero or one result
back. Because we want to get the attributes of the user that has just logged in, we
have to set LDAPUSERFILTER to uid=<!WEM ENV.REMOTE_USER>.

Now the CMEngine checks whether the user exists already in its own user
database. If it does not, the user is created and flagged as a so-called “LDAP
user”. The reason for this is e.g. that we want to keep track of which user created
a certain page. You can get a list of all “LDAP users” by choosing Extras →
Administration → LDAP Users in Site Administrator.

Page 102 Livelink WCM Server - System Integration Manual


Additional Components LDAP

Then, the user’s attributes are matched against the conditions in “LDAP Roles”.
Optionally you can define a different directory folder LDAPROLEBASE,
LDAPROLEFILTER to search for the role matching attributes. If matching is
successful, the template user’s rights are added dynamically to the current user’s
rights. This mechanism is cumulative, i.e. there may be more than one match and
the rights just add up.

HTML login form Here, the username and password are simply entered in an HTML form which is
sent back to the engine with an HTTP POST request, as described above. The
engine authenticates the user with the aid of the LDAP authentication plug-in
instead of performing this task itself. The meaning of the above parameters
(LDAPUSERBASE, LDAPUSERFILTER etc.) are the same, only that they are
configured in the configuration file of the plug-in instead of that one of the
engine.

4.4.2 Matching rules

Defining rules in In Site Administrator, you can configure the roles that authenticated users
Site Administrator can assume:

• Obtree C3 3.3: Extras → Administration → Configure → LDAP


Roles
• Obtree C4 4.0: Extras → Administration → Configuration → Misc
→ LDAP Matching Rules
• Obtree C4 4.1 and newer: Administration → User Manager → Roles
→ Matching rule field

The role(s) that the user has are established by checking the role’s condition. If
the condition is true (matches against the user’s current LDAP attributes), the user
gets the role. If the user has a certain role, it means for him/her that (s)he has the
rights associated with that role. In order to associate rights with a role, a template
user must be created and assigned the necessary rights. This template user (which
exists in the WCM Server only) is then associated with the LDAP role. Let’s have
a look at an example: In our web site is a closed area, represented by objects in
the “Internal” group. Now, we create a user “Tpl_internal” that has read access to
this group. Then we go to Extras → Administration → Configure → LDAP
Roles and select New.... You can choose whatever name you like; it is not
relevant for the WCM Server except that you have to enter one. The description is
optional. In the User field, you select which user you want to have as a template
user for this LDAP role ("Tpl_internal” in our case). The Condition you enter
must stick to the following rules:

Livelink WCM Server - System Integration Manual Page 103


LDAP Additional Components

1. Allowed operators are “&” (AND), “|” (OR) and “=” (boolean equals). Note
that “¦” instead of “|” does not work.
2. Strings are delimited by double quotes.
3. An expression consists of a [term or expression] plus an [operator]
plus a [term or expression] and must be enclosed in parentheses,
except if it is the outermost expression where parentheses are optional.
4. A term is either a valid LDAP attribute or a string.

From the above follows that expressions may not be chained without parentheses,
i.e.

department="finance" & position="subboss" & location="south"

is not a valid condition, but

(department="finance" & position="subboss") & location="south"

and

department="finance" & (position="subboss" & location="south")

are.

It is still possible to configure users in the WCM Server's user management which
are not in the LDAP directory. In this case, authorization is done with the
assigned rights in the WCM Server repository. We call this “fallback” login.
Note

4.4.3 Customize the login process

Scripting hooks The two-step login process can be completely customized with scripting. The
WCM Server provides hooks to all stages of the login process, which allow you to
implement script handler functions (onPasswordCheck, onGetRoles...) that
change the default behavior. E.g. it is possible to map the whole login process
with SAP (if this happens to be your primary user repository).

Read more about the subject in the Scripting Reference, “User Callback
Functions”.

Page 104 Livelink WCM Server - System Integration Manual


Additional Components LDAP

4.4.4 LDAP Plug-in Authentication (Windows)

Purpose Many companies use a directory service for managing their employee’s login
accounts. The LDAP plug-in enables the WCM Server to authenticate users
against this directory service, thereby eliminating the need to create user accounts
for each employee inside the WCM Server. The rights of a user in the LDAP
directory are determined by matching his/her attributes against the condition of a
set of roles. As an example we could create a role “Administrators” inside the
WCM Server that gets all the rights to all object groups. This role is created in the
Site Administrator under User Manager → Roles. We could define the
condition to be organizationalRole=”Manager”. This way, every current
and future user in the directory who has his/her organizationalRole attribute
set to “Manager” will automatically get administrative rights inside the WCM
Server. Obviously, you will use much finer-grained structures in a real-life
installation... See chapter “LDAP” for an in-depth explanation.

Plug-in Make sure that you place the configuration file of the LDAP plug-in in
configuration C:\Livelink\wcm\type1\bin\ldap.cfg. Use the following example as a
template and adapt the LDAP-specific entries to your own setup :

• UserLogLevel=99 is for debugging purposes. Set it to 1 as soon as


everything works fine (improves performance).
• Always set ServerPort and ServerTcpPort to the same value.
• LDAPUSER / LDAPPWD point to a user who has read access to all the required
users in the LDAP directory. Put these into a comment if the directory server
allows anonymous access.
• Set LDAPUSERFILTER to the attribute that determines the user’s login name.

[common]
PluginLog=C:\Livelink\wcm\type1\logs\ldapplugin.log
SupervisionLog=C:\Livelink\wcm\type1\logs\ldapplugin.log
UserLog=C:\Livelink\wcm\type1\logs\ldapplugin.log
UserLogLevel=99

[Transport]
TransportType=TCP
ServerPort=20224
ServerTcpPort=20224
ServerName=localhost
RxTimeout=0
Encryption-Algo=1

[PluginSpecific]
USELDAPLIBRARY=C:\Livelink\wcm\type1\bin\ldapsslsc.dll
LDAPHOST=localhost

Livelink WCM Server - System Integration Manual Page 105


LDAP Additional Components

LDAPUSER=cn=Administrator,cn=Users,dc=obtree,dc=com
LDAPPWD=secret

A note on version You can secure the LDAP connection using SSL. Technically, the WCM Server
5 of the LDAP delegates LDAP related tasks to a library from the “iPlanet LDAP SDK for C”
library that is distributed by Netscape / Sun, the Mozilla project, and the WCM Server.

Using LDAP means – among other things – adding a configuration entry called
USELDAPLIBRARY to your appropriate configuration file. This entry must point to
the LDAP library. When using SSL in conjunction with version 5 of the SDK,
you have to choose ldapsslsc.dll that is manufactured by Open Text.
Otherwise, there will be no SSL support. In addition, you have to tell the dynamic
linker where to look for the files of the LDAP SDK.

Before starting the appropriate WCM Server component, e.g. the web server, that
in turn loads the CMEngine, you must append the directory where the LDAP
libraries are located to the PATH environment variable. If you followed the
standard file system layout described in this manual, this is
C:\Livelink\wcm\type1\bin, which should already be in your system path.

Starting and You can start the plug-in manually with:


stopping the
plug-in
C:\Livelink\WCM\server\bin> ldap.exe

and stop it by pressing [CTRL]-[C]

In order to start the plug-in automatically on system startup, start the plug-in with
the –install (-uninstall does the inverse) option:

C:\Livelink\WCM\server\bin> ldap.exe -install

Now you can start and stop the plug-in like any other service in the Control
Panel → Services dialog. The entry is called “Obtree LDAP Plugin”. (If you
don’t like that name, use the ServiceName and ServiceDisplay directives in
the plugin config file ldap.cfg to change it, see the os-specific sections below).

Activating the These entries must be altered/added in the cmengine.cfg file in order to tell the
plug-in engines to use the LDAP plug-in for authentication.

[common]
LDAPLOGFILE=C:\Livelink\wcm\type1\logs\ldapengine.log
LDAPCREATESESSION=yes

Page 106 Livelink WCM Server - System Integration Manual


Additional Components LDAP

LDAPCREATEUSER=yes

[LDAP]
TransportType=TCP
ServerPort=20224
ServerName=localhost
RxTimeout=0

[site]
AUTH_MODE=PLUGIN
USER_MODE=PLUGIN
USER_PLUGIN=LDAP

4.4.5 LDAP Plug-in Authentication (Solaris)

Purpose Many companies use a directory service for managing their employee’s login
accounts. The LDAP plug-in enables the WCM Server to authenticate users
against this directory service, thereby eliminating the need to create user accounts
for each employee inside the WCM Server. The rights of a user in the LDAP
directory are determined by matching his/her attributes against the condition of a
set of roles. As an example we could create a role “Administrators” inside the
WCM Server that gets all the rights to all object groups. This role is created in the
Site Administrator under User Manager → Roles. We could define the
condition to be organizationalRole=”Manager”. This way, every current
and future user in the directory who has his/her organizationalRole attribute
set to “Manager” will automatically get administrative rights inside the WCM
Server. Obviously, you will use much finer-grained structures in a real-life
installation... See chapter “LDAP” for an in-depth explanation.

Plug-in The configuration file of the LDAP plug-in


should be put in
configuration /opt/livelink/wcm/type1/conf/ldapplugin.cfg. You can use the
following as an example and adapt the LDAP-specific entries to your setup
(UserLogLevel=99 is for debugging purposes, you should lower it to 1 as soon
as everything works fine; ServerPort and ServerTcpPort should always be
set to the same value; LDAPUSER/LDAPPWD point to a user that has read access to
all the required users in the LDAP directory – comment these out if the directory
server allows anonymous access; LDAPUSERFILTER should be set to the attribute
that determines the user’s login name):

[common]
PluginLog=/opt/livelink/wcm/type1/logs/ldapplugin.log
SupervisionLog=/opt/livelink/wcm/type1/logs/ldapplugin.log
UserLog=/opt/livelink/wcm/type1/logs/ldapplugin.log
UserLogLevel=99

[Transport]
TransportType=TCP

Livelink WCM Server - System Integration Manual Page 107


LDAP Additional Components

ServerPort=20224
ServerTcpPort=20224
ServerName=localhost
RxTimeout=0
Encryption-Algo=1

[PluginSpecific]
USELDAPLIBRARY=/opt/livelink/wcm/type1/lib/libldapsslsc.so
LDAPHOST=localhost
LDAPUSER=cn=Administrator,cn=Users,dc=obtree,dc=com
LDAPPWD=secret
LDAPUSERBASE=cn=Users,dc=obtree,dc=com
LDAPUSERFILTER=cn
LDAPUSERINFO=FullName=displayName,Mail=mail

A note on version You can secure the LDAP connection using SSL. Technically, the WCM Server
5 of the LDAP delegates LDAP related tasks to a library from the “iPlanet LDAP SDK for C”
library that is distributed by Netscape / Sun, the Mozilla project, and Open Text.

Using LDAP means – among other things – adding a configuration entry called
USELDAPLIBRARY to your appropriate configuration file. This entry must point to
the LDAP library. When using SSL in conjunction with version 5 of the SDK,
you have to choose libldapsslsc.so that is manufactured by Open Text.
Otherwise, there will be no SSL support. In addition, you have to tell the dynamic
linker where to look for the files of the original LDAP SDK.

Before starting the appropriate WCM Server component, e.g. the web server, that
in turn loads the CMEngine, you must set the environment variable
LD_LIBRARY_PATH and let it point to the location of the LDAP libraries, e.g. for
shells compatible to the Bourne shell type:

LD_LIBRARY_PATH=/opt/livelink/wcm/type1/lib:$LD_LIBRARY_PATH; export
LD_LIBRARY_PATH

Add this line to /opt/apache2/bin/envvars if you are using Apache2, or


https-myinstance/start if you are using SunONE/iPlanet.

Starting and You can start the plug-in manually as user livelink with:
stopping the
plug-in
$ /opt/livelink/wcm/type1/bin/ldapplugin
–CfgFile:/opt/livelink/wcm/type1/conf/ldapplugin.cfg –Service –ChildProc

and stop it with

$ /opt/livelink/wcm/type1/bin/ldapplugin –Stop

Page 108 Livelink WCM Server - System Integration Manual


Additional Components LDAP

In order to start the plug-in automatically on system startup, edit


/opt/livelink/wcm/type1/bin/livelink-wcm-type1 and remove the
comment in front of the two lines containing ldapplugin.

Activating the These entries must be altered/added in the cmengine.cfg file in order to tell the
plug-in engines to use the LDAP plug-in for authentication.

[common]
LDAPLOGFILE=/opt/livelink/wcm/type1/logs/ldapengine.log
LDAPCREATESESSION=yes
LDAPCREATEUSER=yes

[LDAP]
TransportType=TCP
ServerPort=20224
ServerName=localhost
RxTimeout=0

[site]
AUTH_MODE=PLUGIN
USER_MODE=PLUGIN
USER_PLUGIN=LDAP

4.4.6 LDAP Plug-in Authentication (Linux)

Purpose Many companies use a directory service for managing their employee’s login
accounts. The LDAP plug-in enables the WCM Server to authenticate users
against this directory service, thereby eliminating the need to create user accounts
for each employee inside the WCM Server. The rights of a user in the LDAP
directory are determined by matching his/her attributes against the condition of a
set of roles. As an example we could create a role “Administrators” inside the
WCM Server that gets all the rights to all object groups. This role is created in the
Site Administrator under User Manager → Roles. We could define the
condition to be organizationalRole=”Manager”. This way, every current
and future user in the directory who has his/her organizationalRole attribute
set to “Manager” will automatically get administrative rights inside the WCM
Server. Obviously, you will use much finer-grained structures in a real-life
installation... See chapter “LDAP” for an in-depth explanation.

Plug-in The configuration file of the LDAP plug-in


should be put in
configuration /opt/livelink/wcm/type1/conf/ldapplugin.cfg. You can use the
following as an example and adapt the LDAP-specific entries to your setup
(UserLogLevel=99 is for debugging purposes, you should lower it to 1 as soon
as everything works fine; ServerPort and ServerTcpPort should always be

Livelink WCM Server - System Integration Manual Page 109


LDAP Additional Components

set to the same value; LDAPUSER / LDAPPWD point to a user that has read access to
all the required users in the LDAP directory – comment these out if the directory
server allows anonymous access; LDAPUSERFILTER should be set to the attribute
that determines the user’s login name):

[common]
PluginLog=/opt/livelink/wcm/type1/logs/ldapplugin.log
SupervisionLog=/opt/livelink/wcm/type1/logs/ldapplugin.log
UserLog=/opt/livelink/wcm/type1/logs/ldapplugin.log
UserLogLevel=99

[Transport]
TransportType=TCP
ServerPort=20224
ServerTcpPort=20224
ServerName=localhost
RxTimeout=0
Encryption-Algo=1

[PluginSpecific]
USELDAPLIBRARY=/opt/livelink/wcm/type1/lib/libldapsslsc.so
LDAPHOST=localhost
LDAPUSER=cn=Administrator,cn=Users,dc=obtree,dc=com
LDAPPWD=secret
LDAPUSERBASE=cn=Users,dc=obtree,dc=com
LDAPUSERFILTER=cn
LDAPUSERINFO=FullName=displayName,Mail=mail

A note on version You can secure the LDAP connection using SSL. Technically, the WCM Server
5 of the LDAP delegates LDAP related tasks to a library from the “iPlanet LDAP SDK for C”
library that is distributed by Netscape / Sun, the Mozilla project, and Open Text.

Using LDAP means – among other things – adding a configuration entry called
USELDAPLIBRARY to your appropriate configuration file. This entry must point to
the LDAP library. Using SSL in conjunction with version 5 of the SDK, you have
to choose libldapsslsc.so that is manufactured by Open Text. Otherwise,
there will be no SSL support. In addition, you have to tell the dynamic linker
where to look for the files of the original LDAP SDK.

Before starting the appropriate WCM Server component, e.g. the web server, that
in turn loads the CMEngine, you must set the environment variable
LD_LIBRARY_PATH and let it point to the location of the LDAP libraries, e.g. for
shells compatible to the Bourne shell type:

LD_LIBRARY_PATH=/opt/livelink/wcm/type1/lib:$LD_LIBRARY_PATH; export
LD_LIBRARY_PATH

Add this line to /opt/apache2/bin/envvars if you are using Apache, or


https-myinstance/start if you are using SunONE/iPlanet.

Page 110 Livelink WCM Server - System Integration Manual


Additional Components Livelink Enterprise Integration

Starting and You can start the plug-in manually as user livelink with:
stopping the
plug-in
$ /opt/livelink/wcm/type1/bin/ldapplugin
–CfgFile:/opt/livelink/wcm/type1/conf/ldapplugin.cfg –Service –ChildProc

and stop it with

$ /opt/livelink/wcm/type1/bin/ldapplugin –Stop

In order to start the plugin automatically on


system startup, edit
/opt/livelink/wcm/type1/bin/livelink-wcm-type1 and remove the
comment in front of the two lines containing “ldapplugin”.

Activating the These entries must be altered/added in the cmengine.cfg file in order to tell the
plug-in engine to use the LDAP plug-in for authentication.

[common]
LDAPLOGFILE=/opt/livelink/wcm/type1/logs/ldapengine.log
LDAPCREATESESSION=yes
LDAPCREATEUSER=yes

[LDAP]
TransportType=TCP
ServerPort=20224
ServerName=localhost
RxTimeout=0

[site]
AUTH_MODE=PLUGIN
USER_MODE=PLUGIN
USER_PLUGIN=LDAP

4.5 Livelink Enterprise Integration


Preliminary note The present installation instructions cover solely the additional installation and
configuring that are necessary to connect an already correctly running WCM
Server system to an Open Text Livelink Enterprise repository. Such a connection
allows the dynamic exchange of contents between the involved systems.

After the successful installation of the Livelink Enterprise integration you will be
able to:

• Embed content from the Livelink Enterprise Repository into your WCM

Livelink WCM Server - System Integration Manual Page 111


Livelink Enterprise Integration Additional Components

Server web site.


• Edit the embedded content either in Livelink Enterprise or in the WCM
Server environment.
• Automatically keep track of any changes to the affected contents; the web
pages always will reflect the newest versions of the affected contents
regardless of the environment in which they have been changed.

For any information that goes beyond these installation instructions, please refer
to the Livelink Enterprise Integration Manual, which is available as a separate
document in the release set documentation.

4.5.1 Prerequisites

Livelink WCM Livelink WCM Server Type 1 System (9.2.2 or later) installed.
Server

Livelink Open Text Livelink Enterprise 9.5.0, 9.2.0 SP1 or 9.1.0 SP4 installed.
Enterprise

Operating The Livelink Enterprise integration is available for Windows and Solaris
System platforms only. Open Text do not provide libraries for Linux at this time.

4.5.2 Configuration

Database Your web site:

Extend the database structure of your WCM Server database so that it supports
virtual objects. This is necessary if your database has been created with a “R40”
script instead of a “R95” script. To do so, depending on the database system you
are using, run one of these two scripts:

• SiteDatabase-Update-R40toR95-mssql.sql
• SiteDatabase-Update-R40toR95-oracle.sql

You must use the new SiteManager (a.k.a. “Cloudbreaker”). The Content
Manager Classic edition does not support Livelink Enterprise integration and
virtual objects.

Page 112 Livelink WCM Server - System Integration Manual


Additional Components Livelink Enterprise Integration

Additional If necessary, copy the additional Livelink API DLL’s of release 9.5.0 into the
software directory indicated below:

Windows

The DLL’s should be located in C:\Livelink\wcm\type1\bin. If they are not,


copy them from the \Windows\Presentation Server\Livelink
Enterprise\ directory on the release CD. They include the following files:

LAPI_ATTRIBUTES.dll
LAPI_BASE.dll
LAPI_DOCUMENTS.dll
LAPI_INBOX.dll
LAPI_NETp.dll
LAPI_SEARCH.dll
LAPI_SSPIp.dll
LAPI_USERS.dll
LAPI_WORKFLOW.dll
LLAdapter.dll
LLKERNEL.dll
llresources.dll

Solaris

The so’s should be located in /opt/livelink/wcm/type1/lib. If they are not,


copy them from the \Solaris\Presentation Server\Livelink
Enterprise\ directory on the release CD. They include the following files:

liblapi.so.1.0
liblapi.so (a symlink to liblapi.so.1.0)
liblladapter.so
libllkernel.so

Please make sure that C:\Livelink\wcm\type1\bin or


/opt/livelink/wcm/type1/lib is in your system PATH, otherwise the DLLs
/ so's will not be loaded correctly.
Important

File system Create a new directory called C:\Livelink\wcm\type1\cache\vo or


/opt/livelink/wcm/type1/cache/vo if it does not already exist (“vo”
stands for virtual object).

This new directory serves as temporary store for the data that will be exchanged
between the Livelink Enterprise repository and the WCM Server database.
Therefore, make sure the user running the process of the web server has full
access to this new directory.

Livelink WCM Server - System Integration Manual Page 113


Livelink Enterprise Integration Additional Components

Configuration Add the following lines to the [Common] section in the configuration file of the
files CMEngine.

Windows:

USELAPILIBRARY=C:\Livelink\wcm\type1\bin\LLAdapter.dll
LOCALREPOSITORYFOLDER=C:\Livelink\wcm\type1\cache\vo
SOAPMODULE=RepositoryManager,RepositoryManager,yes,no,no

Solaris:

USELAPILIBRARY=/opt/livelink/wcm/type1/lib/liblldapter.so
LOCALREPOSITORYFOLDER=/opt/livelink/wcm/type1/cache/vo
SOAPMODULE=RepositoryManager,RepositoryManager,yes,no,no

The last entry declares the SOAP service that is used for the connection to the
Livelink Enterprise server.

Configure site in In the Site Administrator, make sure that the Website base URL in the File
Site Administrator → Configure Sites dialog is pointing to the correct URL and the correct
rendering engine (CMEngine). The Site Administrator is using this URL to
connect to the engine via SOAP, and the engine connects to Livelink Enterprise;
in order to do this, the engine reads the connection you defined in the
Configuration dialog of the Site Administrator (see the following paragraph
for details).

After you have defined a connection and changed the Website base URL, restart
the web server and the Site Administrator in order to activate your changes.

4.5.3 Define a Connection to Livelink Enterprise

Defining a In the Administration menu of the Site Administrator click Configuration.


connection to a In the appearing dialog, expand the Security & Connections folder on the
Livelink left side and click Livelink Enterprise (LAPI).
repository

Page 114 Livelink WCM Server - System Integration Manual


Additional Components Livelink Enterprise Integration

Elements To define a new connection to Livelink Enterprise click New and fill in the
properties as described below.

Element Description
Name Enter a name for your new Livelink Enterprise
connection.

ID Internal ID of the new connection. The number is


assigned automatically and cannot be changed.

Description Description of the Livelink Enterprise connection.

Host Enter the host name and optionally the TCP port
numberof the server on which your Livelink
Enterprise server is installed. This is sufficient if the
Livelink server is reachable via native Livelink
protocol.

If you prefer to use the tunneling method via HTTP(S)


to connect to Livelink Enterprise, add http:// or
https:// in front of the host name.

Livelink WCM Server - System Integration Manual Page 115


Livelink Enterprise Integration Additional Components

Element Description
User Mode Select the appropriate user mode for your application.
Possible values are:
Single Sign-on The user name and password of the
currently logged in WCM Server
user will be transmitted to Livelink
Enterprise when connecting.

Use this option if you intend to


implement a single authentication
process for all your applications.
Read more about Single Sign-on in
the next chapter.

Tech User The User name and Password


provided in the fields below will be
used when connecting to Livelink
Enterprise.

Impersonate The user and the corresponding


password will be provided by a
WCM Server script when
connecting to Livelink Enterprise.
Such a script must be embedded in
an onConnectionOpen handler.

Use this option if you want to


dynamically assign the user for this
Livelink Enterprise connection at
the moment when the connection is
established.

User User name for Livelink Enterprise.

Password Password of the user specified above.

Additional Parameters Enter additional parameters that have to be submitted


to the Livelink Enterprise server (for example a port
number).

Local Repository Folder Enter the path of the folder that will be used as
temporary storage for this Livelink Enterprise
connection when documents are exchanged between
Livelink Enterprise and the WCM Server. You have

Page 116 Livelink WCM Server - System Integration Manual


Additional Components Livelink Enterprise Integration

Element Description
probably defined this folder earlier in the engine’s
configuration file. Example:
C:\Livelink\wcm\type1\cache\vo

You can skip the property Local Repository Folder if


you have set LOCALREPOSITORYFOLDER=<my
lltemp path>

Script Select a script from the LLWCM database that has to


be executed when connecting to the Livelink
repository. Entering a script is mandatory if you have
specified the Impersonate user mode.

Action Buttons Element Description


New Creates a new Livelink Enterprise connection.
Remove Deletes the selected Livelink Enterprise connection.
Copy Creates a new Livelink Enterprise connection as a
duplicate of the selected one.
Permissions Opens the Connectivity Manager dialog where you
can assign the permission to access this Livelink
Enterprise connection to users or object groups.

You must assign permissions to a Livelink Enterprise


connection. Connections without permissions are
inoperative and therefore do not display in the
Important
corresponding selection lists (for example in the
Properties dialog of virtual objects).

Export Writes the selected Livelink Enterprise connections to


an .oxp file (Object XML Package). The standard
Windows Save As dialog box allows you to specify
the destination of the new .oxp file.
Import Imports an .oxp file and creates new or updates
existing Livelink Enterprise connections. (See section
“Importing Configuration Entries” of the Site
Administrator Reference Manual for details about the
importing procedure.)
Apply Saves your changes in the WCM Server database.
Close Closes the Configuration dialog box without changing
the Livelink Enterprise connection definitions.

Livelink WCM Server - System Integration Manual Page 117


Livelink Enterprise Integration Additional Components

4.5.4 Single Sign-On between Livelink WCM Server and Livelink Enterprise

Introduction This chapter describes in detail all the necessary steps for establishing Livelink
Enterprise as the provider of the external user management for WCM Server. In
such a case, we are talking about 'Single sign-on Livelink Enterprise access'. After
the successful completion of all necessary steps

1. Livelink Enterprise users can login to the WCM Server Site Administrator or
the WCM Server Site Manager with their Livelink Enterprise user ID and
password.
2. Users working with the Livelink Enterprise browser within the Site
Administrator or the Site Manager see the same parts of the Livelink
Enterprise repository as if they were working directly within Livelink
Enterprise. This means that all permissions of the Livelink Enterprise system
are as well valid in Livelink WCM Server.

Configuration of Single sign-on only works if you expand the configuration filesof your CMEngine
the engine(s) by the following three lines:

AUTH_MODE=LIVELINK
USER_MODE=LIVELINK
USER_PLUGIN=<Livelink connection name with single sign-on user mode>

If the imported virtual objects need to be accessible by an anonymous user after


they once have been imported into the WCM Server database, you have to add
one additional line to the configuration file of your CMEngine:

LLSSOFALLBACK =YES

Connection You have to define a connection from the WCM Server to your Livelink
definition Enterprise repository. Do this in the Site Administrator as described in the last
chapter, following these special instructions:

1. Select Single sign-on as User mode.


2. Enter a user and a password in the User and Password fields. This particular
user has two important functions:
1. The credentials of this user are used by Livelink Enterprise for reading
the properties and permissions of the user who is logging in from the
WCM Server.

Page 118 Livelink WCM Server - System Integration Manual


Additional Components Livelink Enterprise Integration

2. This user is the default user for all Livelink Enterprise requests if no user
is logged in and you have specified LLSSOFALLBACK=YES in your
configuration file.

Because of the functions described above it is very important to select the default
user of a single sign-on Livelink Enterprise connection carefully. If this user does
not have sufficient access rights, the connection will never work correctly because
Livelink Enterprise will not return the properties and credentials of the requested
user to the WCM Server system.

The Name of this connection has to be provided in the USER_PLUGIN parameter


of the CMEngine's configuration file.

Matching rule You must define at least one Matching Rule that associates Livelink Enterprise
users with a WCM Server role. You can do this by typing a matching rule
manually into the Matching rule (LDAP) field located in the Roles tab of the
User Manager dialog.

Roles tab of the Open the User Manager of the Site Administrator, click the Roles tab and in
User Manager the role hierarchy select the role which you want to match to Livelink Enterprise
users. Then type the matching rule in the field Matching rule (LDAP) and
click Apply.

Livelink WCM Server - System Integration Manual Page 119


Livelink Enterprise Integration Additional Components

Syntax Syntax of the matching rule:

Matching_element="Value you have to enter"

Please note that the entered value has to be enclosed by double quotation marks.

The possible values for the matching elements are all the properties of
LivelinkUser class, as documented on the Knowledge Center, as well as the
following:

Matching element Value you have to enter


groupName Department name of the Livelink Enterprise user
memberOf Name of the group which the Livelink Enterprise user
is a member of.
directMemberOf Name of the group which the Livelink Enterprise user
is a direct member of.

Possibly bind If you need to assign individual permissions to particular Livelink Enterprise
external users users, you first have to connect the users in question to the WCM Server user
into the WCM directory. After that, you can treat such users like any other WCM Server user.
Server user
directory Open the User Manager in the Site Administrator. In the Users tab click the
External button. This displays the Search & Bind Externally Managed
Users dialog window.

Page 120 Livelink WCM Server - System Integration Manual


Additional Components Java Connectivity (LiveConnect)

If the External button is disabled, you have to enter a correct Web Site Base
URL in File → Configure Sites, as described before.

Note

Bind one or more externally managed users as follows:

1. Select an attribute for which you want to search.


2. Select an operator that connects the attribute with the following condition.
3. Enter a condition value. The search function will look in the Livelink
Enterprise user directory for the condition value in all occurrences of your
selected attribute.
4. Click Add to Filter. The field Search filter is updated accordingly.
To construct a complex condition, repeat steps 1 to 4.
5. Click the Search button. The users of the Livelink Enterprise user repository
that correspond to your search criteria are listed in the lower part of the
dialog window.
6. If you wish to see more details about a particular user in the list, select this
user and click Details. A separate window opens displaying a list of
attributes for the selected user.
7. Select the user(s) you want to integrate in the WCM Server user directory
and click Bind.

After you have bound an external user into the WCM Server user directory you
can grant permissions for this user like for any other user. For more information
about granting permissions to individual users, please refer to chapter “User
Management and Access Rights” in the Site Administrator Reference Guide.

4.6 Java Connectivity (LiveConnect)

4.6.1 Java Connectivity (LiveConnect) (Windows)

Introduction The WCM Server integrates with the Java world by providing a convenient
feature called LiveConnect: This feature enables you to instantiate and use Java
classes in server-side JavaScript directly via a predefined object Packages. Here
is a short example script that creates a Java String object and writes it to the
output page:

Livelink WCM Server - System Integration Manual Page 121


Java Connectivity (LiveConnect) Additional Components

var myString = new Packages.java.lang.String(“Test”);


openHttp();
write(myString);
closeHttp();

Configuration of Add the following to your cmengine.cfg in order to activate the LiveConnect
cmengine.cfg feature:

JVMENABLED=true
JVMLIBRARY=C:\java\j2sdk1.4.2_05\jre\bin\server\jvm.dll
JVMLOGFILE=C:\Livelink\wcm\type1\logs\jvmengine.log
JVMCLASSPATH=C:\Livelink\wcm\type1\bin\liveconnect.jar

• You may use more than one JVMCLASSPATH parameter. Each occurrence
adds the specified directory to the search path.

Note • liveconnect.jar contains the necessary classes for LiveConnect


functionality and therefore mustbe in your CLASSPATH.

Setting the In order to make sure the dynamic loader can find the JVM libraries, make sure to
system PATH set PATH variable accordingly (this is normally done by the JDK’s setup routine).
In order to verify this, start a command prompt and enter

C:\> path

The answer should be something like:

PATH=C:\Windows;C:\Windows\System32;C:\java\j2sdk1.4.2_05\bin

Tip If anything does not work as


expected, have a look at
C:\Livelink\wcm\type1\logs\jvmengine.log to see what went wrong.

4.6.2 Java Connectivity (LiveConnect) (Solaris)

Introduction The WCM Server integrates with the Java world by providing a convenient
feature called LiveConnect: This feature enables you to instantiate and use Java
classes in server-side JavaScript directly via a predefined object Packages. Here
is a short example script that creates a Java String object and writes it to the

Page 122 Livelink WCM Server - System Integration Manual


Additional Components Java Connectivity (LiveConnect)

output page:

var myString = new Packages.java.lang.String(“Test”);


openHttp();
write(myString);
closeHttp();

Configuration of Add the following to your cmengine.cfg in order to activate the LiveConnect
cmengine.cfg feature:

JVMENABLED=true
JVMLIBRARY=/usr/java/jre/lib/sparc/server/libjvm.so
JVMLOGFILE=/opt/livelink/wcm/type1/logs/jvmengine.log
JVMCLASSPATH=/opt/livelink/wcm/type1/lib/liveconnect.jar

• You may use more than one JVMCLASSPATH parameter. Each occurrence
adds the specified directory to the search path.

Note • liveconnect.jar contains the necessary classes for LiveConnect


functionality and therefore mustbe in your CLASSPATH.

Setting In order to make sure the dynamic loader can find the JVM libraries, make sure to
LD_LIBRARY_PATH set LD_LIBRARY_PATH accordingly in the startup script of your web server. Just
add the following line to /opt/apache2/bin/envvars or
/usr/iplanet/server4/https-myinstance/start:

LD_LIBRARY_PATH=/usr/java/jre/lib/sparc/server:/usr/java/jre/lib/sparc:/usr
/java/jre/lib/sparc/native_threads:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

Tip If anything does not work as expected,


have a look at
/opt/livelink/wcm/type1/logs/jvmengine.log to see what went wrong.

4.6.3 Java Connectivity (LiveConnect) (Linux)

Introduction The WCM Server integrates with the Java world by providing a convenient
feature called LiveConnect: This feature enables you to instantiate and use Java
classes in server-side JavaScript directly via a predefined object Packages. Here
is a short example script that creates a Java String object and writes it to the
output page:

Livelink WCM Server - System Integration Manual Page 123


WebDAV Service Additional Components

var myString = new


Packages.java.lang.String(“Test”);
openHttp();
write(myString);
closeHttp();

Configuration of Add the following to your cmengine.cfg in order to activate the LiveConnect
cmengine.cfg feature:

JVMENABLED=true
JVMLIBRARY=/usr/java/j2re1.4.2_05/lib/i386/server/libjvm.so
JVMLOGFILE=/opt/livelink/wcm/type1/logs/jvmengine.log
JVMCLASSPATH=/opt/livelink/wcm/type1/lib/liveconnect.jar

• You may use more than one JVMCLASSPATH parameter. Each occurrence
adds the specified directory to the search path.

Note • liveconnect.jar contains the necessary classes for LiveConnect


functionality and therefore mustbe in your CLASSPATH.

Setting In order to make sure the dynamic loader can find the JVM libraries, make sure to
LD_LIBRARY_PATH set LD_LIBRARY_PATH accordingly in the startup script of your web server. Just
add the following line to /opt/apache2/bin/envvars:

LD_LIBRARY_PATH=/usr/java/j2re1.4.2_05/lib/i386/server:/usr/java/j2re1.4.2_
05/lib/i386:/usr/java/j2re1.4.2_05/lib/i386/native_threads:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

Tip If anything does not work as expected,


have a look at
/opt/livelink/wcm/type1/logs/jvmengine.log to see what went wrong.

4.7 WebDAV Service

4.7.1 Server Configuration

Setup The following entries in the configuration file ( cmengine.cfg) are crucial:

SOAPENABLED=YES

Page 124 Livelink WCM Server - System Integration Manual


Additional Components WebDAV Service

SOAPMODULE=ObjectManager,ObjectManager,yes,no,no
SOAPMODULE=UserManager,UserManager,yes,no,no
SOAPMODULE=ConfigManager,ConfigManager,yes,no,no

If you want to create a log file for the SOAP requests, the following additional
entry is necessary:

SOAPLOGFILE=…(path and name of the log file)

The last parameter of the corresponding SOAPMODULE entry must be set to yes.

Comments You can test your configuration by typing your base URL (SERVERURL +
URLMAGIC) followed by ObjectManager in the address field of the web
browser. After sending this request, your browser should show the interface
description of the ObjectManager module.

4.7.2 Installation of the Java VM

Setup You have to install the Sun Java Virtual Machine. The currently supported JVM
version is 1.4.2, available at http://java.sun.com/downloads/.

4.7.3 Installation of Apache Tomcat

Setup You have to install the Apache Tomcat servlet engine. Currently supported
versions are 4.1 and 5.0, available at http://jakarta.apache.org/tomcat.

4.7.4 Installation and Configuration of the WebDAV Service

Setup After installing the JVM and Tomcat, create a directory (e.g. /wcmdav) in the
application directory (/webapps) of Tomcat. Inside this directory, create the
directories WEB-INF and WEB-INF/lib (uppercase/lowercase is crucial). After
that, your directory structure should look as follows: <tomcat
home>/webapps/wcmdav/WEB-INF/lib

Copy the following files from the WCM Server release set into the WEB-INF/lib
directory:

Livelink WCM Server - System Integration Manual Page 125


WebDAV Service Additional Components

WebDAV.jar The WebDAV Service Implementation


slide-kernel.jar Apache Slide Implementation
slide-roles.jar Apache Slide Implementation
slide-stores.jar Apache Slide Implementation
Apache Slide Implementation
slide-webdavservlet.jar
jdom.jar JDOM 1.0
jta-spec1_0_1.jar Sun Java Transaction API 1.0

Copy the following file from the WCM Server release set into the WEB_INF
directory:

web.xml The configuration file for the WebDAV Service


application inside the Tomcat Servlet Engine.

Copy the following file from the WCM Server release set into the application
directory you created (e.g. ../webapps/wcmdav):

Domain.xml The WebDAV Service configuration file.

Configure the following parameters in the section „store“ of the file


Domain.xml.

soapurl The URL (including the URLMAGIC, without a trailing


slash) of the WCM Server site that is to be made
available to a WebDAV client.

Example: http://server/magic

username The name of the user that will be used to access the
server. The user must have User Management
permissions and Read permissions for all objects that
are to be shown to the WebDAV client. It is
recommended to create a specific user for this
purpose.

password The password of the above-configured user.

cachetime The cache time (in seconds) for objects inside the
WebDAV service. Caution: Cache times that are
chosen smaller than the typical response time of a
WebDAV request can lead to unwanted side-effects.

usercachetime The cache time (in seconds) for user data and access
control information inside the WebDAV service.

defaultlanguage The default language chosen to display the WCM

Page 126 Livelink WCM Server - System Integration Manual


Additional Components WebDAV Service

Server content. This must be the name of the language


as configured in the Site Database.

defaultmedium The default medium chosen to display the WCM


Server content. This must be the name of the medium
as configured in the Site Database.

hidelanguage If your site uses only one language, or if you want to


display only the instances of the default language, you
can set this parameter to true. Otherwise choose false.

hidemedium If your site uses only one medium, or if you want to


display only the instances of the default medium, you
can set this parameter to true. Otherwise choose false.

hidesubtypes This list defines the subtypes that will be excluded.


The entries in the list are the subtype names as
configured in the Site Database, in double quotes and
comma-delimited. An example: “Thumbnail Pictures”,
“Fonts”, “Buttonstyle Pictures”, “Buttonstyle
Background”

hidegroups This list defines the groups that will be excluded. The
entries in the list are the group names as configured in
the Site Database, in double quotes and
comma-delimited. An example: “Shared Objects”.

objecttype The types of the objects that are to be shown to the


WebDAV client. Currently, only PICTURE is
supported.

nameseparator The separator used to join the object name with the
instance specific data. The separator “_” e.g. leads to
name_en.

Copy the following file from the WCM Server release set into the Tomcat
directory shared/lib:

j2oi.jar The WCM Server Java SDK classes.

Comments The namespace name in the file Domain.xml must match the namespace used in
the file web.xml. By default it is chosen as webdav. If you want to change it,
make sure it is changed at both locations.

Livelink WCM Server - System Integration Manual Page 127


WebDAV Service Additional Components

<servlet>
<servlet-name>webdav</servlet-name>
<display-name>Slide DAV Server</display-name>
<servlet-class>
org.apache.slide.webdav.WebdavServlet
</servlet-class>
<init-param>
<param-name>namespace</param-name>
<param-value>livelink</param-value>
</init-param>
</servlet>

If you want to make multiple sites available via WebDAV, you have to configure
one web application per site in Tomcat.

4.7.5 Installation of the WebDAV Service Authentication Module

Setup Copy the following files from the WCM Server release set into the Tomcat
directory server/lib:

The WebDAV Service Authentication Service


WebPresentationRealm.jar
J2oi.jar The WCM Server Java SDK classes.

Configuration in the file <tomcat>/conf/server.xml:

Insert or complete the following line in the server section:

<Listener
className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"
descriptors="/ch/ixos/tomcat/mbean-descriptor.xml"/>

Insert the following lines in the host section:

<Context path="/.." docBase="/..">


<Realm className="ch.ixos.tomcat.ObtreeRealm"
connectionURL=”..”
connectionUser=".."
connectionPassword = ".." />
</Context>

path The path (URL) of the WebDAV Service (e.g.


/wcmdav). This path eventually defines the URL of
the Tomcat server that will be accessed by a WebDAV
client.

docBase The name of the application directory you created for

Page 128 Livelink WCM Server - System Integration Manual


Additional Components Synchronization

the WebDAV Service implementation, e.g:.

• for Windows: /wcmdav


• for UNIX: /opt/tomcat/webapps/wcmdav

connectionURL The URL of the WCM Server site that is to be made


available to a WebDAV client.

connectionUser The name of a user with UserManagement and Read


permissions for all objects that are to be shown to a
WebDAV client.

connectionPassword The password of the above-configured user.

4.7.6 Configuration of a WebDAV Client

Setup WebDAV clients (e.g. Windows Explorer) can now access the WCM Server
repository by connecting to the URL

http://[tomcatserver]:8080/[applicationname]

The application name is the one you configured above (e.g. /wcm).

Version information about the WebDAV configuration is available at

http://[tomcatserver]:8080/[applicationname]/systeminfo

4.8 Synchronization
Purpose WCM Server Synchronization serves for editing one logical database on different
servers and to merge all changes on the same logical database. At least one master
and one slave database are necessary; only the number of existing object groups
limits the number of slave databases. Different types of databases (MS SQL,
Oracle, DB2. etc.) can be used on the different slave databases.

Premises The most important premises for using WCM Server Synchronization properly

Livelink WCM Server - System Integration Manual Page 129


Synchronization Additional Components

are

• adequate planning
• knowing well the abilities of WCM Server Synchronization and what cannot
be achieved by WCM Server Synchronization

Attention As of release 4.1, you need a special license for setting up WCM Server
synchronization. Using the Synchronization feature with previous releases is not
advisable, because IXOS Engineering (Switzerland) AG / Open Text guarantees
support only for installations of release 4.1 and higher.

As of release 4.1.1 certain settings have changed, so that you can no longer use an
older definition of synchronization. Older definitions must have to be adapted to
the new settings. Please find a detailed description of that in one of the following
paragraphs.

IXOS-Obtree components of release 4.1.1 do not work together with definition of


a previous release, and Obtree components of earlier release do not work together
with definition of release 4.1.1. Concurrent use of components of the releases
Important
4.1.0 and 4.1.1 is impossible.

Setup You have to perform all settings on the master database. Afterwards, you copy
this database to the other servers whereby the database becomes a slave database
on those servers.

1. On the Administration menu of the Site Administrator, point to Advanced


and click Synchronization Tool.

2. Define the current database as Master database (click Set as Master

Page 130 Livelink WCM Server - System Integration Manual


Additional Components Synchronization

Database).

You can choose a name arbitrarily. It serves for identifying the database in
the databases overview.
Database ID is a unique identifier of the database and is detected
automatically.
Number of IDs specifies the range of ID numbers that is allocated to the
database. The database uses the range of 0 to X to create object IDs for new
objects (in the screen capture, X would be 10'000'000).
The description serves only for display in the overview.
After confirming your entries by clicking OK, the database creates the
additional field Sync_DBID with a value of 1 in the following tables:
webobjects, viewtree, macroref, obj*, chartstyle, buttonrefs,
metadatainst, metadatamemb, users and accessref.
3. Now you can define the slave databases (click Define New Slave DB).
Name and description only serve for information purposes.
ID start specifies the first ID number that may be used for new objects on
the slave database; Number of IDs specifies the available range of ID
numbers. Since each database uses its own range of ID numbers, the ranges
must not overlap each other. You can check this by clicking Check. Get ID
Start serves for finding the lowest available range of ID numbers.
The WCM Server can detect automatically the database ID of the master
database. This is not always possible for the slave databases. If you are
allowed to access the according databases you can fetch this information by
using the Get button.
Enter the required data (the dialog fields are the same as in the Configure
Sites dialog). Clicking OK reads the required database ID and writes it into
the corresponding field of the Create Slave Database dialog.
If you are not allowed to access the database directly, a small wizard can help
you. Click the Generate button to start this wizard.:

Livelink WCM Server - System Integration Manual Page 131


Synchronization Additional Components

Just enter the required data (depending on the database type, the number of
the required data may differ slightly). Clicking OK generates a database ID
and writes it into the corresponding field of the Create Slave
Databasedialog.
Finally, you have to specify the object groups that may be edited in the slave
database.
By clicking OK, the values in the fields Sync_DBID of the tables mentioned
above are set to 2 (or higher). After that, you get a message indicating the
number of objects that were assigned to the slave DB.
Every object may be edited on just one database to prevent conflicts during
synchronization. The Site Administrator acts very restrictively in that respect and
prohibits editing of objects that are not members of groups assigned to the own
Caution
database.

The same is true for the SiteManager and the scripting backend (ObjectManager
class etc.). However you have to be careful when using direct SQL statements for
object manipulation. This is considered “bad practice” with today's versions, but
there are sites with legacy code around. We strongly recommend to update such
scripts to use the *Manager scripting classes for these purposes before using the
synchronization feature.

This overview shows all defined databases, the assigned object groups of
each database and data and time of the latest synchronization run.
An asterisk next to the DBID identifies the current database of the Site
Administrator (in the screen capture, this is the master database).
Repeat this step for each desired slave database. However, if all object groups
are assigned to a slave database, you can define no further slave database.
4. The next action is to copy the master database to the individual database
servers. Use the WCM Server SQL Transfer tool to achieve this. You can
start that tool directly from the Synchronization tool, which has the
advantage of creating a suitable template automatically.
5. To check whether the Site Manager will work correctly with your settings,
enter the query option ?about=connect after the URL of your web site in
the address bar of your browser.

Installing the synchronization is now complete; you can work with the different
databases as usual.

Attention If you are working with Oracle under Solaris or Linux, the server name must be
the same as your tns entry in the file tnsnames.ora.

Page 132 Livelink WCM Server - System Integration Manual


Additional Components Synchronization

If the 2nd part of the database identifier is “dbname”, then you forgot to set the
ORACLE_HOME environment variable to your Oracle home directory.

Running a From time to time, you have to synchronize the databases in order to achieve the
synchronization same state on all databases. You can use the new deployment command line tool
(see paragraph “Deployment” in chapter “Tools” for a description) to do this
automatically or you can do it manually. In this case, a synchronization run has
four steps:

1. Synchronization Slave → Master


On the slave database, create a file containing the changes of the slave
database that have to be transferred to the master database. The button Create
Synchronization File gets active as soon as you select the target database in
the list of available databases (in this case the master database).
Send the created file to the server running the master database.
On the master database, load the synchronization file. The synchronization
runs. At the end of the run, the corresponding log file contains messages
about the generated results.
2. Synchronization Master → Slave
Like step 1, but in the other direction. On the master database, select the
desired target slave database in the list of databases, create the file with the
changes, send it to the slave database and there load the file.
3. If changes had been made on both databases, the log files probably reports
conflicting changes. In such a case, repeat step 1.
4. If you had to perform step 3, repeat step 2 afterwards. Now, the log file
should no longer report conflicting changes.

Uninstalling An existing system of synchronized databases can be retransformed into a regular


synchronization system.

1. Perform a synchronization run from all slave databases to the master


database.
2. Delete all slave databases from the list (use the button Disconnect Slave
DB).
3. Revoke the setting of the master database (use the button Unset Master
Database).

Now you are confronted again to a regular WCM Server database.

Livelink WCM Server - System Integration Manual Page 133


Synchronization Additional Components

Changing group In order to reassign groups between the master and slave databases, the following
assignments procedure is recommended:

1. Stop working on all databases


2. Resynchronize all slaves with the master
3. Change group assignment(s)
4. Resynchronize all slaves with the master
5. Resume work…

Clear Delete WCM Server records all deletions that affect the database in the designated table
Table syncdeleterow. With the information of this table, the synchronizing process
can delete the affected objects in the target database.

The table syncdeleterow is usually cleaned up automatically. However, in


some cases cleaning up that table fails, or you uninstall the synchronization and
the table does not get deleted properly.

In such a case, use the function Clear Delete Table.

Updating an old With release 4.1.1, the recognition of the database has been changed. The IP
synchronization address was replaced by a unique database ID. The new components only work
with this new database recognition, older components work only with the former
IP address.

As soon as you access a synchronized database with the new Site Administrator
of release 4.1.1, a message appears notifying you of the necessary update of the
database definition. The Synchronization dialog appears.

All buttons of the dialog are disabled. In addition, the system does not recognize
the current database.

You now first have to change the settings of the master database. After this, you
have to copy the table synctable to the slave databases. Use the SQL Transfer
tool to achieve this. We strongly recommend doing a backup of all involved
Important
databases before beginning with the updating process.

Double-click an entry of the database list to open either the dialog of the master
database or the dialog for the slave database. Enter the database IDs in the same
way as if you made a new installation, and confirm your entries by clicking OK.
Repeat this step for each of the involved databases.

After you have carried out the changes described above, you have to restart the

Page 134 Livelink WCM Server - System Integration Manual


Additional Components Synchronization

Site Administrator. From now on you must no longer use components of release
4.1.0 or earlier because the synchronization will no longer recognize such
components.

Possible The following situation requires manual updating, because automatic


problems synchronization does not work correctly with it:

Present situation:

You are using a template that is used in different pages. Those pages are assigned
to different databases.

Procedure:

Create a new, non-fixed slot in this template. Effect:

The new slot is created in all affected pages of the current database. The other,
synchronized databases do not yet know of the new slot, therefore this new slot is
not created in the pages of those databases.

Synchronization:

During the next synchronization, the new slots are copied from the current
database to the other databases, as well as the template. Pages existing only on
one of the other databases and using the template in question will not yet get the
new slot.

Solution:

Administrators are allowed to use a special function in the Template Editor of the
Site Administrator: Recreate inherited slot. This function re-creates the new slot
again, without affecting already existing slots.

Amendment:

If you, instead of creating a new slot, delete an existing slot, the potentially
affected pages of the other databases do as well not recognize this change.
However, this situation is not that serious because deleted slots have no
importance. The Template Editor and the Page Editor of the Site Administrator
display such slots dimmed. Carrying out the Optimize Database function will
remove such dispensable slots.

Livelink WCM Server - System Integration Manual Page 135


WordWizard (Microsoft Word Integration) Additional Components

4.9 WordWizard (Microsoft Word Integration)


Important This chapter describes only the server-side configuration that is necessary for the
Word integration to work. For the client side, please see the chapter of the same
name in the “Client Installation” section on page 157.

4.9.1 Server Configuration

Activate SOAP The WordWizard use SOAP WebService to communicate with the WCM Server.
The following entries in the configuration file (cmengine.cfg) are necessary:

SOAPENABLED=YES
SOAPMODULE=ObjectManager,ObjectManager,yes,no,no
SOAPMODULE=UserManager,UserManager,yes,no,no
SOAPMODULE=SearchManager,SearchManager,yes,no,no

If you want to use Professional Workflow, add the following additional


parameter:

SOAPMODULE=WorkflowManager,WorkflowManager,yes,no,no

If you want to create a log file for SOAP requests, the following additional entry
is necessary:

SOAPLOGFILE=…(path and name of the log file)

The last parameter of the corresponding SOAPMODULE entry must be set to yes.

Enable Edit Icon Set the following parameter in the configuration file of the CMEngine
(cmengine.cfg):

WIZARDMODE=WORD

or

WIZARDMODE=APPLET,WORD

Page 136 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Comments You can test your configuration by typing your base URL (SERVERURL +
URLMAGIC) followed by ObjectManager in the address field of the web
browser. After sending this request, your browser should show the interface
description of module ObjectManager.

4.10 TaskAgent

4.10.1 What’s the feature all about?

With the TaskAgent, the client obtains a simple yet powerful tool to perform three different tasks:

• remotely control SOAP webservices, especially the services published by the CMEngine,
• fetch arbitrary documents located somewhere within the World Wide Web and referenced by a
URL and
• execute arbitrary binaries stored on your local computer, given the user who executes the
TaskAgent has the permission to do so.

The TaskAgent furthermore contains a scheduler. So with the TaskAgent you will fully automate jobs
that should have been done periodically.

The TaskAgent is a self-contained tool. There’s no required dependency on other software. Obviously
there will be dependencies to webservices, web sites or binaries introduced by configuration.

Example: Imagine, your web site contains some charts visualizing some statistics that reside on an
external database. So it is likely that the chart is represented within the WCM Server by a SQL
statement. Because the data does not reside in a WCM Server DataTable object but on an external
source, changes to the data do not trigger updates of the chart. If you can tolerate short delays between
updates of the data and updates of the chart derived, then a good solution was to use the TaskAgent to
update all charts on a, say, daily basis.

The TaskAgent is available for all platforms the WCM Server server components are available for, i.e.
some flavours of the UNIX family of operating systems and MS Windows.

The TaskAgent is a command line application installable as a MS Windows service resp. an UNIX
daemon. There is no graphical user interface, because the TaskAgent will work silently in the
background most of the time.

Livelink WCM Server - System Integration Manual Page 137


TaskAgent Additional Components

4.10.2 Files delivered with the TaskAgent

For each platform there is a single binary called taskagent and a sample configuration file called
taskagent.cfg.

4.10.3 Using the TaskAgent

Command line After reading this section you will know how to call the TaskAgent from within
options the shell command prompt. This section contains a complete explanation of all
command line options.

Option Description
[a section name] The name of the section whose commands should be
executed.

-conf Enables you to specify the name of the configuration


file to use. The file name is expected to be the next
command line argument. If this command line option
is not given, taskagent.cfg is taken as a default.
The default configuration file is first searched for in
the current working directory. The MS Windows
version then searches for it in the System Directory,
whereas the UNIX versions then search for it in
/opt/obtree, /usr/obtree, and
/usr/local/obtree in this order; you can gather
the name actually taken from the logfile afterwards. If
the user specifies a configuration file name on the
command line, it will be searched for only under its
name given.

-daemon Starts the TaskAgent as a daemon. Because daemons


are a concept singular to the UNIX family of operating
systems, the MS Windows version will print an error
message only.

-deinstall Deinstalls the TaskAgent from the list of services


registered. Any other command line arguments are
silently ignored. Because services are a concept
singular to MS Windows, the UNIX versions will
print an informational message only.

-delay Delays execution of a section by a certain amount of

Page 138 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Option Description
time. The two next arguments that have to be given,
are: A section name and the time delta in seconds.
Note that this command does not force the appropriate
section to be executed. So it has only an effect if the
section is additionally given via the
[asectionname] command line argument. If you
want to set a delay for more than one section, you
have to use the –delayswitch several times:

taskagent –delay section0 1 –delay section1 1

Starting with Release 9.5.0, you have the option to list


several sections at once. Just enclose them in quotes
and separate them by spaces:

taskagent –delay “section0 section1” 1

would be equivalent to the above.

-help Prints a help message. Any other command line


arguments are silently ignored.

-install Installs the TaskAgent as a service. If other command


line parameters are given, they will apply for each
invocation of the service. Because services are a
concept singular to MS Windows, the UNIX versions
will print an informational message only.

-macro Macro definitions are a powerful way to keep the


configuration file generic. Using macro definitions,
any term that has been written on the right hand side
in the configuration file can be textually replaced by
another term. Macro definitions are section specific.
The next two arguments establish a macro definition.
First the name of the appropriate section has to be
given, then a key value pair is expected consisting of
the term to be replaced followed by the [=] sign and
the replacement string. Note that this command does
not force the appropriate section to be executed. So it
has only an effect if the section is additionally given
via the [asectionname] command line argument. If
you want to declare more than one macro definition,

Livelink WCM Server - System Integration Manual Page 139


TaskAgent Additional Components

Option Description
you have to use the –macro switch several times:

taskagent –macro section0 var0=value0 –macro sec


tion0 var1=value1

Starting with Release 9.5.0, you have the option to list


several sections or macro definitions at once. Just
enclose them in quotes and separate them by spaces:

taskagent –macro “section0 section1” “var0=value0


var1=value1”

would be equivalent to

taskagent –macro section0 var0=value0 –macro sec


tion0 var1=value1 –macro section1 var0=value0
–macro section1 var1=value1

-noexec Perform a dry run only. Useful to debug configuration


files.

-verbose Switches on detailed messages during the whole


runtime of the TaskAgent.

-version Prints version information on the TaskAgent to the


screen. Any other command line arguments are
silently ignored.

Most command line arguments make sense to be given multiple times.

If multiple section names are given, then the TaskAgent processes these sections
potentially in parallel. If you want to impose a strictly sequential behaviour, then
chain the appropriate sections by means of goto commands (see section
“Configuration of the TaskAgent”) instead. Note that you can also use both
methods at the same time: Giving sections independent of each other on the same
command line and connecting sections to be processed sequentially relative to
each other with the goto command. The disadvantage of goto commands over a
similar command line is that you hard wire a certain process by means of the
configuration file.

Example Assuming you have a configuration file in c:\ called taskagent.cfg and a
section called [DataTable] within this file. Probably inside of this section the

Page 140 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

string $dataTableID is used. Then you could call the TaskAgent by the
following command line:

TaskAgent –conf c:\taskagent.cfg DataTable –macro DataTable


$dataTableID=3104

Note that the example suggests a naming convention on text to be replaced by


macros: The terms are prefixed by a $ sign. This has been done to make it very
unlikely that some text gets unconditionally replaced by the macro facility. Also
note that the macro facility does replace even substrings, so if you say –macro
someSection apple=orange, then applejuice becomes orangejuice in
section [someSection] afterwards.

4.10.4 Configuration of the TaskAgent

The TaskAgent is a flexible tool. Because it can perform three distinct jobs, the configuration depends
on whether you want to spawn executables, hit some URLs or call remote SOAP webservices. Each
section in the configuration file contains commands for on of the three different actions only. These
actions are called “calltypes” in the remaining document.

Configuration Like all the WCM Server products the TaskAgent has a facility to specify defaults
parameters within the configuration file. If a section has the reserved name COMMON and the
recognized inside parameter DEFAULTSECTION inside this section is set to on, then the parameters
the [COMMON] found there are taken as defaults, if not specified in a specific section. With the
section TaskAgent only a few parameters make sense to be specified within the COMMON
section.

Parameter Description
CALLTYPE Specifies the default calltype of all sections. Possible
values for the keyword CALLTYPE are:

EXECUTABLE
This section is intended to execute binaries like
the server-side Scripting class Executable does.
For further implications on special configuration
parameters see section “’COMMAND’s for the
‘EXECUTABLE’ calltype”.
HTTP
This section is intended to hit some URLs like the
server-side Scripting class HTTPClient does. For
further implications on special configuration
parameters see section “’COMMAND’s for the

Livelink WCM Server - System Integration Manual Page 141


TaskAgent Additional Components

Parameter Description
‘HTTP’ calltype”.
SOAP
This section is intended to call remote SOAP
webservices like the server-side Scripting class
SOAPClient does. For further implications on
special configuration parameters see section
“’COMMAND’s for the ‘SOAP’ calltype”.

DEFAULTSECTION If detected inside the section named COMMON and set to


on, then the contents of the [COMMON] section is
treated as a fallback if some key does not exist in
another section
LOGFILE Name of the log file. If no log file is specified at all,
logging will be performed to the screen, if any. Note
that services and daemons don’t have such a device,
so you should specify a log file.
THREADCOUNT The TaskAgent has been implemented by means of a
thread pool. The size of the pool determines the
maximum load this application will ever cause to your
system. This parameter lets you specify an integer
indicating the size of the thread pool. It defaults to 10.

Configuration The grammar allowed to be put into a configuration file is context dependent.
parameters There is a simple hierarchical scheme. The following terms are allowed:
common to all
calltypes Parameter Description
CALLTYPE Specifies the calltype of the current section. For all
possible values for the keyword CALLTYPE see above.
If no calltype is specified, the calltype specified in the
[COMMON] section is taken, if any. Specifying no
calltype at all is an error.
COMMAND Specifies a command to be executed. The COMMAND
key is designed similarly to the class SOAPClient of
server-side Java Script. This implies two
consequences: First, inside of a section state
information is maintained. Most easily think as if there
was an instance of SOAPClient residing in the
background. Secondly, the values allowed for the
COMMAND keyword are a superset of the interface, i.e.
the member functions and properties, of the
SOAPClient class. Possible values for the keyword
COMMAND are:

Page 142 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Parameter Description
Keyword Description
detectError Activates some check on return
values of remote procedure calls. If
an error was detected, processing
the appropriate section terminates
immediately and an entry becomes
added to the log file specified by the
LOGFILE setting. Possible
keywords are:

ERRORSTATE
An integer being a special
return value to be considered.
The default value depends on
the calltype. For HTTP it’s 200,
otherwise it defaults to “0”.
MODE
Specifies how the value given
as ERRORSTATE is going to be
interpreted. Possible values are
none – this switches off error
detection –, onFailure – the
return value specified is
interpreted as an error, any
other value indicates success –,
onSuccess – the return value
specified is interpreted to
indicate successful execution of
the call – and always –
regardless of its return value
any command will be
interpreted to have failed, any
other value means an error. The
value defaults to none.
SECONDS
Specify a delay in seconds after
which the execution of the
command affected is tried
again. If not specified, no retry
ever happens. So if you run the
TaskAgent as a daemon resp.
service, then you should always
give this parameter.

Livelink WCM Server - System Integration Manual Page 143


TaskAgent Additional Components

Parameter Description
Keyword Description

Note that only MODE is mandatory.


Within a single section the
TaskAgent keeps track of the
ERRORSTATE even if error detection
has been switched off by setting
MODE to none, so error detection
can be activated again with the
same value for the ERRORSTATE as
before by setting MODE to a value
different to none.

echo Just echoes text. Useful for


debugging purposes. Possible
keywords are:

LOG
The value is echoed into the
logfile.
STDOUT
The value is echoed to the
standard output. On most
platforms this output is likely to
be shown delayed.
STDERR
The value is echoed to the
standard error output. On most
platforms this output is likely to
be shown immediately.

exit Immediately exits the TaskAgent.


Possible keyword:

EXITSTATE
An integer that is returned to
the calling shell.

goto Executes another section. No


information on the current context is
transferred to the section jumped to,
so for processing the next section it
does never count which section has
been processed before. This

Page 144 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Parameter Description
Keyword Description
prevents errors hard to identify.
goto acts asynchronously, i.e.
commands given following the
goto command will be executed as
if no goto was present, and they
will be executed immediately.
Recognized keywords:

DESTINATION
A section name to be executed.
SECONDS
An integer specifying the delay
in seconds. If this parameter is
missing, the section specified
will be executed immediately.

noOp Does nothing. Useful for debugging


purposes as an alternative way to
comment out some action. Using
the -macro command line option
you could e.g. substitute all echo
commands in a certain section by
noOp.
showMacro Prettyprints all macro definitions
active for the current section. Useful
for debugging purposes.
sleep Delay processing of the current
section for a certain time delta. Note
that the scheduler of the operating
system can impose a longer delay
than specified, but never a shorter
one. Expected keyword:

SECONDS
An integer specifying the delay
in seconds.

LOGFILE Name of the section specific logfile. If no log file is


specified, the logfile specified in the [COMMON]
section is taken.
LOGLEVEL Integer indicating the loglevel.

Livelink WCM Server - System Integration Manual Page 145


TaskAgent Additional Components

“COMMAND”s for The purpose of the EXECUTABLE calltype is to periodically execute arbitrary
the binaries like e.g. Unix cron does. Configuring the TaskAgent as a scheduler that
“EXECUTABLE” just schedules the execution of binaries is quite simple, because in general you
calltype just need the cmdLine, the detectError, the execute and the goto
commands.

Command Description
cmdLine Like the cmdLine property of instances of the
Executable class of server-side Java Script this
command sets the command line arguments for the
binary to be executed. Keywords recognized are:

ARGUMENT
The command line arguments. This keyword is
mandatory.

errData Similar to the errData property of instances of the


Executable class of server-side Java Script this
command will direct the output to stderr the
executable has made to the screen.
errSize Similar to the errSize property of instances of the
Executable class of server-side Java Script this
command will print the size of the output to stderr
the executable has made to the screen.
execute Similar to the execute() member function in the
Executable class of server-side Java Script this
command will execute the command specified by
cmdLine before. Keywords recognized are:

EXECUTABLE
The binary to be executed. This keyword is
mandatory.

exitCode Similar to the exitCode property of instances of the


Executable class of server-side Java Script this
command prints the status code of the binary just
executed.
inData Similar to the inData property of instances of the
Executable class of server-side Java Script this
command enables you to specify data to be passed to
the executable via stdin. This command expects the
following key / value pair:

STDIN

Page 146 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Command Description
The data to be passed to the executable.

outData Similar to the outData property of instances of the


Executable class of server-side Java Script this
command will direct the output to stdout the
executable has made to the screen.
outSize Similar to the outSize property of instances of the
Executable class of server-side Java Script this
command will print the size of the output to stdout
the executable has made to the screen.
setTimeout Similar to the timeout property of instances of the
Executable class of server-side Java Script this
command specifies a timeout the executed binary is
allowed to run. If it takes longer, it will be killed. This
command expects the following key / value pair:

MILLISECONDS
The timeout in milliseconds.
Note that specifying a timeout is silently ignored
on some platforms due to restrictions of the
underlying operating system.

“COMMAND”s for You can use it to fetch web documents. It can especially be useful to hit WCM
the “HTTP” Server URLs like
calltype http://aMachineName:aPortNumber/aSite?debug=clearcache. This
section contains a complete explanation of each keyword special to the HTTP
calltype.

Command Description
content Like the content property of instances of the
HTTPClient class of server-side Java Script, this
command shows the content of a document fetched
before.
getKeepAlive Like the keepAlive property of instances of the
HTTPClient class of server-side Java Script, this
command shows the current setting of HTTP
KeepAlive.
getMethod Like the method property of instances of the
HTTPClient class of server-side Java Script, this
command shows the current HTTP method.
getPostData Like the postData property of instances of the

Livelink WCM Server - System Integration Manual Page 147


TaskAgent Additional Components

Command Description
HTTPClient class of server-side Java Script, this
command shows the current HTTP POST data.
getRequestHeader Like the requestHeader property of instances of the
HTTPClient class of server-side Java Script, this
command shows the current HTTP request headers.
getReuseSessionSSL Like the reuseSessionSSL property of instances of
the HTTPClient class of server-side Java Script, this
command shows whether the SSL session id is going
to be reused with the next request.
getSessionSSL Like the getSession() member function in the
HTTPClient class of server-side Java Script, this
command shows the SSL session id, which might be a
binary value.
getTimeout Like the timeout property of instances of the
HTTPClient class of server-side Java Script, this
command shows the delay before a request is given
up.
getUserAgent Like the userAgent property of instances of the
HTTPClient class of server-side Java Script, this
command shows the user agent string passed along
with the HTTP requests.
responseHeader Like the responseHeader property of instances of
the HTTPClient class of server-side Java Script, this
command shows the HTTP header returned by the
web server.
resultCode Like the resultCode property of instances of the
HTTPClient class of server-side Java Script, this
command shows the HTTP status code returned by the
web server. It indicates whether the HTTP request
succeeded (a number in the range from 200 to 299) or
not (any other number). If not, then the number
returned gives you some hint what went wrong. The
meaning of the value is standardized in Request for
Comment (RFC) #2616 (“Hypertext Transfer
Protocol—HTTP/1.1”).
sendRequest Like the sendRequest() member function in the
HTTPClient class of server-side Java Script, this
command sends a HTTP request to a certain URL.
This command expects the following key / value pair:

URL
The URL indicating protocol, port, server, path
and query string. Protocols supported are “http”

Page 148 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Command Description
and “https”.

setKeepAlive Like the keepAlive property of instances of the


HTTPClient class of server-side Java Script, this
command modifies the current setting of HTTP
KeepAlive. This command expects the following key /
value pair:

STATE
A binary value indicating whether HTTP
KeepAlive is going to be switched on or off.
Possible values are 0 (indicating off) and 1
(indicating on).

setMethod Like the method property of instances of the


HTTPClient class of server-side Java Script, this
command allows for modification of the current HTTP
method. This command expects the following key /
value pair:

METHOD
An arbitrary string indicating the HTTP method
to be set. Note, however, that your web server
will only support a restricted set of methods, most
notably GET, HEAD, POST and maybe PUT.

setPostData Like the postData property of instances of the


HTTPClient class of server-side Java Script, this
command modifies the current HTTP POST data. This
command expects the following key / value pair:

POSTDATA
An arbitrary string to be taken as the HTTP post
data.

setRequestHeader Like the requestHeader property of instances of the


HTTPClient class of server-side Java Script, this
command modifies the current HTTP request headers.
This command expects the following key / value pair:

HEADER
An arbitrary string to be taken as the HTTP
request header. Each non-quoted word constitutes
a separate header line.

Livelink WCM Server - System Integration Manual Page 149


TaskAgent Additional Components

Command Description

setReuseSessionSSL Like the reuseSessionSSL property of instances of


the HTTPClient class of server-side Java Script, this
command influences whether the SSL session id is
going to be reused with the next requests. This
command expects the following key / value pair:

STATE
A binary value indicating whether the SSL
session id is going to be reused with the next
requests or not. Possible values are 0 (indicating
no) and 1 (indicating yes).

Like the setSessionCacheModeSSL property of


setSessionCacheModeSSL
instances of the HTTPClient class of server-side Java
Script, this command sets the SSL session cache
mode. This command expects the following key /
value pair:

MODE
An integer indicating the session cache mode.

setSessionSSL Like the setSession() member function in the


HTTPClient class of server-side Java Script, this
command sets a SSL session id. This command
expects the following key / value pair:

SESSIONID
An arbitrary string to be taken as the SSL session
id.

setSessionTimeoutSSL Like the setSessionTimeoutSSL property of


instances of the HTTPClient class of server-side Java
Script this command sets a SSL session timeout. This
command expects the following key / value pair:

SECONDS
An integer value indicating the timeout in
seconds.

setTimeout Like the timeout property of instances of the


HTTPClient class of server-side Java Script, this
command specifies the delay before a request is given
up. This command expects the following key / value

Page 150 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Command Description
pair:

SECONDS
An integer value indicating the timeout in
seconds.

setUserAgent Like the userAgent property of instances of the


HTTPClient class of server-side Java Script, this
command modifies the user agent string passed along
with the HTTP requests. This command expects the
following key / value pair:

USERAGENT
An arbitrary string to be taken as the user agent
identifier.

useAuthentication Like the useAuthentication() member function in


the HTTPClient class of server-side Java Script, this
adds HTTP “Basic” Authentication records to the
HTTP request. Possible keywords are:

USER
The mnemonic user name.
PASSWORD
The password of the user specified. For your own
security please ensure that access to configuration
files containing passwords is restricted to the bare
minimum.

useProxy Like the useProxy() member function in the


SOAPClient class of server-side Java Script, this
enables you to use HTTP proxies like application
firewalls or caching proxies between the TaskAgent
and the provider of the SOAP web service. Possible
keywords are:

HTTPPROXYSERVER
The name of the proxy server.
HTTPPROXYPORT
The port number identifying the proxy service on
the proxy server. The default is “80”.

like
useProxyAuthentication the useproxyauthentication() member
function in the SOAPClient class of server-side Java

Livelink WCM Server - System Integration Manual Page 151


TaskAgent Additional Components

Command Description
Script, this switches on HTTP “Basic” authentication
to identify the TaskAgent at a proxy between the
TaskAgent and the provider of the SOAP web service.
Possible keywords are:

USER
The mnemonic user name.
PASSWORD
The password of the user specified. For your own
security please ensure that access to configuration
files containing passwords is restricted to the bare
minimum.

“COMMAND”s for You can use it to remotely call virtually every SOAP web service out there.
the “SOAP” Because SOAP is a very general concept, the TaskAgent has to be adapted to the
calltype SOAP web services that need to be remotely controlled. This is done by
customizing the configuration file. This section contains a complete explanation
of each keyword special to the SOAP calltype.

Command Description
call Like the call() member function in the
SOAPClient class of server-side Java Script, this
initiates a SOAP remote procedure call. Keywords
recognized are:

FUNCTION
The name of the remote function to call.
ARGUMENT
The arguments transmitted along with the
function call. Their types should match the
declaration of the function specified that is likely
to be published within some Web Services
Description Language (WSDL) file. Multiple
ARGUMENT lines are concatenated. For a detailed
and complete specification of the format for this
keyword see section “Format of ARGUMENT and
HEADER values”.

The FUNCTION value is mandatory. If any ARGUMENTs


are left out, then the effect is the same as giving an
empty argument list.

Page 152 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Command Description
error Similar to the error property of instances of the
SOAPClient class of server-side Java Script this
function prints the return value of the SOAP remote
procedure call just finished.
errorMessage Similar to the errorMessage property of instances of
the SOAPClient class of server-side Java Script this
function prints the error message of the SOAP remote
procedure call just finished.
setSOAPAction Like the setSOAPAction() member function in the
SOAPClient class of server-side Java Script this
function sets a SOAP action header. This command
expects the following key / value pair:

ACTIONHEADER
The action header to be sent along the SOAP call.

setSOAPHeader Like the setSOAPHeader() member function in the


SOAPClient class of server-side Java Script this
function sets the SOAP header, if the following key /
value pair is given:

HEADER
The contents of the SOAP header. Multiple
HEADER lines are concatenated. For a detailed and
complete specification of the format for this
keyword see section “Format of ARGUMENT and
HEADER values”.

setTargetNamespace Like the setTargetNamespace() member function


in the SOAPClient class of server-side Java Script
this function sets a SOAP namespace. The keywords
expected are:

NAMESPACE
The namespace to be set.
NAMESPACEPREFIX
The namespace prefix to be set.

setTargetURL Like the setTargetURL() member function in the


SOAPClient class of server-side Java Script this
command has to be executed to specify the Uniform
Resource Locator (URL) of the SOAP webservice.
You have to provide the mandatory key / value pair:

Livelink WCM Server - System Integration Manual Page 153


TaskAgent Additional Components

Command Description
URL
The value is the URL.

showSOAPRequest Like the showSOAPRequest() member function in


the SOAPClient class of server-side Java Script this
command prints the whole SOAP request as it would
have been sent using the call command, i.e. in XML.
showSOAPResponse Like the showSOAPResponse() member function in
the SOAPClient class of server-side Java Script this
command prints the whole SOAP response as received
by the TaskAgent from the SOAP web service, which
has been initiated by a former call command.
useAuthentication Like the useAuthentication() member function in
the SOAPClient class of server-side Java Script, this
adds HTTP “Basic” Authentication records to the
HTTP request. Possible keywords are:

USER
The mnemonic user name.
PASSWORD
The password of the user specified. For your own
security please ensure that access to configuration
files containing passwords is restricted to the bare
minimum.

useProxy Like the useProxy() member function in the


SOAPClient class of server-side Java Script, this
enables you to use HTTP proxies like application
firewalls or caching proxies between the TaskAgent
and the provider of the SOAP webservice. Possible
keywords are:

HTTPPROXYSERVER
The name of the proxy server.
HTTPPROXYPORT
The port number identifying the proxy service on
the proxy server. The default is 80.

Like the useProxyAuthentication() member


useProxyAuthentication
function in the SOAPClient class of server-side Java
Script, this switches on HTTP “Basic” authentication
to identify the TaskAgent at a proxy between the
TaskAgent and the provider of the SOAP web service.

Page 154 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Command Description
Possible keywords are:

USER
The mnemonic user name.
PASSWORD
The password of the user specified. For your own
security please ensure that access to configuration
files containing passwords is restricted to the bare
minimum.

4.10.5 Format of „ARGUMENT“ and „HEADER“ values

General Because the format of the value associated to both the ARGUMENT key of the call
information command and the HEADER key of the setSOAPHeader command is the same, the
description in this section is valid for both.

Beyond the information given in this manual, the showSOAPRequest command


helps you investigate further how the values of ARGUMENT and HEADER are
translated. This can be useful for debugging purposes.

SOAP arguments are type safe. As usual with typed programming languages there
are some fundamental types and language constructs to build compound types
from more simple building blocks. Moreover, it is possible to apply comments
within a value definition.

Fundamental The TaskAgent recognizes the following fundamental data types:


data types
Name SOAP equivalent Use
base64Binary xsd:base64Binary Binary data, base64 encoded.
boolean xsd:boolean Boolean data. The value “0”
indicates false, the value 1
indicates true. Values different
from 0 and 1 are not allowed.
date xsd:dateTime Calendar date. Possible formats
are the same as in the
Date(String) constructor of
the Date class of server-side
Java Script.
double xsd:double Floating point number with
double precision. 3.1416 is a

Livelink WCM Server - System Integration Manual Page 155


TaskAgent Additional Components

Name SOAP equivalent Use


possible input, 1.0e2 is also
recognized as valid and equals
100.0.
int xsd:int Integer number. 42 is valid
decimal input, 052 is treated as
an octal number that equals the
decimal number 42, and 0x2a is
treated as a hexadecimal number
with the same value as above.
string xsd:string Text string. If it consists of more
than only one word, then it must
be quoted using single quotes.
Quoted single quotes must then
be escaped by a backslash [\]
not to be interpreted as the end
of the whole string. The separate
section “How to quote” explains
quoting in detail.

The format of a value of any fundamental data type is designed similarly to the
SOAPClientArguments class of server-side JavaScript.It reads as follows:

value type;

First, the value is given as a string, then its type, and last a semicolon. The type
determines how the value is going to be interpreted by the TaskAgent and how
the value is put into the SOAP XML data to be sent to the web service. The
semicolon acts as a terminator.

Example: String
This example demonstrates the way how to quote strings consisting of
multiple words.

'it\'s raining cats and dogs' string;

This means that “it’s raining cats and dogs” is to be interpreted as a value of
type “string”.

Compound data The TaskAgent supports two compound types: structures and arrays. The in-depth
types examples should enable users to unleash the whole power of the TaskAgent,
because after they’ve read the following subsections they can build arbitrarily
complex SOAP ARGUMENTs and HEADERs.

Page 156 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

The basic ingredient of any compound type is a set of fundamental data types as
described in the above section.

Structures
Members of structures are identified by name. Therefore the first word
expected in a definition of a member value is its name inside the structure.
Note that this name must match SOAP naming conventions to be
successfully processed.
Named strings given as values constitute members of SOAP structures.
Members inside a structure are separated by semicolons.
Example: Basic structure
This example shows two different ways to pass arguments to a SOAP
function. During transmission of the arguments they are implicitly
packed together into a surrounding SOAP structure, so the SOAP call
treats the function as if it had one argument only.

ARGUMENT=user $user string; password $password string;

This establishes a SOAP structure consisting of two members user and


password. Both members are of type string. The value of user is
$user, the value of password is $password, if not translated to
different values by the macro facility.
The above statement has the same effect as the following two lines:

ARGUMENT=user $user string;


ARGUMENT=password $password string;

The latter might be preferred for readability. Note that concatenation of


lines in the above sense works only if each is terminated by a semicolon.
To nest structures within other structures or arrays, the user puts
substructures into curly brackets.
Example: Nested structure within a structure
ARGUMENT=weatherData { prose rain string; temperature 4 int; };

This makes weatherData a structure with the two members prose and
temperature. prose is a string that evaluates to rain. temperature
is an integer number with the value 4.
weatherData is a member of the basic structure each ARGUMENT
consists of as described above.
Example: Nested structure within an array
ARGUMENT=daySeries [ { dow Fri string; dom 13 int; }; ];

Livelink WCM Server - System Integration Manual Page 157


TaskAgent Additional Components

This makes daySeries an array (see section “Arrays” for explanation)


with the first member being a structure. This structure consists of two
members. The member called dow is a string and evaluates to Fri. The
member called dom is an integer with the value 13.
daySeries is a member of the basic structure each ARGUMENT consists
of as described above.

Arrays
With SOAP, arrays are quite similar to structures. Each member even of the
same array can be of any type independent of the types of the other members
of the same array. This is different from what is called an array, a field or
a vector in many popular programming languages.
The only difference between SOAP arrays and SOAP structures is that
members of structures are accessed by name, whereas members of arrays are
accessed by position. Therefore members of arrays don’t have names
associated with them.
Arrays can be established using square brackets.
Example: Array
A table cell can be identified by a two dimensional array containing the
appropriate row and column IDs.

ARGUMENT=tableCellIndex [ 7 int; 3 int; ];

This makes tableCellIndex a two dimensional array. Both members


are equally typed, that is they are of type int. The first member
evaluates as 7, the second one as 3.
tableCellIndex is a member of the basic structure each ARGUMENT
consists of as described above.

Comments inside It is possible to put comments inside a value definition. The TaskAgent supports
of value two kinds of comments: Block comments between and including “/*” and “*/”,
definitions and comments starting with “//” and extending to the end of the respective line.

Example: Block comment


weather /* good */ bad string;

This is equivalent to

weather bad string;

Page 158 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Example: Comment until newline


ARGUMENT=tableCellIndex [ 7 int; 3 int; ]; // [ Row; Col; ]

This is equivalent to

ARGUMENT=tableCellIndex [ 7 int; 3 int; ];

How to quote Quoting means to temporarily make the TaskAgent parser ignore special
characters. In the case of strings for example, it is likely that spaces should not be
interpreted as marking the end of the string.

The TaskAgent provides the user with two ways of quoting.

The first one quotes text containing multiple characters by bracketing it into
single quotes.

Example: How to quote multiple characters:


‘Multiple characters can be quoted most
easily with single quotes’

The second one enables the user to quote a single character by preceding it with a
backslash.

Example: How to quote a single character:


Multiple\ characters\ can\ be\ quoted\ most\
easily\ with\ single\ quotes

Because both single quotes and backslashes therefore have a special meaning,
they have to be quoted themselves using a backslash.

Example: How to quote single quotes and backslashes themselves


(in this example spaces have been emphasized for readability):

'\'#\'#and#\\#are#equivalent'

evaluates to

'#'#and#\#are#equivalent

Livelink WCM Server - System Integration Manual Page 159


TaskAgent Additional Components

4.10.6 Examples

The main area of application of the TaskAgent is the CMEngine and its SOAP webservices, e.g. the
“UserManager” and the “ObjectManager”. Therefore all examples following deal with the CMEngine
SOAP webservices. However, this means in no way that the TaskAgent was limited to these services
only. In fact, you can call any SOAP webservice out there.

Issue one call This example shows how to design a configuration file that deals with the
only UserManager. It is assumed that the web server does not require HTTP
authentication. Instead, the example shows how to authenticate oneself to get
permission to call functions of the UserManager.

[loadUser]
CALLTYPE=SOAP
COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/aSite/UserManager
COMMAND=setSOAPHeader
HEADER=user $user string; password $password string;
COMMAND=call
FUNCTION=LoadUser
ARGUMENT=name $user string;
COMMAND=error
COMMAND=errorMessage

Here we intended the password to be hidden from the configuration file by using
the macro facility; note however that the command line can easily be spied out on
many operating systems, so this is less safe than writing the password into a
configuration file with restricted read access. We have also hidden the user ID
from the file, both to force reuse of this configuration file by keeping it general
and to ensure consistency, because we want to authenticate as the same user that
gets loaded.

Assuming that you have named this file c:\taskagent.cfg, you can let the
TaskAgent perform our task by the following command line:

taskagent –conf c:\taskagent.cfg loadUser –macro loadUser $user=aUser


–macro loadUser $password=topSecret

After the TaskAgent has worked itself through the section, it does not perform
anything more. It can be stopped using [Ctrl]-[C] then.

Periodically issue This example demonstrates how you can use the goto command to schedule
a task tasks:

Page 160 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

[chartEngine]
CALLTYPE=SOAP
COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/aSite/ObjectManager
COMMAND=setSOAPHeader
HEADER=user $user string; password $password string;
COMMAND=call
FUNCTION=UpdateCharts
COMMAND=goto
DESTINATION=chartEngine
SECONDS=3600

Here we intended the password to be hidden from the configuration file by using
the macro facility; note however that the command line can easily be spied out on
many operating systems, so this is less safe than writing the password into a
configuration file with restricted read access. We have also hidden the userID
from the file, in order to force its reuse by keeping it general.

Assuming that you have named this file c:\taskagent.cfg, you can let the
TaskAgent perform our task by the following command line:

taskagent –conf c:\taskagent.cfg chartEngine –macro chartEngine $user=aUser


–macro chartEngine $password=topSecret

After the TaskAgent has worked itself through the section specified, it will sleep
for an hour, and then it will perform the tasks specified in the same section again.
It will only exit if it is forced to, e.g. by killing it. It is platform dependent how
this can be done. Killing the TaskAgent has no bad side effects as long as you
choose a clean way to do it, e.g. if you are running the TaskAgent under UNIX,
then a kill will perform a fine job, whereas a kill –9 will immediately stop
the TaskAgent without the chance to clean up.

If installed as a UNIX daemon resp. MS Windows service, each platform also


provides a way to temporarily disable the TaskAgent. The appropriate MS
Windows service can be paused by pressing the “Pause” button, the UNIX
daemon can be sent the “HUP” signal (kill –HUP) to toggle between the
running and the paused state. An entry in the log file will be written whenever the
TaskAgent enters or leaves the paused state.

4.10.7 Installation as a UNIX daemon resp. a MS Windows service

The main advantage of installing the TaskAgent as a UNIX daemon resp. MS Windows service is that
you can be sure it will be started automatically at system boot.

Livelink WCM Server - System Integration Manual Page 161


TaskAgent Additional Components

Because services and daemons run in the background, the TaskAgent is not associated to a terminal
device any more. This means that error messages and warnings concerning syntax errors within the
configuration file get lost. So it is very important that you test a configuration using the TaskAgent as a
command line application before you install it as a service resp. daemon.

UNIX daemon Edit the startup script


/opt/livelink/wcm/type1/bin/livelink-wcm-type1 and uncomment the
two lines containing taskagent. Adapt the command line parameters to your
needs (see also the “Create a startup script” paragraph in the Linux / Solaris
installation chapter).

MS Windows NT To install the TaskAgent as a service, just type taskagent –install. Now it
will be installed with no fixed command line options. Command line options can
be specified via the “Properties” window then. The TaskAgent needs at least one
section name to be given on the command line, otherwise it will not start. As said
above, you can also install the application e.g. via taskagent –install
chartEngine. If you start this service, then it will always be started at least with
the chartEngine command line option. Other command line options can be
specified via the “Properties” window again.

To uninstall the TaskAgent as a service, just type taskagent –deinstall.

4.10.8 Warnings and error messages

Error messages Usage errors – they cause the TaskAgent to skip processing the COMMAND that has
caused the error. Messages for this kind of errors are written to the screen.

Message Meaning Most likely reasons Erroneous example code


and its correction
No type name found A name of a fundamental Type name misspelled or
in expression type was expected but has left out 42 innt;
not been found at the place
where it should have been.
instead of

42 int;

Can't interpret: After the parser has Probably a string value


“[some string]” (too finished some subtask, consisting of many words A string is a
many words?) there’s still some text left has not been quoted string string;
that can’t be parsed. correctly.

instead of

Page 162 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Message Meaning Most likely reasons Erroneous example code


and its correction
‘A string is a
string’ string;

Missing end of A block comment has not Either the “*/” token has
comment been closed. been completely left or it’s weather /* good
there after a line break – bad string;
the current implementation
does not allow even for the
latter. instead of

weather /* good */
bad string;

Missing closing A quoted string never Either the “’” token has
quotation mark ends. been completely left or it’s ‘A string is a
there after a line break – string string;
the current implementation
does not allow even for the
latter. instead of

‘A string is a
string’ string;

Deadlock detected. The configuration file More than one recursive See the “Applications”
Too many [some exponentially increases GOTO command within the section.
command]s in section load. same section given.
[a section name]?
Just ignoring [the
command] with
DESTINATION set to
[another section
name], that
otherwise would have
caused the deadlock.

Type format error – it causes the TaskAgent to skip processing the


“COMMAND” that has caused the error. Messages for this kind of errors are
written to the screen.

Message Meaning Most likely reasons Erroneous example code


and its correction
Can't interpret The value of a certain type An integer is written with a
"[some value]" as an has been formatted decimal point like doubles false bool;
instance of type illegally. or vice versa. “True” is
"[name of some used as a boolen value etc.
fundamental type]" instead of

0 bool;

Livelink WCM Server - System Integration Manual Page 163


TaskAgent Additional Components

Other errors in configuration files – causes the TaskAgent to skip the section of
the configuration file that has caused the error. Messages for this kind of errors
are written to the screen.

Message Meaning Most likely reasons Erroneous example code


and its correction
Section not found On the command line or Misspelled name given.
via the goto command a Name pointed to by the
name has been given that DESTINATION key inside a
is not a section name. goto command has been
changed silently by means
of a -macro command line
option.
Name of logfile Logfiles must be given The user assumed that by
can't equal the non-empty names by the assigning nothing to
empty string! LOGFILE keyword. LOGFILE a default value
would have been chosen.

Remote error, detected by means of detectError – causes the TaskAgent to


skip the section of the configuration file that has initiated the error. Messages for
this kind of errors are written to the LOGFILE, if specified, otherwise to the
screen.

Message Meaning Most likely reasons Erroneous example code


and its correction
[Date]: Error: A function call to a web Because this is beyond the
Remote call to service failed on the responsibility of the
"[some remote remote side. Check the TaskAgent, consult the
function name]" exact error message manual of the web service,
failed. Error code returned! please.
returned: “[some
number]”. Error Error detection might be
message returned: incorrectly configured, too.
“[some string]”.
Skipping remainder
of section "[some
section name]".

Warning Message Meaning Most likely reasons Erroneous example code


and its correction
messages
Usage warning. Messages
for this kind of errors are
written to the screen.
Missing trailing A HEADER or ARGUMENT Just forgot the semicolon.
semicolon silently line does not end on [;] ARGUMENT=id 42 int
corrected at cursor though this is mandatory
position [a number] with the current
implementation. This error instead of
could be corrected silently,
however.
ARGUMENT=id 42
int;

Exit warning. Messages


for this kind of errors are

Page 164 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Message Meaning Most likely reasons Erroneous example code


and its correction
written to the screen.
Finishing… The TaskAgent received a The TaskAgent has been
user request to stop killed in some platform
working cleanly. specific way.

Internal errors Message Meaning Most likely reasons


“[some function The TaskAgent ran into an This is a bug of the In case you see such a bad
name]”: Internal unexpected state. TaskAgent. error message please
error contact support. Provide it
with the exact error
message, the configuration
file used, the version
number of the TaskAgent
and with the command line
issued, please. You can
help to decrease the
response time if you try to
simplify your setup as
much as possible, in a way
that both your setup is
simple and the bug still
remains reproducible.

4.10.9 Applications

This section summarizes some applications of the TaskAgent in connection with the CMEngine. A
single configuration file is used for all example applications. There is a distinct section in the
configuration file for each application presented.

The common configuration file is as follows:

#==========================================================#
[COMMON]
# This section will be used for fallback purposes...
DEFAULTSECTION=on
# Global log file...
# UNIX...
LOGFILE=/var/tmp/taskagent.log
# MS Windows NT...
# LOGFILE=c:\temp\taskagent.log
# Number of threads: a positive number...
THREADCOUNT=20
# Default calltype...
# One of "EXECUTABLE", "OXI", and "SOAP"...
CALLTYPE=SOAP

#==========================================================#
[workflowManager]
# One of "EXECUTABLE", "HTTP", and "SOAP"...
CALLTYPE=SOAP
# The commands are a superset of the commands in the "SOAPClient" scripting
# class...

Livelink WCM Server - System Integration Manual Page 165


TaskAgent Additional Components

# Error detection: Anything else but "0" is to be interpreted to be an


# error.
# If such an error has been detected, the command that has caused the error
# is issued again after half an hour (1800s).
COMMAND=detectError
ERRORSTATE=0
MODE=onSuccess
SECONDS=1800
COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/aSite/WorkflowManager
# HTTP authentication...
COMMAND=useAuthentication
USER=$user0
PASSWORD=$password0
# SOAP authentication...
COMMAND=setSOAPHeader
HEADER=user $user1 string; password $password1 string;
COMMAND=call
# A function name...
FUNCTION=TriggerWorkflowEngine
# Repeat the execution of the current section every 10 seconds...
COMMAND=goto
DESTINATION=workflowManager
SECONDS=10

#==========================================================#
[chartEngine]
# One of "EXECUTABLE", "HTTP", and "SOAP"...
CALLTYPE=SOAP
# The commands are a superset of the commands in the "SOAPClient" scripting
# class...
# Error detection: Anything else but "0" is to be interpreted to be an
# error.
# If such an error has been detected, the command that has caused the error
# is issued again after half an hour (1800s).
COMMAND=detectError
ERRORSTATE=0
MODE=onSuccess
SECONDS=1800
COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/ObjectManager
# HTTP authentication...
COMMAND=useAuthentication
USER=$user0
PASSWORD=$password0
# SOAP authentication...
COMMAND=setSOAPHeader
HEADER=user $user1 string; password $password1 string;
COMMAND=call
# A function name...
FUNCTION=UpdateCharts
# Repeat the execution of the current section once an hour...
COMMAND=goto
DESTINATION=chartEngine
SECONDS=3600

#==========================================================#
[DataTable]
# One of "EXECUTABLE", "HTTP", and "SOAP"...
CALLTYPE=SOAP
# The commands are a superset of the commands in the "SOAPClient" scripting
# class...
# Error detection: Anything else but "0" is to be interpreted to be an
# error.
# If such an error has been detected, a message is written to the log file

Page 166 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

# only.
COMMAND=detectError
ERRORSTATE=0
MODE=onSuccess
COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/DataTableTool
# HTTP authentication...
COMMAND=useAuthentication
USER=$user0
PASSWORD=$password0
# SOAP authentication...
COMMAND=setSOAPHeader
HEADER=user $user1 string; password $password1
string;
COMMAND=call
# A function name...
FUNCTION=UpdateLastRow
# Arguments...
ARGUMENT=dataTableID $dataTableID int;
ARGUMENT=newData [ 50 int; 100 int; 50 int; 50 int; 100 int; ];
# Don't repeat...

#==========================================================#
[helloWorld]
# One of "EXECUTABLE", "HTTP", and "SOAP"...
CALLTYPE=EXECUTABLE
# The commands are a superset of the commands in the "Executable" scripting
# class...
# Error detection: Anything else but "0" is to be interpreted to be an
# error.
# If such an error has been detected, a message is written to the log file
# only.
# With "CALLTYPE==EXECUTABLE" this is the default, anyway.
COMMAND=detectError
ERRORSTATE=0
MODE=onSuccess
# UNIX...
COMMAND=cmdLine
ARGUMENT=(Hello %i World %s) 10 fgfgf
COMMAND=execute
EXECUTABLE=/usr/bin/printf
# MS Windows NT...
# COMMAND=cmdLine
# ARGUMENT=/C echo 'this is the TaskAgent'
# COMMAND=execute
# EXECUTABLE=cmd.exe
COMMAND=outData
# Don't repeat...

#==========================================================#
[refresh]
# One of "EXECUTABLE", "HTTP", and "SOAP"...
CALLTYPE=HTTP
# The commands are a superset of the commands in the "Executable" scripting
# class...
# Error detection: Anything else but "200" is to be interpreted to be an
# error.
# If such an error has been detected, the command that has caused the error
# is issued again after half an hour (1800s).
COMMAND=detectError
ERRORSTATE=200
MODE=onSuccess
SECONDS=1800
# HTTP authentication...
COMMAND=useAuthentication
USER=$user

Livelink WCM Server - System Integration Manual Page 167


TaskAgent Additional Components

PASSWORD=$password
COMMAND=sendRequest

URL=http://aMachineName:aPortNumber/aSite?debug=refreshstatictables
# Repeat the execution of the current section once an hour...
COMMAND=goto
DESTINATION=refresh
SECONDS=3600

#=EOF======================================================#

Trigger To externally trigger the workflow manager of the CMEngine periodically every
WorkflowManager 10 seconds, you can now type

taskagent –conf c:\taskagent.cfg workflowManager –macro workflowManager


$user0=aHTTPUser -macro workflowManager $password0=topSecret –macro work
flowManager $user1=aC4User -macro workflowManager $password1=topSecret

Update Charts This is the same example as the one in section “Periodically issue a task”.

You can remotely force the CMEngine's ObjectManager to update all charts
once an hour using the following command line:

taskagent –conf c:\taskagent.cfg chartEngine –macro chartEngine


$user0=aHTTPUser -macro chartEngine $password0=topSecret –macro chartEngine
$user1=aC4User -macro chartEngine $password1=topSecret

Schedule The above configuration file contains a trivial example for the EXECUTABLE
execution of calltype, which does the same as the echo command. To try, simply type
arbitrary binaries

taskagent –conf c:\taskAgent.cfg helloWorld

Refresh static The CMEngine permanently keeps the contents of some database tables in the
tables of the main memory. These tables are referred to as “static tables”. When changes to
WCM Server these tables are made, the CMEngine must be told to re-read them. This task can
be automated with the TaskAgent by means of its “HTTP” calltype. To schedule
this task in a way that it is repeated once an hour or, if an error occurred, every 30
minutes, just type

taskagent –conf c:\taskagent.cfg refresh –macro refresh $user=aHTTPUser -


macro refresh $password=topSecret

Page 168 Livelink WCM Server - System Integration Manual


Additional Components TaskAgent

Detecting The asynchronous goto command is very powerful. However, users can produce
potential loads which increase exponentially by means of this command. No computer
deadlocks could handle such load. Therefore the TaskAgent guards against such
caused by configuration entries. This can only be done at runtime, often only after a certain
malicious delay. You can easily check this mechanism by typing
configuration files

taskagent –conf c:\taskAgent.cfg deadlock

The section [deadlock] therefore shows you how not to design a configuration
file for the TaskAgent.

Remotely Calling This section demonstrates how to remotely call server-side Java Script functions
server-side Java and passing arbitrarily complex arguments with the call.
Script Functions
This example demonstrates both how to persistently edit the last row in a data
table using server-side Java Script and how to remotely call the appropriate
function using the TaskAgent. The table is assumed to contain a descriptive label
in the first column – the other columns contain the real data.

We are going to use the following script. It is named DataTableTool and has
been published as a SOAP webservice:

/* $ RCSfile: dataTableTool.js,v $
$ Author: bachlipp $, $ Date: 2002/09/26 14:32:53 $

Copyright (C) 2002 Obtree Technologies Inc., Basel, Switzerland


All Rights reserved.

This is unpublished proprietary script code of Obtree Technologies Inc.


Usage is subject to license terms. */

/* Description: Scripting extension to modify data tables. This


functionality gets exported as a web service. */

/* $ Log: dataTableTool.js,v $
* Revision 1.1 2002/09/26 14:32:53 bachlipp
* Initial revision
* */

/* Utility routines based on


<https://knowledge.ixos.com/script-root/script-examples/script-ex-datatable
sort.htm>... */

function readDataTable(text)
{
var rowArray = text.split("\r\n");

var dataTable = new Array(rowArray.length-1);


for(var i=0;i<dataTable.length;++i)
dataTable[i] = rowArray[i].split("\t");

return dataTable;
}

Livelink WCM Server - System Integration Manual Page 169


TaskAgent Additional Components

function dataTable2Text(dataTable)
{
var text = new String();
for(var i=0;i<dataTable.length;++i)
text += dataTable[i].join('\t') + '\r\n';

return text;
}

/*
<webservice function="UpdateLastRow">
<in>
<int name="dataTableID"><description>The id of the data table
</description></int>
<array name="newData" type="int"><description>The new data for the last
row</description></array>
</in>
</webservice>
*/

function UpdateLastRow(dataTableID,newData)
{
// First, get the data table from the db...
var webObject = objectManager.edit(dataTableID);
if(null == webObject)
return;

// Perform some changes to the memory image of the data table...


/* webObject.dataTable.lastRow();
for(var i=0;webObject.dataTable.nextField();++i)
webObject.dataTable.setField(currentRow[i]);
*/

var dataTable = readDataTable(webObject.asciiData);


var nLastRow = dataTable.length-1;

// Here we skip the first column...


for(var i=1;i<dataTable[nLastRow].length;++i)
dataTable[nLastRow][i] = newData[i-1];

// Finally, write back the changes into the db...


webObject.asciiData = dataTable2Text(dataTable);
webObject.update();
}

Further we’ll assume, that there exists a data table within the WCM Server which
has the ID 3104 and has at least 6 columns.

Now you can simply type:

taskagent -conf c:\taskagent.cfg DataTable –macro DataTable


$user0=aHTTPUser -macro DataTable $password0=topSecret –macro DataTable
$user1=aC4User -macro DataTable $password1=topSecret -macro DataTable
$dataTableID=3104

This will put the vector (50,100,50,50,100) according to the configuration file into
the data table with object ID 3104.

Page 170 Livelink WCM Server - System Integration Manual


Additional Components Professional Workflow

4.11 Professional Workflow


Install the license The Professional Workflow component needs a separate license that must be
key added to the engine’s configuration file (cmengine.cfg). Here is an example:

MODULETYPE01=Workflow
MODULEKEY01=ABCD-EFGH-IJKL-MNOP-QRST-UVWX-YZ
MODULEHOLDER01=ACME Corporation

Configure The workflow engine is started as a separate process. It is responsible for


workflow engine periodically checking if there are any tasks overdue or any notifications to be
sent. If there are, it executes them and then sleeps for a configurable amount of
time until it starts over.

Activate the The workflow engine is started and run in the background by the
workflow engine ServiceControl.exe
(Windows)

4.12 Deployment
Purpose deployment is a shell-based tool that you can use for importing and exporting
data from and to the WCM Server repository, for synchronization and other tasks.
Combined with an external scheduler, you can even automate the execution of
these tasks.

4.12.1 Synchronization

Usage (See also the “Synchronization” section.)

deployment –s xxx.cfg

-s indicates the function

xxx.cfg is any configuration file in WCM Server style. The structure is


described in the following paragraphs.

Livelink WCM Server - System Integration Manual Page 171


Deployment Additional Components

Features A synchronization can take place in two different ways:

• online (you have access to all databases)


• offline (you do not have access to all databases, or online synchronization is
not appropriate for performance reasons)

If ever possible, you should prefer online synchronization, because it is more


secure, you have less to configure, and therefore it is less susceptible for errors.

Offline synchronization requires the configuration and execution of four single


steps for each slave database. Data exchange of offline synchronizations can be
carried out via file system, FTP server or e-mail. The success of such a
synchronization heavily depends on the used method of data exchange: If the FTP
server is not available or if an e-mail gets lost (or arrives late at the receiver), the
synchronization remains incomplete, requiring an enhanced synchronization. An
enhanced synchronization is not a differential synchronization since the last
synchronization run, but a full synchronization for all changes of a defined period
(for example the last seven days).

4.12.2 Online Synchronization

Prerequisite For online synchronizations, you must have access to all involved databases and
you need a reasonably fast network connection.

Configuration file The configuration file is quite simple; it only contains information of the
individual databases. The master database has to be the first one in the
configuration file, the sequence of the slave databases is arbitrary.

[master]
DBTYPE=MSSQL
DBNAME=dbsync_master
DBUSER=sa
DBPWD=

LOGFILE=/opt/livelink/wcm/type1/logs/sync.log
WORKINGPATH=/opt/livelink/wcm/type1/cache/sync

[slave1]
DBTYPE=MSSQL
DBNAME=dbsync_slave
DBUSER=sa
DBPWD=

[slave2]
DBTYPE=MSSQL
DBNAME=dbsync_slave2

Page 172 Livelink WCM Server - System Integration Manual


Additional Components Deployment

DBUSER=sa
DBPWD=

As always when using Oracle, you have to set the version and the path to the
client library. You do this in the [master] section because there is no
[common].

Additionally you have to set the DBIDENTIFIER in each section, which must be
in the following format (and must be the same as seen in the Site Administrator's
Synchronization Tool):
/<mydatabasename>/dbname/defdb/<myusername>/<myusername>,
where <mydatabasename> is the Net Service Name of the Oracle database (the
same as in the DBNAME parameter), while dbname and defdb are literal strings
that must appear as they are. For example if your database name is llwcm and the
user is wcmdemo, the identifier would look like:
/llwcm/dbname/defdb/wcmdemo/wcmdemo.

[master]
USEDBVERSION=Oracle 10.1.0
USEDBLIBRARY=/opt/oracle/product/10.1.0/lib/libclntsh.so

DBIDENTIFIER=/llwcm/dbname/defdb/dbsync_master/dbsync_master
DBTYPE=Oracle
DBNAME=llwcm
DBUSER=dbsync_master
DBPWD=

LOGFILE=/opt/livelink/wcm/type1/logs/sync.log
WORKINGPATH=/opt/livelink/wcm/type1/cache/sync

[slave1]
DBIDENTIFIER=/llwcm/dbname/defdb/dbsync_slave/dbsync_slave
DBTYPE=Oracle
DBNAME=llwcm
DBUSER=dbsync_slave
DBPWD=

[slave2]
DBIDENTIFIER=/llwcm/dbname/defdb/dbsync_slave2/dbsync_slave2
DBTYPE=Oracle
DBNAME=llwcm
DBUSER=dbsync_slave2
DBPWD=

Parameters dbtype, dbname, dbuser and dbpwd correspond to the same parameters of the
CMEngine’s configuration file (cmengine.cfg) .

In addition, there is the parameter configonly=yes. It is only available in the


[master] section and allows you to copy only the configuration (User, Groups,
etc.) tables to the slave databases.

Livelink WCM Server - System Integration Manual Page 173


Deployment Additional Components

4.12.3 Offline Synchronization

Prerequisite Offline synchronization does not require direct access to all involved databases
from one place, but you need a reliable third party system for the actual data
exchange. In addition, a proper time scheduling is essential for automated offline
synchronization. Mixing up the individual steps of the synchronization can cause
data loss, in which case you have to perform an extended synchronization run or –
in the worst case – you have to overwrite the slave databases with a copy of the
master database.

Procedure Per slave database, you have to perform 4 individual steps (8 steps if you have
several slave databases) and the sequence of the steps is compulsory. The
individual steps are:

• Creating a file from the slave database


• Importing this file into the master database
• Creating a file from the master database
• Importing this file into the slave database

You have to repeat these four steps for each slave database. It is crucial to avoid
overlapping of this sequence with a sequence of another slave database. In other
words, fully synchronize your slave databases one after the other.

Especially in environments with several slave databases, not every database will
know of all changes (for example change of group membership of an object) of
all other databases after having run the four steps once for each database.
Therefore, you have to repeat the entire procedure for a second time. For
example:

• Execute the four steps for slave database 1


• Execute the four steps for slave database 2
• Execute the four steps for slave database 1 again
• Execute the four steps for slave database 2 again

Configuration file
[slave]
step 1 (and 5) dbtype=mssql
dbname=dbsync_slave
dbuser=sa
dbpwd=
mode=writefile
destination=1

Page 174 Livelink WCM Server - System Integration Manual


Additional Components Deployment

The first part is equal for all types of data exchange: You have to specify

• the database connection,


• that you want to create a file (mode=writefile),
• and the destination of this file (destination=1 for the master database,
destination=2 for the first slave database, and so on).

The name of the section – in brackets – is arbitrary.

There are three types of data exchange:

• via file system

filename=c:\temp\test.osf

The recipient must have access to this file.


• via FTP server

filename=ftp://ftp.intra.openmind.ch/test2.osf
ftpuser=
ftppwd=
ftpport=21

The file name indicates the path and the name of the file. ftpuser, ftppwd
and ftpport are the usual access parameters.
• via e-mail

mailserver=127.0.0.1
mailto=einstein@kralle.ch

The generated file with the extension .osf will be sent as an attachment to
the indicated address, a file name is not possible. This type of data exchange
is the least reliable one, because late delivery of an e-mail will confuse the
sequence of the necessary synchronization steps.

Configuration file
[master]
step 2 (and 6) dbtype=mssql
dbname=dbsync_master
dbuser=sa
dbpwd=
mode=readfile

a) via file system

Livelink WCM Server - System Integration Manual Page 175


Deployment Additional Components

filename=c:\temp\test.osf

b) via FTP server

filename=ftp://ftp.intra.openmind.ch/test2.osf
ftpuser=
ftppwd=
ftpdelete=yes

c) via e-mail

mailserver=127.0.0.1
mailport=110
mailuser=einstein
mailpwd=einstein

Most of the parameters correspond to those of step 1. In addition, you can specify
ftpdelete=yes|no to control the deletion of the file on the FTP server after it
has been transferred. Default value is yes.

Configuration file Like step 1, but with the master database as source and the slave database as
step 3 (and 7) destination (destination=2).

Configuration file Like step 2, but with the slave database as destination.
step 4 (and 8)

Important The following parameter is crucial for changing the group membership of objects.

islastsync=yes

You have to specify this parameter with the last synchronization cycle only. If
you have one single slave database, specify the parameter in the steps 1 and 3, if
you have several slave databases specify the parameter in steps 5 and 7.

Specifying this parameter causes the automatic correction of the entries in the
synchronization database, in order to avoid concurrent editing rights on more than
one slave database for objects, of which the group membership has been changed.
If you omit this parameter, the objects with changed group membership can be
edited on different slave databases, which prohibits future synchronization of
these objects! (In such a case, only manual correction of the affected database
rows could produce relief.)

Page 176 Livelink WCM Server - System Integration Manual


Additional Components Deployment

This is a further reason for preferring online synchronization, which uses this
parameter correctly and automatically.

Enhanced Usually, synchronization is always incremental, meaning that only those elements
Synchronization are synchronized that have changed since the last synchronization run. The date
and time of the last synchronization is stored in the database, in table SYNCDATA.
As already mentioned before, it is possible that a synchronization run can not be
executed completely – for example because of the loss of a transfer file – but the
entry in the SYNCDATA table has already been made. In such a case, the system
can no longer recognize the incompleteness of the synchronization, and not all
objects that are subject to synchronization are distributed correctly to the
necessary destinations.

The parameters SyncTime and SyncTimeDelta allow performing an enhanced


synchronization.

SyncTime=01.01.2003 00:00

This parameter causes the system to synchronize all objects that have been
changed since January 1st of 2003, 00:00.

SyncTimeDelta=7d

or

SyncTimeDelta=168h

This parameter causes the system to synchronize all objects that have been
changed in the last seven days, independently of the last synchronization run.
When using this parameter, it is important to avoid creating synchronization gaps.
If the last synchronization run was ten days ago and you now synchronize for the
last seven days, you create a gap of three days. All objects that have been changed
in these three days will never be synchronized in this case.

The parameters described above must be placed in the first section of the
configuration file.

4.12.4 Object Transfer

Livelink WCM Server - System Integration Manual Page 177


Server Architecture for the Distributed CMEngine Additional Components

Usage
deployment transfer -w xxx.ood [yyy.oxp]
deployment transfer -r xxx.ood [yyy.oxp]
deployment transfer -t xxx.ood
deployment transfer -d xxx.ood

transfer
indicates the function group
-w
writes an .oxp file (object export)
-r
reads an .oxp file (object import)
-t
direct object transfer
-d
delete objects
xxx.ood
is the parameter file which has to be created inside the Site Administrator
yyy.oxp
is an optional parameter to overwrite the file which is defined in the .ood file

Features These functions are equivalent to the corresponding functions inside the Site
Administrator:

• Transfer Tool (parameter -t)


• Export Package (parameter -w)
• Import Package (parameter -r)
• Delete Whole Group (parameter -d)

For more information about .ood files and how to create them consult the Site
Administration Manual.

4.13 Server Architecture for the Distributed CMEngine


Please note that the Distributed Engines are not part of the standard release set
any more. They are available only upon special request. Please contact support if
you need them.
Note

Comments In a so-called “distributed setup”, the CMEngine is no longer bound directly to

Page 178 Livelink WCM Server - System Integration Manual


Additional Components Server Architecture for the Distributed CMEngine

the web server. Instead, the web server loads only a small stub
(enginestub.dll), which handles communication with the CMEngine. The
engine runs as a separate process.

If you use USEPERMANENTCONNECT=YES in the [common] section of the


enginestub.cfg and in the [common] section of the cmengine.cfg (which is
recommended), two communication channels are opened and used: The stub
opens a TCP connection to the engine at the host/port defined in IPC_HOST and
tells the engine that it can be reached at the host/port which is defined in
LISTENERHOST. The engine then opens a connection to that host/port. Therefore
both parameters, IPC_HOST and LISTENERHOST are defined in the
enginestub.cfg. Of course, they must be different from each other. Both
channels are “one-way streets”: Requests from the stub to the engine are made on
the one defined in IPC_HOST and the answer to it (the requested web page) is
delivered on the other one defined in LISTENERHOST.

Using two communication channels in this manner provides for much better
throughput than one bidirectional channel.

Pro's and Con's Disadvantages when using a distributed setup might be:
• Performance: An additional network round-trip is introduced, which makes
things a little slower compared with an in-process rendering engine.

Livelink WCM Server - System Integration Manual Page 179


Server Architecture for the Distributed CMEngine Additional Components

• Complexity: This kind of setup adds an additional level of complexity to the


installation.

The advantages are:


• Fits well in a firewalled landscape as only a minimal part of the installation is
kept “outside”. The same effect can also be achieved by using a reverse
proxy and putting the web server with the CMEngine module behind the
firewall.
• Library conflicts with other components on the web server can be avoided.
• As the rendering engine runs in a separate process, it can be monitored more
easily.
• If for any reason you cannot use a reverse proxy, the distributed setup might
be an alternative.

4.13.1 Distributed Architecture under Windows

IIS Web Server Modifications to the installation for IIS 5.0

1. Instead of the CMEngine.dll, EngineStub.dll must be loaded.


2. Filter Name: EngineStub Executable:
C:\Livelink\wcm\type1\bin\enginestub.dll
3. Configure enginestub.cfg (see below)

Apache Web Modifications to the Apache installation:


Server
1. Open the file httpd.conf.
2. Replace the entries for CMEngine.dll with the following entry.

# insert at the bottom (for Apache 2):


LoadModule EngineStub_Module
“C:/Livelink/wcm/type1/bin/enginestub-ap2.dll”

Important: It’s recommended to use slashes (“/”) instead of back-slashes (“\”)


within the path.
The order of the lines defines the order of loading and initializing and it is
important to set the engine as the last module to be initialized.
3. Configure enginestub.cfg (see below)

Page 180 Livelink WCM Server - System Integration Manual


Additional Components Server Architecture for the Distributed CMEngine

iPlanet/SunONE/Sun Modifications to the installation for iPlanet/SunONE/Sun Java System:


Java System
Web Server 1. Open the file obj.conf for iPlanet, magnus.conf and obj.conf for
SunONE/Sun JS
2. Replace the entries for cmengine.dll with the following entry (line breaks
are marked with “↵”):

<end of the initialization entries>


Init fn=load-modules
shlib="c:/Livelink/wcm/type1/bin/enginestub-ns.dll"
funcs="NSEngine_Init,NSEngine_Service,NSEngine_ObjectType"↵
Init fn=NSEngine_Init↵
<end of the object type entries>
ObjectType fn="NSEngine_ObjectType"↵
<end of the service method entries>
Service method=(GET|HEAD|POST) type="magnus-internal/webengine"
fn="NSEngine_Service"↵

3. Configure enginestub.cfg

enginestub.cfg
#========================================================#
example file [COMMON]
THREADCOUNT=20
IPC_INFO=127.0.0.1:20333
USEPERMANENTCONNECT=YES
LISTENERHOST=127.0.0.1:21333

LOGFILE=C:\Livelink\wcm\type1\logs\enginestub.log

#========================================================#
[WCMStarter]
URLMAGIC=/wcmstarter

#=EOF====================================================#

Configuring the Remember that if you have set USEPERMANENTCONNECT=YES in the


Render Engine enginestub.cfg (which is recommended), you have to set the same parameter
in the [Common] section of the cmengine.cfg as well.

4.13.2 Distributed Architecture under Linux and Solaris

Configuring The stub is configured via


enginestub.so /opt/livelink/wcm/type1/conf/enginestub.cfg. Mainly, the stub has to
know about the sites that it should respond to (i.e. URLMAGIC, HOSTMAGIC) and
on which host/port it can find the RenderEngine process. Here is an example:

Livelink WCM Server - System Integration Manual Page 181


Server Architecture for the Distributed CMEngine Additional Components

#========================================================#
[COMMON]
THREADCOUNT=20
IPC_INFO=127.0.0.1:20333
USEPERMANENTCONNECT=YES
LISTENERHOST=127.0.0.1:21333

LOGFILE=/opt/livelink/wcm/type1/logs/enginestub.log

#========================================================#
[wcmstarter]
#HOSTMAGIC=<hostname>
URLMAGIC=/wcmstarter

#=EOF====================================================#

Configuring the Remember that if you have set USEPERMANENTCONNECT=YES in the


Render Engine enginestub.cfg (which is recommended), you have to set the same parameter
in the [Common] section of the cmengine.cfg as well.

Configuring In the directory /opt/apache2/conf, the following line must be appended to


Apache 2.0 the file httpd.conf:

LoadModule EngineStub_Module
/opt/livelink/wcm/type1/lib/enginestub-ap2.so

After this you have to stop and start the Apache web server with the following
two commands:

# /opt/apache2/bin/apachectl stop
# /opt/apache2/bin/apachectl start

Activate the In order to have the CMEngine started, we uncomment the respective entries in
CMEngine /opt/livelink/wcm/type1/bin/livelink-wcm-type1 (there are two
entries for the engine, one for starting and one for stopping it). As you can see
from the example, the CMEngine accepts two parameters: An arbitrary but unique
name and the port number it should listen to. If you change it, you have to adapt
enginestub.cfg as well (see below).

[...]
su ${WCM1_USER} –c “${WCM1_HOME}/bin/cmengine renderer1 20333” > /dev/null
2>&1 &
[...]
killall cmengine
[...]

Page 182 Livelink WCM Server - System Integration Manual


Additional Components Server Architecture for the Distributed CMEngine

Then re-execute the script:

$ /opt/livelink/wcm/type1/bin/livelink-wcm-type1 stop
$ /opt/livelink/wcm/type1/bin/livelink-wcm-type1 start

“Debugging” If you try to access your web site in the browser and you do not get an answer,
and the only log file written is the enginestub.log, please make sure that all
the necessary environment variables are set correctly and exported.

Livelink WCM Server - System Integration Manual Page 183


Server Architecture for the Distributed CMEngine Additional Components

Page 184 Livelink WCM Server - System Integration Manual


Client Installation Introduction

5 Client Installation

5.1 Introduction
Comments If your server is running under Windows, the client components may also be
installed on the server.

Installation on the server is the same as ordinary client installation.

Using the client 1. Create the directory C:\Livelink\wcm\type1 on the client.


package
2. Unpack livelink-wcm-type1-client-windows-9.5.0.nnn.zip into
this directory (with use folder names checked).

Copying files 1. Create the directory C:\Livelink\wcm\type1\bin on the client.


manually
2. Copy all files from the folder Site Management and
Documentation\Manual\SiteAdmin_Reference.chm into this
directory, as well as the files from Windows\Tools\SQLTransfer (if
needed).

5.2 Site Administrator


Configuring the The ODBC connections for the clients to the WCM Server database on the
ODBC database server are configured as described in section “Create ODBC connections
connections to the databases” on page 38. If you use Oracle, do not create ODBC connections
to the Oracle database! The Site Administrator and all other tools are able to
connect to Oracle directly via OCI.

Configuring the 1. 1. Start the Site Administrator (SiteAdmin.exe)


database
2. 2. Create the database connection. On the File menu, click Configure
connection in the
Sites.
Site Administrator
3. 3. - Site Name: <new site> Enter a unique name of your choice. -
Database Type: Select the database type. - Data Source Name: Enter the
name of the connection (for example the ODBC connection for MSSQL or
the service name of your Oracle database (as configured in tnsnames.ora)

Livelink WCM Server - System Integration Manual Page 185


Site Manager (a.k.a. Content Manager) Client Installation

for an Oracle connection). - Database User: Enter the database owner (for
example wcm_owner) - Database Pwd Encrypted: Enter the DBO
password (for example *******). - Website User: Enter the web
site/WCM Server user (default is admin). - Website Base URL:
http://hostname/urlmagic/. - Browser Type: Select the default
browser for external display.

Configuring the Here is a completed example configuration.


ODBC
connection in the
Site Administrator

5.3 Site Manager (a.k.a. Content Manager)


Internet Explorer 1. A Java Virtual Machine (JVM) must be installed to use the Site Manager and
the TextWizard and TableWizard. Likewise the Java JIT compiler and
cookies must be enabled.
2. For the Site Manager and Java TextWizard the options “Enable Java”, Java
script and accept Cookies must be selected.

Page 186 Livelink WCM Server - System Integration Manual


Client Installation WordWizard (Microsoft Word Integration)

5.4 WordWizard (Microsoft Word Integration)

5.4.1 Installing the WordWizard

Important For the client-side Word integration to work, the server must be configured
accordingly. See the chapter of the same name in the “Additional Components”
section on page 136.

Unpack/copy files If you have downloaded the zip


packages, unpack the
livelink-wcm-type1-word-windows-9.5.0.nnn.zip package to your
C:\Livelink\wcm\type1 directory with use folder names checked.
Otherwise, create a directory C:\Livelink\wcm\type1\word and copy the
files from the Solutions\Word Authoring directory on the release CD into it.

Setup Copy the WordWizard*.* files from C:\Livelink\wcm\type1\word into the


startup directory of Microsoft Office:

Office 97 ..\Program
Files\MicrosoftOffice\Office\Startup
Office 2000 ..\Program
Files\MicrosoftOffice\Office\Startup
Office XP ..\Program
Files\MicrosoftOffice\Office10\Startup
Office 2003 ..\Program
Files\MicrosoftOffice\Office11\Startup

The WordWizard client includes the following files:

OfficeBridge.exe It is an executable that starts up Microsoft Word when


the edit icon is clicked in the browser. It must be
executed before first use – so that the necessary
registry keys are set.
WordWizard.dot Startup template containing the functions for enabling
and disabling of the WordWizard.
WordWizard.mak The actual WordWizard code that is loaded by
enabling the WordWizard. The file is a Microsoft
Word Template.
WordWizard.mnu Microsoft Word Template with configuration of
menus and toolbars for editing WCM Server text

Livelink WCM Server - System Integration Manual Page 187


SQLTransfer Client Installation

objects. This component is loaded when a WCM


Server text object is opened. For regular Word
documents it is switched off.
WordWizardDE.lng English, German and French language files. By
WordWizardEN.lng renaming one of the files to WordWizard.lng you
WordWizardFR.lng configure the WordWizard for the corresponding
language.

The language files contain plain ASCII code and


allow editing and translation into a further language.
You can as well save those files as Unicode files.

Comments The Word templates WordWizard.dot and WordWizard.mak contain VBA


code and are branded by a digital signature.

5.5 SQLTransfer
Note SQLTransfer is a general data transfer tool that is capable of transferring any data
within an SQL database to another. The data transfer does not include the transfer
of the data model, which means that you always have to create the tables and
indices in advance before you can transfer data into a new database or database
schema. But because SQLTransfer relies on the ODBC (OCI/CLI) standard
connectivity interface, which is supported by many system vendors, it is also
capable of transferring data between different types of database, databases on
different systems and offline via file export/import.

The SQLTransfer tool just needs a transfer script and, if you use an MSSQL
database, the preconfigured ODBC connections. Usually it is recommended to use
the Windows GUI version of SQLTransfer, as it includes a complete script wizard
to generate the transfer script. The following chapters show what such a transfer
script contains and what options you have.

Usage The Windows GUI version comes along with a complete user interface, but if you
use the shell version, you can call SQLTransfer like this:

sqltrans [-silent] <scriptfile>

%errorlevel% / $?

Page 188 Livelink WCM Server - System Integration Manual


Client Installation SQLTransfer

0: transfer and verify successful

1: transfer successful but verify failed

2: errors occurred but transfer continued

3: errors occurred and transfer aborted

4: script missing error

-silent (or just -s) activates the silent mode, which does not write anything to
the console but only to the log. Otherwise you will see warnings and some errors
directly in the console.

Note that the shell version called sqltrans.exe under Windows is called
sqltransfer on the Unix platforms; there is no GUI version of SQLTransfer for
Unix. However, if you installed your Linux/Solaris server using the packages,
there are two sample SQLTransfer import scripts in
/opt/livelink/wcm/type1/scripts, which you can adapt to your needs:
import-sitemanager.sqx and import-sitestarter.sqx.

In case of an error always check the logs.

5.5.1 Creating a DAT file

Procedure 1. Start the sqltransfer.exe tool in the C:\Livelink\wcm\type1\bin


subdirectory.
2. Launch the Script Wizard from the menu bar…
3. DAT files can be loaded or created in the source and target device settings.
4. To generate a DAT file, select the source device, i.e. the database or DSN.
5. Under target device, enter the name of the file and its destination path.
6. Confirm with Next.
7. To show a list of tables to be exported click Load All. Click Invert All
to select all tables.
8. Confirm the next three steps of the script wizard with Next and the last step
with Finish.
9. The script has now been created. Run the script using the Start
SQL-Transfer! command in the menu bar.
10. Confirm the next warning with Yes to continue.
11. You will be asked if you want to “Dump to file with well-defined row order

Livelink WCM Server - System Integration Manual Page 189


SQLTransfer Client Installation

(…)?”. Confirm with Yes to begin loading.

5.5.2 Loading DAT files

Procedure 1. Start the sqltransfer.exe tool in the C:\Livelink\wcm\type1\bin


subdirectory.
2. Launch the Script Wizard from the menu bar…
3. DAT files can be loaded or created in the source and target device settings.
4. To load a DAT file, select the file as the source device.
5. Under target device, indicate the destination type (database). Then select
the ODBC DSN for the target database.
6. Enter the database owner and password after choosing your connection.
7. Confirm the next four steps of the script wizard with Next and the last step
with Finish.
8. The script has now been created. Run the script using the Start
SQL-Transfer! command in the menu bar.
9. A warning will be displayed that all data in the tables will be overwritten.
Confirm with Yes to begin loading. If you just want to verify your data file
against the database click No.

5.5.3 Direct Transfer

Note You can also define a source database and a target database together which means
that the data will be transferred directly from database to database without
creating a file. But defining a source and a target file together is not supported.

5.5.4 Transfer Script

Structure The default transfer script has the following structure (comments start with #):

#SQL-Transfer Script
begin transfer
source database type=MSSQL
source database connect=DSN=test;UID=user;PWD=xxx
dump to file=test.dat
usedbrowprefetch=100

Page 190 Livelink WCM Server - System Integration Manual


Client Installation SQLTransfer

set max field size=20000000


# --------------------------------------------------------
# List SQL statements for source database
begin source sql statements
end source sql statements
# --------------------------------------------------------
# List SQL statements for target database
begin target sql statements
end target sql statements
# --------------------------------------------------------
# List delete tables, for each name a new line
# (Only tables, to be deleted in different order)
begin delete tables
end delete tables
# --------------------------------------------------------
# List transfer tables, for each name a new line
begin tables
mytable1
mytable2
mytable3
end tables
# --------------------------------------------------------
# List exclude tables, for each name a new line
# (Only tables, to be excluded at import from file)
begin exclude tables
end exclude tables
# --------------------------------------------------------
# List change tables, for each name a new line
# map tablename: <tablename> table <new_tablename>
# map fieldname: <tablename> field <old_field> <new_field>
# map fieldtype: <tablename> type <fieldname> <typename>
# typenames: null,char,bin,int,double
# date,short_text,text,num,short_bin
# skip field: <tablename> skip <fieldname>
# set max field size: <tablename> maxsize <size in bytes>
# set row filtering: <tablename> where <sql-conditions>
begin change tables
end change tables
# --------------------------------------------------------
end transfer
# --------------------------------------------------------

5.5.5 Parameter Sections

General info Parameter sections define lists of items mostly needed as information about an
export, import or verify. Each item has to be on a separate line.

begin/end Must mark the beginning and the end of the transfer script parameter section as
transfer the log might be appended during the transfer. Each line between may contain
either a parameter or a comment.

begin/end tables Marks the beginning and the end of the list of tables to be exported. Each table
name has to be on a separate line.

Livelink WCM Server - System Integration Manual Page 191


SQLTransfer Client Installation

begin/end delete Marks the beginning and the end of the list of tables to be deleted/truncated
tables before importing data into it. Usually the tables are deleted/truncated
automatically before filling in but this also means that the order of tables deleted
is the same as in the table list. If you have some foreign key constraints it might
be that you have to delete the tables in the reverse order than filling the tables.
Here you can define a different order which will be processed before the first
table is filled again. Each table name has to be on a separate line.

begin/end Marks the beginning and the end of the list of tables not to be imported. Each
exclude tables table name has to be on a separate line.

begin/end source Marks the beginning and the end of the list of SQL statements executed on the
sql statements source database before the transfer starts. This can be useful to run an update
script before the export. Each SQL statement can use several lines but must be
terminated with a single “go” on the line or with a semi-colon after the last word.
There can be multiple SQL statements but they will be executed single in order.

begin/end target Marks the beginning and the end of the list of SQL statements executed on the
sql statements target database before the transfer starts. This can be useful to run a data model
creation script before the import.

begin/end Marks the beginning and the end of the list of changes to be made during the
change tables transfer. It is possible to rename table names, rename field names, remap field
types, exclude fields and filter specific data rows. This can be done with
following parameters. Each parameter has to be on a separate line.

rename table names: <tablename> table <new_tablename>

rename field names: <tablename> field <old_field> <new_field>

remap field types: <tablename> type <fieldname> <typename>

supported types are: null,char,bin,int,double,date,text,num

exclude fields: <tablename> skip <fieldname>

set max field size: <tablename> maxsize <size in bytes>

filter rows: <tablename> where <sql-conditions>

filter example: mytable1 where type=1 and modified>’2002-06-13 00:00’

Page 192 Livelink WCM Server - System Integration Manual


Client Installation SQLTransfer

Parameters Parameters define all information needed for an export, import or verify. Each
parameter my contain some predefined dynamic tokens that help to make an
automated import/export script. Predefined tokens are:

SYSDATE[.s]
Delivers the system date with format DD.MM.YYYY. s is an optional format
parameter which allows to use DD, MM, MMM, YY and YYYY for day, month,
name of month, year and full year, e.g. SYSDATE.“MM-DD-YYYY“ for the
American date format. Additionally there are the formats WWW for the name of
the day of week (Mon, Tue, etc.) and WY for the number of the week of the
year (0 to 52).
SYSTIME[.s]
Delivers the system time with format HH:MM:SS. s is an optional format
parameter which allows to use HH, MM, SS, SS.S and SS.SSfor hour, minute,
second and fractions of a second, e.g. SYSTIME.“HH:MM” for hours and
minutes.

source database Defines the type of the source database. Supported are MSSQL and Oracle,
type Example: source database type=Oracle

source database Defines the source database connection. The syntax is the same as for ODBC and
connect supports following parameters:

DSN
Connection name
UID
Login name
PWD
Login password (encrypted if generated by the wizard)

Example:

source database connect=DSN=test;UID=user;PWD=xxx

dump to file Defines the path of the export file. If the file has the extension .zip the data will
be directly zipped and will be much smaller. Example:
C:\Livelink\wcm\type1\backup\mysite-<!WEM SYSDATE.YYYYMM
DD>-<!WEM SYSTIME.HHMM>.dat Example with zipping:
C:\Livelink\wcm\type1\backup\mysite-<!WEM
SYSDATE.YYYYMMDD>-<!WEM SYSTIME.HHMM>.zip

Livelink WCM Server - System Integration Manual Page 193


SQLTransfer Client Installation

target database Defines the type of the target database. Supported are MSSQL and Oracle.
type

target database Defines the target database connection.


connect

load from file Defines the path of the import file.

set max field size Defines the maximum size of a single field in any table exported, e.g. 2000000 if
the biggest blob in a table is < 2 MB. Usually this size will be automatically
detected if it is in a standard table of the WCM Server data model.

logfile Defines the path of the transfer log file.

dblogfile Defines the path of the DBEngine log file, which logs only SQL errors.

dbsourcelogfile Defines the path of the DBEngine log file of the source database, which logs only
SQL errors.

dbtargetlogfile Defines the path of the DBEngine log file of the target database, which logs only
SQL errors.

setenv Allows defining any environment variables needed for the transfer. Example:
setenv=ORACLE_HOME=C:\Oracle\ora920

All other Oracle specific parameters that can be used for the CMEngine can also
be used here. Example: USEDBVERSION=Oracle 10.1.0 (which refers to the
version of the Oracle client library, for the (rare) cases where it is different from
the Oracle server version)

infofile Defines the path of the optional table structure information file. This file will be
generated when the source database will be exported. The file contains the table
structure as SQL script including tables, primary keys, indices and defaults. You
can copy and paste the SQL script directly into the sections begin/end source
SQL statements or begin/end target SQL statements of a possible
import script.

infomode Defines the method of how the SQL script is being generated. Normal is default
and alternate is usually a lower level method which does not always support all

Page 194 Livelink WCM Server - System Integration Manual


Client Installation SQLTransfer

structures.

5.5.6 Options

General info Options predefine the behavior of SQLTransfer in specific situations. These
predefinitions are necessary when a batch scheduler starts the transfer script
automatically, and there is no possibility for interactive inputs. The result of such
a transfer is always logged including the automatically chosen options.

The allowed values are in parentheses and the first value is the default.

full log Defines if there should be logged only errors, full or short.
(no,yes,error)

clear logfile Defines if the log should be cleared before the transfer.
(no,yes)

clear dblogfile Defines if the DBEngine log should be cleared before transfer.
(no,yes)

skip transfer Defines if the transfer should be skipped and the verify should be started
(no,yes) immediately.

row sorting Defines if the exported data rows should be strictly sorted.
(yes,no)

skip truncate Defines if the tables should be automatically deleted/truncated before importing
table (no,yes) data. If this option is set to yes, the imported data will be merged together with
the already existing data rows. This works only without error if there are no rows
imported that conflict with a double primary key or unique constraint.

force truncate Defines if truncate table instead of delete from table should be used.
table (yes,no) Truncate table is usually faster as this operation is not logged by the database
server but may conflict with a configured database replication because a
replication needs to have all operations logged. If this is the case just set this
option to no.

stop on error Defines if the transfer should immediately stop on first error.
(yes,no)

Livelink WCM Server - System Integration Manual Page 195


SQLTransfer Client Installation

reconnect before Defines if the transfer should close the current connection and open a new one to
continue (yes,no) continue after an error.

skip corrupt Defines if the transfer should skip the rest of the table after an error or if the
tables (yes,no) transfer should try to continue with the same table.

stop on Defines if you can interactively interrupt the transfer with the [ESC] key (only
interruption Windows version).
(no,yes)

verify transfer Defines if the import should be verified after the transfer.
(no,yes)

ignore trailing Defines if the verification should ignore trailing spaces within char fields. This
spaces for verify makes it possible to verify char against varchar successfully.
(no,yes)

stop on Defines if the transfer should immediately stop on first difference.


difference
(no,yes)

5.5.7 Specific functions of the GUI version

Options Functions of the Options menu.

Force ODBC Corresponds to the parameter useodbc=yes. For almost all database types the
vendor specific ODBC driver can be used. For Oracle there is a different interface
used by default, which accesses directly the underlying OCI. With this switch you
can force the use of the vendor specific ODBC driver.

Thread Safety Sets some Oracle specific options to make the OCI thread safe. Usually it is not
necessary as SQLTransfer always runs in single threaded mode.

Alt Info Mode Corresponds to the parameter infomode=alternate.

Register/Unregister Registers or unregisters the file types .sqx and .dat in the Windows Explorer
File Associations for use with SQLTransfer by default.

Page 196 Livelink WCM Server - System Integration Manual


Client Installation WCM Server Service Control

Install/Uninstall SQLTransfer uses standard encryption for the database password within the
Custom connection parameter (see source/target database connect, PWD=xxx). It also
Encryption Key takes unencrypted passwords for instant use, but it is not recommended to save
and distribute transfer scripts with unencrypted passwords.

Additionally you can install your own encryption key that will force all users on a
computer to use this password encryption instead of the standard encryption. This
also allows you to restrict the use of SQLTransfer for only some specific
purposes.

You must have local system administrator permissions to install/uninstall such a


custom encryption key.

Important

5.6 WCM Server Service Control


Comments A shell program for handling WCM Server components. It can also control other
services available under the operating system.

Procedure 1. Copy ServiceControl.exe and ServiceControl.cfg to the web server


directory.
2. The configuration parameters for the distributed CMEngine are defined in the
ServiceControl.cfg file. It can also control the others services available
under the operating system.
3. Start and stop using command prompt:

ServiceControl –start [service name]

4. ServiceControl.exe supports the following parameters help, start


[service name], stop [service name], and version.

ServiceControl.cfg
#==========================================================#
example file [COMMON]
LOGFILE=C:\Livelink\wcm\type1\logs\servicecontrol.log
#==========================================================#
[CMENGINE_1]
TYPE=RENDERER
PROGRAM=C:\Livelink\wcm\type1\bin\cmengine.exe
PORT=<port>
CONFIGFILE_PATH=<WCM Server config file directory>
#==========================================================#
[APACHE]

Livelink WCM Server - System Integration Manual Page 197


WCM Server Service Control Client Installation

TYPE=SERVICE
SERVICENAME=apache
#=EOF======================================================#

Page 198 Livelink WCM Server - System Integration Manual


Advanced Topics Web Server / NTLM Authentication

6 Advanced Topics

6.1 Web Server / NTLM Authentication


General Info We make a difference between web server authentication and session based
(WCM Server) authentication. In WCM Server authentication, user name and
password are entered in a login form and, provided they are correct, a session is
established by means of a cookie which contains the session id.

In web server authentication, the user name and password are entered in a popup
dialog displayed by the browser, and the browser sends them to the web server,
along with the request, in the Authorization: header.

NTLM authentication is Microsoft’s Single-Sign-On system. Provided that

• both the client and the server are part of the same domain,
• the web server is an IIS,
• and the browser supports the NTLM protocol (IE and Mozilla >= 1.6),

the client is automatically logged in to the web site without having to type in
his/her password again (IE), resp. more than once (Mozilla).

Site Administrator The preview and some other functions in the Site Administrator require a working
and Web Server connection to the WCM Server. The Site Administrator is able to authenticate
Authentication itself to the WCM Server, if the WCM Server authentication scheme
(session-based authentication, the one that you use when you log in to the web
site via ?login) is used. It is, however, not able to authenticate itself via NTLM
(or some other form of web server authentication).

Therefore, we have to provide a separate web server instance which is accessible


only internally by the Site Administrator clients. It only uses session-based WCM
Server authentication and is not configured for any kind of web server
authentication. This instance might, for example, run on Port 81 instead of 80. In
order to make sure that only authorized users access it, set FORCELOGIN=always
in the engine’s configuration file.

In Site Administrator, go to File → Configure Sites and change the


Website base URL accordingly, then check Needs login for
server-side commands.

Livelink WCM Server - System Integration Manual Page 199


Web Server / NTLM Authentication Advanced Topics

Page 200 Livelink WCM Server - System Integration Manual


Maintenance Tasks Backup

7 Maintenance Tasks

7.1 Backup
Important After the whole installation has been successful it is strongly recommended to
schedule a regular backup for each productive server database. This should
include daily database backups for development and staging server, which should
be held at least a week. For each week one backup should be held for at least 3
months and the monthly backups should be archived for a year or more. This
backup strategy has been proved for many years.

7.1.1 MS SQL Server

Creating a BAK 1. Select the database for which the .bak file is to be created. Right-click the
file database, point to All Tasks and click Backup Database.
2. Under the General tab of the SQL Server Backup dialog, click Add in the
Destination section.
3. In the Select Backup Destination dialog, choose the default directory or
specify another location. If you want to use the backup facility regularly it’s
recommended to configure a backup device.
4. Enter the file name in the Backup Device Location dialog.
5. The name has now been registered in SQL Server Backup. Begin backup by
confirming with OK.

Restoring a BAK 1. Select the database to be restored. Right-click the database, point to All
file Tasks and click Restore Database.
2. If no .bak file has been specified previously, select From Device. Click
Select Devices…
3. If the .bak file is on a local drive, click Add…. Otherwise it must be copied to
a drive from which it can be retrieved via tape.
4. Select the required file (Use the button … to browse for the file).
5. Confirm the file selection with OK.
6. Confirm loading of the file with OK.
7. Select the Options tab. Mark the checkbox Force restore over

Livelink WCM Server - System Integration Manual Page 201


Backup Maintenance Tasks

existing database. Verify that the directory in which the .mdf and .ldf
files are located has been specified.
8. Begin the restoring process by clicking OK.

When restoring from a backup device with several backups in it, make always
sure you are restoring the correct backup, as the default is mostly not the latest but
the oldest backup.
Important

7.1.2 Oracle

Note In order to import or export data under Oracle, two utilities, imp and exp, are
provided. However, it is recommended that you use SQLTransfer for transferring
WCM Server web site data whenever possible, for the following reason:

imp and exp are usually not compatible across different versions. So use them
only if the Oracle version of the server where you export data from and the
version of the server where you are importing into are the same. Also the version
of the Oracle client must be the same as the version of the Oracle server. There
are cases where using different versions works, but usually it does not.

Oracle says:

A good reason for preferring imp/exp over SQLTransfer is when you have to
transfer large amounts of data, because imp/exp is faster than SQLTransfer (at
least it used to be, with the current versions SQLTransfer has become quite fast as
well!).

Exporting a Open a command line or terminal window and issue the following statement:
database
$ exp username/password@mydb.domain.com file=filename.dmp direct=y

If you get the following error message:

EXP-00041: Export done in server's US7ASCII, different from user's charac


ter set WE8ISO8859P1
EXP-00000: Export terminated unsuccessfully

you have to set the NLS_LANG environment variable to the same character set as

Page 202 Livelink WCM Server - System Integration Manual


Maintenance Tasks Log File Handling

the server's, e.g.

$ export NLS_LANG=AMERICAN_AMERICA.US7ASCII

or, under Windows:

C:\> set NLS_LANG=AMERICAN_AMERICA.US7ASCII

Importing a To import the data, use the following (make sure that the tables of the destination
database user are empty or do not exist):

$ imp username/password@mydb.domain.com file=filename.dmp ignore=y full=y

Tip Another useful application of imp is to script a particular user's objects. If you
would do

$ imp username/password@mydb.domain.com file=filename.dmp ignore=y show=y


full=y indexfile=filename.sql

the import is not actually made, but you will find create statements for all the
objects (tables and indexes) in filename.sql. It is not very well formatted,
however, and create statements for tables are commented out.

7.2 Log File Handling


Rationale When running a productive system, monitoring and archiving the log files are
very important tasks. In a WCM Server installation, there are two kinds of log
files: Those created by the web server and those created by the WCM Server
itself.

Most people are used to handling the web server log files because they (and their
management and marketing departments) are interested in the information those
files provide about their web site users. The WCM Server log files, on the other
hand, provide information about how “healthy” the system is.

Log File Rotation Log files should not grow too big; otherwise they are difficult to handle for the
administrator as well as for the system. The easiest way for implementing log file

Livelink WCM Server - System Integration Manual Page 203


Log File Handling Maintenance Tasks

rotation in the WCM Server is using the SYSDATE macro.

<!WEM SYSDATE.”WW”> for example returns the current week number, which
can easily be used to define the log file name in the configuration file
cmengine.cfg:

LOGFILE=/opt/livelink/wcm/type1/logs/cmengine-<!WEM SYSDATE.”WW”>.log

Access to log We encourage users working with the Site Administrator to regularly check the
files log files as well, in order to see whether their scripts contain or produce any
errors. If those users do not have direct access to the server’s file system, they can
view the log files in their browsers (see below on how to do this), provided that

• they are logged in, and


• that DEBUG is set to SESSION

While we generally advise to set DEBUG=close on live servers, setting


DEBUG=session on the stage server probably simplifies development a lot (and
is mandatory when you intend to use the Site Manager).

Analyzing the The LOGFILE (as defined in cmengine.cfg) provides information about:
LOGFILE
• Server (re-)starts
• Timeouts in scripts and data objects
• Failed login attempts
• Session timeouts
• Unsuccessful attempts to connect to a database
• Other problems

You can see the LOGFILE in the browser using a query parameter of
?debug=logfile.

Analyzing the The DBLOGFILE logs database errors. Information in the DBLOGFILE is almost
DBLOGFILE always critical in nature: Since all data of a WCM Server web site reside entirely
in the database, SQL errors can quickly have a negative impact on performance. If
there is an erroneous SQL statement in an object that belongs to several pages,
many (if not all) web site requests lead to one (uncached) SQL error, which
results in a database log file growing very rapidly. This makes database problems
very easy to spot: A quick glance at the log file directory should reveal any
problems immediately. The DBLOGFILE is created only if something has to be

Page 204 Livelink WCM Server - System Integration Manual


Maintenance Tasks Log File Handling

written to it. Therefore, if there is none around, it could mean that the site did not
produce any SQL errors and the system is in a healthy state. However, it could
also mean that the CMEngine does not have write access to the log directory ;-)

Each SQL error is logged with the ID of the object that produced it. Therefore,
make sure you include this ID when you hand the error over to the person that
should fix it.

The DBLOGFILE can also be accessed by site builders and authors using the query
parameter ?debug=dblogfile.

Analyzing the The SCRIPTLOGFILE logs errors in server-side scripts. It also contains output
SCRIPTLOGFILE generated via the log() function. It can be accessed using the query parameter
?debug=scriptlogfile.

Livelink WCM Server - System Integration Manual Page 205


Log File Handling Maintenance Tasks

Page 206 Livelink WCM Server - System Integration Manual


Appendix Installing Oracle 9i Version 9.0.1.1 under Windows

8 Appendix

8.1 Installing Oracle 9i Version 9.0.1.1 under Windows


Comments The installation procedure is documented step-by-step. However, if there are
remaining questions or problems, refer to the documentation on the Oracle CD.

Procedure 1. Start the Oracle installation program and confirm with Next.

2. Specify the installation path for Oracle. Important: The installation path must
not contain spaces or any other special characters as this will not be accepted
by the Oracle Java components.
3. The available products are listed. If you want to install a whole database
server instance choose Oracle9i Database. Select the desired product and
confirm with Next.
4. The available products are listed. If you want to install a whole database
server instance choose Oracle9i Database. Select the desired product and
confirm with Next.
5. Select the Standard or Enterprise Edition for the Oracle server
according to your license agreement. The Personal Edition will not be

Livelink WCM Server - System Integration Manual Page 207


Installing Oracle 9i Version 9.2.0 under Solaris Appendix

enough for the WCM Server. Confirm with Next.


6. Select the appropriate database configuration. It’s recommended to use
General Purpose. Confirm with Next.
7. Enter the Global Database Name and the system identifier (SID). Confirm
with Next.
8. Enter the directory into which Oracle is to copy the files. Confirm with Next.
The file path must not contain spaces or any other special characters as this will
not be accepted by the Oracle Java components.

Important

9. Choose the default character set for the database. Confirm with Next.
10. After the review of the installation choices you can start the installation with
install. After a while you will be asked to insert the second and then the
third CD. Oracle then creates the default database instance.
11. The most important information for the Oracle installation is displayed before
concluding.

12. The installation is complete. An additional copy may be installed, or click


Exit to end.

8.2 Installing Oracle 9i Version 9.2.0 under Solaris

Page 208 Livelink WCM Server - System Integration Manual


Appendix Installing Oracle 9i Version 9.2.0 under Solaris

Note This is just a very rough description to get you going. If you have any problems
installing Oracle, please refer to the relevant Oracle documentation and support
web sites (e.g. the Oracle Technology Network at http://otn.oracle.com or
Metalink at http://metalink.oracle.com).

Configure kernel Add the following parameters to /etc/system (these are the minimum
resources requirements):

set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=100
set semsys:seminfo_semmsl=200
set semsys:seminfo_semmns=700
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767

Reboot the system for the changes to take effect.

Install required If not already installed on your system, install the following packages from your
packages Solaris operating system CD:

• SUNWsprot (for /usr/ccs/bin/make)


• SUNWbtool (for /usr/ccs/bin/nm and ar)
• and optionally SUNWman (Manpages, run catman -w afterwards for building
the indices)

You might want to install bash, gzip, gtar etc. as well. You can get
precompiled Solaris binaries from http://www.sunfreeware.com.

Create user and


# groupadd oinstall
groups for Oracle # groupadd dba
# useradd –c “Oracle Administrator” –d /opt/oracle –g oinstall –G dba –m
oracle
# passwd oracle

New Password:
Re-enter new Password:
passwd: password successfully changed for oracle

# chmod 755 /opt/oracle

Hint: If you are installing Oracle 8.1.5, do

# mkdir –p /opt/oracle/product/8.1.5

Livelink WCM Server - System Integration Manual Page 209


Installing Oracle 9i Version 9.2.0 under Linux Appendix

# chmod 755 /opt/oracle/product/8.1.5

Edit oracle’s
$ vi /opt/oracle/.profile
profile umask 022
unset CLASSPATH
unset JAVA_HOME
unset LANG
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/9.2.0
ORACLE_SID=ORCL
PATH=${PATH}:${ORACLE_HOME}/bin
export LD_ASSUME_KERNEL NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
:wq

Unpack Create a directory, say orainst, and unpack the Oracle installation CD contents
installation into it (gzipped cpio archives).
archives

Start installation Start the installation (under X) with

cd orainst
./runInstaller

and follow the instructions. Use Custom when asked for the installation method,
not Typical.

Create database When the installation has finished, the installer automatically starts dbassist to
instance create a new database. Choose Typical here and select OLTP as the type of
prevalent usage. When you are prompted for the database options, select only
what you really need. It'll take a long time anyway! (If you choose one of the
pre-created databases, it will take less time, but some settings might not be as you
would like them; e.g. they have a blocksize of only 4k.) Finally select Create
Now.

8.3 Installing Oracle 9i Version 9.2.0 under Linux


Note This is just a very rough description to get you going. If you have any problems
installing Oracle, please refer to the relevant Oracle documentation and support
web sites (e.g. the Oracle Technology Network at http://otn.oracle.com or
Metalink at http://metalink.oracle.com).

Page 210 Livelink WCM Server - System Integration Manual


Appendix Installing Oracle 9i Version 9.2.0 under Linux

Create user and


# groupadd oinstall
groups for Oracle # groupadd dba
# useradd –c “Oracle Administrator” –d /opt/oracle –g oinstall –G dba –m
oracle
# passwd oracle

Changing password for user oracle.


New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

# chmod 755 /opt/oracle

Edit oracle’s login


$ vi /opt/oracle/.bash_profile
profile umask 022
unset CLASSPATH
unset JAVA_HOME
unset LANG
# The following line for 8i only
#LD_ASSUME_KERNEL=2.2.5
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/9.2.0
ORACLE_SID=ORCL
PATH=${PATH}:${ORACLE_HOME}/bin
export LD_ASSUME_KERNEL NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
:wq

Unpack Create a directory, say orainst, and unpack the Oracle installation CD contents
installation into it (gzipped cpio archives).
archives

Start installation Start the installation (under X) with

cd orainst
./runInstaller

and follow the instructions. Use Custom when asked for the installation method,
not Typical.

Apply glibc patch The following applies to Oracle 8i only: During the install you will get a link
(8i only) error. Go to another terminal window and install the patch
glibc-2.1.3-stubs.tar.gz (you can get it from Oracle):

$ cd $ORACLE_HOME
$ tar zxvf /tmp/glibc-2.1.3-stubs.tar.gz
$ ./setup_stubs.sh

Livelink WCM Server - System Integration Manual Page 211


Installing Oracle 9i Version 9.2.0 under Linux Appendix

When the installation script has finished, get back to the link error dialog and
click retry. It should now run through without errors.

Create database When the installation has finished, the installer automatically starts dbassist to
instance create a new database. Choose Typical here and select OLTP as the type of
prevalent usage. When you are prompted for the database options, select only
what you really need. It'll take a long time anyway! Finally select Create Now.

8.3.1 Configuring Oracle 9.2.0 under Solaris and Linux

Configuration It is expected that the following environment variables are set in the .profile of
the Oracle user (which should be the case if you followed the instructions above).

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
NLS_LANG

$ORACLE_HOME/bin is in the path.

It is also important that the instance of the database was created with a global
database name including the domain.

tnsnames.ora The entry for the


database instance in
$ORACLE_HOME/network/admin/tnsnames.ora should look as follows:

OBTREE.MYDOMAIN.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT=1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wcm.mydomain.com)
)
)

sqlnet.ora In $ORACLE_HOME/network/admin/sqlnet.ora you should find the


following entry:

NAMES.DEFAULT_DOMAIN = MYDOMAIN.COM

Page 212 Livelink WCM Server - System Integration Manual


Appendix Installing Oracle 9i Version 9.2.0 under Linux

as well as (possibly)

SQLNET.EXPIRE_TIME = 1

This entry defines the time interval in minutes in which the Oracle server checks
open connections. If the client doesn’t reply, the connection is closed.

protocol.ora – The following entry in $ORACLE_HOME/network/admin/protocol.ora may


disable Nagle improve the performance (but may also increase network traffic):
algorithm

tcp.nodelay=yes

As a default, this file does not exist so you will have to create it.

init.ora The parameter processes in $ORACLE_BASE/admin/wcm/pfile/initwcm.ora


should not be chosen too small. We recommend for example:

processes = 300

In case there are no raw devices used for tablespace data, the following parameter
should be specified:

disk_asynch_io = false

Livelink WCM Server - System Integration Manual Page 213