213
Web Content Management Server System Integration Manual Type 1 System Release 9.5.0 Version 3.3

Livelink WCM 9.5 SystemIntegration_en

Embed Size (px)

Citation preview

Page 1: Livelink WCM 9.5 SystemIntegration_en

Web Content Management Server

System Integration Manual

Type 1 SystemRelease 9.5.0Version 3.3

Page 2: Livelink WCM 9.5 SystemIntegration_en

Copyright 2004 by Open Text Corporation. The copyright to these materials and anyaccompanying software is owned, without reservation, by Open Text. These materials and anyaccompanying software may not be copied in whole or part without the express, written permission ofOpen 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 companynames are used for identification purposes only, and are trademarks of their respective owners. All rightsreserved.Open Text Corporation provides certain warranties and limitations in connection with the software thatthis document describes. For information about these warranties and limitations, refer to the licenseagreement entered into between the licensee and Open Text Corporation.Contacting UsCorporate HeadquartersOpen Text Corporation185 Columbia Street West,Waterloo, OntarioN2L 5Z5Canada(519) 888-7111If you subscribe to our Software Maintenance Program or would like more information about additionalsupport 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 [email protected] to contact theOpen Text Publications Group.Visit our home page at http://www.opentext.com for more information about Open Text products andservices.

Page 3: Livelink WCM 9.5 SystemIntegration_en

© 2004 IXOS SOFTWARE AGBretonischer Ring 1285630 Grasbrunn, GermanyTel.: +49 (89) 4629-0Fax: +49 (89) 4629-1199eMail: [email protected]: http://www.ixos.deAll rights reserved, including those regarding reproduction, copying or other use or communication of thecontents of this document or parts thereof. No part of this publication may be reproduced, transmitted tothird parties, processed using electronic retrieval systems, copied, distributed or used for publicdemonstration in any form without the written consent of IXOS SOFTWARE AG. We reserve the right toupdate or modify the contents. Any and all information that appears within illustrations of screenshots isprovided coincidentally to better demonstrate the functioning of the software. IXOS SOFTWARE AGhereby declares that this information reflects no statistics of nor has any validity for any existingcompany.Portions of the license material were created using open source codes of third parties. These source codesare free for use subject to the terms of the corresponding licenses. All of these licenses are available atwww.obtree.com/opensource-info.Contacting UsIXOS Engineering (Switzerland) AGPeter Merian-Strasse 80PostfachCH-4002 BaselTel.: +41 (61) 278 96 96

Page 4: Livelink WCM 9.5 SystemIntegration_en

Document InfoEnglish (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 [email protected] to contact the Documentation Group responsible for this product.

Page 5: Livelink WCM 9.5 SystemIntegration_en

I’ll show you how to

In eight easy steps…

ALANIS MORISSETTE

Page 6: Livelink WCM 9.5 SystemIntegration_en
Page 7: Livelink WCM 9.5 SystemIntegration_en

Table of Contents

1. General Information............................................................................................................. 111.1 Welcome!......................................................................................................................................... 11

1.1.1 How To Read This Book............................................................................................................111.2 The Knowledge Center.................................................................................................................... 121.3 What’s New?.................................................................................................................................... 12

1.3.1 Only One Engine....................................................................................................................... 131.3.2 New Database Model................................................................................................................ 13

2. System Overview and Concepts......................................................................................... 152.1 The Components of a Livelink WCM Server Installation..................................................................152.2 The Staging/Live Concept................................................................................................................16

2.2.1 The Live Server......................................................................................................................... 162.2.2 The Staging Server....................................................................................................................172.2.3 Bringing Stage and Live Together............................................................................................. 172.2.4 Size considerations................................................................................................................... 18

2.3 Example of a larger installation........................................................................................................ 182.4 Configuration Files........................................................................................................................... 20

2.4.1 Configuration File Format.......................................................................................................... 202.4.2 URLMAGIC and HOSTMAGIC: Matching An Incoming Request To A Site.............................. 202.4.3 Internationalized Domain Names (IDN).....................................................................................22

2.5 Common Pitfalls............................................................................................................................... 222.5.1 Library Search Paths................................................................................................................. 222.5.2 Environment variables and cron (Linux/Solaris only)................................................................ 222.5.3 Time Synchronization................................................................................................................ 23

3. Basic Installation.................................................................................................................. 253.1 Automatic Demo Setup (Windows Platform)....................................................................................253.2 Quick Start Setup (Windows Platform).............................................................................................25

3.2.1 Create the Installation Directory................................................................................................ 253.2.2 Prepare the Database: Microsoft SQL Server........................................................................... 273.2.3 Load WCM Server Web Site Data.............................................................................................293.2.4 Configure the Web Server: Microsoft Internet Information Service 6.0..................................... 303.2.5 Customize the configuration file................................................................................................ 33

3.3 Manual Setup (Windows Platform)...................................................................................................343.3.1 Create the Installation Directory................................................................................................ 343.3.2 Prepare the Database: Microsoft SQL Server........................................................................... 363.3.3 Prepare the Database: Oracle...................................................................................................383.3.4 Load WCM Server Web Site Data.............................................................................................403.3.5 A word about web server processes......................................................................................... 413.3.6 Configure the Web Server: Microsoft Internet Information Service 5.0 (Windows 2000).......... 423.3.7 Configure the Web Server: Microsoft Internet Information Service 6.0 (Windows 2003).......... 453.3.8 Configure the Web Server: Apache HTTP Server 2.0...............................................................503.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)..............................................................................523.4.1 Create the Installation Directory (from packages)..................................................................... 52

Livelink WCM Server Table of Contents

Livelink WCM Server - System Integration Manual Page 7

Page 8: Livelink WCM 9.5 SystemIntegration_en

3.4.2 Prepare the Database: Oracle...................................................................................................543.4.3 Configure the Web Server: Apache HTTP Server 2.0...............................................................56

3.5 Manual Setup (Solaris Platform)...................................................................................................... 603.5.1 Create the Installation Directory (from packages)..................................................................... 603.5.2 Create the Installation Directory (manually).............................................................................. 623.5.3 Prepare the Database: Oracle...................................................................................................653.5.4 A word about web server processes......................................................................................... 683.5.5 Configure the Web Server: Apache HTTP Server 2.0...............................................................693.5.6 Configure the Web Server: Sun Java System Web Server 6.1 (aka iPlanet)............................71

3.6 Manual Setup (Linux Platform).........................................................................................................723.6.1 Create the Installation Directory (from packages)..................................................................... 733.6.2 Create the Installation Directory (manually).............................................................................. 743.6.3 Prepare the Database: Oracle...................................................................................................783.6.4 A word about web server processes......................................................................................... 803.6.5 Configure the Web Server: Apache HTTP Server 2.0...............................................................81

3.7 Customizing the WCM Server Configuration Files...........................................................................833.8 Testing your installation................................................................................................................... 843.9 Updating your Installation.................................................................................................................86

4. Additional Components....................................................................................................... 894.1 SOAP............................................................................................................................................... 894.2 Session Management...................................................................................................................... 89

4.2.1 Setup under Windows............................................................................................................... 904.2.2 Setup under Solaris and Linux.................................................................................................. 914.2.3 Advanced Configuration............................................................................................................ 93

4.3 WCM Server Replication..................................................................................................................934.3.1 WCM Server Replication from the shell.....................................................................................974.3.2 Offline Replication..................................................................................................................... 98

4.4 LDAP..............................................................................................................................................1004.4.1 Authentication and authorization options.................................................................................1004.4.2 Matching rules......................................................................................................................... 1034.4.3 Customize the login process................................................................................................... 1044.4.4 LDAP Plug-in Authentication (Windows)................................................................................. 1054.4.5 LDAP Plug-in Authentication (Solaris).....................................................................................1074.4.6 LDAP Plug-in Authentication (Linux)....................................................................................... 109

4.5 Livelink Enterprise Integration........................................................................................................1114.5.1 Prerequisites............................................................................................................................1124.5.2 Configuration........................................................................................................................... 1124.5.3 Define a Connection to Livelink Enterprise..............................................................................1144.5.4 Single Sign-On between Livelink WCM Server and Livelink Enterprise..................................118

4.6 Java Connectivity (LiveConnect)....................................................................................................1214.6.1 Java Connectivity (LiveConnect) (Windows)........................................................................... 1214.6.2 Java Connectivity (LiveConnect) (Solaris)...............................................................................1224.6.3 Java Connectivity (LiveConnect) (Linux)................................................................................. 123

4.7 WebDAV Service........................................................................................................................... 1244.7.1 Server Configuration................................................................................................................1244.7.2 Installation of the Java VM...................................................................................................... 1254.7.3 Installation of Apache Tomcat................................................................................................. 125

Table of Contents Livelink WCM Server

Page 8 Livelink WCM Server - System Integration Manual

Page 9: Livelink WCM 9.5 SystemIntegration_en

4.7.4 Installation and Configuration of the WebDAV Service........................................................... 1254.7.5 Installation of the WebDAV Service Authentication Module.................................................... 1284.7.6 Configuration of a WebDAV Client.......................................................................................... 129

4.8 Synchronization..............................................................................................................................1294.9 WordWizard (Microsoft Word Integration)......................................................................................136

4.9.1 Server Configuration................................................................................................................1364.10 TaskAgent.................................................................................................................................... 137

4.10.1 What’s the feature all about?.................................................................................................1374.10.2 Files delivered with the TaskAgent........................................................................................1384.10.3 Using the TaskAgent............................................................................................................. 1384.10.4 Configuration of the TaskAgent............................................................................................. 1414.10.5 Format of „ARGUMENT“ and „HEADER“ values.................................................................. 1554.10.6 Examples...............................................................................................................................1604.10.7 Installation as a UNIX daemon resp. a MS Windows service................................................1614.10.8 Warnings and error messages.............................................................................................. 1624.10.9 Applications........................................................................................................................... 165

4.11 Professional Workflow..................................................................................................................1714.12 Deployment.................................................................................................................................. 171

4.12.1 Synchronization..................................................................................................................... 1714.12.2 Online Synchronization..........................................................................................................1724.12.3 Offline Synchronization..........................................................................................................1744.12.4 Object Transfer......................................................................................................................177

4.13 Server Architecture for the Distributed CMEngine....................................................................... 1784.13.1 Distributed Architecture under Windows............................................................................... 1804.13.2 Distributed Architecture under Linux and Solaris.................................................................. 181

5. Client Installation................................................................................................................1855.1 Introduction.................................................................................................................................... 1855.2 Site Administrator...........................................................................................................................1855.3 Site Manager (a.k.a. Content Manager).........................................................................................1865.4 WordWizard (Microsoft Word Integration)......................................................................................187

5.4.1 Installing the WordWizard........................................................................................................1875.5 SQLTransfer...................................................................................................................................188

5.5.1 Creating a DAT file.................................................................................................................. 1895.5.2 Loading DAT files.................................................................................................................... 1905.5.3 Direct Transfer.........................................................................................................................1905.5.4 Transfer Script......................................................................................................................... 1905.5.5 Parameter Sections................................................................................................................. 1915.5.6 Options.................................................................................................................................... 1955.5.7 Specific functions of the GUI version.......................................................................................196

5.6 WCM Server Service Control......................................................................................................... 1976. Advanced Topics................................................................................................................199

6.1 Web Server / NTLM Authentication................................................................................................1997. Maintenance Tasks.............................................................................................................201

7.1 Backup........................................................................................................................................... 2017.1.1 MS SQL Server....................................................................................................................... 2017.1.2 Oracle...................................................................................................................................... 202

7.2 Log File Handling........................................................................................................................... 203

Livelink WCM Server Table of Contents

Livelink WCM Server - System Integration Manual Page 9

Page 10: Livelink WCM 9.5 SystemIntegration_en

8. Appendix............................................................................................................................. 2078.1 Installing Oracle 9i Version 9.0.1.1 under Windows.......................................................................2078.2 Installing Oracle 9i Version 9.2.0 under Solaris............................................................................. 2088.3 Installing Oracle 9i Version 9.2.0 under Linux................................................................................210

8.3.1 Configuring Oracle 9.2.0 under Solaris and Linux...................................................................212

Table of Contents Livelink WCM Server

Page 10 Livelink WCM Server - System Integration Manual

Page 11: Livelink WCM 9.5 SystemIntegration_en

1 General Information

1.1 Welcome!

Welcome to Livelink WCM Server! You are reading the System IntegrationManual, which is about how to install and administrate Livelink WCM ServerType 1 System. Installation and maintenance of Livelink WCM Server is not adifficult task, but there are a few conceptual things you should know before youstart with the actual installation. You will find the details right here in thischapter.

Livelink WCM Server supports different operating systems, web servers anddatabases, which is why this manual might seem rather big at first sight. But don’tlet the number of pages scare you off, you won’t have to read all of them. Let thenext 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 theoverview and concepts chapters. After that, you could go to the Quick Startsection of your operating system / platform in order to quickly get a smallinstallation running and see “what it looks like”.

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

General Information Welcome!

Livelink WCM Server - System Integration Manual Page 11

Page 12: Livelink WCM 9.5 SystemIntegration_en

Audience The intended audience of this manual are system administrators and systemintegrators. They should have a good knowledge about the operating system theyuse, about web servers, database servers, TCP/IP, HTTP and SQL, and theyshould have an idea about which layer these belong to (if you have ever heardabout the OSI model, you know what I mean ;-)). But this is not about the modelitself, 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 mustnot do are explicitely stated as such, e.g. “you must not rename thecmengine.dll for IIS”. Everything else in the “Basic Installation” chapter is tobe understood as what you should do, e.g. “you should follow the file systemlayout” used in that chapter (because it will be easier for you and for somebodyelse 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, butare entirely optional.

Languagesupport

This manual is available in English only.

1.2 The Knowledge Center

The Knowledge Center (https://knowledge.opentext.com) is an indispensable source for any kind ofinformation not found in the official documentation. You will find there a tremendous amount ofHOWTOs, best-practice guides, troubleshooting information, a product roadmap and lots of other stuffyou might be interested in. Also, the Knowledge Center features discussion groups where you can ask forhelp when you’re stuck: Not only long-time customers and partners but also many Open Text employeesfollow the forum posts on a regular basis and are willing to help you out. Furthermore, the KnowledgeCenter has a powerful search function that you should use before asking in the forum (chances are thatothers 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 liketo get a quick overview on what has changed since the last release (from a System Integrator’s point ofview). If you are new to Livelink WCM Server, just skip this and read the next chapter about the

The Knowledge Center General Information

Page 12 Livelink WCM Server - System Integration Manual

Page 13: Livelink WCM 9.5 SystemIntegration_en

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 onerendering engine, the CMEngine. It is entirely a matter of configuration whether the CMEngine behavesas 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 gotadditional fields. This has been necessary to support some of the new features like e.g. “auditing”.

See chapter “Updating your Installation” on page 86 !

General Information What’s New?

Livelink WCM Server - System Integration Manual Page 13

Page 14: Livelink WCM 9.5 SystemIntegration_en

What’s New? General Information

Page 14 Livelink WCM Server - System Integration Manual

Page 15: Livelink WCM 9.5 SystemIntegration_en

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 intoserver and client. The server can be further divided into a presentation part, a repository part and otherthird-party systems that the WCM Server somehow interacts with. The presentation part consists of aweb server and a WCM Server module, which is loaded by the web server on startup. It is the module’sresponsibility to dynamically create the requested web pages and hand them over to the web server fordelivery. 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 dependingon the configuration.)

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

Livelink WCM Server - System Integration Manual Page 15

Page 16: Livelink WCM 9.5 SystemIntegration_en

The repository part consists of a database server. The database server holds all the data belonging to aparticular web site. When an HTTP request is to be delivered, the CMEngine connects to the databaseserver and fetches the necessary data to assemble the requested page. For performance reasons, theCMEngine features a sophisticated caching mechanism, which minimizes the number of databaseaccesses (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 whatneeds 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 CMEngineitself, 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 pluginsinclude e.g. LDAP, SAP, Microsoft COM etc. A plugin runs independently from the web server in aseparate process. The CMEngine communicates with the plugins via TCP, while the plugincommunicates 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, administratorsand content authors. Administrators work with a tool called Site Administrator. The Site Administratorhas all the functionality to create and administrate the web site. It communicates directly with thedatabase and therefore needs the corresponding database vendor’s client software installed. The contentauthor, on the other hand, does not need any additional client software installed. The only thing a contentauthor needs is a browser and a Java Virtual Machine (JVM). He/she works with a tool called SiteManager, which is completely browser-based. Texts are edited using the TextWizard, a programimplemented as a Java applet and started directly from the browser. Optionally, it is possible to useMicrosoft 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 yourinstallation. This section tries to explain the basic idea behind the staging/live concept and itsimplications 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 madeavailable for browsing/reading, but cannot be changed. Therefore the emphasis in the live environmentlies on maximizing performance by caching as much as the dynamics of the pages and available RAMallow. As a minimum, a live server consists of

• One web server instance

The Staging/Live Concept System Overview and Concepts

Page 16 Livelink WCM Server - System Integration Manual

Page 17: Livelink WCM 9.5 SystemIntegration_en

• 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 theinstallation 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 areimmediately visible to the authors, so that they are able to see what their pages look like before makingthem active. For this reason, the data may not be as heavily cached as in a live environment, which leadsto 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 theinstallation 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 SiteManager resides) and one section for the site. (Note: If there is more than one site, each site has itsown 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 followingmeans:

• With SQLTransfer, which transfers the complete site. SQLTransfer is available as a GUI versionand as a commandline version suitable for being executed by an operating system scheduler likecron.

• With database replication, which transfers only the rows that have been changed since the lastsynchronization.

• With the WCM Server replication, which transfers only the rows of active WCM Server objects thathave been changed since the last replication.

System Overview and Concepts The Staging/Live Concept

Livelink WCM Server - System Integration Manual Page 17

Page 18: Livelink WCM 9.5 SystemIntegration_en

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

2.2.4 Size considerations

Under Oracle, when using a newly created tablespace with a blocksize of 8K, our default SQL scriptwith 128K extents and the example web site (demosite.zip), the tablespace will occupy about 100 MBon 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 MBon 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 yourdatabase.

2.3 Example of a larger installation

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

Example of a larger installation System Overview and Concepts

Page 18 Livelink WCM Server - System Integration Manual

Page 19: Livelink WCM 9.5 SystemIntegration_en

Both staging and live have a load balancer in front of them, which equally distributes the incomingrequests to two trails. Each trail consists of a reverse proxy, followed by the web server with theCMEngine, 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 sessiondata must be available to all running processes simultaneously. Only the primary session plugin is activefor both web servers, the other one is just a fallback, should the primary become unavailable. The LDAPservers 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 applicationdevelopers, so that they are able to do their testing without disrupting the stage environment where thecontent authors work. Data from the development server is transferred to the staging environment byexporting and reimporting objects as .oxp packages, an XML format. This can be done with thedeployment utility or the Site Administrator. The replication utility is used in order to transfer thedata from the staging to the live environment.

System Overview and Concepts Example of a larger installation

Livelink WCM Server - System Integration Manual Page 19

Page 20: Livelink WCM 9.5 SystemIntegration_en

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 oneconfiguration file for each component. They are in .ini format, containing one or more sections, andeach 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 atthe end of the file. Some section names are mandatory, while others can be chosen to be whatever youlike, depending on the component you are configuring. In any case a section name must be uniquewithin 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 lineand 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 notthe place to discuss every parameter in detail here. If it comes to creating an appropriate config file foryour intended setup, there are samples in the release set for you to start with, and the parameters aredocumented 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 particularsection in the configuration file?

We said earlier that there is one database schema for every site. In the cmengine.cfg, there is onecorresponding section for each site, which basically contains two important pieces of information: Thedatabase connection parameters, and the parameters that determine whether or not an incoming requestbelongs to this particular site. For the matching mechanism, the URL of an incoming request is split intotwo parts: the host (including the port, if any) and the path to the requested resource. For example, if therequested URL is http://www.myserver.com:8555/some/path/index.html, thenwww.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: HOSTMAGICand URLMAGIC.

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

Configuration Files System Overview and Concepts

Page 20 Livelink WCM Server - System Integration Manual

Page 21: Livelink WCM 9.5 SystemIntegration_en

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 andURLMAGIC=/ 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:8555HOSTMAGIC=www.myserver.com:8555URLMAGIC=/someDBTYPE=ORACLEDBNAME=mydbDBUSER=mysiteDBPWD=secret

[anothersite]SERVERURL=http://www.myserver.com:8555#HOSTMAGIC=www.myserver.com:8555URLMAGIC=/some/pathDBTYPE=ORACLEDBNAME=mydbDBUSER=anothersiteDBPWD=secret

Here, our example request would match the first section and not the second. Why? Because thematching is always done sequentially from the top to the bottom of the config file. When the first sectionis 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 takeninto consideration anymore. This is probably not what you intended, therefore keep in mind thefollowing 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 onedoes 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 viaCREATEBASETAG. Therefore it is important to define this parameter as well. If it is undefined, the valueof the SERVER_URL web server environment variable is used. This is very useful if you run a site under alot of different names, e.g. if www.mysite.com, www.mysite.net, and www.mysite.org all point tothe same WCM site. Instead of creating three different sections with the respective SERVERURLs andHOSTMAGICs, just use a single section without SERVERURL and HOSTMAGIC unset, and have your webserver set the SERVER_URL variable to the correct value. For example in Apache, you can put a SetEnvdirective 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 namethat manages to get through to it (if that is what you want ;-)).

System Overview and Concepts Configuration Files

Livelink WCM Server - System Integration Manual Page 21

Page 22: Livelink WCM 9.5 SystemIntegration_en

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 thepunycode-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 arefor the most part easy to overcome, but very often, they stress your nerves and it takes hours to findthem, 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 hereif any problems arise.

2.5.1 Library Search Paths

A very common problem is that database, LDAP, or other connections to external resources fail becausethe necessary libraries cannot be loaded successfully. Having the correct path / filename in the configfile is not the only prerequisite for the library to be loaded successfully. Very often, the library itselfloads other libraries in turn. In order to find them, the dynamic loader follows a search path which isdefined in the LD_LIBRARY_PATH variable (Linux, Solaris), or in the PATH variable (Windows). It istherefore important that these variables are set as described in the installation chapter further below. Ifyou would like to know, which libraries a particular library depends on, you can use the ldd commandunder Linux and Solaris. For Windows users, there is a nice utility available athttp://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. Youtherefore have to set all the necessary environment variables when the job executes. The easiest way todo this is to set everything in a shell script which then executes the actual command. If you have severaljobs that need the same environment, you could also set the variables directly in the crontab. See the

Common Pitfalls System Overview and Concepts

Page 22 Livelink WCM Server - System Integration Manual

Page 23: Livelink WCM 9.5 SystemIntegration_en

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 webserver time and database server time, strange things will happen (such as newly created objects that canbe seen in one place, but can't be accessed in another). Time synchronization can be achieved by usingNTP (Network Time Protocol) under Linux/Solaris, or by placing your servers into the same domainunder Windows.

System Overview and Concepts Common Pitfalls

Livelink WCM Server - System Integration Manual Page 23

Page 24: Livelink WCM 9.5 SystemIntegration_en

Common Pitfalls System Overview and Concepts

Page 24 Livelink WCM Server - System Integration Manual

Page 25: Livelink WCM 9.5 SystemIntegration_en

3 Basic Installation

3.1 Automatic Demo Setup (Windows Platform)

Purpose The basic idea behind the automatic demo setup is to quickly have a basicinstallation up and running for sales or demonstration purposes. This setupincludes 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 thedemo 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 andrunning without reading through the whole documentation, then the following isfor you. The aim is to provide step-by-step installation instructions for a stagingserver, using the IIS web server and the Microsoft SQL Server database. If youare looking for more detailed explanations, or if you would like to use a webserver other than IIS or a database other than MSSQL, please have a look at the“Manual Setup” chapters.

Installationprocedure

The installation is divided into these steps:

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

Basic Installation Automatic Demo Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 25

Page 26: Livelink WCM 9.5 SystemIntegration_en

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

Unpackready-to-installZIP archives

Create a directory C:\Livelink\wcm\type1 and extract the contents oflivelink-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. Thenselect C:\Livelink\wcm\type1 as the path to extract to and make sure thatUse folder names is checked. If you use the archiver wizard which isintegrated into the Windows XP Explorer, you will never reach the final screenwhen extracting an older (pre 9.5.0) version of the base package. This is becausethis archive contains only folders and no files. Nevertheless, after having clickedNext, 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 archiveshould unpack normally. After the base package, unpack the other zip files youneed. 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 allthe packages together; they do not conflict with each other (well, actually theengine packages do, because they all contain sample configuration files of thesame name, but these are in fact identical). If you have unzip.exe in your pathand you want to unpack all the packages, do the following:

C:\>cd Livelink\wcm\type1C:\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 sampleconfiguration file in sampleconf, respond [A] (always) or [N] (never) (it does notmatter).You can also try and use the -o switch in order to avoid these promptsand overwrite any existing files.

Set the SystemPath

Include C:\Livelink\wcm\type1\bin in your system 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 thenew environment.

Quick Start Setup (Windows Platform) Basic Installation

Page 26 Livelink WCM Server - System Integration Manual

Page 27: Livelink WCM 9.5 SystemIntegration_en

3.2.2 Prepare the Database: Microsoft SQL Server

Create newdatabases

Create an owner (SQL server login) and three new databases: wcmstarter,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, thenright-click Login and select New Login from the context menu. The SQLServer 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 theuser. SQL Server will present a dialog for password confirmation.

5. Right-click on Databases and select New Database… from the contextmenu. 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 contextmenu. 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 theStart menu or from the Tools menu in the Enterprise Manager. If the SQLServer Query Analyzer is launched from the Enterprise Manager, it willusually show the last selected database.

Use the SQL Server command sp_changedbowner to change the databaseowner.

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 thetoolbar, select Execute from the Query menu or press the [F5] key.

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

Basic Installation Quick Start Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 27

Page 28: Livelink WCM 9.5 SystemIntegration_en

Create the tablestructure

The script SiteDatabase-Create-R95-mssql.sql will be used to create thetable 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 forcreating the WCM Server table structure. It is found inC:\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 ODBCconnections tothe databases

1. Open the Data Sources (ODBC) control panel (for Windows or later it will befound under Administrative Tools).

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 namemust be specified in the configuration files. We recommend using the samename 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 databaseowner and password.

8. Click the Client Configuration... and select TCP/IP for the networkconnection 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 ODBCconnection. Click OK.

12. Now the new system data source name (DSN) for the ODBC connection willappear in the list.

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

Quick Start Setup (Windows Platform) Basic Installation

Page 28 Livelink WCM Server - System Integration Manual

Page 29: Livelink WCM 9.5 SystemIntegration_en

3.2.3 Load WCM Server Web Site Data

Transfer web sitedata to thedatabase usingSQLTransfer

Loading web site data to the database is performed with the SQLTransfer tool(after the WCM Server table structure has been created). The release set includesfiles for an example database (SiteExample.zip for database/user wcmdemo),the Site Manager (formerly known as Content Manager, in fileSiteManager.zip for database/user wcmsitemanager) and a starter database(SiteStarter.zip for database/user wcmstarter). These files are normal ZIParchives, 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 mayenter a file name with a .zip extension and SQLTransfer directly creates acompressed archive. Therefore, as a generalization, such ZIP files are referred toas “DAT files” as well.

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

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

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 stepwith 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 twoDAT files and their respective databases/users. Then close the SQLTransfertool.

11. You probably don’t want to save the transfer script and protocol, thereforesay No when asked whether you want to save changes.

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

Basic Installation Quick Start Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 29

Page 30: Livelink WCM 9.5 SystemIntegration_en

3.2.4 Configure the Web Server: Microsoft Internet Information Service 6.0

Verify file systempermissions

Start an Explorer window and display the properties ofC:\Livelink\wcm\type1\bin. Go to Security → Advanced → Effective

Rights and select IIS_WPG. Make sure that this group has read permissions inthis directory. Then do the same for the C:\Livelink\wcm\type1\cache andC:\Livelink\wcm\type1\logs directories. Here, IIS_WPG should have readand write rights.

Configure defaultapplication pool

Go to Start → Administrative Tools → Internet Information

Services Manager and select Application Pools. Display the properties ofDefaultAppPool and change them according to the following two screenshots:

Quick Start Setup (Windows Platform) Basic Installation

Page 30 Livelink WCM Server - System Integration Manual

Page 31: Livelink WCM 9.5 SystemIntegration_en

Grant executepermission forCMEngine in IIS

Go to Internet Information Services Manager → Web Service

Extensions → Add new web service extension.

Fill in the properties like this:

Create virtualdirectory

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

Basic Installation Quick Start Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 31

Page 32: Livelink WCM 9.5 SystemIntegration_en

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

Directory.

3. When the Virtual Directory Creation Wizard appears, click Next. It ismandatory that the virtual directory be named iisengine and point to thedirectory with the DLLs and related configuration files. Confirm with Next.

4. Click Browse... and select the directory with the DLLs and relatedconfiguration 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 virtualdirectory has been created. The WCM Server files can be seen in the rightwindow 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) islocated.

11. Click Apply to activate the filter. Then click OK to close the propertiesdialog.

Quick Start Setup (Windows Platform) Basic Installation

Page 32 Livelink WCM Server - System Integration Manual

Page 33: Livelink WCM 9.5 SystemIntegration_en

3.2.5 Customize the configuration file

Minimal set ofparameters thatneed to bechanged

Copy the cmengine-n.n.n.cfg sample fromC:\Livelink\wcm\type1\sampleconf to the web server directory(C:\Livelink\wcm\type1\bin) and rename it to cmengine.cfg. Then theplaceholder entries (between angle brackets, e.g. <hostname>) should bereplaced with appropriate values for the local setup. Comment lines start with a[#] character.

You should change (and eventually uncomment) at least the followingconfiguration 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 inC:\Livelink\wcm\type1\logs.

Basic Installation Quick Start Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 33

Page 34: Livelink WCM 9.5 SystemIntegration_en

3.3 Manual Setup (Windows Platform)

Installationprocedure

The installation is divided into these steps:

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 intoit. You can do this either manually, using the files on the distribution CD, or byunpacking the ready-to-install ZIP archives which you can download from theKnowledge Center.

Unpackready-to-installZIP archives

(If you don’t have the ZIP archives, go straight to the next step, “Copy filesmanually”). Create a directory C:\Livelink\wcm\type1 and extract thecontents of livelink-wcm-type1-base-9.5.0.nnn.zip into it. E.g. if youuse WinZIP, right-click the archive and select Extract to… from the contextmenu. Then select C:\Livelink\wcm\type1 as the path to extract to and makesure that Use folder names is checked. If you use the archiver wizard which isintegrated into the Windows XP Explorer, you will never reach the final screenwhen extracting an older version (pre 9.5.0) of the base package. This is becausethis archive contains only folders and no files. Nevertheless, after having clickedNext, 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 archiveshould unpack normally. After the base package, unpack the other zip files youneed. For a minimal installation, you need at least: client,datfiles+scripts, one of the engines packages, depending on the webserver you use, and plugins+tools. If you are unsure, or if you want to try outeverything, you can also unpack all the packages together; they do not conflictwith each other (well, actually the engine packages do, because they all containsample configuration files of the same name, but these are in fact identical). Ifyou have unzip.exe in your path and you want to unpack all the packages, dothe following:

Manual Setup (Windows Platform) Basic Installation

Page 34 Livelink WCM Server - System Integration Manual

Page 35: Livelink WCM 9.5 SystemIntegration_en

C:\>cd Livelink\wcm\type1C:\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 sampleconfiguration file in sampleconf, respond [A] (always) or [N] (never) (it does notmatter).You can also try and use the -o switch in order to avoid these promptsand overwrite any existing files.

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

Copy filesmanually

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

C:\Documents and Settings\Administrator>cd \C:\>md LivelinkC:\>cd LivelinkC:\Livelink>md wcmC:\Livelink>cd wcmC:\Livelink\wcm>md type1C:\Livelink\wcm>cd type1C:\Livelink\wcm\type1>md backup bin cache dat logs maps sampleconf scriptswordC:\Livelink\wcm\type1>md cache\session cache\cmengine cache\voC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\InformationServer\CMEngine.dll” bin\cmengine.dllC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\InformationServer\CMEngine-IIS.pdb” bin\CMEngine-IIS.pdbC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\Apache2.0\CMEngine.dll” bin\cmengine-ap2.dllC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\Apache2.0\CMEngine-ap2.pdb” bin\CMEngine-ap2.pdbC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\SunONE\CMEngine.dll” bin\cmengine-ns.dllC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\SunONE\CMEngine-ns.pdb” bin\CMEngine-ns.pdbC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\dbghelp.dll”bin\dbghelp.dllC:\Livelink\wcm\type1>copy D:\Windows\Tools\Deployment\Deployment.exebin\deployment.exeC:\Livelink\wcm\type1>copy D:\Windows\Tools\Deployment\Deployment.pdbbin\Deployment.pdbC:\Livelink\wcm\type1>copy “D:\Windows\Site Management\*.*” binC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\Livelink Enter prise\*.dll” binC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\LDAP\Ldap.exe”bin\ldap.exeC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Server\LDAP\Ldap.pdb”bin\Ldap.pdbC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\LDAP\LibrariesV5\*.dll” binC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\LDAP\ldapsslsc.dll” binC:\Livelink\wcm\type1>copy “D:\Solutions\Java Connectiv ity\LiveConnect\liveconnect.jar” binC:\Livelink\wcm\type1>copy D:\Windows\Tools\Replication\Replication.exe

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 35

Page 36: Livelink WCM 9.5 SystemIntegration_en

bin\replication.exeC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\SessionManagement\SessionManagement.exe” bin\sessionmanagement.exeC:\Livelink\wcm\type1>copy “D:\Windows\Presentation Serv er\SessionManagement\SessionManagement3.pdb” bin\SessionManagement3.pdbC:\Livelink\wcm\type1>copy “D:\Windows\Tools\SQLTransfer\*.*” binC:\Livelink\wcm\type1>copy“D:\Documentation\Manuals\SiteAdmin_Reference.chm binC:\Livelink\wcm\type1>copy D:\Windows\Tools\TaskAgent\TaskAgent.exebin\taskagent.exeC:\Livelink\wcm\type1>copy “D:\Databases\Examples\*.*” datC:\Livelink\wcm\type1>copy “D:\Databases\Site Manager\*.*” datC:\Livelink\wcm\type1>copy D:\Configuration\*.cfg sampleconfC:\Livelink\wcm\type1>copy D:\Databases\Scripts\*.* scriptsC:\Livelink\wcm\type1>copy D:\Configuration\UnicodeMaps\*.* mapsC:\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 SystemPath

Include C:\Livelink\wcm\type1\bin in your system 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 thenew environment.

3.3.2 Prepare the Database: Microsoft SQL Server

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

Important

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

Create newdatabases

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

1. Launch the Enterprise Manager: On the Start menu, point toPrograms, then point to Microsoft SQL Serverand click Enterprise

Manager.

Manual Setup (Windows Platform) Basic Installation

Page 36 Livelink WCM Server - System Integration Manual

Page 37: Livelink WCM 9.5 SystemIntegration_en

2. Choose your server and open the Security folder by double-clicking, thenright-click Login and select New Login… from the context menu. The SQLServer 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 theuser. SQL Server will present a dialog for password confirmation.

5. Right-click on Databases and select New Database… from the contextmenu. 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 contextmenu. 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 theStart menu or from the Tools menu in the Enterprise Manager. If theSQL 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 databaseowner.

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 thetoolbar, select Execute from the Query menu or press the [F5] key.

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

Create the tablestructure

The script SiteDatabase-Create-R95-mssql.sql will be used to create thetable 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 forcreating the WCM Server table structure. It is found inC:\Livelink\wcm\type1\scripts.

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 37

Page 38: Livelink WCM 9.5 SystemIntegration_en

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

5. Repeat this for the remaining databases.

6. Close the SQL Server Query Analyzer.

Create ODBCconnections tothe databases

1. Open the Data Sources (ODBC) control panel (for Windows 2000 or later itwill be found under Administrative Tools).

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 namemust be specified in the configuration files. We recommend using the samename 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 databaseowner and password.

8. Click the Client Configuration... and select TCP/IP for the networkconnection protocol. Click Next.

9. Activate Change the default database to and select yourdatabase. Click Next.

10. Use the default settings here. Click Finish.

11. The Test Data Source... button may be used to test the ODBCconnection. Click OK.

12. Now the new system data source name (DSN) for the ODBC connection willappear in the list.

Create ODBC DSNs for the other databases in the same way, then close theODBC 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 tocreate three different sites, and therefore we need three database users. Theseusers are: wcmdemo (for the example/demo site), wcmstarter (an almost emptysite for you to play with, starting from scratch), and wcmsitemanager (theWCM Server Site Manager aka Content Manager). In our example we supposethat there exists a tablespace USERS where we store our tables and indexes.

Manual Setup (Windows Platform) Basic Installation

Page 38 Livelink WCM Server - System Integration Manual

Page 39: Livelink WCM 9.5 SystemIntegration_en

Create new DBschemata

1. Open a new command window: On the Start menu, click Run.

2. Enter cmd and click OK.

3. Log into the Oracle SQL Server by typing sqlplus on the command promptand 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 findthe necessary statements below and on top of theSiteDatabase-Create-R95-oracle.sql script, which we will use tocreate the table structure.

This is shown in the following example:

C:\>sqlplus system/manager@mydbSQL*Plus: Release 9.2.0.5.0 - Production on Tue Sep 9 14:54:17 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.5.0 - ProductionJServer Release 9.2.0.5.0 - ProductionSQL>create user wcmstarter identified by secret default tablespaceusers temporarytablespace temp;User created.SQL>create user wcmdemo identified by secret default tablespace userstemporary tablespacetemp;User created.SQL>create user wcmsitemanager identified by secret default tablespaceusers temporary tablespacetemp;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 tablestructure

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

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

C:\>sqlplus wcmstarter/secret@mydb

and pressing the [Enter] key.

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 39

Page 40: Livelink WCM 9.5 SystemIntegration_en

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. Repeatthe above two steps for the remaining two users wcmdemo and wcmsitemanager.

3.3.4 Load WCM Server Web Site Data

Transfer web sitedata to thedatabase usingSQLTransfer

Loading web site data to the database is performed with the SQLTransfer tool(after the WCM Server table structure has been created). The release set includesfiles for an example database (SiteExample.zip for database/user wcmdemo),the Site Manager (formerly known as Content Manager, in fileSiteManager.zip for database/user wcmsitemanager) and a starter database(SiteStarter.zip for database/user wcmstarter). These files are normal ZIParchives, 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 mayenter a file name with a ZIP extension and SQLTransfer directly creates acompressed archive. Therefore, as a generalization, such ZIP files are referred toas “DAT files” as well.

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

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

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, ifyou 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 stepwith Finish.

8. The script has now been created. Run the script using the Start

SQLTransfer! command in the menu bar.

Manual Setup (Windows Platform) Basic Installation

Page 40 Livelink WCM Server - System Integration Manual

Page 41: Livelink WCM 9.5 SystemIntegration_en

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 twoDAT files and their respective databases/users. Then close the SQLTransfertool.

11. You probably don’t want to save the transfer script and protocol, thereforesay No when asked whether you want to save changes.

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

3.3.5 A word about web server processes

Intro The CMEngine cache has a per-process cache and a per-process databaseconnection pool. When the web server more than one process, it takes severalrequests 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 superfluousprocesses, then all their cache contents are lost. When, upon increasing load, theweb server starts creating new server processes, they are recreated with an emptycache. Such behaviour is very bad for performance. IIS and Sun Web Server bothonly use one process in their default configuration, and therefore you will notencounter this problem if you don’t change it. Apache, on the other hand, mustexplicitely be configured to use a constant number of processes. Please see therespective paragraph below for configuration details.

Reasons forusing more thanone process

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

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

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

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 41

Page 42: Livelink WCM 9.5 SystemIntegration_en

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 tothe directory with the DLLs and related configuration files. Confirm withNext.

5. Click Browse... and select the directory with the DLLs and relatedconfiguration 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 inthe right window frame.

9. Right-click the virtual directory iisengine and select Properties.

10. The default settings should appear as follows.

Manual Setup (Windows Platform) Basic Installation

Page 42 Livelink WCM Server - System Integration Manual

Page 43: Livelink WCM 9.5 SystemIntegration_en

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 islocated.

14. Load the filter required for your system (read the tip at the beginning of thissection). Click Apply to activate the filter. Then click OK to close theproperties dialog.

15. Reopen the properties dialog and select the ISAPI Filters tab. The DLLshould now be loaded and marked green as shown below. If the DLL is notloaded (red arrow pointing down), it could be that the associatedconfiguration file could not be found, perhaps due to an incorrect name.

16. The ISAPI filters should appear as follows.

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 43

Page 44: Livelink WCM 9.5 SystemIntegration_en

17. Edit the configuration files for the corresponding databases (see Modifyingthe CFG Files).

18. To activate changes in the configuration file, it is not enough to stop andrestart the web server using the Internet Service Manager, because theDLL’s will not be reloaded. Restart the World Wide Web Publishing

service. Restarting the service flushes the DLL’s from memory and reloadseverything anew, including the new configuration.

Tip

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

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

Manual Setup (Windows Platform) Basic Installation

Page 44 Livelink WCM Server - System Integration Manual

Page 45: Livelink WCM 9.5 SystemIntegration_en

Tip

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

Tip

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

Important

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

and must not be renamed!

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 arestrictive permission set by default. This means that you have to explicitly allowa user file system access, or an ISAPI filter to run inside the web serverapplication pools.

Verify file systempermissions

Start an Explorer window and display the properties ofC:\Livelink\wcm\type1\bin. Go to Security → Advanced → Effective

Rights and select IIS_WPG. Make sure that this group has read permissions inthis directory. Then do the same for the C:\Livelink\wcm\type1\cache andC:\Livelink\wcm\type1\logs directories. Here, IIS_WPG should have readand write rights. If you are using Oracle, give the IIS_WPG group read andexecute access to C:\Oracle, C:\Oracle\Ora92 and C:\Oracle\ora92\bin

(or whereever your ORACLE_BASE and ORACLE_HOME are located).

Configure defaultapplication pool

Go to Start → Administrative Tools → Internet Information

Services Manager and select Application Pools. Display the properties ofDefaultAppPool and change them according to the following two screenshots:

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 45

Page 46: Livelink WCM 9.5 SystemIntegration_en

Manual Setup (Windows Platform) Basic Installation

Page 46 Livelink WCM Server - System Integration Manual

Page 47: Livelink WCM 9.5 SystemIntegration_en

Grant executepermission forCMEngine in IIS

Go to Internet Information Services Manager → Web Service

Extensions → Add new web service extension.

Fill in the properties like this:

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 47

Page 48: Livelink WCM 9.5 SystemIntegration_en

Create virtualdirectory

1. Set up a new virtual directory named iisengine, which references thedirectory with the DLLs and related configuration files, using the InternetService 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 ismandatory that the virtual directory be named iisengine and point to thedirectory with the DLLs and related configuration files. Confirm with Next.

4. Click Browse... and select the directory with the DLLs and relatedconfiguration 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 virtualdirectory has been created. The WCM Server files can be seen in the rightwindow frame.

7. Right-click the virtual directory iisengine and select Properties.

Manual Setup (Windows Platform) Basic Installation

Page 48 Livelink WCM Server - System Integration Manual

Page 49: Livelink WCM 9.5 SystemIntegration_en

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) islocated.

11. Click Apply to activate the filter. Then click OK to close the propertiesdialog.

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 anddo a first hit on your WCM Server web site. Then reopen the properties dialogand select the ISAPI Filters tab. The DLL should now be loaded and markedgreen as shown below. If a DLL is not loaded (red arrow pointing down), it couldbe that the associated configuration file has an incorrect name and could not befound. (Please note that, in contrast to older versions of IIS, the green arrow isonly shown after the first hit to your web site!).

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 49

Page 50: Livelink WCM 9.5 SystemIntegration_en

Important

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

and must not be renamed!

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 anordinary 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 theCMEngine:

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

Manual Setup (Windows Platform) Basic Installation

Page 50 Livelink WCM Server - System Integration Manual

Page 51: Livelink WCM 9.5 SystemIntegration_en

Important

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

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

Important Please remove (or comment out) the following lines from your httpd.conf inorder 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 indexpage like /foo/index.html.en, and as this module can be called before theCMEngine handles the request, you will get a 404 error message, because a WCMdatabase 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 underC:\iPlanet\Servers\https-yourserver\config\magnus.conf.

Add the following lines to magnus.conf (Note that there must not be a linebreak 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 asmagnus.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"↵

Basic Installation Manual Setup (Windows Platform)

Livelink WCM Server - System Integration Manual Page 51

Page 52: Livelink WCM 9.5 SystemIntegration_en

Tip

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

3.4 Quick Start Setup (Solaris and Linux Platforms)

Installationprocedure

The installation is divided into these steps:

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 startwith the installation.

2. In this text, the character $ is representative for the prompt in any desiredshell (bash, ksh, and so on). This character doesn’t need to be entered. Theprompt # 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 systemmessages, which are set in plain monospaced font.

3. This chapter is meant to be a “Quick Start” chapter, which should provideyou with a standard installation in a minimal amount of time. If you arelooking for more detailed explanations, or if you would like to use a webserver 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 thecompat-libstdc++-33 package.

3.4.1 Create the Installation Directory (from packages)

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

Quick Start Setup (Solaris and Linux Platforms) Basic Installation

Page 52 Livelink WCM Server - System Integration Manual

Page 53: Livelink WCM 9.5 SystemIntegration_en

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

Create a runtimeuser and unpackarchives

In order to run the web server and the various daemons, create a 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 livelinkNew 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

:$oEDITOR=viWCM1_HOME=/opt/livelink/wcm/type1OBTREE_HOME=/opt/livelink/wcm/type1/confORACLE_HOME=/opt/oracle/product/10.1.0NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15JAVA_HOME=/usr/java/j2sdk# i386 or sparcarch=i386

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/binLD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/libLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_HOME}/jre/lib/${arch}LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_HOME}/jre/lib/${arch}/serverexport EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANGexport 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

Basic Installation Quick Start Setup (Solaris and Linux Platforms)

Livelink WCM Server - System Integration Manual Page 53

Page 54: Livelink WCM 9.5 SystemIntegration_en

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-type1K02livelink-wcm-type1)> done# (cd rc3.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1S98livelink-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 databaseschemata

For each new web site you have to create a new database user. We are going tocreate three different sites, and therefore we need three database users. Theseusers are: wcmdemo (for the obtree.com example), wcmstarter (an almostempty site for you to play with, starting from scratch), and wcmsitemanager

(the new WCM Server Site Manager, formerly known as Content Manager). Inour example we suppose that there exists a tablespace USERS where we store ourtables and indexes. You can find the statements to create a database user belowand on top of the SiteDatabase-Create-R95-oracle.sql script, which wewill 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 userstemporary tablespace temp;User created.SQL> create user wcmsitemanager identified by secret default tablespaceusers temporary tablespace temp;User created.

Quick Start Setup (Solaris and Linux Platforms) Basic Installation

Page 54 Livelink WCM Server - System Integration Manual

Page 55: Livelink WCM 9.5 SystemIntegration_en

SQL> grant connect, resource to wcmdemo, wcmstarter, wcmsitemanager;Grant succeeded.SQL> exit

Import web sitedata

In order to create the table and index structure and import the web site data in ourfreshly created schemas, a couple of scripts(/opt/livelink/wcm/type1/scripts/import-{sitemanager,siteexample,sitestarter}.sqx) are provided. You have to edit them andchange the default database login parameters on line 12 to the ones that apply toyour installation. If you have followed the above instructions exactly, you onlyhave 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 wehave 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 theyare, go on with the other two scripts.

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

Basic Installation Quick Start Setup (Solaris and Linux Platforms)

Livelink WCM Server - System Integration Manual Page 55

Page 56: Livelink WCM 9.5 SystemIntegration_en

Configure theCMEngine

The CMEngine’s configuration file(/opt/livelink/wcm/type1/conf/cmengine.cfg) contains informationabout the web sites it serves. There is one section for each web site and onesection which contains either parameters which apply to the CMEngine as awhole or parameters that serve as a default for the site sections. This section hasto be called [common] and is the first one in the file. The other sections can benamed 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=wcmsitemanagerCM_DBPWD=secret

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

SERVERURL=http://www.myserver.com [replace with your server name]#SECURESERVERURL=https://www.myserver.comURLMAGIC=/demoDBNAME= [add your database name]DBUSER=wcmdemoDBPWD=secret

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

URLMAGIC=/starterDBUSER=wcmstarter

3.4.3 Configure the Web Server: Apache HTTP Server 2.0

Set up andconfigureApache 2

You can either use a precompiled version of Apache, (e.g. fromhttp://www.sunfreeware.com/ for Solaris, or the one which is part of your Linuxdistribution) 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.

Quick Start Setup (Solaris and Linux Platforms) Basic Installation

Page 56 Livelink WCM Server - System Integration Manual

Page 57: Livelink WCM 9.5 SystemIntegration_en

Important

Using an Apache which has not been compiled with the “worker” MPM has amajor (negative) impact on performance and is neither recommended norsupported.

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

$ ./httpd -lCompiled in modules:

core.cmod_access.cmod_auth.cmod_include.cmod_log_config.cmod_env.cmod_setenvif.cworker.chttp_core.cmod_mime.cmod_status.cmod_autoindex.cmod_asis.cmod_cgid.cmod_negotiation.cmod_dir.cmod_imap.cmod_actions.cmod_userdir.cmod_alias.cmod_so.c

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

In order to compile Apache yourself, you need a compiler and a linker installedon your machine. Then get the source from http://httpd.apache.org/ or one of itsmirrors 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

Basic Installation Quick Start Setup (Solaris and Linux Platforms)

Livelink WCM Server - System Integration Manual Page 57

Page 58: Livelink WCM 9.5 SystemIntegration_en

MaxClients 64MinSpareThreads 1MaxSpareThreads 64ThreadsPerChild 64ServerLimit 1:267 [change these lines to make Apache run under our runtime user]User livelinkGroup 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 theinstallation

Start a browser and display the following URL:

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 theconfiguration:

• 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

Quick Start Setup (Solaris and Linux Platforms) Basic Installation

Page 58 Livelink WCM Server - System Integration Manual

Page 59: Livelink WCM 9.5 SystemIntegration_en

/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 wrongwith 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 andhttp://www.myserver.com/starter

and enjoy!

Basic Installation Quick Start Setup (Solaris and Linux Platforms)

Livelink WCM Server - System Integration Manual Page 59

Page 60: Livelink WCM 9.5 SystemIntegration_en

3.5 Manual Setup (Solaris Platform)

Installationprocedure

The installation is divided into these steps:

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 theinstallation.

2. In this text, the character $ is representative for the prompt in any desiredshell (bash, ksh, and so on). This character doesn’t need to be entered. Theprompt # 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 systemmessages, which are set in plain monospaced font.

Note The authorization of all files or directories that were created, copied or changedwith FTP have to be checked. If the web server’s file permissions for the WCMServer component (CMEngine) are not sufficient, the modules/files cannot beused. Unfortunately the web server does not always send an error message in thatcase, 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 andORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the versionnumber, we’ll assume 10.1.0 in the follwing examples) and don’t forget to installthe current patches as well. If you need more information on how to perform anOracle installation, see the appendix of this manual and the relevant Oracledocumentation.

Manual Setup (Solaris Platform) Basic Installation

Page 60 Livelink WCM Server - System Integration Manual

Page 61: Livelink WCM 9.5 SystemIntegration_en

Create a runtimeuser and unpackarchives

In order to run the web server and the various daemons, create a 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:$oEDITOR=viWCM1_HOME=/opt/livelink/wcm/type1OBTREE_HOME=/opt/livelink/wcm/type1/confORACLE_HOME=/opt/oracle/product/10.1.0NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15JAVA_HOME=/usr/java# i386 or sparcarch=sparc

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/binLD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JAVA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/serverexport EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANGexport 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-type1K02livelink-wcm-type1)> done# (cd rc3.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1S98livelink-wcm-type1)

Basic Installation Manual Setup (Solaris Platform)

Livelink WCM Server - System Integration Manual Page 61

Page 62: Livelink WCM 9.5 SystemIntegration_en

3.5.2 Create the Installation Directory (manually)

Install Oracle Install Oracle with ORACLE_BASE=/opt/oracle andORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the versionnumber, we’ll assume 10.1.0 in the follwing examples) and don’t forget to installthe current patches as well. If you need more information on how to perform anOracle installation, see the appendix of this manual and the relevant Oracledocumentation.

Create Livelinkuser and group

In order to run the web server and the various daemons, create a 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:$oEDITOR=viWCM1_HOME=/opt/livelink/wcm/type1OBTREE_HOME=/opt/livelink/wcm/type1/confORACLE_HOME=/opt/oracle/product/10.1.0NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15JAVA_HOME=/usr/java# i386 or sparcarch=sparc

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/binLD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JAVA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/serverexport EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANGexport 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

Manual Setup (Solaris Platform) Basic Installation

Page 62 Livelink WCM Server - System Integration Manual

Page 63: Livelink WCM 9.5 SystemIntegration_en

# 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 userroot (you don’t have to copy all of the files mentioned here, just the ones youneed; if you are unsure, copy them all). In our example, the CD is mounted on/cdrom/cdrom0:

cd /opt/livelink/wcm/type1cp /cdrom/cdrom0/Solaris/Presentation\ Server/LDAP/ldapplugin bin/ldapplugin-9.5.0.nnncp /cdrom/cdrom0/Solaris/Tools/Replication/replication bin/replica tion-9.5.0.nnncp /cdrom/cdrom0/Solaris/Presentation\ Server/SessionManage ment/sessionmanagement bin/sessionmanagement-9.5.0.nnncp /cdrom/cdrom0/Solaris/Tools/SQLTransfer/sqltransfer bin/sql transfer-9.5.0.nnncp /cdrom/cdrom0/Solaris/Tools/Deployment/deployment bin/deploy ment-9.5.0.nnncp /cdrom/cdrom0/Solaris/Tools/TaskAgent/taskagent bin/taskagent-9.5.0.nnnfor file in /cdrom/cdrom0/Configuration/*.cfgdo

dos2unix $file sampleconf/`basename $file .cfg`-9.5.0.nnn.cfgdonemv sampleconf/ldap-9.5.0.nnn.cfg sampleconf/ldapplugin-9.5.0.nnn.cfgdos2unix /cdrom/cdrom0/Databases/Examples/_engine-demosite.cfg sampleconf/_engine-demosite-9.5.0.nnn.cfgfor file in `find /cdrom/cdrom0/Databases -name '*.zip'`do

cp $file dat/`basename $file .zip`-9.5.0.nnn.zipdonecp /cdrom/cdrom0/Solaris/Presentation\ Server/Apache\ 2.0/cmengine.so lib/cmengine-ap2-9.5.0.nnn.socp /cdrom/cdrom0/Solaris/Presentation\ Server/SunONE/cmengine.so lib/cmengine-ns-9.5.0.nnn.socp /cdrom/cdrom0/Solutions/Java\ Connectivity/LiveConnect/liveconnect.jarlib/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.sqldo

dos2unix $file scripts/`basename $file`donecp /cdrom/cdrom0/Configuration/UnicodeMaps/* maps/chmod +x bin/*chmod -x dat/*chmod -x lib/*chmod +x lib/*.sochmod -x maps/*

Create links

Basic Installation Manual Setup (Solaris Platform)

Livelink WCM Server - System Integration Manual Page 63

Page 64: Livelink WCM 9.5 SystemIntegration_en

cd /opt/livelink/wcm/type1/binfor file in ldapplugin replication sessionmanagement sqltransfer deploymenttaskagentdo

ln -s $file-9.5.0.nnn $filedonecd ../libln -s cmengine-ap2-9.5.0.nnn.so cmengine-ap2.soln -s cmengine-ns-9.5.0.nnn.so cmengine-ns.soln –s liblapi.so.1.0 liblapi.socd ../datln –s sitemanager-9.5.0.nnn.zip sitemanager.zipln –s sitestarter-9.5.0.nnn.zip sitestarter.zipln –s demosite-9.5.0.nnn.zip demosite.zipcd ../scriptsln –s SiteDatabase-Create-R95-oracle.sql sitedb95.sqlln –s SiteReplControlDB-Create-R95-oracle.sql siterepl95.sql

Create a startupscript

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

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

. /opt/livelink/.profilePATH=/usr/bin:/bin; export PATHWCM1_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" ]; thenusageexit 1

fi

Manual Setup (Solaris Platform) Basic Installation

Page 64 Livelink WCM Server - System Integration Manual

Page 65: Livelink WCM 9.5 SystemIntegration_en

case "$1" instart)

cd ${WCM1_HOME}/logsulimit –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>&1echo "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 cmengineecho "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-type1K02livelink-wcm-type1)> done# (cd rc3.d && ln –s /opt/livelink/wcm/type1/bin/livelink-wcm-type1S98livelink-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 tocreate three different sites, and therefore we need three database users. Theseusers are: wcmdemo (for the obtree.com example), wcmstarter (an almost emptysite for you to play with, starting from scratch), and wcmsitemanager (theWCM Server Site Manager, aka Content Manager). In our example we suppose

Basic Installation Manual Setup (Solaris Platform)

Livelink WCM Server - System Integration Manual Page 65

Page 66: Livelink WCM 9.5 SystemIntegration_en

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

Create newschemata/users

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 userstemporary tablespace temp;User created.SQL> create user wcmsitemanager identified by secret default tablespaceusers temporary tablespace temp;User created.SQL> grant connect, resource to wcmdemo, wcmstarter, wcmsitemanager;Grant succeeded.SQL> exit

Create the tablestructure

The table structure is created with the help of the script/opt/livelink/wcm/type1/scripts/SiteDatabase-Create-R95-oracle.sql

(sitedb95.sql), which can also be found on the release CD (in the directoryDatabases/Scripts). The script uses two different tablespaces (USERS andINDX) whose names may have to be modified, depending on your setup (e.g. in adefault database created with Oracle 10g, there is no tablespace INDX anymore) .Do not replace the string USERS if your tablespace is named differently, butTABLESPACE USERS because there is also a table named USERS. With sed, thetablespace 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

Manual Setup (Solaris Platform) Basic Installation

Page 66 Livelink WCM Server - System Integration Manual

Page 67: Livelink WCM 9.5 SystemIntegration_en

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 sitedata usingSQLTransfer

With the SQLTransfer script below, you can load a DAT file into a databaseschema:

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

#!/opt/livelink/wcm/type1/bin/sqltransferbegin transferload from file=/opt/livelink/wcm/type1/dat/siteexample-9.5.0.nnn.zipusedbversion=Oracle 10.1.0usedblibrary=/opt/oracle/product/10.1.0/lib/libclntsh.soenv=ORACLE_HOME=/opt/oracle/product/10.1.0target database type=ORACLEtarget database connect=DSN=mydb.mydomain.com;UID=wcmdemo;PWD=secretusedbrowprefetch=100set max field size=20000000end 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 withExtras and ScriptWizard. The transfer is then started with Start

SQL-Transfer!.

The transfer of the sample database is now executed. Please check after thetermination of the script that the number of transferred rows corresponds with thenumber 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), andsitemanager-9.5.0.nnn.zip (wcmsitemanager).

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

Basic Installation Manual Setup (Solaris Platform)

Livelink WCM Server - System Integration Manual Page 67

Page 68: Livelink WCM 9.5 SystemIntegration_en

Tip

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

3.5.4 A word about web server processes

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

Reasons forusing more thanone process

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

If you decide to run more than one process, please make sure that the number ofprocesses remains the same, no matter if the load is high or not, for the reasonsoutlined 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 procListprocList=(`psrinfo|awk '{print $1}'`)

i=0for pid in $pidsdo

proc=$(($i % $noProcs))pbind -b ${procList[$proc]} $pid((++i))

done

Manual Setup (Solaris Platform) Basic Installation

Page 68 Livelink WCM Server - System Integration Manual

Page 69: Livelink WCM 9.5 SystemIntegration_en

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

If you have a machine with only two processors, or if you have more but yourweb site does not have many requests to serve concurrently, then you shouldprobably 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. fromhttp://www.sunfreeware.com/ for Solaris or compile one yourself. If you chooseto use a precompiled Apache, it is very important that you make sure it has beencompiled with the “worker” MPM.

Important

Using an Apache which has not been compiled with the “worker” MPM has amajor (negative) impact on performance and is neither recommended norsupported.

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

$ ./httpd -lCompiled in modules:

core.cmod_access.cmod_auth.cmod_include.cmod_log_config.cmod_env.cmod_setenvif.cworker.chttp_core.cmod_mime.cmod_status.cmod_autoindex.cmod_asis.cmod_cgid.cmod_negotiation.cmod_dir.cmod_imap.cmod_actions.cmod_userdir.cmod_alias.cmod_so.c

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

Basic Installation Manual Setup (Solaris Platform)

Livelink WCM Server - System Integration Manual Page 69

Page 70: Livelink WCM 9.5 SystemIntegration_en

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

In order to compile Apache yourself, you need a compiler and a linker installedon your machine. Then get the source from http://httpd.apache.org/ or one of itsmirrors 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 beappended to the file httpd.conf:

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

Also, set the following parameters:

User livelinkGroup livelinkServerName 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 1StartServers 1MaxClients 64MinSpareThreads 1MaxSpareThreads 64ThreadsPerChild 64MaxRequestsPerChild 0</IfModule>

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

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

Manual Setup (Solaris Platform) Basic Installation

Page 70 Livelink WCM Server - System Integration Manual

Page 71: Livelink WCM 9.5 SystemIntegration_en

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 64MaxRequestsPerChild 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 indexpage like /foo/index.html.en, and as this module can be called before theCMEngine handles the request, you will get a 404 error message, because a WCMServer 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 (andiPlanet in /usr/iplanet/servers). There exists a directory for each webserver instance below that, in our case https-livelink. In this directory, youwill find among others the directories config (configuration files) and logs (logfiles).

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

Basic Installation Manual Setup (Solaris Platform)

Livelink WCM Server - System Integration Manual Page 71

Page 72: Livelink WCM 9.5 SystemIntegration_en

…<end of the initialization entries>

Init fn=load-modules shlib=/opt/livelink/wcm/type1/lib/cmengine-ns.sofuncs=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/cmenginefn=CMEngine_Service↵…</Object>…

Edit start script You have to modify the instance's/opt/SUNWwbsvr/https-myinstance/start script to ensure that allnecessary 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)

Installationprocedure

The installation is divided into these steps:

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)

Manual Setup (Linux Platform) Basic Installation

Page 72 Livelink WCM Server - System Integration Manual

Page 73: Livelink WCM 9.5 SystemIntegration_en

Important 1. We advise you to read through this document before you start with theinstallation.

2. In this text, the character $ is representative for the prompt in any desiredshell (bash, ksh, and so on). This character doesn’t need to be entered. Theprompt # 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 systemmessages, which are set in plain monospaced font.

3. When installing under Red Hat Enterprise Linux 4, you have to install thecompat-libstdc++-33 package.

Note The authorization of all files or directories that were created, copied or changedwith FTP have to be checked. If the web server’s file permissions for the WCMServer component (CMEngine) are not sufficient, the modules/files cannot beused. Unfortunately the web server does not always send an error message in thatcase, 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 andORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the versionnumber, we’ll assume 10.1.0 in the follwing examples) and don’t forget to installthe current patches as well. If you need more information on how to perform anOracle installation, see the appendix of this manual and the relevant Oracledocumentation.

Create a runtimeuser and unpackarchives

In order to run the web server and the various daemons, create a 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

Basic Installation Manual Setup (Linux Platform)

Livelink WCM Server - System Integration Manual Page 73

Page 74: Livelink WCM 9.5 SystemIntegration_en

# chmod 755 .profile# vi .profile:$oEDITOR=viWCM1_HOME=/opt/livelink/wcm/type1OBTREE_HOME=/opt/livelink/wcm/type1/confORACLE_HOME=/opt/oracle/product/10.1.0NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15JAVA_HOME=/usr/java/j2sdk# i386 or sparcarch=i386

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/binLD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JAVA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/serverexport EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANGexport 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 andORACLE_HOME=/opt/oracle/product/n.n.n (where n.n.n is the versionnumber, we’ll assume 10.1.0 in the follwing examples) and don’t forget to installthe current patches as well. If you need more information on how to perform anOracle installation, see the appendix of this manual and the relevant Oracledocumentation.

Create Livelinkuser and group

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

Manual Setup (Linux Platform) Basic Installation

Page 74 Livelink WCM Server - System Integration Manual

Page 75: Livelink WCM 9.5 SystemIntegration_en

# 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:$oEDITOR=viWCM1_HOME=/opt/livelink/wcm/type1OBTREE_HOME=/opt/livelink/wcm/type1/confORACLE_HOME=/opt/oracle/product/10.1.0NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15JAVA_HOME=/usr/java/j2sdk# i386 or sparcarch=i386

PATH=${PATH}:${ORACLE_HOME}/bin:${WCM1_HOME}/binLD_LIBRARY_PATH=${WCM1_HOME}/lib:${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib:${JAVA_HOME}/jre/lib/${arch}:${JAVA_HOME}/jre/lib/${arch}/serverexport EDITOR WCM1_HOME OBTREE_HOME ORACLE_HOME NLS_LANGexport 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 userroot (you don’t have to copy all of the files mentioned here, just the ones youneed; 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/type1cp /mnt/cdrom/Linux/Presentation\ Server/LDAP/ldapplugin bin/ldap plugin-9.5.0.nnncp /mnt/cdrom/Linux/Tools/Replication/replication bin/replication-9.5.0.nnncp /mnt/cdrom/Linux/Presentation\ Server/SessionManage ment/sessionmanagement bin/sessionmanagement-9.5.0.nnncp /mnt/cdrom/Linux/Tools/SQLTransfer/sqltransfer bin/sqltransfer-9.5.0.nnn

Basic Installation Manual Setup (Linux Platform)

Livelink WCM Server - System Integration Manual Page 75

Page 76: Livelink WCM 9.5 SystemIntegration_en

cp /mnt/cdrom/Linux/Tools/Deployment/deployment bin/deployment-9.5.0.nnncp /mnt/cdrom/Linux/Tools/TaskAgent/taskagent bin/taskagent-9.5.0.nnnfor file in /mnt/cdrom/Configuration/*.cfgdo

sed -e 's/^M//' $file > sampleconf/`basename $file.cfg`-9.5.0.nnn.cfgdonemv sampleconf/ldap-9.5.0.nnn.cfg sampleconf/ldapplugin-9.5.0.nnn.cfgsed -e 's/^M//' /mnt/cdrom/Databases/Examples/_engine-demosite.cfg >sampleconf/_engine-demosite-9.5.0.nnn.cfgfor file in `find /mnt/cdrom/Databases -name '*.zip'`do

cp $file dat/`basename $file .zip`-9.5.0.nnn.zipdonecp /mnt/cdrom/Linux/Presentation\ Server/Apache\ 2.0/cmengine.so lib/cmengine-ap2-9.5.0.nnn.socp /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.sqldo

sed -e 's/^M//' $file > scripts/`basename $file`donechmod +x bin/*chmod -x dat/*chmod -x lib/*chmod +x lib/*.sochmod -x maps/*

Create linkscd /opt/livelink/wcm/type1/binfor file in ldapplugin replication sessionmanagement sqltransfer deploymenttaskagentdo

ln -s $file-9.5.0.nnn $filedonecd ../libln -s cmengine-ap2-9.5.0.nnn.so cmengine-ap2.socd ../datln –s sitemanager-9.5.0.nnn.zip sitemanager.zipln –s sitestarter-9.5.0.nnn.zip sitestarter.zipln –s demosite-9.5.0.nnn.zip demosite.zipcd ../scriptsln –s SiteDatabase-Create-R95-oracle.sql sitedb95.sqlln –s SiteReplControlDB-Create-R95-oracle.sql siterepl95.sql

Create a startupscript

In order to have the standalone WCM Server components started on system boot,create the startup script as follows (the relevant parts are commented out, so thescript does nothing at this time; the comments will eventually be removed later asneeded, 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/.profilePATH=/usr/bin:/bin; export PATH

Manual Setup (Linux Platform) Basic Installation

Page 76 Livelink WCM Server - System Integration Manual

Page 77: Livelink WCM 9.5 SystemIntegration_en

WCM1_USER=livelink

####################################### usage######################################usage(){

echo "Usage: $0 [start|stop]"echo

}

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

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

fi

case “$1” instart)

cd ${WCM1_HOME}/logsulimit –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>&1echo “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 cmengineecho “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

Basic Installation Manual Setup (Linux Platform)

Livelink WCM Server - System Integration Manual Page 77

Page 78: Livelink WCM 9.5 SystemIntegration_en

# (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 tocreate three different sites, and therefore we need three database users. Theseusers are: wcmdemo (for the obtree.com example), wcmstarter (an almost emptysite for you to play with, starting from scratch), and wcmsitemanager (theWCM Server Site Manager, aka Content Manager). In our example we supposethat there exists a tablespace USERS where we store our tables and indexes. Youcan find the statements to create a database user below and on top of theSiteDatabase-Create-R95-oracle.sql script, which we will use to createthe table structure.

Create newschemata/users

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 userstemporary tablespace temp;User created.SQL> create user wcmsitemanager identified by secret default tablespaceusers temporary tablespace temp;User created.SQL> grant connect, resource to wcmdemo, wcmstarter, wcmsitemanager;Grant succeeded.SQL> exit

Create a tablestructure

The table structure is created with the help of the script/opt/livelink/wcm/type1/scripts/SiteDatabase-Create-R95-oracle.sql

(sitedb95.sql), which can also be found on the release CD (in the directoryDatabases/Scripts). The script uses two different tablespaces (USERS and

Manual Setup (Linux Platform) Basic Installation

Page 78 Livelink WCM Server - System Integration Manual

Page 79: Livelink WCM 9.5 SystemIntegration_en

INDX) whose names may have to be modified, depending on your setup (e.g. in adefault database created with Oracle 10g, there is no tablespace INDX anymore) .Do not replace the string USERS if your tablespace is named differently, butTABLESPACE USERS because there is also a table named USERS. With sed, thetablespace 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 sitedata usingSQLTransfer

With the SQLTransfer script below, you can load a DAT file into the databaseschema:

# vi /opt/livelink/wcm/type1/scripts/import-siteexample.sqx#!/opt/livelink/wcm/type1/bin/sqltransferbegin transferload from file=/opt/livelink/wcm/type1/dat/siteexample-9.5.0.nnn.zipusedbversion=Oracle 10.1.0usedblibrary=/opt/oracle/product/10.1.0/lib/libclntsh.soenv=ORACLE_HOME=/opt/oracle/product/10.1.0target database type=ORACLEtarget database connect=DSN=mydb.mydomain.com;UID=wcmdemo;PWD=livelinkusedbrowprefetch=100set max field size=20000000end 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 withExtras and ScriptWizard. The transfer is then started with Start

SQL-Transfer!.

Basic Installation Manual Setup (Linux Platform)

Livelink WCM Server - System Integration Manual Page 79

Page 80: Livelink WCM 9.5 SystemIntegration_en

The transfer of the sample database is now executed. Please check after thetermination of the script that the number of transferred rows corresponds with thenumber 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 ofsiteexample-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.

Tip

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

3.6.4 A word about web server processes

Intro The CMEngine cache has a per-process cache and a per-process databaseconnection pool. When the web server more than one process, it takes severalrequests 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 superfluousprocesses, then all their cache contents are lost. When, upon increasing load, theweb server starts creating new server processes, they are recreated with an emptycache. Such behaviour is very bad for performance. IIS and Sun Web Server bothonly use one process in their default configuration, and therefore you will notencounter this problem if you don’t change it. Apache, on the other hand, mustexplicitely be configured to use a constant number of processes. Please see therespective paragraph below for configuration details.

Reasons forusing more thanone process

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

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

Manual Setup (Linux Platform) Basic Installation

Page 80 Livelink WCM Server - System Integration Manual

Page 81: Livelink WCM 9.5 SystemIntegration_en

If you have a machine with only two processors, or if you have more but yourweb site does not have many requests to serve concurrently, then you shouldprobably 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 comeswith your Linux distribution) or compile one yourself. If you choose to use aprecompiled Apache, it is very important that you make sure it has been compiledwith the “worker” MPM.

Important

Using an Apache which has not been compiled with the “worker” MPM has amajor (negative) impact on performance and is neither recommended norsupported.

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

$ ./httpd -lCompiled in modules:

core.cmod_access.cmod_auth.cmod_include.cmod_log_config.cmod_env.cmod_setenvif.cworker.chttp_core.cmod_mime.cmod_status.cmod_autoindex.cmod_asis.cmod_cgid.cmod_negotiation.cmod_dir.cmod_imap.cmod_actions.cmod_userdir.cmod_alias.cmod_so.c

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

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

Basic Installation Manual Setup (Linux Platform)

Livelink WCM Server - System Integration Manual Page 81

Page 82: Livelink WCM 9.5 SystemIntegration_en

$ tar zxvf /tmp/httpd-2.0.xx.tar.gz[...]$ cd httpd-2.0.xx$ ./configure --with-mpm=worker --prefix=/opt/apache2[...]$ make[...]$ suPassword:# 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 tothe file httpd.conf:

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

Also, set the following parameters:

User livelinkGroup livelinkServerName 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 1StartServers 1MaxClients 64MinSpareThreads 1MaxSpareThreads 64ThreadsPerChild 64MaxRequestsPerChild 0</IfModule>

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

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

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

Manual Setup (Linux Platform) Basic Installation

Page 82 Livelink WCM Server - System Integration Manual

Page 83: Livelink WCM 9.5 SystemIntegration_en

MaxSpareThreads [ number of processors * 64 ]ThreadsPerChild 64MaxRequestsPerChild 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 indexpage like /foo/index.html.en, and as this module can be called before theCMEngine handles the request, there will be a 404 error message, because aWCM 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 ofparameters thatneed to bechanged

A detailed description of the configuration parameters is found in the help files orthe extracted HTML documentation on the release CD.

There are several configuration file templates on the release CD, e.g. for liveserver, 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. UnderUnix, the cfg files are located under /opt/livelink/wcm/type1/conf.

Then the placeholder entries (between angle brackets, e.g. <hostname>) shouldbe 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.

Basic Installation Customizing the WCM Server Configuration Files

Livelink WCM Server - System Integration Manual Page 83

Page 84: Livelink WCM 9.5 SystemIntegration_en

You should change (and eventually uncomment) at least the followingconfiguration 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 bewhatever you like, but it must be unique throughout the config file. The firstsection [common] is mandatory under this name and must not be renamed).

• If you use Oracle: USEDBVERSION (which refers to the version of the Oracleclient library, for the (rare) cases where it is different from the Oracle serverversion)

• If you use Oracle under Solaris/Linux: USEDBORACLELIBRARY,ENV=ORACLE_HOME= …

Adding anothersite

If you would like to configure another site, just add another section to the bottomof the cmengine.cfg file. The easiest way to do this is to copy the last sitesection (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 filesin the “General Information” section, and remember that the order of thesections is important)

3. Create a new database (schema) for the site as explained in the “Prepare theDatabase” chapters and configure its connection parameters using DBTYPE

(MSSQL or Oracle), DBNAME (ODBC name of the database if you useMSSQL, Net8 name if you use Oracle), DBUSER and DBPWD

4. Restart the web server to activate the configuration changes.

3.8 Testing your installation

Testing your installation Basic Installation

Page 84 Livelink WCM Server - System Integration Manual

Page 85: Livelink WCM 9.5 SystemIntegration_en

Test theinstallation

Start a browser and display the following URL:

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 theconfiguration:

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

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 CorporationDatabase Connection OK

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

Basic Installation Testing your installation

Livelink WCM Server - System Integration Manual Page 85

Page 86: Livelink WCM 9.5 SystemIntegration_en

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 readaccess 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 setcorrectly?

If everything is ok, you can browse to

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

and enjoy!

3.9 Updating your Installation

GeneralProcedure

In order to update an existing installation, follow these steps:

1. Read the Release Notes. They contain any particularities for the specificrelease 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.

Updating your Installation Basic Installation

Page 86 Livelink WCM Server - System Integration Manual

Page 87: Livelink WCM 9.5 SystemIntegration_en

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

Copy the newfiles to yourinstallationdirectory

If you use the installation packages, do the following:

• Unpack the required packages into your installation directory (e.g.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. Ifyou 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 releaseand build number into the destination file name, e.g. copy cmengine.so tocmengine-ap2-9.5.0.1386.so

2. If you are running a Solaris or Linux server, create a link from the versionedfile name to the unversioned file name, e.g. ln –s

cmengine-ap2-9.5.0.1386.so cmengine-ap2.so

Reviewconfiguration files

Have a look at the new sample configuration files for any changes with respect totheir older version and decide whether you want to incorporate them in yourconfiguration (usually you want to do so, except for those parameters, that youhave 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 alsodiff3 versions for Windows around, just google for “diff3 windows”). Thediff3 utility compares three files (called “mine”, “older” and “yours”) andproduces a new one out of them. “Mine” is your current version of theconfiguration file. “Older” is the sample configuration file from the release setthat your config file is based upon. “Yours” is the sample configuration file fromthe new release set. The file that is produced by diff3 incorporates all changes inyour current configuration file as well as those from the config file of the newrelease, as long as they do not conflict. If there is a conflict, both changes areincorporated in the new config file with line markers before and after them, likethis:

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

Basic Installation Updating your Installation

Livelink WCM Server - System Integration Manual Page 87

Page 88: Livelink WCM 9.5 SystemIntegration_en

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

(see also the diff3 man page for a probably better explanation). Now you canedit this file and decide which of the parameters you want to keep, deleting theunwanted value and the line markers. Here is an example under Linux forcmengine.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 dothe 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

Updating your Installation Basic Installation

Page 88 Livelink WCM Server - System Integration Manual

Page 89: Livelink WCM 9.5 SystemIntegration_en

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 theWebDAV service use SOAP to communicate with the CMEngine.

SOAPENABLED=yesSOAPMODULE=ObjectManager,ObjectManager,yes,no,noSOAPMODULE=ViewtreeManager,ViewtreeManager,yes,no,noSOAPMODULE=UserManager,UserManager,yes,no,noSOAPMODULE=SearchManager,SearchManager,yes,no,noSOAPMODULE=ConfigManager,ConfigManager,yes,no,noSOAPMODULE=RepositoryManager,RepositoryManager,yes,no,noSOAPMODULE=GUIManager,GUIManager,yes,no,noSOAPMODULE=WorkflowManager,WorkflowManager,yes,no,noSOAPMODULE=WebScripts,*,yes,no,noSOAPMODULE=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 URLby which the module can be accessed, the third one indicates whetherauthentication is necessary to access the module, the fourth one is reserved forfuture use, and the last one indicates whether any accesses should be logged.Logging is quite verbose and should be enabled only for debugging purposes. Thelog 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 inmemory and are therefore accessible only on the machine where they weregenerated. Use the session plug-in in these situations. The session plug-in is astand-alone process that acts as a centralized storage for temporary session data.

Additional Components SOAP

Livelink WCM Server - System Integration Manual Page 89

Page 90: Livelink WCM 9.5 SystemIntegration_en

4.2.1 Setup under Windows

Procedure 1. Copy SessionManagement.exe and SessionManagement.cfg to theweb 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 Managementwill also be listed as a service. If it is not set to Automatic, change this in theproperties for the service. This will cause the service to start automaticallywhen the computer is restarted.

4. The following entries must be altered in the corresponding cmengine.cfg

file:

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

[SessionManagement]TransportType=TCPServerPort=20124ServerName=127.0.0.1RxTimeout=0

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

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

SessionManagement.cfgexample file

#==========================================================#[COMMON]

PluginLog=C:\Livelink\wcm\type1\logs\SessionManagement_pl.logSupervisionLog=C:\Livelink\wcm\type1\logs\SessionManagement_su.logUserLog=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=TCPServerTcpPort=20124RxTimeout=0

Session Management Additional Components

Page 90 Livelink WCM Server - System Integration Manual

Page 91: Livelink WCM 9.5 SystemIntegration_en

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

Enable persistentsession

By default the session plug-in holds its data in the system memory. The drawbackof 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 theSessionManagement.cfg:

BUCKETSTORAGE=FILEBUCKETSTORAGEFOLDER=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. Aftera restart of the service the plug-in can recover the session data, and the visitors onthe web servers will not be affected.

Please refer to the Site Administrator Reference Manual(SiteAdmin_Reference.chm) for a detailed description of additionalconfiguration options for the session management

4.2.2 Setup under Solaris and Linux

Pluginconfiguration

The configuration file of the session plug-in is located in/opt/livelink/wcm/type1/conf/sessionmanagement.cfg. If you did apackage-based installation, you should be able to use it right away without anychanges, but you might want to have a look at it anyway, e.g. for changing theport number the plug-in should listen on (ServerTcpPort). If you did a manualinstallation, adapt the config file as in the following example:

SessionManagement.cfgexample file

#==========================================================#[COMMON]PluginLog=/opt/livelink/wcm/type1/logs/SessionManagement_pl.logSupervisionLog=/opt/livelink/wcm/type1/logs/SessionManagement_su.logUserLog=/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]

Additional Components Session Management

Livelink WCM Server - System Integration Manual Page 91

Page 92: Livelink WCM 9.5 SystemIntegration_en

TransportType=TCPServerTcpPort=20124RxTimeout=0

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

Tell theCMEngine to usethe sessionplugin.

The following entries must be altered in the corresponding cmengine.cfg file:

#======================================================#[common]BUCKETSTORAGE=PLUGIN

[SessionManagement]TransportType=TCPServerPort=20124ServerName=127.0.0.1RxTimeout=0

Starting andstopping theplug-in, automaticstartup at boottime

You can start the plug-in manually as user livelink with:

$ /opt/livelink/wcm/type1/bin/sessionmanagement–CfgFile:/opt/livelink/wcm/type1/conf/sessionmanagement.cfg –Service–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 thecomment in front of the two lines containing sessionmanagement. (One line isthe one that starts the plugin, and the other one the one that stops it).

Enable persistentsession storage

Per default the session plug-in holds its data in the system memory. The drawbackof 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 thesessionmanagement.cfg:

BUCKETSTORAGE=FILESESSIONFOLDER=/opt/livelink/wcm/type1/cache/session

Restart the session plug-in.

Session Management Additional Components

Page 92 Livelink WCM Server - System Integration Manual

Page 93: Livelink WCM 9.5 SystemIntegration_en

The session plug-in will now store all session data into the local file system. Aftera restart of the service, the plug-in can recover the session data, and the visitors onthe 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 havethe CMEngine fall back to it if the first instance should fail to respond for somereason. In order to achieve this, the cmengine.cfg must list the server namesand 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.comServerPort=20124,20124

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

Persistentsession data

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

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

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

4.3 WCM Server Replication

Additional Components WCM Server Replication

Livelink WCM Server - System Integration Manual Page 93

Page 94: Livelink WCM 9.5 SystemIntegration_en

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

• A database on the staging server containing administrative data such asreplication profiles and jobs, and

• two databases on the live server which contain the data from the web site.

Tip

Replication can only be set up for an operational database.

Procedure 1. Create a database on the staging server using the Enterprise Manager.Open Text recommend the following name: wcm_replication. Load theSQL script SiteReplControlDB-Create-R95-mssql.sql for setting upthe WCM Server table structure. It is found in the<CDROM>:\Databases\Scripts subdirectory.

2. Create two new databases on the production server using the EnterpriseManager. Open Text recommend the following names: Live_A and Live_B.Load the SQL script SiteDatabase-Create-R95-mssql.sql for settingup 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 threedatabases.

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 databasetype. DSN: Enter the name of the connection (for example the ODBCconnection for MS SQL or Net-8 connection for Oracle). User: Enter thedatabase 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 uniquename for the source database DB type: Select the database type. DSN: Enterthe ODBC DSN or the Oracle Net-8 connection User: Enter the databaseuser. Password: Enter the password of the database user. Log path: Enterthe path to which the log file is to be written.

10. Create a replication definition under Destinations. To do this, click the iconjust 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

WCM Server Replication Additional Components

Page 94 Livelink WCM Server - System Integration Manual

Page 95: Livelink WCM 9.5 SystemIntegration_en

connect A (production database A) db type: Select the databasetype. DSN: Enter the ODBC DSN or the Oracle Net-8 connection User: Enterthe 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, choosewhich of the databases should be active on startup.

12. Create a new job definition. To do this, click the icon just below the wordJobs.

13. Name: A unique name for the job. Move the replication definition fromAvailable destinations to the Select destinations list. In theReplication options section, indicate whether a full or differentialreplication is to be performed. Indicate whether it is the default job.

Note

Since release 4.1 the replication process runs twice in full replication mode (oncefor every live DB connect).

14.

Additional Components WCM Server Replication

Livelink WCM Server - System Integration Manual Page 95

Page 96: Livelink WCM 9.5 SystemIntegration_en

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=LIVEDBTYPEALT=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 thedatabase is switched on the live server, add the following parameters to thecmengine.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 thesite-specific data and involve the USERS, BUCKETDATA and ACCESSLOG

tables.

WCM Server Replication Additional Components

Page 96 Livelink WCM Server - System Integration Manual

Page 97: Livelink WCM 9.5 SystemIntegration_en

Caution

We recommend always using a full WCM Server DB model because of possiblefuture extensions!

4.3.1 WCM Server Replication from the shell

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

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

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.0DBTYPE=MSSQLDBNAME=wcm_replicationDBUSER=<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.... Runreplication.exe from the command prompt as follows: replication

Additional Components WCM Server Replication

Livelink WCM Server - System Integration Manual Page 97

Page 98: Livelink WCM 9.5 SystemIntegration_en

4.3.2 Offline Replication

GeneralInformation

Offline replication can be used if there is no server in the network that hasdatabase access to the stage as well as the live database at the same time. In thiscase, the data are saved to a file by the replication executable, which is thentransferred to the live system via scp, ftp or some other means. On the livesystem, the replication executable uses an .odd file (object deploymentdescriptor) to get the configuration data of the target database.

Configuration inthe SiteAdministrator

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

WCM Server Replication Additional Components

Page 98 Livelink WCM Server - System Integration Manual

Page 99: Livelink WCM 9.5 SystemIntegration_en

Create the “file”destination

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

This destination is then chosen in the job definition.

Create the “livedatabase”destination

The destination for the live database looks like a destination for an onlinereplication:

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

ODD button.

Additional Components WCM Server Replication

Livelink WCM Server - System Integration Manual Page 99

Page 100: Livelink WCM 9.5 SystemIntegration_en

Run thereplicationexecutable at thestage site

We are now ready to export the replication data from the staging site by runningthe replication executable in the usual way:

replication.exe –profile=Production –job=diff

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

Run thereplicationexecutable at thelive site

Applying the replication data to the live site is done like in this example:

replication.exe –offline –odd=Production.odd –dat=rep-20041212.zip

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 anetwork resource. Most computer security systems are based on a two-stepprocess.

• The first stage is authentication, which ensures that a user is who he or sheclaims to be.

• The second stage is authorization, which allows the user access to variousresources based on the user’s identity.

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

Overview

LDAP Additional Components

Page 100 Livelink WCM Server - System Integration Manual

Page 101: Livelink WCM 9.5 SystemIntegration_en

Scenario 1: WCMServer-internalauthentication

This is the default behavior. Users are managed with the Site Administrator

and the access rights are assigned with freely definable roles, object groups andpermission patterns. The user information (login name, full name, email…) andaccess rights are stored inside the WCM Server repository.

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

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

The login can be secured with SSL if required.

Scenario 2:Authentication viaLDAP directory

In case the installed environment is equipped with an LDAP directory servercontaining user, group and company information, the engine can use this as userdatabase. Users do not have to be managed in several places - the engine accessesthe 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

Additional Components LDAP

Livelink WCM Server - System Integration Manual Page 101

Page 102: Livelink WCM 9.5 SystemIntegration_en

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 (loginattempt to a LDAP directory). The LDAP bind can either be done by the webserver equipped with an LDAP module («External User») or with the WCMServer LDAP Authentication Plug-in («Plug-in User»). Depending the waychosen, the user gets an HTML form or a browser popup dialog to supply hiscredentials.

Browser logindialog

A browser login dialog is triggered by HTTP headers (HTTP/401 – Unauthorized)that the web server sends to the browser when authentication is necessary. Theformat 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 tothe server. Single-sign-on systems like the Microsoft NTLM use specialauthentication schemes where the browser automatically answers theusername/password request. Due to the generic way the web server authenticationmodules can be integrated in the WCM Server, it is possible to use all kinds ofauthentication schemes.

So, as soon as a user wants to access a page that is part of a group with the “DenyWeb User” flag set, the web server returns an HTTP/401 ("AuthorizationRequired”) 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 anenvironment variable (REMOTE_USER in case of Apache and Netscape/iPlanet,AUTH_USER in case of IIS). The CMEngine starts an LDAP query inLDAPUSERBASE with LDAPUSERFILTER and expects to get zero or one resultback. Because we want to get the attributes of the user that has just logged in, wehave to set LDAPUSERFILTER to uid=<!WEM ENV.REMOTE_USER>.

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

LDAP Additional Components

Page 102 Livelink WCM Server - System Integration Manual

Page 103: Livelink WCM 9.5 SystemIntegration_en

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 issuccessful, the template user’s rights are added dynamically to the current user’srights. This mechanism is cumulative, i.e. there may be more than one match andthe rights just add up.

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

4.4.2 Matching rules

Defining rules inSite Administrator

In Site Administrator, you can configure the roles that authenticated userscan 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. Ifthe condition is true (matches against the user’s current LDAP attributes), the usergets the role. If the user has a certain role, it means for him/her that (s)he has therights associated with that role. In order to associate rights with a role, a templateuser must be created and assigned the necessary rights. This template user (whichexists in the WCM Server only) is then associated with the LDAP role. Let’s havea look at an example: In our web site is a closed area, represented by objects inthe “Internal” group. Now, we create a user “Tpl_internal” that has read access tothis group. Then we go to Extras → Administration → Configure → LDAP

Roles and select New.... You can choose whatever name you like; it is notrelevant for the WCM Server except that you have to enter one. The description isoptional. In the User field, you select which user you want to have as a templateuser for this LDAP role ("Tpl_internal” in our case). The Condition you entermust stick to the following rules:

Additional Components LDAP

Livelink WCM Server - System Integration Manual Page 103

Page 104: Livelink WCM 9.5 SystemIntegration_en

1. Allowed operators are “&” (AND), “|” (OR) and “=” (boolean equals). Notethat “¦” 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.

Note

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

4.4.3 Customize the login process

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

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

LDAP Additional Components

Page 104 Livelink WCM Server - System Integration Manual

Page 105: Livelink WCM 9.5 SystemIntegration_en

4.4.4 LDAP Plug-in Authentication (Windows)

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

Plug-inconfiguration

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

• UserLogLevel=99 is for debugging purposes. Set it to 1 as soon aseverything 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 requiredusers in the LDAP directory. Put these into a comment if the directory serverallows anonymous access.

• Set LDAPUSERFILTER to the attribute that determines the user’s login name.

[common]PluginLog=C:\Livelink\wcm\type1\logs\ldapplugin.logSupervisionLog=C:\Livelink\wcm\type1\logs\ldapplugin.logUserLog=C:\Livelink\wcm\type1\logs\ldapplugin.logUserLogLevel=99

[Transport]TransportType=TCPServerPort=20224ServerTcpPort=20224ServerName=localhostRxTimeout=0Encryption-Algo=1

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

Additional Components LDAP

Livelink WCM Server - System Integration Manual Page 105

Page 106: Livelink WCM 9.5 SystemIntegration_en

LDAPUSER=cn=Administrator,cn=Users,dc=obtree,dc=comLDAPPWD=secret

A note on version5 of the LDAPlibrary

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

Using LDAP means – among other things – adding a configuration entry calledUSELDAPLIBRARY to your appropriate configuration file. This entry must point tothe 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 dynamiclinker where to look for the files of the LDAP SDK.

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

Starting andstopping theplug-in

You can start the plug-in manually with:

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 withthe –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 youdon’t like that name, use the ServiceName and ServiceDisplay directives inthe plugin config file ldap.cfg to change it, see the os-specific sections below).

Activating theplug-in

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

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

LDAP Additional Components

Page 106 Livelink WCM Server - System Integration Manual

Page 107: Livelink WCM 9.5 SystemIntegration_en

LDAPCREATEUSER=yes

[LDAP]TransportType=TCPServerPort=20224ServerName=localhostRxTimeout=0

[site]AUTH_MODE=PLUGINUSER_MODE=PLUGINUSER_PLUGIN=LDAP

4.4.5 LDAP Plug-in Authentication (Solaris)

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

Plug-inconfiguration

The configuration file of the LDAP plug-in should be put in/opt/livelink/wcm/type1/conf/ldapplugin.cfg. You can use thefollowing 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 soonas everything works fine; ServerPort and ServerTcpPort should always beset to the same value; LDAPUSER/LDAPPWD point to a user that has read access toall the required users in the LDAP directory – comment these out if the directoryserver allows anonymous access; LDAPUSERFILTER should be set to the attributethat determines the user’s login name):

[common]PluginLog=/opt/livelink/wcm/type1/logs/ldapplugin.logSupervisionLog=/opt/livelink/wcm/type1/logs/ldapplugin.logUserLog=/opt/livelink/wcm/type1/logs/ldapplugin.logUserLogLevel=99

[Transport]TransportType=TCP

Additional Components LDAP

Livelink WCM Server - System Integration Manual Page 107

Page 108: Livelink WCM 9.5 SystemIntegration_en

ServerPort=20224ServerTcpPort=20224ServerName=localhostRxTimeout=0Encryption-Algo=1

[PluginSpecific]USELDAPLIBRARY=/opt/livelink/wcm/type1/lib/libldapsslsc.soLDAPHOST=localhostLDAPUSER=cn=Administrator,cn=Users,dc=obtree,dc=comLDAPPWD=secretLDAPUSERBASE=cn=Users,dc=obtree,dc=comLDAPUSERFILTER=cnLDAPUSERINFO=FullName=displayName,Mail=mail

A note on version5 of the LDAPlibrary

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

Using LDAP means – among other things – adding a configuration entry calledUSELDAPLIBRARY to your appropriate configuration file. This entry must point tothe 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 dynamiclinker where to look for the files of the original LDAP SDK.

Before starting the appropriate WCM Server component, e.g. the web server, thatin turn loads the CMEngine, you must set the environment variableLD_LIBRARY_PATH and let it point to the location of the LDAP libraries, e.g. forshells compatible to the Bourne shell type:

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

Add this line to /opt/apache2/bin/envvars if you are using Apache2, orhttps-myinstance/start if you are using SunONE/iPlanet.

Starting andstopping theplug-in

You can start the plug-in manually as user livelink with:

$ /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

LDAP Additional Components

Page 108 Livelink WCM Server - System Integration Manual

Page 109: Livelink WCM 9.5 SystemIntegration_en

In order to start the plug-in automatically on system startup, edit/opt/livelink/wcm/type1/bin/livelink-wcm-type1 and remove thecomment in front of the two lines containing ldapplugin.

Activating theplug-in

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

[common]LDAPLOGFILE=/opt/livelink/wcm/type1/logs/ldapengine.logLDAPCREATESESSION=yesLDAPCREATEUSER=yes

[LDAP]TransportType=TCPServerPort=20224ServerName=localhostRxTimeout=0

[site]AUTH_MODE=PLUGINUSER_MODE=PLUGINUSER_PLUGIN=LDAP

4.4.6 LDAP Plug-in Authentication (Linux)

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

Plug-inconfiguration

The configuration file of the LDAP plug-in should be put in/opt/livelink/wcm/type1/conf/ldapplugin.cfg. You can use thefollowing 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 soonas everything works fine; ServerPort and ServerTcpPort should always be

Additional Components LDAP

Livelink WCM Server - System Integration Manual Page 109

Page 110: Livelink WCM 9.5 SystemIntegration_en

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

[common]PluginLog=/opt/livelink/wcm/type1/logs/ldapplugin.logSupervisionLog=/opt/livelink/wcm/type1/logs/ldapplugin.logUserLog=/opt/livelink/wcm/type1/logs/ldapplugin.logUserLogLevel=99

[Transport]TransportType=TCPServerPort=20224ServerTcpPort=20224ServerName=localhostRxTimeout=0Encryption-Algo=1

[PluginSpecific]USELDAPLIBRARY=/opt/livelink/wcm/type1/lib/libldapsslsc.soLDAPHOST=localhostLDAPUSER=cn=Administrator,cn=Users,dc=obtree,dc=comLDAPPWD=secretLDAPUSERBASE=cn=Users,dc=obtree,dc=comLDAPUSERFILTER=cnLDAPUSERINFO=FullName=displayName,Mail=mail

A note on version5 of the LDAPlibrary

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

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

Before starting the appropriate WCM Server component, e.g. the web server, thatin turn loads the CMEngine, you must set the environment variableLD_LIBRARY_PATH and let it point to the location of the LDAP libraries, e.g. forshells compatible to the Bourne shell type:

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

Add this line to /opt/apache2/bin/envvars if you are using Apache, orhttps-myinstance/start if you are using SunONE/iPlanet.

LDAP Additional Components

Page 110 Livelink WCM Server - System Integration Manual

Page 111: Livelink WCM 9.5 SystemIntegration_en

Starting andstopping theplug-in

You can start the plug-in manually as user livelink with:

$ /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 thecomment in front of the two lines containing “ldapplugin”.

Activating theplug-in

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

[common]LDAPLOGFILE=/opt/livelink/wcm/type1/logs/ldapengine.logLDAPCREATESESSION=yesLDAPCREATEUSER=yes

[LDAP]TransportType=TCPServerPort=20224ServerName=localhostRxTimeout=0

[site]AUTH_MODE=PLUGINUSER_MODE=PLUGINUSER_PLUGIN=LDAP

4.5 Livelink Enterprise Integration

Preliminary note The present installation instructions cover solely the additional installation andconfiguring that are necessary to connect an already correctly running WCMServer system to an Open Text Livelink Enterprise repository. Such a connectionallows the dynamic exchange of contents between the involved systems.

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

• Embed content from the Livelink Enterprise Repository into your WCM

Additional Components Livelink Enterprise Integration

Livelink WCM Server - System Integration Manual Page 111

Page 112: Livelink WCM 9.5 SystemIntegration_en

Server web site.

• Edit the embedded content either in Livelink Enterprise or in the WCMServer environment.

• Automatically keep track of any changes to the affected contents; the webpages always will reflect the newest versions of the affected contentsregardless of the environment in which they have been changed.

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

4.5.1 Prerequisites

Livelink WCMServer

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

LivelinkEnterprise

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

OperatingSystem

The Livelink Enterprise integration is available for Windows and Solarisplatforms 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 supportsvirtual 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 youare 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 ContentManager Classic edition does not support Livelink Enterprise integration andvirtual objects.

Livelink Enterprise Integration Additional Components

Page 112 Livelink WCM Server - System Integration Manual

Page 113: Livelink WCM 9.5 SystemIntegration_en

Additionalsoftware

If necessary, copy the additional Livelink API DLL’s of release 9.5.0 into thedirectory 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.dllLAPI_BASE.dllLAPI_DOCUMENTS.dllLAPI_INBOX.dllLAPI_NETp.dllLAPI_SEARCH.dllLAPI_SSPIp.dllLAPI_USERS.dllLAPI_WORKFLOW.dllLLAdapter.dllLLKERNEL.dllllresources.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.0liblapi.so (a symlink to liblapi.so.1.0)liblladapter.solibllkernel.so

Important

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.

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 exchangedbetween the Livelink Enterprise repository and the WCM Server database.Therefore, make sure the user running the process of the web server has fullaccess to this new directory.

Additional Components Livelink Enterprise Integration

Livelink WCM Server - System Integration Manual Page 113

Page 114: Livelink WCM 9.5 SystemIntegration_en

Configurationfiles

Add the following lines to the [Common] section in the configuration file of theCMEngine.

Windows:

USELAPILIBRARY=C:\Livelink\wcm\type1\bin\LLAdapter.dllLOCALREPOSITORYFOLDER=C:\Livelink\wcm\type1\cache\voSOAPMODULE=RepositoryManager,RepositoryManager,yes,no,no

Solaris:

USELAPILIBRARY=/opt/livelink/wcm/type1/lib/liblldapter.soLOCALREPOSITORYFOLDER=/opt/livelink/wcm/type1/cache/voSOAPMODULE=RepositoryManager,RepositoryManager,yes,no,no

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

Configure site inSite Administrator

In the Site Administrator, make sure that the Website base URL in the File→ Configure Sites dialog is pointing to the correct URL and the correctrendering engine (CMEngine). The Site Administrator is using this URL toconnect 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 theConfiguration dialog of the Site Administrator (see the following paragraphfor details).

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

4.5.3 Define a Connection to Livelink Enterprise

Defining aconnection to aLivelinkrepository

In the Administration menu of the Site Administrator click Configuration.In the appearing dialog, expand the Security & Connections folder on theleft side and click Livelink Enterprise (LAPI).

Livelink Enterprise Integration Additional Components

Page 114 Livelink WCM Server - System Integration Manual

Page 115: Livelink WCM 9.5 SystemIntegration_en

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

Element DescriptionName Enter a name for your new Livelink Enterprise

connection.

ID Internal ID of the new connection. The number isassigned automatically and cannot be changed.

Description Description of the Livelink Enterprise connection.

Host Enter the host name and optionally the TCP portnumberof the server on which your LivelinkEnterprise server is installed. This is sufficient if theLivelink server is reachable via native Livelinkprotocol.

If you prefer to use the tunneling method via HTTP(S)to connect to Livelink Enterprise, add http:// orhttps:// in front of the host name.

Additional Components Livelink Enterprise Integration

Livelink WCM Server - System Integration Manual Page 115

Page 116: Livelink WCM 9.5 SystemIntegration_en

Element DescriptionUser 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 Serveruser will be transmitted to LivelinkEnterprise when connecting.

Use this option if you intend toimplement a single authenticationprocess for all your applications.Read more about Single Sign-on inthe next chapter.

Tech User The User name and Passwordprovided in the fields below will beused when connecting to LivelinkEnterprise.

Impersonate The user and the correspondingpassword will be provided by aWCM Server script whenconnecting to Livelink Enterprise.Such a script must be embedded inan onConnectionOpen handler.

Use this option if you want todynamically assign the user for thisLivelink Enterprise connection atthe moment when the connection isestablished.

User User name for Livelink Enterprise.

Password Password of the user specified above.

Additional Parameters Enter additional parameters that have to be submittedto the Livelink Enterprise server (for example a portnumber).

Local Repository Folder Enter the path of the folder that will be used astemporary storage for this Livelink Enterpriseconnection when documents are exchanged betweenLivelink Enterprise and the WCM Server. You have

Livelink Enterprise Integration Additional Components

Page 116 Livelink WCM Server - System Integration Manual

Page 117: Livelink WCM 9.5 SystemIntegration_en

Element Descriptionprobably defined this folder earlier in the engine’sconfiguration file. Example:C:\Livelink\wcm\type1\cache\vo

You can skip the property Local Repository Folder ifyou have set LOCALREPOSITORYFOLDER=<my

lltemp path>

Script Select a script from the LLWCM database that has tobe executed when connecting to the Livelinkrepository. Entering a script is mandatory if you havespecified the Impersonate user mode.

Action Buttons Element DescriptionNew 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 LivelinkEnterprise connection to users or object groups.

Important

You must assign permissions to a Livelink Enterpriseconnection. Connections without permissions areinoperative and therefore do not display in thecorresponding selection lists (for example in theProperties dialog of virtual objects).

Export Writes the selected Livelink Enterprise connections toan .oxp file (Object XML Package). The standardWindows Save As dialog box allows you to specifythe destination of the new .oxp file.

Import Imports an .oxp file and creates new or updatesexisting Livelink Enterprise connections. (See section“Importing Configuration Entries” of the SiteAdministrator Reference Manual for details about theimporting procedure.)

Apply Saves your changes in the WCM Server database.Close Closes the Configuration dialog box without changing

the Livelink Enterprise connection definitions.

Additional Components Livelink Enterprise Integration

Livelink WCM Server - System Integration Manual Page 117

Page 118: Livelink WCM 9.5 SystemIntegration_en

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 LivelinkEnterprise as the provider of the external user management for WCM Server. Insuch a case, we are talking about 'Single sign-on Livelink Enterprise access'. Afterthe successful completion of all necessary steps

1. Livelink Enterprise users can login to the WCM Server Site Administrator orthe WCM Server Site Manager with their Livelink Enterprise user ID andpassword.

2. Users working with the Livelink Enterprise browser within the SiteAdministrator or the Site Manager see the same parts of the LivelinkEnterprise repository as if they were working directly within LivelinkEnterprise. This means that all permissions of the Livelink Enterprise systemare as well valid in Livelink WCM Server.

Configuration ofthe engine(s)

Single sign-on only works if you expand the configuration filesof your CMEngineby the following three lines:

AUTH_MODE=LIVELINKUSER_MODE=LIVELINKUSER_PLUGIN=<Livelink connection name with single sign-on user mode>

If the imported virtual objects need to be accessible by an anonymous user afterthey once have been imported into the WCM Server database, you have to addone additional line to the configuration file of your CMEngine:

LLSSOFALLBACK =YES

Connectiondefinition

You have to define a connection from the WCM Server to your LivelinkEnterprise repository. Do this in the Site Administrator as described in the lastchapter, 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 particularuser has two important functions:

1. The credentials of this user are used by Livelink Enterprise for readingthe properties and permissions of the user who is logging in from theWCM Server.

Livelink Enterprise Integration Additional Components

Page 118 Livelink WCM Server - System Integration Manual

Page 119: Livelink WCM 9.5 SystemIntegration_en

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

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

The Name of this connection has to be provided in the USER_PLUGIN parameterof the CMEngine's configuration file.

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

Roles tab of theUser Manager

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

Additional Components Livelink Enterprise Integration

Livelink WCM Server - System Integration Manual Page 119

Page 120: Livelink WCM 9.5 SystemIntegration_en

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 ofLivelinkUser class, as documented on the Knowledge Center, as well as thefollowing:

Matching element Value you have to entergroupName Department name of the Livelink Enterprise usermemberOf 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 bindexternal usersinto the WCMServer userdirectory

If you need to assign individual permissions to particular Livelink Enterpriseusers, you first have to connect the users in question to the WCM Server userdirectory. After that, you can treat such users like any other WCM Server user.

Open the User Manager in the Site Administrator. In the Users tab click theExternal button. This displays the Search & Bind Externally Managed

Users dialog window.

Livelink Enterprise Integration Additional Components

Page 120 Livelink WCM Server - System Integration Manual

Page 121: Livelink WCM 9.5 SystemIntegration_en

Note

If the External button is disabled, you have to enter a correct Web Site Base

URL in File → Configure Sites, as described before.

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 LivelinkEnterprise user directory for the condition value in all occurrences of yourselected 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 repositorythat correspond to your search criteria are listed in the lower part of thedialog window.

6. If you wish to see more details about a particular user in the list, select thisuser and click Details. A separate window opens displaying a list ofattributes for the selected user.

7. Select the user(s) you want to integrate in the WCM Server user directoryand click Bind.

After you have bound an external user into the WCM Server user directory youcan grant permissions for this user like for any other user. For more informationabout granting permissions to individual users, please refer to chapter “UserManagement 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 convenientfeature called LiveConnect: This feature enables you to instantiate and use Javaclasses in server-side JavaScript directly via a predefined object Packages. Hereis a short example script that creates a Java String object and writes it to theoutput page:

Additional Components Java Connectivity (LiveConnect)

Livelink WCM Server - System Integration Manual Page 121

Page 122: Livelink WCM 9.5 SystemIntegration_en

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

Configuration ofcmengine.cfg

Add the following to your cmengine.cfg in order to activate the LiveConnectfeature:

JVMENABLED=trueJVMLIBRARY=C:\java\j2sdk1.4.2_05\jre\bin\server\jvm.dllJVMLOGFILE=C:\Livelink\wcm\type1\logs\jvmengine.logJVMCLASSPATH=C:\Livelink\wcm\type1\bin\liveconnect.jar

Note

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

• liveconnect.jar contains the necessary classes for LiveConnectfunctionality and therefore mustbe in your CLASSPATH.

Setting thesystem PATH

In order to make sure the dynamic loader can find the JVM libraries, make sure toset 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 atC:\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 convenientfeature called LiveConnect: This feature enables you to instantiate and use Javaclasses in server-side JavaScript directly via a predefined object Packages. Hereis a short example script that creates a Java String object and writes it to the

Java Connectivity (LiveConnect) Additional Components

Page 122 Livelink WCM Server - System Integration Manual

Page 123: Livelink WCM 9.5 SystemIntegration_en

output page:

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

Configuration ofcmengine.cfg

Add the following to your cmengine.cfg in order to activate the LiveConnectfeature:

JVMENABLED=trueJVMLIBRARY=/usr/java/jre/lib/sparc/server/libjvm.soJVMLOGFILE=/opt/livelink/wcm/type1/logs/jvmengine.logJVMCLASSPATH=/opt/livelink/wcm/type1/lib/liveconnect.jar

Note

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

• liveconnect.jar contains the necessary classes for LiveConnectfunctionality and therefore mustbe in your CLASSPATH.

SettingLD_LIBRARY_PATH

In order to make sure the dynamic loader can find the JVM libraries, make sure toset LD_LIBRARY_PATH accordingly in the startup script of your web server. Justadd 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_PATHexport 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 convenientfeature called LiveConnect: This feature enables you to instantiate and use Javaclasses in server-side JavaScript directly via a predefined object Packages. Hereis a short example script that creates a Java String object and writes it to theoutput page:

Additional Components Java Connectivity (LiveConnect)

Livelink WCM Server - System Integration Manual Page 123

Page 124: Livelink WCM 9.5 SystemIntegration_en

var myString = newPackages.java.lang.String(“Test”);openHttp();write(myString);closeHttp();

Configuration ofcmengine.cfg

Add the following to your cmengine.cfg in order to activate the LiveConnectfeature:

JVMENABLED=trueJVMLIBRARY=/usr/java/j2re1.4.2_05/lib/i386/server/libjvm.soJVMLOGFILE=/opt/livelink/wcm/type1/logs/jvmengine.logJVMCLASSPATH=/opt/livelink/wcm/type1/lib/liveconnect.jar

Note

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

• liveconnect.jar contains the necessary classes for LiveConnectfunctionality and therefore mustbe in your CLASSPATH.

SettingLD_LIBRARY_PATH

In order to make sure the dynamic loader can find the JVM libraries, make sure toset LD_LIBRARY_PATH accordingly in the startup script of your web server. Justadd 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_PATHexport 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

WebDAV Service Additional Components

Page 124 Livelink WCM Server - System Integration Manual

Page 125: Livelink WCM 9.5 SystemIntegration_en

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

If you want to create a log file for the SOAP requests, the following additionalentry 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 webbrowser. After sending this request, your browser should show the interfacedescription 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 JVMversion 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 supportedversions 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 theapplication directory (/webapps) of Tomcat. Inside this directory, create thedirectories WEB-INF and WEB-INF/lib (uppercase/lowercase is crucial). Afterthat, 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/libdirectory:

Additional Components WebDAV Service

Livelink WCM Server - System Integration Manual Page 125

Page 126: Livelink WCM 9.5 SystemIntegration_en

WebDAV.jar The WebDAV Service Implementationslide-kernel.jar Apache Slide Implementationslide-roles.jar Apache Slide Implementationslide-stores.jar Apache Slide Implementationslide-webdavservlet.jarApache Slide Implementationjdom.jar JDOM 1.0jta-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 Serviceapplication inside the Tomcat Servlet Engine.

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

Domain.xml The WebDAV Service configuration file.

Configure the following parameters in the section „store“ of the fileDomain.xml.

soapurl The URL (including the URLMAGIC, without a trailingslash) of the WCM Server site that is to be madeavailable to a WebDAV client.

Example: http://server/magic

username The name of the user that will be used to access theserver. The user must have User Managementpermissions and Read permissions for all objects thatare to be shown to the WebDAV client. It isrecommended to create a specific user for thispurpose.

password The password of the above-configured user.

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

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

defaultlanguage The default language chosen to display the WCM

WebDAV Service Additional Components

Page 126 Livelink WCM Server - System Integration Manual

Page 127: Livelink WCM 9.5 SystemIntegration_en

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

defaultmedium The default medium chosen to display the WCMServer content. This must be the name of the mediumas configured in the Site Database.

hidelanguage If your site uses only one language, or if you want todisplay only the instances of the default language, youcan set this parameter to true. Otherwise choose false.

hidemedium If your site uses only one medium, or if you want todisplay only the instances of the default medium, youcan 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 asconfigured in the Site Database, in double quotes andcomma-delimited. An example: “Thumbnail Pictures”,“Fonts”, “Buttonstyle Pictures”, “ButtonstyleBackground”

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

objecttype The types of the objects that are to be shown to theWebDAV client. Currently, only PICTURE issupported.

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

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

j2oi.jar The WCM Server Java SDK classes.

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

Additional Components WebDAV Service

Livelink WCM Server - System Integration Manual Page 127

Page 128: Livelink WCM 9.5 SystemIntegration_en

<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 configureone 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 Tomcatdirectory server/lib:

WebPresentationRealm.jarThe WebDAV Service Authentication ServiceJ2oi.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:

<ListenerclassName="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 ofthe Tomcat server that will be accessed by a WebDAVclient.

docBase The name of the application directory you created for

WebDAV Service Additional Components

Page 128 Livelink WCM Server - System Integration Manual

Page 129: Livelink WCM 9.5 SystemIntegration_en

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 madeavailable to a WebDAV client.

connectionUser The name of a user with UserManagement and Readpermissions for all objects that are to be shown to aWebDAV 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 Serverrepository 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 differentservers and to merge all changes on the same logical database. At least one masterand one slave database are necessary; only the number of existing object groupslimits 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

Additional Components Synchronization

Livelink WCM Server - System Integration Manual Page 129

Page 130: Livelink WCM 9.5 SystemIntegration_en

are

• adequate planning

• knowing well the abilities of WCM Server Synchronization and what cannotbe achieved by WCM Server Synchronization

Attention As of release 4.1, you need a special license for setting up WCM Serversynchronization. Using the Synchronization feature with previous releases is notadvisable, because IXOS Engineering (Switzerland) AG / Open Text guaranteessupport 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 anolder definition of synchronization. Older definitions must have to be adapted tothe new settings. Please find a detailed description of that in one of the followingparagraphs.

Important

IXOS-Obtree components of release 4.1.1 do not work together with definition ofa previous release, and Obtree components of earlier release do not work togetherwith definition of release 4.1.1. Concurrent use of components of the releases4.1.0 and 4.1.1 is impossible.

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

1. On the Administration menu of the Site Administrator, point to Advancedand click Synchronization Tool.

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

Synchronization Additional Components

Page 130 Livelink WCM Server - System Integration Manual

Page 131: Livelink WCM 9.5 SystemIntegration_en

Database).

You can choose a name arbitrarily. It serves for identifying the database inthe databases overview.

Database ID is a unique identifier of the database and is detectedautomatically.

Number of IDs specifies the range of ID numbers that is allocated to thedatabase. The database uses the range of 0 to X to create object IDs for newobjects (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 theadditional 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 onthe slave database; Number of IDs specifies the available range of IDnumbers. Since each database uses its own range of ID numbers, the rangesmust 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 masterdatabase. This is not always possible for the slave databases. If you areallowed to access the according databases you can fetch this information byusing 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 intothe corresponding field of the Create Slave Database dialog.

If you are not allowed to access the database directly, a small wizard can helpyou. Click the Generate button to start this wizard.:

Additional Components Synchronization

Livelink WCM Server - System Integration Manual Page 131

Page 132: Livelink WCM 9.5 SystemIntegration_en

Just enter the required data (depending on the database type, the number ofthe required data may differ slightly). Clicking OK generates a database IDand 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 slavedatabase.

By clicking OK, the values in the fields Sync_DBID of the tables mentionedabove are set to 2 (or higher). After that, you get a message indicating thenumber of objects that were assigned to the slave DB.

Caution

Every object may be edited on just one database to prevent conflicts duringsynchronization. The Site Administrator acts very restrictively in that respect andprohibits editing of objects that are not members of groups assigned to the owndatabase.

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

This overview shows all defined databases, the assigned object groups ofeach database and data and time of the latest synchronization run.

An asterisk next to the DBID identifies the current database of the SiteAdministrator (in the screen capture, this is the master database).

Repeat this step for each desired slave database. However, if all object groupsare 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 databaseservers. Use the WCM Server SQL Transfer tool to achieve this. You canstart that tool directly from the Synchronization tool, which has theadvantage 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 inthe address bar of your browser.

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

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

Synchronization Additional Components

Page 132 Livelink WCM Server - System Integration Manual

Page 133: Livelink WCM 9.5 SystemIntegration_en

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

Running asynchronization

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

1. Synchronization Slave → Master

On the slave database, create a file containing the changes of the slavedatabase that have to be transferred to the master database. The button CreateSynchronization File gets active as soon as you select the target database inthe 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 synchronizationruns. At the end of the run, the corresponding log file contains messagesabout the generated results.

2. Synchronization Master → Slave

Like step 1, but in the other direction. On the master database, select thedesired target slave database in the list of databases, create the file with thechanges, send it to the slave database and there load the file.

3. If changes had been made on both databases, the log files probably reportsconflicting changes. In such a case, repeat step 1.

4. If you had to perform step 3, repeat step 2 afterwards. Now, the log fileshould no longer report conflicting changes.

Uninstallingsynchronization

An existing system of synchronized databases can be retransformed into a regularsystem.

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

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.

Additional Components Synchronization

Livelink WCM Server - System Integration Manual Page 133

Page 134: Livelink WCM 9.5 SystemIntegration_en

Changing groupassignments

In order to reassign groups between the master and slave databases, the followingprocedure 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 DeleteTable

WCM Server records all deletions that affect the database in the designated tablesyncdeleterow. With the information of this table, the synchronizing processcan delete the affected objects in the target database.

The table syncdeleterow is usually cleaned up automatically. However, insome cases cleaning up that table fails, or you uninstall the synchronization andthe table does not get deleted properly.

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

Updating an oldsynchronization

With release 4.1.1, the recognition of the database has been changed. The IPaddress was replaced by a unique database ID. The new components only workwith this new database recognition, older components work only with the formerIP address.

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

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

Important

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

Double-click an entry of the database list to open either the dialog of the masterdatabase or the dialog for the slave database. Enter the database IDs in the sameway 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

Synchronization Additional Components

Page 134 Livelink WCM Server - System Integration Manual

Page 135: Livelink WCM 9.5 SystemIntegration_en

Site Administrator. From now on you must no longer use components of release4.1.0 or earlier because the synchronization will no longer recognize suchcomponents.

Possibleproblems

The following situation requires manual updating, because automaticsynchronization does not work correctly with it:

Present situation:

You are using a template that is used in different pages. Those pages are assignedto 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 isnot created in the pages of those databases.

Synchronization:

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

Solution:

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

Amendment:

If you, instead of creating a new slot, delete an existing slot, the potentiallyaffected pages of the other databases do as well not recognize this change.However, this situation is not that serious because deleted slots have noimportance. The Template Editor and the Page Editor of the Site Administratordisplay such slots dimmed. Carrying out the Optimize Database function willremove such dispensable slots.

Additional Components Synchronization

Livelink WCM Server - System Integration Manual Page 135

Page 136: Livelink WCM 9.5 SystemIntegration_en

4.9 WordWizard (Microsoft Word Integration)

Important This chapter describes only the server-side configuration that is necessary for theWord integration to work. For the client side, please see the chapter of the samename 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=YESSOAPMODULE=ObjectManager,ObjectManager,yes,no,noSOAPMODULE=UserManager,UserManager,yes,no,noSOAPMODULE=SearchManager,SearchManager,yes,no,no

If you want to use Professional Workflow, add the following additionalparameter:

SOAPMODULE=WorkflowManager,WorkflowManager,yes,no,no

If you want to create a log file for SOAP requests, the following additional entryis 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

WordWizard (Microsoft Word Integration) Additional Components

Page 136 Livelink WCM Server - System Integration Manual

Page 137: Livelink WCM 9.5 SystemIntegration_en

Comments You can test your configuration by typing your base URL (SERVERURL +URLMAGIC) followed by ObjectManager in the address field of the webbrowser. After sending this request, your browser should show the interfacedescription 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 aURL and

• execute arbitrary binaries stored on your local computer, given the user who executes theTaskAgent has the permission to do so.

The TaskAgent furthermore contains a scheduler. So with the TaskAgent you will fully automate jobsthat should have been done periodically.

The TaskAgent is a self-contained tool. There’s no required dependency on other software. Obviouslythere 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 anexternal database. So it is likely that the chart is represented within the WCM Server by a SQLstatement. Because the data does not reside in a WCM Server DataTable object but on an externalsource, changes to the data do not trigger updates of the chart. If you can tolerate short delays betweenupdates of the data and updates of the chart derived, then a good solution was to use the TaskAgent toupdate 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 UNIXdaemon. There is no graphical user interface, because the TaskAgent will work silently in thebackground most of the time.

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 137

Page 138: Livelink WCM 9.5 SystemIntegration_en

4.10.2 Files delivered with the TaskAgent

For each platform there is a single binary called taskagent and a sample configuration file calledtaskagent.cfg.

4.10.3 Using the TaskAgent

Command lineoptions

After reading this section you will know how to call the TaskAgent from withinthe shell command prompt. This section contains a complete explanation of allcommand 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 configurationfile to use. The file name is expected to be the nextcommand line argument. If this command line optionis not given, taskagent.cfg is taken as a default.The default configuration file is first searched for inthe current working directory. The MS Windowsversion 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 gatherthe name actually taken from the logfile afterwards. Ifthe user specifies a configuration file name on thecommand line, it will be searched for only under itsname given.

-daemon Starts the TaskAgent as a daemon. Because daemonsare a concept singular to the UNIX family of operatingsystems, the MS Windows version will print an errormessage only.

-deinstall Deinstalls the TaskAgent from the list of servicesregistered. Any other command line arguments aresilently ignored. Because services are a conceptsingular to MS Windows, the UNIX versions willprint an informational message only.

-delay Delays execution of a section by a certain amount of

TaskAgent Additional Components

Page 138 Livelink WCM Server - System Integration Manual

Page 139: Livelink WCM 9.5 SystemIntegration_en

Option Descriptiontime. 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 appropriatesection to be executed. So it has only an effect if thesection is additionally given via the[asectionname] command line argument. If youwant to set a delay for more than one section, youhave to use the –delayswitch several times:

taskagent –delay section0 1 –delay section1 1

Starting with Release 9.5.0, you have the option to listseveral sections at once. Just enclose them in quotesand separate them by spaces:

taskagent –delay “section0 section1” 1

would be equivalent to the above.

-help Prints a help message. Any other command linearguments are silently ignored.

-install Installs the TaskAgent as a service. If other commandline parameters are given, they will apply for eachinvocation of the service. Because services are aconcept singular to MS Windows, the UNIX versionswill print an informational message only.

-macro Macro definitions are a powerful way to keep theconfiguration file generic. Using macro definitions,any term that has been written on the right hand sidein the configuration file can be textually replaced byanother term. Macro definitions are section specific.The next two arguments establish a macro definition.First the name of the appropriate section has to begiven, then a key value pair is expected consisting ofthe term to be replaced followed by the [=] sign andthe replacement string. Note that this command doesnot force the appropriate section to be executed. So ithas only an effect if the section is additionally givenvia the [asectionname] command line argument. Ifyou want to declare more than one macro definition,

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 139

Page 140: Livelink WCM 9.5 SystemIntegration_en

Option Descriptionyou 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 listseveral sections or macro definitions at once. Justenclose them in quotes and separate them by spaces:

taskagent –macro “section0 section1” “var0=value0var1=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 configurationfiles.

-verbose Switches on detailed messages during the wholeruntime of the TaskAgent.

-version Prints version information on the TaskAgent to thescreen. Any other command line arguments aresilently ignored.

Most command line arguments make sense to be given multiple times.

If multiple section names are given, then the TaskAgent processes these sectionspotentially in parallel. If you want to impose a strictly sequential behaviour, thenchain the appropriate sections by means of goto commands (see section“Configuration of the TaskAgent”) instead. Note that you can also use bothmethods at the same time: Giving sections independent of each other on the samecommand line and connecting sections to be processed sequentially relative toeach other with the goto command. The disadvantage of goto commands over asimilar command line is that you hard wire a certain process by means of theconfiguration file.

Example Assuming you have a configuration file in c:\ called taskagent.cfg and asection called [DataTable] within this file. Probably inside of this section the

TaskAgent Additional Components

Page 140 Livelink WCM Server - System Integration Manual

Page 141: Livelink WCM 9.5 SystemIntegration_en

string $dataTableID is used. Then you could call the TaskAgent by thefollowing 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 bymacros: The terms are prefixed by a $ sign. This has been done to make it veryunlikely that some text gets unconditionally replaced by the macro facility. Alsonote that the macro facility does replace even substrings, so if you say –macro

someSection apple=orange, then applejuice becomes orangejuice insection [someSection] afterwards.

4.10.4 Configuration of the TaskAgent

The TaskAgent is a flexible tool. Because it can perform three distinct jobs, the configuration dependson whether you want to spawn executables, hit some URLs or call remote SOAP webservices. Eachsection in the configuration file contains commands for on of the three different actions only. Theseactions are called “calltypes” in the remaining document.

Configurationparametersrecognized insidethe [COMMON]section

Like all the WCM Server products the TaskAgent has a facility to specify defaultswithin the configuration file. If a section has the reserved name COMMON and theparameter DEFAULTSECTION inside this section is set to on, then the parametersfound there are taken as defaults, if not specified in a specific section. With theTaskAgent only a few parameters make sense to be specified within the COMMON

section.

Parameter DescriptionCALLTYPE Specifies the default calltype of all sections. Possible

values for the keyword CALLTYPE are:

EXECUTABLEThis section is intended to execute binaries likethe server-side Scripting class Executable does.For further implications on special configurationparameters see section “’COMMAND’s for the‘EXECUTABLE’ calltype”.

HTTPThis section is intended to hit some URLs like theserver-side Scripting class HTTPClient does. Forfurther implications on special configurationparameters see section “’COMMAND’s for the

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 141

Page 142: Livelink WCM 9.5 SystemIntegration_en

Parameter Description‘HTTP’ calltype”.

SOAPThis section is intended to call remote SOAPwebservices like the server-side Scripting classSOAPClient does. For further implications onspecial configuration parameters see section“’COMMAND’s for the ‘SOAP’ calltype”.

DEFAULTSECTION If detected inside the section named COMMON and set toon, then the contents of the [COMMON] section istreated as a fallback if some key does not exist inanother section

LOGFILE Name of the log file. If no log file is specified at all,logging will be performed to the screen, if any. Notethat 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 athread pool. The size of the pool determines themaximum load this application will ever cause to yoursystem. This parameter lets you specify an integerindicating the size of the thread pool. It defaults to 10.

Configurationparameterscommon to allcalltypes

The grammar allowed to be put into a configuration file is context dependent.There is a simple hierarchical scheme. The following terms are allowed:

Parameter DescriptionCALLTYPE 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 nocalltype at all is an error.

COMMAND Specifies a command to be executed. The COMMAND

key is designed similarly to the class SOAPClient ofserver-side Java Script. This implies twoconsequences: First, inside of a section stateinformation is maintained. Most easily think as if therewas an instance of SOAPClient residing in thebackground. Secondly, the values allowed for theCOMMAND keyword are a superset of the interface, i.e.the member functions and properties, of theSOAPClient class. Possible values for the keywordCOMMAND are:

TaskAgent Additional Components

Page 142 Livelink WCM Server - System Integration Manual

Page 143: Livelink WCM 9.5 SystemIntegration_en

Parameter DescriptionKeyword DescriptiondetectError Activates some check on return

values of remote procedure calls. Ifan error was detected, processingthe appropriate section terminatesimmediately and an entry becomesadded to the log file specified by theLOGFILE setting. Possiblekeywords are:

ERRORSTATEAn integer being a specialreturn value to be considered.The default value depends onthe calltype. For HTTP it’s 200,otherwise it defaults to “0”.

MODESpecifies how the value givenas ERRORSTATE is going to beinterpreted. Possible values arenone – this switches off errordetection –, onFailure – thereturn value specified isinterpreted as an error, anyother value indicates success –,onSuccess – the return valuespecified is interpreted toindicate successful execution ofthe call – and always –regardless of its return valueany command will beinterpreted to have failed, anyother value means an error. Thevalue defaults to none.

SECONDSSpecify a delay in seconds afterwhich the execution of thecommand affected is triedagain. If not specified, no retryever happens. So if you run theTaskAgent as a daemon resp.service, then you should alwaysgive this parameter.

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 143

Page 144: Livelink WCM 9.5 SystemIntegration_en

Parameter DescriptionKeyword Description

Note that only MODE is mandatory.Within a single section theTaskAgent keeps track of theERRORSTATE even if error detectionhas been switched off by settingMODE to none, so error detectioncan be activated again with thesame value for the ERRORSTATE asbefore by setting MODE to a valuedifferent to none.

echo Just echoes text. Useful fordebugging purposes. Possiblekeywords are:

LOGThe value is echoed into thelogfile.

STDOUTThe value is echoed to thestandard output. On mostplatforms this output is likely tobe shown delayed.

STDERRThe value is echoed to thestandard error output. On mostplatforms this output is likely tobe shown immediately.

exit Immediately exits the TaskAgent.Possible keyword:

EXITSTATEAn integer that is returned tothe calling shell.

goto Executes another section. Noinformation on the current context istransferred to the section jumped to,so for processing the next section itdoes never count which section hasbeen processed before. This

TaskAgent Additional Components

Page 144 Livelink WCM Server - System Integration Manual

Page 145: Livelink WCM 9.5 SystemIntegration_en

Parameter DescriptionKeyword Description

prevents errors hard to identify.goto acts asynchronously, i.e.commands given following thegoto command will be executed asif no goto was present, and theywill be executed immediately.Recognized keywords:

DESTINATIONA section name to be executed.

SECONDSAn integer specifying the delayin seconds. If this parameter ismissing, the section specifiedwill be executed immediately.

noOp Does nothing. Useful for debuggingpurposes as an alternative way tocomment out some action. Usingthe -macro command line optionyou could e.g. substitute all echo

commands in a certain section bynoOp.

showMacro Prettyprints all macro definitionsactive for the current section. Usefulfor debugging purposes.

sleep Delay processing of the currentsection for a certain time delta. Notethat the scheduler of the operatingsystem can impose a longer delaythan specified, but never a shorterone. Expected keyword:

SECONDSAn integer specifying the delayin seconds.

LOGFILE Name of the section specific logfile. If no log file isspecified, the logfile specified in the [COMMON]section is taken.

LOGLEVEL Integer indicating the loglevel.

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 145

Page 146: Livelink WCM 9.5 SystemIntegration_en

“COMMAND”s forthe“EXECUTABLE”calltype

The purpose of the EXECUTABLE calltype is to periodically execute arbitrarybinaries like e.g. Unix cron does. Configuring the TaskAgent as a scheduler thatjust schedules the execution of binaries is quite simple, because in general youjust need the cmdLine, the detectError, the execute and the goto

commands.

Command DescriptioncmdLine Like the cmdLine property of instances of the

Executable class of server-side Java Script thiscommand sets the command line arguments for thebinary to be executed. Keywords recognized are:

ARGUMENTThe command line arguments. This keyword ismandatory.

errData Similar to the errData property of instances of theExecutable class of server-side Java Script thiscommand will direct the output to stderr theexecutable has made to the screen.

errSize Similar to the errSize property of instances of theExecutable class of server-side Java Script thiscommand 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 thiscommand will execute the command specified bycmdLine before. Keywords recognized are:

EXECUTABLEThe binary to be executed. This keyword ismandatory.

exitCode Similar to the exitCode property of instances of theExecutable class of server-side Java Script thiscommand prints the status code of the binary justexecuted.

inData Similar to the inData property of instances of theExecutable class of server-side Java Script thiscommand enables you to specify data to be passed tothe executable via stdin. This command expects thefollowing key / value pair:

STDIN

TaskAgent Additional Components

Page 146 Livelink WCM Server - System Integration Manual

Page 147: Livelink WCM 9.5 SystemIntegration_en

Command DescriptionThe data to be passed to the executable.

outData Similar to the outData property of instances of theExecutable class of server-side Java Script thiscommand will direct the output to stdout theexecutable has made to the screen.

outSize Similar to the outSize property of instances of theExecutable class of server-side Java Script thiscommand 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 thiscommand specifies a timeout the executed binary isallowed to run. If it takes longer, it will be killed. Thiscommand expects the following key / value pair:

MILLISECONDSThe timeout in milliseconds.

Note that specifying a timeout is silently ignoredon some platforms due to restrictions of theunderlying operating system.

“COMMAND”s forthe “HTTP”calltype

You can use it to fetch web documents. It can especially be useful to hit WCMServer URLs likehttp://aMachineName:aPortNumber/aSite?debug=clearcache. Thissection contains a complete explanation of each keyword special to the HTTP

calltype.

Command Descriptioncontent Like the content property of instances of the

HTTPClient class of server-side Java Script, thiscommand shows the content of a document fetchedbefore.

getKeepAlive Like the keepAlive property of instances of theHTTPClient class of server-side Java Script, thiscommand shows the current setting of HTTPKeepAlive.

getMethod Like the method property of instances of theHTTPClient class of server-side Java Script, thiscommand shows the current HTTP method.

getPostData Like the postData property of instances of the

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 147

Page 148: Livelink WCM 9.5 SystemIntegration_en

Command DescriptionHTTPClient class of server-side Java Script, thiscommand shows the current HTTP POST data.

getRequestHeader Like the requestHeader property of instances of theHTTPClient class of server-side Java Script, thiscommand shows the current HTTP request headers.

getReuseSessionSSL Like the reuseSessionSSL property of instances ofthe HTTPClient class of server-side Java Script, thiscommand shows whether the SSL session id is goingto be reused with the next request.

getSessionSSL Like the getSession() member function in theHTTPClient class of server-side Java Script, thiscommand shows the SSL session id, which might be abinary value.

getTimeout Like the timeout property of instances of theHTTPClient class of server-side Java Script, thiscommand shows the delay before a request is givenup.

getUserAgent Like the userAgent property of instances of theHTTPClient class of server-side Java Script, thiscommand shows the user agent string passed alongwith the HTTP requests.

responseHeader Like the responseHeader property of instances ofthe HTTPClient class of server-side Java Script, thiscommand shows the HTTP header returned by theweb server.

resultCode Like the resultCode property of instances of theHTTPClient class of server-side Java Script, thiscommand shows the HTTP status code returned by theweb server. It indicates whether the HTTP requestsucceeded (a number in the range from 200 to 299) ornot (any other number). If not, then the numberreturned gives you some hint what went wrong. Themeaning of the value is standardized in Request forComment (RFC) #2616 (“Hypertext TransferProtocol—HTTP/1.1”).

sendRequest Like the sendRequest() member function in theHTTPClient class of server-side Java Script, thiscommand sends a HTTP request to a certain URL.This command expects the following key / value pair:

URLThe URL indicating protocol, port, server, pathand query string. Protocols supported are “http”

TaskAgent Additional Components

Page 148 Livelink WCM Server - System Integration Manual

Page 149: Livelink WCM 9.5 SystemIntegration_en

Command Descriptionand “https”.

setKeepAlive Like the keepAlive property of instances of theHTTPClient class of server-side Java Script, thiscommand modifies the current setting of HTTPKeepAlive. This command expects the following key /value pair:

STATEA binary value indicating whether HTTPKeepAlive 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 theHTTPClient class of server-side Java Script, thiscommand allows for modification of the current HTTPmethod. This command expects the following key /value pair:

METHODAn arbitrary string indicating the HTTP methodto be set. Note, however, that your web serverwill only support a restricted set of methods, mostnotably GET, HEAD, POST and maybe PUT.

setPostData Like the postData property of instances of theHTTPClient class of server-side Java Script, thiscommand modifies the current HTTP POST data. Thiscommand expects the following key / value pair:

POSTDATAAn arbitrary string to be taken as the HTTP postdata.

setRequestHeader Like the requestHeader property of instances of theHTTPClient class of server-side Java Script, thiscommand modifies the current HTTP request headers.This command expects the following key / value pair:

HEADERAn arbitrary string to be taken as the HTTPrequest header. Each non-quoted word constitutesa separate header line.

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 149

Page 150: Livelink WCM 9.5 SystemIntegration_en

Command Description

setReuseSessionSSL Like the reuseSessionSSL property of instances ofthe HTTPClient class of server-side Java Script, thiscommand influences whether the SSL session id isgoing to be reused with the next requests. Thiscommand expects the following key / value pair:

STATEA binary value indicating whether the SSLsession id is going to be reused with the nextrequests or not. Possible values are 0 (indicatingno) and 1 (indicating yes).

setSessionCacheModeSSLLike the setSessionCacheModeSSL property ofinstances of the HTTPClient class of server-side JavaScript, this command sets the SSL session cachemode. This command expects the following key /value pair:

MODEAn integer indicating the session cache mode.

setSessionSSL Like the setSession() member function in theHTTPClient class of server-side Java Script, thiscommand sets a SSL session id. This commandexpects the following key / value pair:

SESSIONIDAn arbitrary string to be taken as the SSL sessionid.

setSessionTimeoutSSL Like the setSessionTimeoutSSL property ofinstances of the HTTPClient class of server-side JavaScript this command sets a SSL session timeout. Thiscommand expects the following key / value pair:

SECONDSAn integer value indicating the timeout inseconds.

setTimeout Like the timeout property of instances of theHTTPClient class of server-side Java Script, thiscommand specifies the delay before a request is givenup. This command expects the following key / value

TaskAgent Additional Components

Page 150 Livelink WCM Server - System Integration Manual

Page 151: Livelink WCM 9.5 SystemIntegration_en

Command Descriptionpair:

SECONDSAn integer value indicating the timeout inseconds.

setUserAgent Like the userAgent property of instances of theHTTPClient class of server-side Java Script, thiscommand modifies the user agent string passed alongwith the HTTP requests. This command expects thefollowing key / value pair:

USERAGENTAn arbitrary string to be taken as the user agentidentifier.

useAuthentication Like the useAuthentication() member function inthe HTTPClient class of server-side Java Script, thisadds HTTP “Basic” Authentication records to theHTTP request. Possible keywords are:

USERThe mnemonic user name.

PASSWORDThe password of the user specified. For your ownsecurity please ensure that access to configurationfiles containing passwords is restricted to the bareminimum.

useProxy Like the useProxy() member function in theSOAPClient class of server-side Java Script, thisenables you to use HTTP proxies like applicationfirewalls or caching proxies between the TaskAgentand the provider of the SOAP web service. Possiblekeywords are:

HTTPPROXYSERVERThe name of the proxy server.

HTTPPROXYPORTThe port number identifying the proxy service onthe proxy server. The default is “80”.

useProxyAuthenticationlike the useproxyauthentication() memberfunction in the SOAPClient class of server-side Java

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 151

Page 152: Livelink WCM 9.5 SystemIntegration_en

Command DescriptionScript, this switches on HTTP “Basic” authenticationto identify the TaskAgent at a proxy between theTaskAgent and the provider of the SOAP web service.Possible keywords are:

USERThe mnemonic user name.

PASSWORDThe password of the user specified. For your ownsecurity please ensure that access to configurationfiles containing passwords is restricted to the bareminimum.

“COMMAND”s forthe “SOAP”calltype

You can use it to remotely call virtually every SOAP web service out there.Because SOAP is a very general concept, the TaskAgent has to be adapted to theSOAP web services that need to be remotely controlled. This is done bycustomizing the configuration file. This section contains a complete explanationof each keyword special to the SOAP calltype.

Command Descriptioncall Like the call() member function in the

SOAPClient class of server-side Java Script, thisinitiates a SOAP remote procedure call. Keywordsrecognized are:

FUNCTIONThe name of the remote function to call.

ARGUMENTThe arguments transmitted along with thefunction call. Their types should match thedeclaration of the function specified that is likelyto be published within some Web ServicesDescription Language (WSDL) file. MultipleARGUMENT lines are concatenated. For a detailedand complete specification of the format for thiskeyword see section “Format of ARGUMENT andHEADER values”.

The FUNCTION value is mandatory. If any ARGUMENTsare left out, then the effect is the same as giving anempty argument list.

TaskAgent Additional Components

Page 152 Livelink WCM Server - System Integration Manual

Page 153: Livelink WCM 9.5 SystemIntegration_en

Command Descriptionerror Similar to the error property of instances of the

SOAPClient class of server-side Java Script thisfunction prints the return value of the SOAP remoteprocedure call just finished.

errorMessage Similar to the errorMessage property of instances ofthe SOAPClient class of server-side Java Script thisfunction prints the error message of the SOAP remoteprocedure call just finished.

setSOAPAction Like the setSOAPAction() member function in theSOAPClient class of server-side Java Script thisfunction sets a SOAP action header. This commandexpects the following key / value pair:

ACTIONHEADERThe action header to be sent along the SOAP call.

setSOAPHeader Like the setSOAPHeader() member function in theSOAPClient class of server-side Java Script thisfunction sets the SOAP header, if the following key /value pair is given:

HEADERThe contents of the SOAP header. MultipleHEADER lines are concatenated. For a detailed andcomplete specification of the format for thiskeyword see section “Format of ARGUMENT andHEADER values”.

setTargetNamespace Like the setTargetNamespace() member functionin the SOAPClient class of server-side Java Scriptthis function sets a SOAP namespace. The keywordsexpected are:

NAMESPACEThe namespace to be set.

NAMESPACEPREFIXThe namespace prefix to be set.

setTargetURL Like the setTargetURL() member function in theSOAPClient class of server-side Java Script thiscommand has to be executed to specify the UniformResource Locator (URL) of the SOAP webservice.You have to provide the mandatory key / value pair:

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 153

Page 154: Livelink WCM 9.5 SystemIntegration_en

Command DescriptionURL

The value is the URL.

showSOAPRequest Like the showSOAPRequest() member function inthe SOAPClient class of server-side Java Script thiscommand prints the whole SOAP request as it wouldhave been sent using the call command, i.e. in XML.

showSOAPResponse Like the showSOAPResponse() member function inthe SOAPClient class of server-side Java Script thiscommand prints the whole SOAP response as receivedby the TaskAgent from the SOAP web service, whichhas been initiated by a former call command.

useAuthentication Like the useAuthentication() member function inthe SOAPClient class of server-side Java Script, thisadds HTTP “Basic” Authentication records to theHTTP request. Possible keywords are:

USERThe mnemonic user name.

PASSWORDThe password of the user specified. For your ownsecurity please ensure that access to configurationfiles containing passwords is restricted to the bareminimum.

useProxy Like the useProxy() member function in theSOAPClient class of server-side Java Script, thisenables you to use HTTP proxies like applicationfirewalls or caching proxies between the TaskAgentand the provider of the SOAP webservice. Possiblekeywords are:

HTTPPROXYSERVERThe name of the proxy server.

HTTPPROXYPORTThe port number identifying the proxy service onthe proxy server. The default is 80.

useProxyAuthenticationLike the useProxyAuthentication() memberfunction in the SOAPClient class of server-side JavaScript, this switches on HTTP “Basic” authenticationto identify the TaskAgent at a proxy between theTaskAgent and the provider of the SOAP web service.

TaskAgent Additional Components

Page 154 Livelink WCM Server - System Integration Manual

Page 155: Livelink WCM 9.5 SystemIntegration_en

Command DescriptionPossible keywords are:

USERThe mnemonic user name.

PASSWORDThe password of the user specified. For your ownsecurity please ensure that access to configurationfiles containing passwords is restricted to the bareminimum.

4.10.5 Format of „ARGUMENT“ and „HEADER“ values

Generalinformation

Because the format of the value associated to both the ARGUMENT key of the callcommand and the HEADER key of the setSOAPHeader command is the same, thedescription in this section is valid for both.

Beyond the information given in this manual, the showSOAPRequest commandhelps you investigate further how the values of ARGUMENT and HEADER aretranslated. This can be useful for debugging purposes.

SOAP arguments are type safe. As usual with typed programming languages thereare some fundamental types and language constructs to build compound typesfrom more simple building blocks. Moreover, it is possible to apply commentswithin a value definition.

Fundamentaldata types

The TaskAgent recognizes the following fundamental data types:

Name SOAP equivalent Usebase64Binary xsd:base64Binary Binary data, base64 encoded.boolean xsd:boolean Boolean data. The value “0”

indicates false, the value 1indicates true. Values differentfrom 0 and 1 are not allowed.

date xsd:dateTime Calendar date. Possible formatsare the same as in theDate(String) constructor ofthe Date class of server-sideJava Script.

double xsd:double Floating point number withdouble precision. 3.1416 is a

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 155

Page 156: Livelink WCM 9.5 SystemIntegration_en

Name SOAP equivalent Usepossible input, 1.0e2 is alsorecognized as valid and equals100.0.

int xsd:int Integer number. 42 is validdecimal input, 052 is treated asan octal number that equals thedecimal number 42, and 0x2a istreated as a hexadecimal numberwith the same value as above.

string xsd:string Text string. If it consists of morethan only one word, then it mustbe quoted using single quotes.Quoted single quotes must thenbe escaped by a backslash [\]

not to be interpreted as the endof the whole string. The separatesection “How to quote” explainsquoting in detail.

The format of a value of any fundamental data type is designed similarly to theSOAPClientArguments 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 typedetermines how the value is going to be interpreted by the TaskAgent and howthe value is put into the SOAP XML data to be sent to the web service. Thesemicolon acts as a terminator.

Example: StringThis example demonstrates the way how to quote strings consisting ofmultiple words.

'it\'s raining cats and dogs' string;

This means that “it’s raining cats and dogs” is to be interpreted as a value oftype “string”.

Compound datatypes

The TaskAgent supports two compound types: structures and arrays. The in-depthexamples should enable users to unleash the whole power of the TaskAgent,because after they’ve read the following subsections they can build arbitrarilycomplex SOAP ARGUMENTs and HEADERs.

TaskAgent Additional Components

Page 156 Livelink WCM Server - System Integration Manual

Page 157: Livelink WCM 9.5 SystemIntegration_en

The basic ingredient of any compound type is a set of fundamental data types asdescribed in the above section.

StructuresMembers of structures are identified by name. Therefore the first wordexpected in a definition of a member value is its name inside the structure.Note that this name must match SOAP naming conventions to besuccessfully processed.

Named strings given as values constitute members of SOAP structures.Members inside a structure are separated by semicolons.

Example: Basic structureThis example shows two different ways to pass arguments to a SOAPfunction. During transmission of the arguments they are implicitlypacked together into a surrounding SOAP structure, so the SOAP calltreats 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 andpassword. Both members are of type string. The value of user is$user, the value of password is $password, if not translated todifferent 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 oflines in the above sense works only if each is terminated by a semicolon.

To nest structures within other structures or arrays, the user putssubstructures 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 andtemperature. prose is a string that evaluates to rain. temperatureis 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; }; ];

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 157

Page 158: Livelink WCM 9.5 SystemIntegration_en

This makes daySeries an array (see section “Arrays” for explanation)with the first member being a structure. This structure consists of twomembers. The member called dow is a string and evaluates to Fri. Themember called dom is an integer with the value 13.

daySeries is a member of the basic structure each ARGUMENT consistsof as described above.

ArraysWith SOAP, arrays are quite similar to structures. Each member even of thesame array can be of any type independent of the types of the other membersof the same array. This is different from what is called an array, a field ora vector in many popular programming languages.

The only difference between SOAP arrays and SOAP structures is thatmembers of structures are accessed by name, whereas members of arrays areaccessed by position. Therefore members of arrays don’t have namesassociated with them.

Arrays can be established using square brackets.

Example: ArrayA table cell can be identified by a two dimensional array containing theappropriate row and column IDs.

ARGUMENT=tableCellIndex [ 7 int; 3 int; ];

This makes tableCellIndex a two dimensional array. Both membersare equally typed, that is they are of type int. The first memberevaluates as 7, the second one as 3.

tableCellIndex is a member of the basic structure each ARGUMENT

consists of as described above.

Comments insideof valuedefinitions

It is possible to put comments inside a value definition. The TaskAgent supportstwo kinds of comments: Block comments between and including “/*” and “*/”,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;

TaskAgent Additional Components

Page 158 Livelink WCM Server - System Integration Manual

Page 159: Livelink WCM 9.5 SystemIntegration_en

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 specialcharacters. In the case of strings for example, it is likely that spaces should not beinterpreted 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 intosingle quotes.

Example: How to quote multiple characters:

‘Multiple characters can be quoted mosteasily with single quotes’

The second one enables the user to quote a single character by preceding it with abackslash.

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

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 159

Page 160: Livelink WCM 9.5 SystemIntegration_en

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 CMEngineSOAP webservices. However, this means in no way that the TaskAgent was limited to these servicesonly. In fact, you can call any SOAP webservice out there.

Issue one callonly

This example shows how to design a configuration file that deals with theUserManager. It is assumed that the web server does not require HTTPauthentication. Instead, the example shows how to authenticate oneself to getpermission to call functions of the UserManager.

[loadUser]CALLTYPE=SOAPCOMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/aSite/UserManagerCOMMAND=setSOAPHeaderHEADER=user $user string; password $password string;COMMAND=callFUNCTION=LoadUserARGUMENT=name $user string;COMMAND=errorCOMMAND=errorMessage

Here we intended the password to be hidden from the configuration file by usingthe macro facility; note however that the command line can easily be spied out onmany operating systems, so this is less safe than writing the password into aconfiguration file with restricted read access. We have also hidden the user IDfrom the file, both to force reuse of this configuration file by keeping it generaland to ensure consistency, because we want to authenticate as the same user thatgets loaded.

Assuming that you have named this file c:\taskagent.cfg, you can let theTaskAgent 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 performanything more. It can be stopped using [Ctrl]-[C] then.

Periodically issuea task

This example demonstrates how you can use the goto command to scheduletasks:

TaskAgent Additional Components

Page 160 Livelink WCM Server - System Integration Manual

Page 161: Livelink WCM 9.5 SystemIntegration_en

[chartEngine]CALLTYPE=SOAPCOMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/aSite/ObjectManagerCOMMAND=setSOAPHeaderHEADER=user $user string; password $password string;COMMAND=callFUNCTION=UpdateChartsCOMMAND=gotoDESTINATION=chartEngineSECONDS=3600

Here we intended the password to be hidden from the configuration file by usingthe macro facility; note however that the command line can easily be spied out onmany operating systems, so this is less safe than writing the password into aconfiguration file with restricted read access. We have also hidden the userIDfrom 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 theTaskAgent 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 sleepfor 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 howthis can be done. Killing the TaskAgent has no bad side effects as long as youchoose 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 stopthe TaskAgent without the chance to clean up.

If installed as a UNIX daemon resp. MS Windows service, each platform alsoprovides a way to temporarily disable the TaskAgent. The appropriate MSWindows service can be paused by pressing the “Pause” button, the UNIXdaemon can be sent the “HUP” signal (kill –HUP) to toggle between therunning and the paused state. An entry in the log file will be written whenever theTaskAgent 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 thatyou can be sure it will be started automatically at system boot.

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 161

Page 162: Livelink WCM 9.5 SystemIntegration_en

Because services and daemons run in the background, the TaskAgent is not associated to a terminaldevice any more. This means that error messages and warnings concerning syntax errors within theconfiguration file get lost. So it is very important that you test a configuration using the TaskAgent as acommand 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 thetwo lines containing taskagent. Adapt the command line parameters to yourneeds (see also the “Create a startup script” paragraph in the Linux / Solarisinstallation chapter).

MS Windows NT To install the TaskAgent as a service, just type taskagent –install. Now itwill be installed with no fixed command line options. Command line options canbe specified via the “Properties” window then. The TaskAgent needs at least onesection name to be given on the command line, otherwise it will not start. As saidabove, 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 withthe chartEngine command line option. Other command line options can bespecified 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 hascaused the error. Messages for this kind of errors are written to the screen.

Message Meaning Most likely reasons Erroneous example codeand its correction

No type name found

in expression

A name of a fundamentaltype was expected but hasnot been found at the placewhere it should have been.

Type name misspelled orleft out 42 innt;

instead of

42 int;

Can't interpret:

“[some string]” (too

many words?)

After the parser hasfinished some subtask,there’s still some text leftthat can’t be parsed.

Probably a string valueconsisting of many wordshas not been quotedcorrectly.

A string is astring string;

instead of

TaskAgent Additional Components

Page 162 Livelink WCM Server - System Integration Manual

Page 163: Livelink WCM 9.5 SystemIntegration_en

Message Meaning Most likely reasons Erroneous example codeand its correction‘A string is astring’ string;

Missing end of

comment

A block comment has notbeen closed.

Either the “*/” token hasbeen completely left or it’sthere after a line break –the current implementationdoes not allow even for thelatter.

weather /* goodbad string;

instead of

weather /* good */bad string;

Missing closing

quotation mark

A quoted string neverends.

Either the “’” token hasbeen completely left or it’sthere after a line break –the current implementationdoes not allow even for thelatter.

‘A string is astring string;

instead of

‘A string is astring’ string;

Deadlock detected.

Too many [some

command]s in section

[a section name]?

Just ignoring [the

command] with

DESTINATION set to

[another section

name], that

otherwise would have

caused the deadlock.

The configuration fileexponentially increasesload.

More than one recursiveGOTO command within thesame section given.

See the “Applications”section.

Type format error – it causes the TaskAgent to skip processing the“COMMAND” that has caused the error. Messages for this kind of errors arewritten to the screen.

Message Meaning Most likely reasons Erroneous example codeand its correction

Can't interpret

"[some value]" as an

instance of type

"[name of some

fundamental type]"

The value of a certain typehas been formattedillegally.

An integer is written with adecimal point like doublesor vice versa. “True” isused as a boolen value etc.

false bool;

instead of

0 bool;

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 163

Page 164: Livelink WCM 9.5 SystemIntegration_en

Other errors in configuration files – causes the TaskAgent to skip the section ofthe configuration file that has caused the error. Messages for this kind of errorsare written to the screen.

Message Meaning Most likely reasons Erroneous example codeand its correction

Section not found On the command line orvia the goto command aname has been given thatis not a section name.

Misspelled name given.Name pointed to by theDESTINATION key inside agoto command has beenchanged silently by meansof a -macro command lineoption.

Name of logfile

can't equal the

empty string!

Logfiles must be givennon-empty names by theLOGFILE keyword.

The user assumed that byassigning nothing toLOGFILE a default valuewould have been chosen.

Remote error, detected by means of detectError – causes the TaskAgent toskip the section of the configuration file that has initiated the error. Messages forthis kind of errors are written to the LOGFILE, if specified, otherwise to thescreen.

Message Meaning Most likely reasons Erroneous example codeand its correction

[Date]: Error:

Remote call to

"[some remote

function name]"

failed. Error code

returned: “[some

number]”. Error

message returned:

“[some string]”.

Skipping remainder

of section "[some

section name]".

A function call to a webservice failed on theremote side. Check theexact error messagereturned!

Because this is beyond theresponsibility of theTaskAgent, consult themanual of the web service,please.

Error detection might beincorrectly configured, too.

Warningmessages

Message Meaning Most likely reasons Erroneous example codeand its correction

Usage warning. Messagesfor this kind of errors arewritten to the screen.Missing trailing

semicolon silently

corrected at cursor

position [a number]

A HEADER or ARGUMENTline does not end on [;]

though this is mandatorywith the currentimplementation. This errorcould be corrected silently,however.

Just forgot the semicolon.ARGUMENT=id 42 int

instead of

ARGUMENT=id 42int;

Exit warning. Messagesfor this kind of errors are

TaskAgent Additional Components

Page 164 Livelink WCM Server - System Integration Manual

Page 165: Livelink WCM 9.5 SystemIntegration_en

Message Meaning Most likely reasons Erroneous example codeand its correction

written to the screen.Finishing… The TaskAgent received a

user request to stopworking cleanly.

The TaskAgent has beenkilled in some platformspecific way.

Internal errors Message Meaning Most likely reasons“[some function

name]”: Internal

error

The TaskAgent ran into anunexpected state.

This is a bug of theTaskAgent.

In case you see such a baderror message pleasecontact support. Provide itwith the exact errormessage, the configurationfile used, the versionnumber of the TaskAgentand with the command lineissued, please. You canhelp to decrease theresponse time if you try tosimplify your setup asmuch as possible, in a waythat both your setup issimple and the bug stillremains reproducible.

4.10.9 Applications

This section summarizes some applications of the TaskAgent in connection with the CMEngine. Asingle configuration file is used for all example applications. There is a distinct section in theconfiguration 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...

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 165

Page 166: Livelink WCM 9.5 SystemIntegration_en

# 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=detectErrorERRORSTATE=0MODE=onSuccessSECONDS=1800COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/aSite/WorkflowManager# HTTP authentication...COMMAND=useAuthenticationUSER=$user0PASSWORD=$password0# SOAP authentication...COMMAND=setSOAPHeaderHEADER=user $user1 string; password $password1 string;COMMAND=call# A function name...FUNCTION=TriggerWorkflowEngine# Repeat the execution of the current section every 10 seconds...COMMAND=gotoDESTINATION=workflowManagerSECONDS=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=detectErrorERRORSTATE=0MODE=onSuccessSECONDS=1800COMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/ObjectManager# HTTP authentication...COMMAND=useAuthenticationUSER=$user0PASSWORD=$password0# SOAP authentication...COMMAND=setSOAPHeaderHEADER=user $user1 string; password $password1 string;COMMAND=call# A function name...FUNCTION=UpdateCharts# Repeat the execution of the current section once an hour...COMMAND=gotoDESTINATION=chartEngineSECONDS=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

TaskAgent Additional Components

Page 166 Livelink WCM Server - System Integration Manual

Page 167: Livelink WCM 9.5 SystemIntegration_en

# only.COMMAND=detectErrorERRORSTATE=0MODE=onSuccessCOMMAND=setTargetURL

URL=http://aMachineName:aPortNumber/DataTableTool# HTTP authentication...COMMAND=useAuthenticationUSER=$user0PASSWORD=$password0# SOAP authentication...COMMAND=setSOAPHeaderHEADER=user $user1 string; password $password1string;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=detectErrorERRORSTATE=0MODE=onSuccess# UNIX...COMMAND=cmdLineARGUMENT=(Hello %i World %s) 10 fgfgfCOMMAND=executeEXECUTABLE=/usr/bin/printf# MS Windows NT...# COMMAND=cmdLine# ARGUMENT=/C echo 'this is the TaskAgent'# COMMAND=execute# EXECUTABLE=cmd.exeCOMMAND=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=detectErrorERRORSTATE=200MODE=onSuccessSECONDS=1800# HTTP authentication...COMMAND=useAuthenticationUSER=$user

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 167

Page 168: Livelink WCM 9.5 SystemIntegration_en

PASSWORD=$passwordCOMMAND=sendRequest

URL=http://aMachineName:aPortNumber/aSite?debug=refreshstatictables# Repeat the execution of the current section once an hour...COMMAND=gotoDESTINATION=refreshSECONDS=3600

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

TriggerWorkflowManager

To externally trigger the workflow manager of the CMEngine periodically every10 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 chartsonce 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

Scheduleexecution ofarbitrary binaries

The above configuration file contains a trivial example for the EXECUTABLE

calltype, which does the same as the echo command. To try, simply type

taskagent –conf c:\taskAgent.cfg helloWorld

Refresh statictables of theWCM Server

The CMEngine permanently keeps the contents of some database tables in themain memory. These tables are referred to as “static tables”. When changes tothese tables are made, the CMEngine must be told to re-read them. This task canbe automated with the TaskAgent by means of its “HTTP” calltype. To schedulethis task in a way that it is repeated once an hour or, if an error occurred, every 30minutes, just type

taskagent –conf c:\taskagent.cfg refresh –macro refresh $user=aHTTPUser -macro refresh $password=topSecret

TaskAgent Additional Components

Page 168 Livelink WCM Server - System Integration Manual

Page 169: Livelink WCM 9.5 SystemIntegration_en

Detectingpotentialdeadlockscaused bymaliciousconfiguration files

The asynchronous goto command is very powerful. However, users can produceloads which increase exponentially by means of this command. No computercould handle such load. Therefore the TaskAgent guards against suchconfiguration entries. This can only be done at runtime, often only after a certaindelay. You can easily check this mechanism by typing

taskagent –conf c:\taskAgent.cfg deadlock

The section [deadlock] therefore shows you how not to design a configurationfile for the TaskAgent.

Remotely Callingserver-side JavaScript Functions

This section demonstrates how to remotely call server-side Java Script functionsand passing arbitrarily complex arguments with the call.

This example demonstrates both how to persistently edit the last row in a datatable using server-side Java Script and how to remotely call the appropriatefunction using the TaskAgent. The table is assumed to contain a descriptive labelin the first column – the other columns contain the real data.

We are going to use the following script. It is named DataTableTool and hasbeen 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, SwitzerlandAll 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. Thisfunctionality 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-datatablesort.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;}

Additional Components TaskAgent

Livelink WCM Server - System Integration Manual Page 169

Page 170: Livelink WCM 9.5 SystemIntegration_en

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 lastrow</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 whichhas 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 intothe data table with object ID 3104.

TaskAgent Additional Components

Page 170 Livelink WCM Server - System Integration Manual

Page 171: Livelink WCM 9.5 SystemIntegration_en

4.11 Professional Workflow

Install the licensekey

The Professional Workflow component needs a separate license that must beadded to the engine’s configuration file (cmengine.cfg). Here is an example:

MODULETYPE01=WorkflowMODULEKEY01=ABCD-EFGH-IJKL-MNOP-QRST-UVWX-YZMODULEHOLDER01=ACME Corporation

Configureworkflow engine

The workflow engine is started as a separate process. It is responsible forperiodically checking if there are any tasks overdue or any notifications to besent. If there are, it executes them and then sleeps for a configurable amount oftime until it starts over.

Activate theworkflow engine(Windows)

The workflow engine is started and run in the background by theServiceControl.exe

4.12 Deployment

Purpose deployment is a shell-based tool that you can use for importing and exportingdata from and to the WCM Server repository, for synchronization and other tasks.Combined with an external scheduler, you can even automate the execution ofthese 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 isdescribed in the following paragraphs.

Additional Components Professional Workflow

Livelink WCM Server - System Integration Manual Page 171

Page 172: Livelink WCM 9.5 SystemIntegration_en

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 isnot appropriate for performance reasons)

If ever possible, you should prefer online synchronization, because it is moresecure, you have less to configure, and therefore it is less susceptible for errors.

Offline synchronization requires the configuration and execution of four singlesteps for each slave database. Data exchange of offline synchronizations can becarried out via file system, FTP server or e-mail. The success of such asynchronization heavily depends on the used method of data exchange: If the FTPserver is not available or if an e-mail gets lost (or arrives late at the receiver), thesynchronization remains incomplete, requiring an enhanced synchronization. Anenhanced synchronization is not a differential synchronization since the lastsynchronization 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 andyou need a reasonably fast network connection.

Configuration file The configuration file is quite simple; it only contains information of theindividual databases. The master database has to be the first one in theconfiguration file, the sequence of the slave databases is arbitrary.

[master]DBTYPE=MSSQLDBNAME=dbsync_masterDBUSER=saDBPWD=

LOGFILE=/opt/livelink/wcm/type1/logs/sync.logWORKINGPATH=/opt/livelink/wcm/type1/cache/sync

[slave1]DBTYPE=MSSQLDBNAME=dbsync_slaveDBUSER=saDBPWD=

[slave2]DBTYPE=MSSQLDBNAME=dbsync_slave2

Deployment Additional Components

Page 172 Livelink WCM Server - System Integration Manual

Page 173: Livelink WCM 9.5 SystemIntegration_en

DBUSER=saDBPWD=

As always when using Oracle, you have to set the version and the path to theclient 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 bein the following format (and must be the same as seen in the Site Administrator'sSynchronization Tool):/<mydatabasename>/dbname/defdb/<myusername>/<myusername>,where <mydatabasename> is the Net Service Name of the Oracle database (thesame as in the DBNAME parameter), while dbname and defdb are literal stringsthat must appear as they are. For example if your database name is llwcm and theuser is wcmdemo, the identifier would look like:/llwcm/dbname/defdb/wcmdemo/wcmdemo.

[master]USEDBVERSION=Oracle 10.1.0USEDBLIBRARY=/opt/oracle/product/10.1.0/lib/libclntsh.so

DBIDENTIFIER=/llwcm/dbname/defdb/dbsync_master/dbsync_masterDBTYPE=OracleDBNAME=llwcmDBUSER=dbsync_masterDBPWD=

LOGFILE=/opt/livelink/wcm/type1/logs/sync.logWORKINGPATH=/opt/livelink/wcm/type1/cache/sync

[slave1]DBIDENTIFIER=/llwcm/dbname/defdb/dbsync_slave/dbsync_slaveDBTYPE=OracleDBNAME=llwcmDBUSER=dbsync_slaveDBPWD=

[slave2]DBIDENTIFIER=/llwcm/dbname/defdb/dbsync_slave2/dbsync_slave2DBTYPE=OracleDBNAME=llwcmDBUSER=dbsync_slave2DBPWD=

Parameters dbtype, dbname, dbuser and dbpwd correspond to the same parameters of theCMEngine’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.

Additional Components Deployment

Livelink WCM Server - System Integration Manual Page 173

Page 174: Livelink WCM 9.5 SystemIntegration_en

4.12.3 Offline Synchronization

Prerequisite Offline synchronization does not require direct access to all involved databasesfrom one place, but you need a reliable third party system for the actual dataexchange. In addition, a proper time scheduling is essential for automated offlinesynchronization. Mixing up the individual steps of the synchronization can causedata 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 themaster database.

Procedure Per slave database, you have to perform 4 individual steps (8 steps if you haveseveral slave databases) and the sequence of the steps is compulsory. Theindividual 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 avoidoverlapping of this sequence with a sequence of another slave database. In otherwords, fully synchronize your slave databases one after the other.

Especially in environments with several slave databases, not every database willknow of all changes (for example change of group membership of an object) ofall other databases after having run the four steps once for each database.Therefore, you have to repeat the entire procedure for a second time. Forexample:

• 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 filestep 1 (and 5)

[slave]dbtype=mssqldbname=dbsync_slavedbuser=sadbpwd=mode=writefiledestination=1

Deployment Additional Components

Page 174 Livelink WCM Server - System Integration Manual

Page 175: Livelink WCM 9.5 SystemIntegration_en

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.osfftpuser=ftppwd=ftpport=21

The file name indicates the path and the name of the file. ftpuser, ftppwdand ftpport are the usual access parameters.

• via e-mail

[email protected]

The generated file with the extension .osf will be sent as an attachment tothe indicated address, a file name is not possible. This type of data exchangeis the least reliable one, because late delivery of an e-mail will confuse thesequence of the necessary synchronization steps.

Configuration filestep 2 (and 6)

[master]dbtype=mssqldbname=dbsync_masterdbuser=sadbpwd=mode=readfile

a) via file system

Additional Components Deployment

Livelink WCM Server - System Integration Manual Page 175

Page 176: Livelink WCM 9.5 SystemIntegration_en

filename=c:\temp\test.osf

b) via FTP server

filename=ftp://ftp.intra.openmind.ch/test2.osfftpuser=ftppwd=ftpdelete=yes

c) via e-mail

mailserver=127.0.0.1mailport=110mailuser=einsteinmailpwd=einstein

Most of the parameters correspond to those of step 1. In addition, you can specifyftpdelete=yes|no to control the deletion of the file on the FTP server after ithas been transferred. Default value is yes.

Configuration filestep 3 (and 7)

Like step 1, but with the master database as source and the slave database asdestination (destination=2).

Configuration filestep 4 (and 8)

Like step 2, but with the slave database as destination.

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. Ifyou have one single slave database, specify the parameter in the steps 1 and 3, ifyou have several slave databases specify the parameter in steps 5 and 7.

Specifying this parameter causes the automatic correction of the entries in thesynchronization database, in order to avoid concurrent editing rights on more thanone slave database for objects, of which the group membership has been changed.If you omit this parameter, the objects with changed group membership can beedited on different slave databases, which prohibits future synchronization ofthese objects! (In such a case, only manual correction of the affected databaserows could produce relief.)

Deployment Additional Components

Page 176 Livelink WCM Server - System Integration Manual

Page 177: Livelink WCM 9.5 SystemIntegration_en

This is a further reason for preferring online synchronization, which uses thisparameter correctly and automatically.

EnhancedSynchronization

Usually, synchronization is always incremental, meaning that only those elementsare synchronized that have changed since the last synchronization run. The dateand 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 beexecuted completely – for example because of the loss of a transfer file – but theentry in the SYNCDATA table has already been made. In such a case, the systemcan no longer recognize the incompleteness of the synchronization, and not allobjects that are subject to synchronization are distributed correctly to thenecessary destinations.

The parameters SyncTime and SyncTimeDelta allow performing an enhancedsynchronization.

SyncTime=01.01.2003 00:00

This parameter causes the system to synchronize all objects that have beenchanged since January 1st of 2003, 00:00.

SyncTimeDelta=7d

or

SyncTimeDelta=168h

This parameter causes the system to synchronize all objects that have beenchanged 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 thelast seven days, you create a gap of three days. All objects that have been changedin these three days will never be synchronized in this case.

The parameters described above must be placed in the first section of theconfiguration file.

4.12.4 Object Transfer

Additional Components Deployment

Livelink WCM Server - System Integration Manual Page 177

Page 178: Livelink WCM 9.5 SystemIntegration_en

Usagedeployment transfer -w xxx.ood [yyy.oxp]deployment transfer -r xxx.ood [yyy.oxp]deployment transfer -t xxx.ooddeployment transfer -d xxx.ood

transferindicates the function group

-wwrites an .oxp file (object export)

-rreads an .oxp file (object import)

-tdirect object transfer

-ddelete objects

xxx.oodis the parameter file which has to be created inside the Site Administrator

yyy.oxpis 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 SiteAdministrator:

• 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 SiteAdministration Manual.

4.13 Server Architecture for the Distributed CMEngine

Note

Please note that the Distributed Engines are not part of the standard release setany more. They are available only upon special request. Please contact support ifyou need them.

Comments In a so-called “distributed setup”, the CMEngine is no longer bound directly to

Server Architecture for the Distributed CMEngine Additional Components

Page 178 Livelink WCM Server - System Integration Manual

Page 179: Livelink WCM 9.5 SystemIntegration_en

the web server. Instead, the web server loads only a small stub(enginestub.dll), which handles communication with the CMEngine. Theengine runs as a separate process.

If you use USEPERMANENTCONNECT=YES in the [common] section of theenginestub.cfg and in the [common] section of the cmengine.cfg (which isrecommended), two communication channels are opened and used: The stubopens a TCP connection to the engine at the host/port defined in IPC_HOST andtells the engine that it can be reached at the host/port which is defined inLISTENERHOST. The engine then opens a connection to that host/port. Thereforeboth parameters, IPC_HOST and LISTENERHOST are defined in theenginestub.cfg. Of course, they must be different from each other. Bothchannels are “one-way streets”: Requests from the stub to the engine are made onthe one defined in IPC_HOST and the answer to it (the requested web page) isdelivered on the other one defined in LISTENERHOST.

Using two communication channels in this manner provides for much betterthroughput 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.

Additional Components Server Architecture for the Distributed CMEngine

Livelink WCM Server - System Integration Manual Page 179

Page 180: Livelink WCM 9.5 SystemIntegration_en

• Complexity: This kind of setup adds an additional level of complexity to theinstallation.

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 reverseproxy and putting the web server with the CMEngine module behind thefirewall.

• 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 moreeasily.

• If for any reason you cannot use a reverse proxy, the distributed setup mightbe 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 WebServer

Modifications to the Apache installation:

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 isimportant to set the engine as the last module to be initialized.

3. Configure enginestub.cfg (see below)

Server Architecture for the Distributed CMEngine Additional Components

Page 180 Livelink WCM Server - System Integration Manual

Page 181: Livelink WCM 9.5 SystemIntegration_en

iPlanet/SunONE/SunJava SystemWeb Server

Modifications to the installation for iPlanet/SunONE/Sun Java System:

1. Open the file obj.conf for iPlanet, magnus.conf and obj.conf forSunONE/Sun JS

2. Replace the entries for cmengine.dll with the following entry (line breaksare marked with “↵”):

<end of the initialization entries>Init fn=load-modulesshlib="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.cfgexample file

#========================================================#[COMMON]THREADCOUNT=20IPC_INFO=127.0.0.1:20333USEPERMANENTCONNECT=YESLISTENERHOST=127.0.0.1:21333

LOGFILE=C:\Livelink\wcm\type1\logs\enginestub.log

#========================================================#[WCMStarter]URLMAGIC=/wcmstarter

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

Configuring theRender Engine

Remember that if you have set USEPERMANENTCONNECT=YES in theenginestub.cfg (which is recommended), you have to set the same parameterin the [Common] section of the cmengine.cfg as well.

4.13.2 Distributed Architecture under Linux and Solaris

Configuringenginestub.so

The stub is configured via/opt/livelink/wcm/type1/conf/enginestub.cfg. Mainly, the stub has toknow about the sites that it should respond to (i.e. URLMAGIC, HOSTMAGIC) andon which host/port it can find the RenderEngine process. Here is an example:

Additional Components Server Architecture for the Distributed CMEngine

Livelink WCM Server - System Integration Manual Page 181

Page 182: Livelink WCM 9.5 SystemIntegration_en

#========================================================#[COMMON]THREADCOUNT=20IPC_INFO=127.0.0.1:20333USEPERMANENTCONNECT=YESLISTENERHOST=127.0.0.1:21333

LOGFILE=/opt/livelink/wcm/type1/logs/enginestub.log

#========================================================#[wcmstarter]#HOSTMAGIC=<hostname>URLMAGIC=/wcmstarter

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

Configuring theRender Engine

Remember that if you have set USEPERMANENTCONNECT=YES in theenginestub.cfg (which is recommended), you have to set the same parameterin the [Common] section of the cmengine.cfg as well.

ConfiguringApache 2.0

In the directory /opt/apache2/conf, the following line must be appended tothe 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 followingtwo commands:

# /opt/apache2/bin/apachectl stop# /opt/apache2/bin/apachectl start

Activate theCMEngine

In order to have the CMEngine started, we uncomment the respective entries in/opt/livelink/wcm/type1/bin/livelink-wcm-type1 (there are twoentries for the engine, one for starting and one for stopping it). As you can seefrom the example, the CMEngine accepts two parameters: An arbitrary but uniquename and the port number it should listen to. If you change it, you have to adaptenginestub.cfg as well (see below).

[...]su ${WCM1_USER} –c “${WCM1_HOME}/bin/cmengine renderer1 20333” > /dev/null2>&1 &[...]killall cmengine[...]

Server Architecture for the Distributed CMEngine Additional Components

Page 182 Livelink WCM Server - System Integration Manual

Page 183: Livelink WCM 9.5 SystemIntegration_en

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 allthe necessary environment variables are set correctly and exported.

Additional Components Server Architecture for the Distributed CMEngine

Livelink WCM Server - System Integration Manual Page 183

Page 184: Livelink WCM 9.5 SystemIntegration_en

Server Architecture for the Distributed CMEngine Additional Components

Page 184 Livelink WCM Server - System Integration Manual

Page 185: Livelink WCM 9.5 SystemIntegration_en

5 Client Installation

5.1 Introduction

Comments If your server is running under Windows, the client components may also beinstalled on the server.

Installation on the server is the same as ordinary client installation.

Using the clientpackage

1. Create the directory C:\Livelink\wcm\type1 on the client.

2. Unpack livelink-wcm-type1-client-windows-9.5.0.nnn.zip intothis directory (with use folder names checked).

Copying filesmanually

1. Create the directory C:\Livelink\wcm\type1\bin on the client.

2. Copy all files from the folder Site Management andDocumentation\Manual\SiteAdmin_Reference.chm into thisdirectory, as well as the files from Windows\Tools\SQLTransfer (ifneeded).

5.2 Site Administrator

Configuring theODBCconnections

The ODBC connections for the clients to the WCM Server database on thedatabase server are configured as described in section “Create ODBC connectionsto the databases” on page 38. If you use Oracle, do not create ODBC connectionsto the Oracle database! The Site Administrator and all other tools are able toconnect to Oracle directly via OCI.

Configuring thedatabaseconnection in theSite Administrator

1. 1. Start the Site Administrator (SiteAdmin.exe)

2. 2. Create the database connection. On the File menu, click Configure

Sites.

3. 3. - Site Name: <new site> Enter a unique name of your choice. -Database Type: Select the database type. - Data Source Name: Enter thename of the connection (for example the ODBC connection for MSSQL orthe service name of your Oracle database (as configured in tnsnames.ora)

Client Installation Introduction

Livelink WCM Server - System Integration Manual Page 185

Page 186: Livelink WCM 9.5 SystemIntegration_en

for an Oracle connection). - Database User: Enter the database owner (forexample wcm_owner) - Database Pwd Encrypted: Enter the DBOpassword (for example *******). - Website User: Enter the website/WCM Server user (default is admin). - Website Base URL:http://hostname/urlmagic/. - Browser Type: Select the defaultbrowser for external display.

Configuring theODBCconnection in theSite Administrator

Here is a completed example configuration.

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 andthe TextWizard and TableWizard. Likewise the Java JIT compiler andcookies must be enabled.

2. For the Site Manager and Java TextWizard the options “Enable Java”, Javascript and accept Cookies must be selected.

Site Manager (a.k.a. Content Manager) Client Installation

Page 186 Livelink WCM Server - System Integration Manual

Page 187: Livelink WCM 9.5 SystemIntegration_en

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 configuredaccordingly. 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 thelivelink-wcm-type1-word-windows-9.5.0.nnn.zip package to yourC:\Livelink\wcm\type1 directory with use folder names checked.Otherwise, create a directory C:\Livelink\wcm\type1\word and copy thefiles from the Solutions\Word Authoring directory on the release CD into it.

Setup Copy the WordWizard*.* files from C:\Livelink\wcm\type1\word into thestartup 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 whenthe edit icon is clicked in the browser. It must beexecuted before first use – so that the necessaryregistry keys are set.

WordWizard.dot Startup template containing the functions for enablingand disabling of the WordWizard.

WordWizard.mak The actual WordWizard code that is loaded byenabling the WordWizard. The file is a MicrosoftWord Template.

WordWizard.mnu Microsoft Word Template with configuration ofmenus and toolbars for editing WCM Server text

Client Installation WordWizard (Microsoft Word Integration)

Livelink WCM Server - System Integration Manual Page 187

Page 188: Livelink WCM 9.5 SystemIntegration_en

objects. This component is loaded when a WCMServer text object is opened. For regular Worddocuments it is switched off.

WordWizardDE.lng

WordWizardEN.lng

WordWizardFR.lng

English, German and French language files. Byrenaming one of the files to WordWizard.lng youconfigure the WordWizard for the correspondinglanguage.

The language files contain plain ASCII code andallow 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 VBAcode and are branded by a digital signature.

5.5 SQLTransfer

Note SQLTransfer is a general data transfer tool that is capable of transferring any datawithin an SQL database to another. The data transfer does not include the transferof the data model, which means that you always have to create the tables andindices in advance before you can transfer data into a new database or databaseschema. But because SQLTransfer relies on the ODBC (OCI/CLI) standardconnectivity interface, which is supported by many system vendors, it is alsocapable of transferring data between different types of database, databases ondifferent systems and offline via file export/import.

The SQLTransfer tool just needs a transfer script and, if you use an MSSQLdatabase, the preconfigured ODBC connections. Usually it is recommended to usethe Windows GUI version of SQLTransfer, as it includes a complete script wizardto generate the transfer script. The following chapters show what such a transferscript contains and what options you have.

Usage The Windows GUI version comes along with a complete user interface, but if youuse the shell version, you can call SQLTransfer like this:

sqltrans [-silent] <scriptfile>

%errorlevel% / $?

SQLTransfer Client Installation

Page 188 Livelink WCM Server - System Integration Manual

Page 189: Livelink WCM 9.5 SystemIntegration_en

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 tothe console but only to the log. Otherwise you will see warnings and some errorsdirectly in the console.

Note that the shell version called sqltrans.exe under Windows is calledsqltransfer on the Unix platforms; there is no GUI version of SQLTransfer forUnix. 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 stepwith 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

Client Installation SQLTransfer

Livelink WCM Server - System Integration Manual Page 189

Page 190: Livelink WCM 9.5 SystemIntegration_en

(…)?”. 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 selectthe 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 stepwith 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 fileagainst the database click No.

5.5.3 Direct Transfer

Note You can also define a source database and a target database together which meansthat the data will be transferred directly from database to database withoutcreating 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 Scriptbegin transfersource database type=MSSQLsource database connect=DSN=test;UID=user;PWD=xxxdump to file=test.datusedbrowprefetch=100

SQLTransfer Client Installation

Page 190 Livelink WCM Server - System Integration Manual

Page 191: Livelink WCM 9.5 SystemIntegration_en

set max field size=20000000# --------------------------------------------------------# List SQL statements for source databasebegin source sql statementsend source sql statements# --------------------------------------------------------# List SQL statements for target databasebegin target sql statementsend target sql statements# --------------------------------------------------------# List delete tables, for each name a new line# (Only tables, to be deleted in different order)begin delete tablesend delete tables# --------------------------------------------------------# List transfer tables, for each name a new linebegin tablesmytable1mytable2mytable3end tables# --------------------------------------------------------# List exclude tables, for each name a new line# (Only tables, to be excluded at import from file)begin exclude tablesend 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 tablesend change tables# --------------------------------------------------------end transfer# --------------------------------------------------------

5.5.5 Parameter Sections

General info Parameter sections define lists of items mostly needed as information about anexport, import or verify. Each item has to be on a separate line.

begin/endtransfer

Must mark the beginning and the end of the transfer script parameter section asthe log might be appended during the transfer. Each line between may containeither a parameter or a comment.

begin/end tables Marks the beginning and the end of the list of tables to be exported. Each tablename has to be on a separate line.

Client Installation SQLTransfer

Livelink WCM Server - System Integration Manual Page 191

Page 192: Livelink WCM 9.5 SystemIntegration_en

begin/end deletetables

Marks the beginning and the end of the list of tables to be deleted/truncatedbefore importing data into it. Usually the tables are deleted/truncatedautomatically before filling in but this also means that the order of tables deletedis the same as in the table list. If you have some foreign key constraints it mightbe 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 firsttable is filled again. Each table name has to be on a separate line.

begin/endexclude tables

Marks the beginning and the end of the list of tables not to be imported. Eachtable name has to be on a separate line.

begin/end sourcesql statements

Marks the beginning and the end of the list of SQL statements executed on thesource database before the transfer starts. This can be useful to run an updatescript before the export. Each SQL statement can use several lines but must beterminated 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 targetsql statements

Marks the beginning and the end of the list of SQL statements executed on thetarget database before the transfer starts. This can be useful to run a data modelcreation script before the import.

begin/endchange tables

Marks the beginning and the end of the list of changes to be made during thetransfer. It is possible to rename table names, rename field names, remap fieldtypes, exclude fields and filter specific data rows. This can be done withfollowing 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’

SQLTransfer Client Installation

Page 192 Livelink WCM Server - System Integration Manual

Page 193: Livelink WCM 9.5 SystemIntegration_en

Parameters Parameters define all information needed for an export, import or verify. Eachparameter my contain some predefined dynamic tokens that help to make anautomated import/export script. Predefined tokens are:

SYSDATE[.s]Delivers the system date with format DD.MM.YYYY. s is an optional formatparameter 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 theAmerican date format. Additionally there are the formats WWW for the name ofthe day of week (Mon, Tue, etc.) and WY for the number of the week of theyear (0 to 52).

SYSTIME[.s]Delivers the system time with format HH:MM:SS. s is an optional formatparameter 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 andminutes.

source databasetype

Defines the type of the source database. Supported are MSSQL and Oracle,Example: source database type=Oracle

source databaseconnect

Defines the source database connection. The syntax is the same as for ODBC andsupports following parameters:

DSNConnection name

UIDLogin name

PWDLogin 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 willbe 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

Client Installation SQLTransfer

Livelink WCM Server - System Integration Manual Page 193

Page 194: Livelink WCM 9.5 SystemIntegration_en

target databasetype

Defines the type of the target database. Supported are MSSQL and Oracle.

target databaseconnect

Defines the target database connection.

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 ifthe biggest blob in a table is < 2 MB. Usually this size will be automaticallydetected 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 onlySQL errors.

dbtargetlogfile Defines the path of the DBEngine log file of the target database, which logs onlySQL 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 alsobe used here. Example: USEDBVERSION=Oracle 10.1.0 (which refers to theversion of the Oracle client library, for the (rare) cases where it is different fromthe Oracle server version)

infofile Defines the path of the optional table structure information file. This file will begenerated when the source database will be exported. The file contains the tablestructure as SQL script including tables, primary keys, indices and defaults. Youcan copy and paste the SQL script directly into the sections begin/end source

SQL statements or begin/end target SQL statements of a possibleimport script.

infomode Defines the method of how the SQL script is being generated. Normal is defaultand alternate is usually a lower level method which does not always support all

SQLTransfer Client Installation

Page 194 Livelink WCM Server - System Integration Manual

Page 195: Livelink WCM 9.5 SystemIntegration_en

structures.

5.5.6 Options

General info Options predefine the behavior of SQLTransfer in specific situations. Thesepredefinitions are necessary when a batch scheduler starts the transfer scriptautomatically, and there is no possibility for interactive inputs. The result of sucha transfer is always logged including the automatically chosen options.

The allowed values are in parentheses and the first value is the default.

full log(no,yes,error)

Defines if there should be logged only errors, full or short.

clear logfile(no,yes)

Defines if the log should be cleared before the transfer.

clear dblogfile(no,yes)

Defines if the DBEngine log should be cleared before transfer.

skip transfer(no,yes)

Defines if the transfer should be skipped and the verify should be startedimmediately.

row sorting(yes,no)

Defines if the exported data rows should be strictly sorted.

skip truncatetable (no,yes)

Defines if the tables should be automatically deleted/truncated before importingdata. If this option is set to yes, the imported data will be merged together withthe already existing data rows. This works only without error if there are no rowsimported that conflict with a double primary key or unique constraint.

force truncatetable (yes,no)

Defines if truncate table instead of delete from table should be used.Truncate table is usually faster as this operation is not logged by the databaseserver but may conflict with a configured database replication because areplication needs to have all operations logged. If this is the case just set thisoption to no.

stop on error(yes,no)

Defines if the transfer should immediately stop on first error.

Client Installation SQLTransfer

Livelink WCM Server - System Integration Manual Page 195

Page 196: Livelink WCM 9.5 SystemIntegration_en

reconnect beforecontinue (yes,no)

Defines if the transfer should close the current connection and open a new one tocontinue after an error.

skip corrupttables (yes,no)

Defines if the transfer should skip the rest of the table after an error or if thetransfer should try to continue with the same table.

stop oninterruption(no,yes)

Defines if you can interactively interrupt the transfer with the [ESC] key (onlyWindows version).

verify transfer(no,yes)

Defines if the import should be verified after the transfer.

ignore trailingspaces for verify(no,yes)

Defines if the verification should ignore trailing spaces within char fields. Thismakes it possible to verify char against varchar successfully.

stop ondifference(no,yes)

Defines if the transfer should immediately stop on first difference.

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 thevendor specific ODBC driver can be used. For Oracle there is a different interfaceused by default, which accesses directly the underlying OCI. With this switch youcan 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 notnecessary as SQLTransfer always runs in single threaded mode.

Alt Info Mode Corresponds to the parameter infomode=alternate.

Register/UnregisterFile Associations

Registers or unregisters the file types .sqx and .dat in the Windows Explorerfor use with SQLTransfer by default.

SQLTransfer Client Installation

Page 196 Livelink WCM Server - System Integration Manual

Page 197: Livelink WCM 9.5 SystemIntegration_en

Install/UninstallCustomEncryption Key

SQLTransfer uses standard encryption for the database password within theconnection parameter (see source/target database connect, PWD=xxx). It alsotakes unencrypted passwords for instant use, but it is not recommended to saveand distribute transfer scripts with unencrypted passwords.

Additionally you can install your own encryption key that will force all users on acomputer to use this password encryption instead of the standard encryption. Thisalso allows you to restrict the use of SQLTransfer for only some specificpurposes.

Important

You must have local system administrator permissions to install/uninstall such acustom encryption key.

5.6 WCM Server Service Control

Comments A shell program for handling WCM Server components. It can also control otherservices available under the operating system.

Procedure 1. Copy ServiceControl.exe and ServiceControl.cfg to the web serverdirectory.

2. The configuration parameters for the distributed CMEngine are defined in theServiceControl.cfg file. It can also control the others services availableunder 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.cfgexample file

#==========================================================#[COMMON]LOGFILE=C:\Livelink\wcm\type1\logs\servicecontrol.log#==========================================================#[CMENGINE_1]TYPE=RENDERERPROGRAM=C:\Livelink\wcm\type1\bin\cmengine.exePORT=<port>CONFIGFILE_PATH=<WCM Server config file directory>#==========================================================#[APACHE]

Client Installation WCM Server Service Control

Livelink WCM Server - System Integration Manual Page 197

Page 198: Livelink WCM 9.5 SystemIntegration_en

TYPE=SERVICESERVICENAME=apache#=EOF======================================================#

WCM Server Service Control Client Installation

Page 198 Livelink WCM Server - System Integration Manual

Page 199: Livelink WCM 9.5 SystemIntegration_en

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 andpassword are entered in a login form and, provided they are correct, a session isestablished by means of a cookie which contains the session id.

In web server authentication, the user name and password are entered in a popupdialog 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 inhis/her password again (IE), resp. more than once (Mozilla).

Site Administratorand Web ServerAuthentication

The preview and some other functions in the Site Administrator require a workingconnection to the WCM Server. The Site Administrator is able to authenticateitself to the WCM Server, if the WCM Server authentication scheme(session-based authentication, the one that you use when you log in to the website 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 accessibleonly internally by the Site Administrator clients. It only uses session-based WCMServer authentication and is not configured for any kind of web serverauthentication. This instance might, for example, run on Port 81 instead of 80. Inorder to make sure that only authorized users access it, set FORCELOGIN=alwaysin the engine’s configuration file.

In Site Administrator, go to File → Configure Sites and change theWebsite base URL accordingly, then check Needs login for

server-side commands.

Advanced Topics Web Server / NTLM Authentication

Livelink WCM Server - System Integration Manual Page 199

Page 200: Livelink WCM 9.5 SystemIntegration_en

Web Server / NTLM Authentication Advanced Topics

Page 200 Livelink WCM Server - System Integration Manual

Page 201: Livelink WCM 9.5 SystemIntegration_en

7 Maintenance Tasks

7.1 Backup

Important After the whole installation has been successful it is strongly recommended toschedule a regular backup for each productive server database. This shouldinclude daily database backups for development and staging server, which shouldbe held at least a week. For each week one backup should be held for at least 3months and the monthly backups should be archived for a year or more. Thisbackup strategy has been proved for many years.

7.1.1 MS SQL Server

Creating a BAKfile

1. Select the database for which the .bak file is to be created. Right-click thedatabase, point to All Tasks and click Backup Database.

2. Under the General tab of the SQL Server Backup dialog, click Add in theDestination section.

3. In the Select Backup Destination dialog, choose the default directory orspecify another location. If you want to use the backup facility regularly it’srecommended 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 byconfirming with OK.

Restoring a BAKfile

1. Select the database to be restored. Right-click the database, point to All

Tasks and click Restore Database.

2. If no .bak file has been specified previously, select From Device. ClickSelect Devices…

3. If the .bak file is on a local drive, click Add…. Otherwise it must be copied toa 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

Maintenance Tasks Backup

Livelink WCM Server - System Integration Manual Page 201

Page 202: Livelink WCM 9.5 SystemIntegration_en

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.

Important

When restoring from a backup device with several backups in it, make alwayssure you are restoring the correct backup, as the default is mostly not the latest butthe oldest backup.

7.1.2 Oracle

Note In order to import or export data under Oracle, two utilities, imp and exp, areprovided. However, it is recommended that you use SQLTransfer for transferringWCM Server web site data whenever possible, for the following reason:

imp and exp are usually not compatible across different versions. So use themonly if the Oracle version of the server where you export data from and theversion of the server where you are importing into are the same. Also the versionof the Oracle client must be the same as the version of the Oracle server. Thereare 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 totransfer large amounts of data, because imp/exp is faster than SQLTransfer (atleast it used to be, with the current versions SQLTransfer has become quite fast aswell!).

Exporting adatabase

Open a command line or terminal window and issue the following statement:

$ exp username/[email protected] 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 WE8ISO8859P1EXP-00000: Export terminated unsuccessfully

you have to set the NLS_LANG environment variable to the same character set as

Backup Maintenance Tasks

Page 202 Livelink WCM Server - System Integration Manual

Page 203: Livelink WCM 9.5 SystemIntegration_en

the server's, e.g.

$ export NLS_LANG=AMERICAN_AMERICA.US7ASCII

or, under Windows:

C:\> set NLS_LANG=AMERICAN_AMERICA.US7ASCII

Importing adatabase

To import the data, use the following (make sure that the tables of the destinationuser are empty or do not exist):

$ imp username/[email protected] file=filename.dmp ignore=y full=y

Tip Another useful application of imp is to script a particular user's objects. If youwould do

$ imp username/[email protected] file=filename.dmp ignore=y show=yfull=y indexfile=filename.sql

the import is not actually made, but you will find create statements for all theobjects (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 arevery important tasks. In a WCM Server installation, there are two kinds of logfiles: Those created by the web server and those created by the WCM Serveritself.

Most people are used to handling the web server log files because they (and theirmanagement and marketing departments) are interested in the information thosefiles provide about their web site users. The WCM Server log files, on the otherhand, 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 theadministrator as well as for the system. The easiest way for implementing log file

Maintenance Tasks Log File Handling

Livelink WCM Server - System Integration Manual Page 203

Page 204: Livelink WCM 9.5 SystemIntegration_en

rotation in the WCM Server is using the SYSDATE macro.

<!WEM SYSDATE.”WW”> for example returns the current week number, whichcan easily be used to define the log file name in the configuration filecmengine.cfg:

LOGFILE=/opt/livelink/wcm/type1/logs/cmengine-<!WEM SYSDATE.”WW”>.log

Access to logfiles

We encourage users working with the Site Administrator to regularly check thelog files as well, in order to see whether their scripts contain or produce anyerrors. If those users do not have direct access to the server’s file system, they canview 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, settingDEBUG=session on the stage server probably simplifies development a lot (andis mandatory when you intend to use the Site Manager).

Analyzing theLOGFILE

The LOGFILE (as defined in cmengine.cfg) provides information about:

• 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 theDBLOGFILE

The DBLOGFILE logs database errors. Information in the DBLOGFILE is almostalways critical in nature: Since all data of a WCM Server web site reside entirelyin the database, SQL errors can quickly have a negative impact on performance. Ifthere 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, whichresults in a database log file growing very rapidly. This makes database problemsvery easy to spot: A quick glance at the log file directory should reveal anyproblems immediately. The DBLOGFILE is created only if something has to be

Log File Handling Maintenance Tasks

Page 204 Livelink WCM Server - System Integration Manual

Page 205: Livelink WCM 9.5 SystemIntegration_en

written to it. Therefore, if there is none around, it could mean that the site did notproduce any SQL errors and the system is in a healthy state. However, it couldalso 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 thatshould fix it.

The DBLOGFILE can also be accessed by site builders and authors using the queryparameter ?debug=dblogfile.

Analyzing theSCRIPTLOGFILE

The SCRIPTLOGFILE logs errors in server-side scripts. It also contains outputgenerated via the log() function. It can be accessed using the query parameter?debug=scriptlogfile.

Maintenance Tasks Log File Handling

Livelink WCM Server - System Integration Manual Page 205

Page 206: Livelink WCM 9.5 SystemIntegration_en

Log File Handling Maintenance Tasks

Page 206 Livelink WCM Server - System Integration Manual

Page 207: Livelink WCM 9.5 SystemIntegration_en

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 areremaining 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 mustnot contain spaces or any other special characters as this will not be acceptedby the Oracle Java components.

3. The available products are listed. If you want to install a whole databaseserver instance choose Oracle9i Database. Select the desired product andconfirm with Next.

4. The available products are listed. If you want to install a whole databaseserver instance choose Oracle9i Database. Select the desired product andconfirm with Next.

5. Select the Standard or Enterprise Edition for the Oracle serveraccording to your license agreement. The Personal Edition will not be

Appendix Installing Oracle 9i Version 9.0.1.1 under Windows

Livelink WCM Server - System Integration Manual Page 207

Page 208: Livelink WCM 9.5 SystemIntegration_en

enough for the WCM Server. Confirm with Next.

6. Select the appropriate database configuration. It’s recommended to useGeneral Purpose. Confirm with Next.

7. Enter the Global Database Name and the system identifier (SID). Confirmwith Next.

8. Enter the directory into which Oracle is to copy the files. Confirm with Next.

Important

The file path must not contain spaces or any other special characters as this willnot be accepted by the Oracle Java components.

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 withinstall. After a while you will be asked to insert the second and then thethird CD. Oracle then creates the default database instance.

11. The most important information for the Oracle installation is displayed beforeconcluding.

12. The installation is complete. An additional copy may be installed, or clickExit to end.

8.2 Installing Oracle 9i Version 9.2.0 under Solaris

Installing Oracle 9i Version 9.2.0 under Solaris Appendix

Page 208 Livelink WCM Server - System Integration Manual

Page 209: Livelink WCM 9.5 SystemIntegration_en

Note This is just a very rough description to get you going. If you have any problemsinstalling Oracle, please refer to the relevant Oracle documentation and supportweb sites (e.g. the Oracle Technology Network at http://otn.oracle.com orMetalink at http://metalink.oracle.com).

Configure kernelresources

Add the following parameters to /etc/system (these are the minimumrequirements):

set shmsys:shminfo_shmmax=4294967295set shmsys:shminfo_shmmin=1set shmsys:shminfo_shmmni=100set shmsys:shminfo_shmseg=10set semsys:seminfo_semmni=100set semsys:seminfo_semmsl=200set semsys:seminfo_semmns=700set semsys:seminfo_semopm=100set semsys:seminfo_semvmx=32767

Reboot the system for the changes to take effect.

Install requiredpackages

If not already installed on your system, install the following packages from yourSolaris 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 buildingthe indices)

You might want to install bash, gzip, gtar etc. as well. You can getprecompiled Solaris binaries from http://www.sunfreeware.com.

Create user andgroups for Oracle

# groupadd oinstall# groupadd dba# useradd –c “Oracle Administrator” –d /opt/oracle –g oinstall –G dba –moracle# 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

Appendix Installing Oracle 9i Version 9.2.0 under Solaris

Livelink WCM Server - System Integration Manual Page 209

Page 210: Livelink WCM 9.5 SystemIntegration_en

# chmod 755 /opt/oracle/product/8.1.5

Edit oracle’sprofile

$ vi /opt/oracle/.profileumask 022unset CLASSPATHunset JAVA_HOMEunset LANGNLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15ORACLE_BASE=/opt/oracleORACLE_HOME=/opt/oracle/product/9.2.0ORACLE_SID=ORCLPATH=${PATH}:${ORACLE_HOME}/binexport LD_ASSUME_KERNEL NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID PATH:wq

Unpackinstallationarchives

Create a directory, say orainst, and unpack the Oracle installation CD contentsinto it (gzipped cpio 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 databaseinstance

When the installation has finished, the installer automatically starts dbassist tocreate a new database. Choose Typical here and select OLTP as the type ofprevalent usage. When you are prompted for the database options, select onlywhat you really need. It'll take a long time anyway! (If you choose one of thepre-created databases, it will take less time, but some settings might not be as youwould like them; e.g. they have a blocksize of only 4k.) Finally select CreateNow.

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 problemsinstalling Oracle, please refer to the relevant Oracle documentation and supportweb sites (e.g. the Oracle Technology Network at http://otn.oracle.com orMetalink at http://metalink.oracle.com).

Installing Oracle 9i Version 9.2.0 under Linux Appendix

Page 210 Livelink WCM Server - System Integration Manual

Page 211: Livelink WCM 9.5 SystemIntegration_en

Create user andgroups for Oracle

# groupadd oinstall# groupadd dba# useradd –c “Oracle Administrator” –d /opt/oracle –g oinstall –G dba –moracle# 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 loginprofile

$ vi /opt/oracle/.bash_profileumask 022unset CLASSPATHunset JAVA_HOMEunset LANG# The following line for 8i only#LD_ASSUME_KERNEL=2.2.5NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15ORACLE_BASE=/opt/oracleORACLE_HOME=/opt/oracle/product/9.2.0ORACLE_SID=ORCLPATH=${PATH}:${ORACLE_HOME}/binexport LD_ASSUME_KERNEL NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID PATH:wq

Unpackinstallationarchives

Create a directory, say orainst, and unpack the Oracle installation CD contentsinto it (gzipped cpio 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(8i only)

The following applies to Oracle 8i only: During the install you will get a linkerror. Go to another terminal window and install the patchglibc-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

Appendix Installing Oracle 9i Version 9.2.0 under Linux

Livelink WCM Server - System Integration Manual Page 211

Page 212: Livelink WCM 9.5 SystemIntegration_en

When the installation script has finished, get back to the link error dialog andclick retry. It should now run through without errors.

Create databaseinstance

When the installation has finished, the installer automatically starts dbassist tocreate a new database. Choose Typical here and select OLTP as the type ofprevalent usage. When you are prompted for the database options, select onlywhat 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 ofthe Oracle user (which should be the case if you followed the instructions above).

ORACLE_BASEORACLE_HOMEORACLE_SIDNLS_LANG

$ORACLE_HOME/bin is in the path.

It is also important that the instance of the database was created with a globaldatabase 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 thefollowing entry:

NAMES.DEFAULT_DOMAIN = MYDOMAIN.COM

Installing Oracle 9i Version 9.2.0 under Linux Appendix

Page 212 Livelink WCM Server - System Integration Manual

Page 213: Livelink WCM 9.5 SystemIntegration_en

as well as (possibly)

SQLNET.EXPIRE_TIME = 1

This entry defines the time interval in minutes in which the Oracle server checksopen connections. If the client doesn’t reply, the connection is closed.

protocol.ora –disable Naglealgorithm

The following entry in $ORACLE_HOME/network/admin/protocol.ora mayimprove the performance (but may also increase network traffic):

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 parametershould be specified:

disk_asynch_io = false

Appendix Installing Oracle 9i Version 9.2.0 under Linux

Livelink WCM Server - System Integration Manual Page 213