Documentum Composer Quick Start Guide

33

Click here to load reader

description

Documentum Composer Quick Start Guide

Transcript of Documentum Composer Quick Start Guide

Page 1: Documentum Composer Quick Start Guide

1

EMC® DOCUMENTUM® JAVA

METHOD SERVER HIGH AVAILABLITY CONFIGURATION JMS HA configuration for Fail over Support

ABSTRACT

This white paper explains how to configure the JMS HA/failover and configuring

methods for failover. The white paper describes the steps to track the execution

of methods from logs.

November 2013

Page 2: Documentum Composer Quick Start Guide

2

EMC WHITE PAPER

TABLE OF CONTENTS

ABSTRACT ............................................................................................................................................. 1

TABLE OF CONTENTS ............................................................................................................................. 2

INTRODUCTION ..................................................................................................................................... 4 Java method server ............................................................................................................................. 4 How does the method server work? ....................................................................................................... 4

It’s a web application ..................................................................................................................... 4 Java Method Server for High-Availability ................................................................................................ 5

Failover ........................................................................................................................................ 5 Load balancing .............................................................................................................................. 5

Audience ............................................................................................................................................ 5

JAVA METHOD SERVER FOR HIGH AVAILABILITY .................................................................................. 6

TYPE1: SINGLE HOST SETUP .................................................................................................................. 7

STEPS FOR CONFIGURING JMS HA 7.0 ................................................................................................... 8 1. Preparing for Installation/Prerequisite: ......................................................................................... 8

Content Server in HA ..................................................................................................................... 8 Packaging WebApps ....................................................................................................................... 8

2. Creating second JMS Instance ..................................................................................................... 9 3. Verification of Instance .............................................................................................................. 15

dm_jms_config : .......................................................................................................................... 15 4. Associating Content Servers with JMS Instance ............................................................................ 16 5. Refresh Content Server Cache .................................................................................................... 17 6. DUMP_JMS_CONFIG_LIST .......................................................................................................... 18 Configuring HA parameters ................................................................................................................. 22 Enabling logs and Understanding logs ................................................................................................... 22

Error Messages: ........................................................................................................................... 23 Sample Logs ..................................................................................................................................... 23

Server.log ................................................................................................................................... 23 Docbase.log ................................................................................................................................. 24

System Methods details ...................................................................................................................... 25 Options for method ............................................................................................................................ 26 Verification steps ............................................................................................................................... 26 Limitations ........................................................................................................................................ 27 Custom Method configurations ............................................................................................................. 27

TYPE2: TWO HOST HA SETUP ............................................................................................................... 28 Digital Signature Verification ............................................................................................................... 28

TYPE3: MULTIPLE HOSTS SETUP .......................................................................................................... 30

STEPS FOR CONFIGURING JMS HA 6.7 SP2 .......................................................................................... 31

TYPE1:SINGLE HOST SETUPFOR 6.7 SP2 ............................................................................................. 31 1. Preparing for Installation/Prerequisite: ........................................................................................ 31

Content Server in HA .................................................................................................................... 31 Packaging WebApps ...................................................................................................................... 31

2. Creating second JMS Instance .................................................................................................... 31

Page 3: Documentum Composer Quick Start Guide

3

3. Verification of Instance and Associating Content Server with JMS Instance ...................................... 32

TYPE 2: TWO OR MULTI HOST SETUP FOR 7.0 ..................................................................................... 32

STEPS FOR CONFIGURING JMS HA 7.1 ................................................................................................. 32

CONCLUSION ....................................................................................................................................... 33 References ........................................................................................................................................ 33

CONTACT US ........................................................................................................................................ 33

Page 4: Documentum Composer Quick Start Guide

4

INTRODUCTION

Java method server

The Documentum 5 platform introduced the Java method server as a means of improving the performance and scalability of the

Documentum method architecture. In the past couple of years, Documentum has focused on Java as a cornerstone for its

technology. Documentum clients are being written in Java more and more frequently. The core Documentum libraries are

implemented in Java. Running Java-based methods, however, has been the most painful of experiences. The Java method

server aims to fix this.

The method server runs as a process distinct from the Content Server and is responsible for the invocation of the individual

methods. Each method invocation results in a call to the method server which manages the actual execution of the Java-based

method implementation. As the method server is a continuously running process, there is no overhead involved in loading and

tearing-down a Java virtual machine with each invocation. This yields an enormous benefit in overhead.

As methods are typically executed over and over again, the classes involved in the implementation of the method only need be

loaded once. Other overhead, such as the creation of docbase sessions may also be reduced as the method server may reuse

sessions with connection pooling. The result is methods that execute in milliseconds instead of seconds and which use

significantly fewer system resources.

How does the method server work?

It’s a web application

The method server itself is a Java-based web application. It communicates with the Content Server via HTTP calls. Each time a

method is invoked, the Content Server makes an HTTP request passing the name of the Java class which implements the

method along with any specified arguments to a servlet which knows how to execute the specified method.

Methods in Documentum are defined via dm_method objects. To indicate that a Java method should execute via the Java

method server, set the dm_method.method_type attribute tojava, the dm_method.use_method_server attribute to 1, and the

dm_method.method_verb attribute to the classname of the method implemenation. When the Content Server sees a method

matching this pattern, it opens a HTTP request to the Java method server requesting executing of the method with the specified

class.

This simple architecture solves the overhead problem and also introduces a convenient mechanism for dramatically improving

the scalability of the Content Server. Although it is not configured out-of-the-box to support this, Method servers may be

executed on a machine physically separate from the Content Server. It is even possible to run the method server on a platform

different from the Content Server (ie. running the Content Server on Solaris and the method server on Windows). This offloads

work from the Content Server which might enable the Content Server to handle more users.

If the methods are expensive to execute, it is also possible to load-balance method servers using industry standard HTTP load

balancers. There is nothing special or complicated about the method server. It simply requires a J2EE-compatible servlet

container

Page 5: Documentum Composer Quick Start Guide

5

Java Method Server for High-Availability

Content Server and Java Method Server (JMS) each support high-availability (HA). Content Server supports two HA types:

failover and load balancing. JMS supports failover only.

Failover

In a failover setup, if one of the Content Servers fails, the other Content Servers in the failover setup continues with the service.

Load balancing

Load balancing involves operating redundant Content Servers where the service load is balanced between Content Servers to

maximize performance. In a standard Content Server load-balancing scenario, proximity values are used to determine which

Content Server processes an item. In a cluster scenario, third-party load-balancers are used.

Audience

The information in this guide is for application and system administrators who use CS and JMS software to deploy and custom

method. The intended audience is EMC support personnel, professional services, and customers.

Terminology

o JMS: Java Method Server

o CS: Content Server

o CLI: Command-Line Interface

o GUI: Graphical User Interface

Page 6: Documentum Composer Quick Start Guide

6

JAVA METHOD SERVER FOR HIGH AVAILABILITY JMS supports the following HA configurations:

Content Server and JMS on a single host

Content Server and JMS on two hosts

Content Server and JMS on multiple hosts

Content Server HA deployment involves two or more Content Servers. JMS HA involves adding JMSs to additional Content

Servers such that each Content Server has a dedicated JMS. JMS HA is automatically enabled by associating each Content

Server with their dedicated JMS.

JMS HA flowchart

Multiple content servers on different hosts serving single repository

Multiple content servers on same host serving single repository

To extend the system, you must add more content servers. Each content server has its own default local embedded JMS.

Therefore, you can have as many JMSs as the number of CSs in the system.

Limited to one JMS per content server, other CS’s JMS are used as backup.

JMS HA is not intended to address scaling issues.

Under normal operation, Content server always communicates to its own default local embedded JMS. It will use failover

JMS only if its default embedded JMS becomes unavailable. Content server will resume using its own default JMS when that

it comes back online.

Page 7: Documentum Composer Quick Start Guide

7

TYPE1: SINGLE HOST SETUP

JMS HA on Single Host

For a Single Host setup both the Primary and Secondary Content Server are installed on the same Host.

The Primary JMS will be installed and configured during the Primary Content Server Installation.

After the Content Servers are installed the second JMS is installed and configured.

Page 8: Documentum Composer Quick Start Guide

8

STEPS FOR CONFIGURING JMS HA 7.0

1. Preparing for Installation/Prerequisite:

Content Server in HA

To Achieve JMS HA, a second (or another) Content Server associated with JMS. Single Content server does not support

multiple JMS. To Install Content Server in HA refer to the Content Server Enterprise Edition 7.0 Installation Guide.

Packaging WebApps

The WebApps are deployed on the first JMS. Using the jmsConfig.exe, package WebApps to be deployed on the second JMS.

ServerApps.ear - WebApp has to be deployed for the JMS server.

In the webappsToInclude.txt, add the names of the WebApps to be packaged. This file is found under

$Documentum\jmsTools\config\webappsToInclude.txt

Run the jmsConfig.exe tool under $Documentum\jmsTools\bin.

Select Package only option. And Click Next

After the Packaging is complete the WebApps are located at $Documentum\jmsTools\webapps\jmsWebApps.jar.

Copy the jmsWebApps.jar file on the machine to install second JMS under $Documentum\jmsTools\webapps path.

Page 9: Documentum Composer Quick Start Guide

9

2. Creating second JMS Instance

Run the jmsConfig.exe under C:\Documentum\jmsTools\bin folder.

Select Jmsn Config to create a new JMS instance and click Next.

Page 10: Documentum Composer Quick Start Guide

10

On the Select Configuration mode page, select Create Instance and click Next.

Provide an Instance Name for the JMS and Click Next.

Page 11: Documentum Composer Quick Start Guide

11

Set the password for the Application Server - Admin User.

Provide the port details to deploy JMS. JMS requires consecutive 20 ports.

By default 9080 to 9099 ports will be selected for JMS. Port numbers can be changed, ensure consecutive 20 ports are

available.

Page 12: Documentum Composer Quick Start Guide

12

On Configure repository – domain name, by default the fully qualified DNS is given. Verify and click next.

Provide the Primary Instance Installation Owner and Primary Connection Broker details:

o Installation Owner: Username and Password

o Primary Connection Broker:

o Connection Broker host: Machine Name/IP

o Connection Broker port: Broker port (default port 1489)

Page 13: Documentum Composer Quick Start Guide

13

Select the Repository and click next.

Page 14: Documentum Composer Quick Start Guide

14

Select Yes in the below screen since the primary content server is installed on same host.

For multi host setup - select No as the primary CS and secondary CS are on different host.

Click on Done. Configuration process is complete.

Page 15: Documentum Composer Quick Start Guide

15

3. Verification of Instance

The new instance of JBoss application server is created under C:\Documentum\jboss5.1.0\server.

Folder named DctmServer_instancename is created.

Verify the packaged applications are deployed under C:\Documentum\jboss5.1.0\server\DctmServer_secondJMS\deploy.

Start the new JMS instance. Run the startsecondJMS.bat or from Services start Documentum Java Method Server –

instancename.

Access the URL:

http://SecondHost:port/DmMethods/servlet/DoMethod

(eg: http://localhost:9100/DmMethods/servlet/DoMethod ) from IE. Browser will display Documentum Java Method Server.

Each JMS instance has a dm_jms_config object associated with it.

dm_jms_config :

This object represents an instance of Java method server. It contains information about servlet_names, base_uris, its

associated content server(s), and respective jms to cs proximity value(s)

Run Iapi query:

?,c,select r_object_id,object_name from dm_jms_config

An additional object will be created. Verify the object name displays – “JMS secondHost:port”

List of jms_config objects

Page 16: Documentum Composer Quick Start Guide

16

4. Associating Content Servers with JMS Instance

Associating the Java Method Server with Content Server

Login to DA and go to Administration>Basic Configuration>Java Method Servers.

Select first JMS and right click > Properties

By Default the first JMS will be associated with primary/first Content Server.

Set the Second Content Server as secondary

Select second JMS and right click > Properties

Set the Second Content Server as primary

Set the First Content Server as secondary

Page 17: Documentum Composer Quick Start Guide

17

5. Refresh Content Server Cache

In a normal operational environment, refreshing content server’s JMS config list cache is needed only when a new jms config

object is added to, or an existing one is updated or deleted from the database. Content server cache update is handled by the

server’s change checker process/thread. That is, whenever there’s a jms config object change in the docbase, the change

checker will cause all content servers that are serving the same docbase to update their respective server cache automatically.

The server cache might not be updated immediately due to change checker’s frequency of checking changes.

“REFRESH_JMS_CONFIG_LIST” RPC function is introduced to allow administrators to refresh the content server’s cached JMS list

immediately after a change is made to a jms_config object. However, issuing “REFRESH_JMS_CONFIG_LIST” will only update

the connected server’s cache. It does not update other non-connected servers’ caches.

At run time, content server will figure out which JMS object defined in database is considered as default local embedded JMS,

which one is for load balancing, and which one is for failover.

In a multi-server-single-docbase environment, issuing this RPC call on one content server will only refresh that connected

server’s cache. It does not refresh other content servers’ caches.

To force refresh a target content server’s JMS config list kept in its cache, this RPC call must be issued from within a connected

session (an established session to the target content server).

Page 18: Documentum Composer Quick Start Guide

18

6. DUMP_JMS_CONFIG_LIST

RPC function “DUMP_JMS_CONFIG_LIST” is introduced to allow administrators to see the current status of the JMS list kept in

content server’s cache (i.e. shared memory), in real time. The typed object returned from this RPC call contains information

about the last time the list was refreshed, which jms are marked as dead in server cache (even though their “is_disabled”

attribute in dm_jms_config object is set to “F” as not-disabled, in the database).

If a JMS is marked as dead in server cache, “DUMP_JMS_CONFIG_LIST” will show when was the last failure that caused server

to believe it’s dead, and when will the server re-try to POST to this dead JMS again, how many times have we failed to send

HTTP POST requests to that JMS.

In a multi-server-single-docbase environment, running “DUMP_JMS_CONFIG_LIST” on different servers could result in different

views/output. The same jms config object could be considered as default local embedded JMS for a primary content server, but

it is also considered as a failover jms for secondary content server, but it would not have been considered a failover jms for 3rd

content server if the 3rd is an RCS

Connect to each content server, run REFRESH_JMS_CONFIG_LIST RPC to refresh content server cache, then run

DUMP_JMS_CONFIG_LIST RPC to examine the JMS failover information stored in content server cache. Connect to CS1, then

CS2, run these two RPCs one by one.

API> connect,Repository.CSconfiguration,CS-Administrator,Password

...

s1

API> apply,c,NULL,REFRESH_JMS_CONFIG_LIST

...

q0

API> close,c,q0

...

OK

API> apply,c,NULL,DUMP_JMS_CONFIG_LIST

...

q0

API> next,c,q0

...

OK

API> dump,c,q0

...

USER ATTRIBUTES

jms_list_last_refreshed : Fri Sep 13 09:18:46 2013

incr_wait_time_on_failure : 30

max_wait_time_on_failure : 3600

current_jms_index : -1

jms_config_id [0]: 0800009080000cc3

Page 19: Documentum Composer Quick Start Guide

19

[1]: 0800009080000d77

jms_config_name [0]: JMS CS1DNS: Port for RepoJMS1.RepoJMS1

[1]: JMS CS2DNS: Port for RepoJMS1

server_config_id [0]: 3d00009080000102

[1]: 3d00009080000d2e

server_config_name [0]: RepoJMS1

[1]: csjmsha_RepoJMS1

jms_to_cs_proximity [0]: 1

[1]: 1

is_disabled_in_docbase [0]: F

[1]: F

is_marked_dead_in_cache [0]: F

[1]: F

intended_purpose [0]: DM_JMS_PURPOSE_DEFAULT_EMBEDDED_JMS

[1]: DM_JMS_PURPOSE_FOR_FAIL_OVER

last_failure_time [0]: N/A

[1]: N/A

next_retry_time [0]: N/A

[1]: N/A

failure_count [0]: 0

[1]: 0

SYSTEM ATTRIBUTES

APPLICATION ATTRIBUTES

INTERNAL ATTRIBUTES

API> close,c,q0

...

OK

Page 20: Documentum Composer Quick Start Guide

20

Content Server 1

Page 21: Documentum Composer Quick Start Guide

21

Content Server 2

Page 22: Documentum Composer Quick Start Guide

22

Configuring HA parameters

Two new configuration parameters are introduced in server.ini for JMS failover.

o incremental_jms_wait_time_on_failure=30

o jms_max_wait_time_on_failures=3600

These two config params are optional, if not present in server.ini, default values are 30 and 3600 seconds (3600 seconds is 1

hour) respectively.

incremental_jms_wait_time_on_failure config value is used for content server to determine what time should it retry to

POST to a previously failed Java method server again. By default, the incremental time interval is set to 30 seconds.

jms_max_wait_time_on_failures config value is to put a cap on wait time so that we don’t end up waiting for days or

weeks for the next retry time. Default jms_max_wait_time_on_failures is 1 hr (i.e. 3600 seconds).

Enabling logs and Understanding logs

To turn on debug tracing on JMS’s web.xml, This file is under

C:\Documentum\jboss5.1.0\server\DctmServer_secondJMS\deploy\ServerApps.ear\DmMethods.war\WEB-INF for methods

(this option requires app server restart)

In the web.xml, set the ‘trace’ parameter value to‘t’

<init-param>

<param-name>trace</param-name>

<param-value>t</param-value>

</init-param>

The trace details is logged in Server.log under $Documentum\jboss5.1.0\server\DctmServer_MethodServer\log

To turn on trace_launch at content server level, run the below commands from IAPI

For HTTP POSTs:

apply,c,NULL,SET_OPTIONS,OPTION,S,trace_http_post,VALUE,B,T

For Complete Launch:

apply,c,NULL,SET_OPTIONS,OPTION,S,trace_complete_launch,VALUE,B,T

The debug tracing details are logged in server.log under $Documentum\dba\log\RepositoryName.log

To turn on trace_launch at method level, while running the method enable trace launch option.

The debug tracing details are logged in server.log under $Documentum\dba\log\RepositoryName.log

Installer log files

JMS Configuration Program logs

C:\Documentum\jmsTools\bin\ or $DOCUMENTUM_SHARED/jmsTools/bin/

install.log

setupError.log

C:\Documentum\dba\config\docase\dm_jms_config_setup.out

Page 23: Documentum Composer Quick Start Guide

23

Error Messages:

DM_METHOD_E_HTTP_COMMUNICATION

The app server which the Content Server tried to send POST request to, is unavailable/down

DM_METHOD_E_HTTP_POST_APP_SERVER_NAME_NOTFOUND

There’s no matching app_server_name/servlet_name value found in any of the dm_server_config/dm_jms_config objects

DM_METHOD_E_NO_JMS_AVAILABLE2

Content server believes all of the Java method servers are currently down and not accepting any POST requests. No one is

available.

DM_METHOD_E_HTTP_POST_FAILED

Content server failed to send POST request to app server

Sample Logs

Server.log

03:09:00,212 INFO [stdout] (http--0.0.0.0-8080-2) <DCTM><DEBUG> HTTP request from 10.31.69.85, invoking

com.emc.documentum.server.method.rename.UserRename.execute(), ARGUMENTS []

03:09:00,233 INFO [stdout] (http--0.0.0.0-8080-2) <DCTM><INFO> [http--0.0.0.0-8080-2:Method

name=com.emc.documentum.server.method.rename.UserRename] Completed executing. Total Time Taken: 0 secs

03:09:28,186 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

signatureParams=method_verb,__dm_docbase__,__dm_server_config__

03:09:28,189 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString(): paramName=method_verb

03:09:28,192 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

paramVals[0]=com.emc.documentum.server.method.rename.UserRename

03:09:28,194 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

encodedParamValue=com.emc.documentum.server.method.rename.UserRename

03:09:28,197 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

paramName=__dm_docbase__

03:09:28,199 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString(): paramVals[0]=Repo1

03:09:28,200 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString(): encodedParamValue=Repo1

03:09:28,202 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

paramName=__dm_server_config__

03:09:28,204 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString(): paramVals[0]=csd70_Repo12

03:09:28,206 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

encodedParamValue=csd70_Repo12

03:09:28,209 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> constructQueryString():

queryString=method_verb=com.emc.documentum.server.method.rename.UserRename&__dm_docbase__=Repo1&__dm_serve

r_config__=csd70_Repo12

03:09:28,212 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> validateDigitalSignature(): docbaseName=Repo1

03:09:28,213 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> validateDigitalSignature():

signature=My6j6Mgcbxac1XDy/B1aL64CYnyyH1E4UIPb/yhoHcq3Uet43KvYVIMYEpGrByaSMJvft6wbHoZWs14qmlB6V+ihSFVi+3rN

n9+dnRAUH1ksY0L66qyr8FJbV3alcscOOpaJlPy6VsymCwAv02iptkmw9C3er3p83b5aShJVrF0=, signature.length()=172

03:09:28,218 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> validateDigitalSignature():

installOwnerName=Administrator

Page 24: Documentum Composer Quick Start Guide

24

03:09:28,220 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> validateDigitalSignature():

queryString=method_verb=com.emc.documentum.server.method.rename.UserRename&__dm_docbase__=Repo1&__dm_serve

r_config__=csd70_Repo12, queryString.length()=117

03:09:28,224 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><INFO> verifyDigitalSignature(): docbaseName=Repo1:

installOwnerName=Administrator:

inputData=method_verb=com.emc.documentum.server.method.rename.UserRename&__dm_docbase__=Repo1&__dm_server_

config__=csd70_Repo12:

encodedDigitalSignature=My6j6Mgcbxac1XDy/B1aL64CYnyyH1E4UIPb/yhoHcq3Uet43KvYVIMYEpGrByaSMJvft6wbHoZWs14qmlB

6V+ihSFVi+3rNn9+dnRAUH1ksY0L66qyr8FJbV3alcscOOpaJlPy6VsymCwAv02iptkmw9C3er3p83b5aShJVrF0=:

encodedDigitalSignature.length()=172

03:09:28,233 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><INFO> verifyDigitalSignature(): success

03:09:28,260 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><INFO> [http--0.0.0.0-8080-3:Method

name=com.emc.documentum.server.method.rename.UserRename] Successfully located java method/module

03:09:28,264 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><INFO> [http--0.0.0.0-8080-3:Method

name=com.emc.documentum.server.method.rename.UserRename] Is an instance of IDfMethod

03:09:28,267 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><INFO> [http--0.0.0.0-8080-3:Method

name=com.emc.documentum.server.method.rename.UserRename] Preparing to execute.

03:09:28,271 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><DEBUG> HTTP request from 10.31.69.85, invoking

com.emc.documentum.server.method.rename.UserRename.execute(), ARGUMENTS []

03:09:28,278 INFO [stdout] (http--0.0.0.0-8080-3) <DCTM><INFO> [http--0.0.0.0-8080-3:Method

name=com.emc.documentum.server.method.rename.UserRename] Completed executing. Total Time Taken: 0 secs

Docbase.log

013-10-22T03:08:58.072000 5596[7388] 0100007b800025a3 JMS DO_METHOD TRACE LAUNCH: user:

Administrator, session id: 0100007b800025a3, JMS id: 0800007b80000cc7, method: dm_UserRename_Java,

host:csd70.emcccsa.com, port:9080, path:/DmMethods/servlet/DoMethod, arguments:-method_verb

com.emc.documentum.server.method.rename.UserRename -__dm_docbase__ Repo1 -__dm_server_config__ csd70_Repo12

2013-10-22T03:08:59.121000 5596[7388] 0100007b800025a3 JMS DO_METHOD TRACE LAUNCH: do_method

launch: failed: user: Administrator, session id: 0100007b800025a3, JMS id: 0800007b80000cc7, method:

dm_UserRename_Java, host:csd70.emcccsa.com, port:9080, path:/DmMethods/servlet/DoMethod

2013-10-22T03:08:59.127000 5596[7388] 0100007b800025a3 JMS TRACE LAUNCH: Failed to post to JMS

0800007b80000cc7 (JMS csd70.emcccsa.com:9080 for Repo1.Repo1): Error is "Failed to obtain socket for

host:csd70.emcccsa.com, at port:9080", :Marking this JMS config as dead server cache.

2013-10-22T03:08:59.127000 5596[7388] 0100007b800025a3 JMS DO_METHOD TRACE LAUNCH: user:

Administrator, session id: 0100007b800025a3, JMS id: 0800007b8000151e, method: dm_UserRename_Java,

host:csd70.emcccsa.com, port:8080, path:/DmMethods/servlet/DoMethod, arguments:-method_verb

com.emc.documentum.server.method.rename.UserRename -__dm_docbase__ Repo1 -__dm_server_config__ csd70_Repo12

2013-10-22T03:09:00.241000 5596[7388] 0100007b800025a3 JMS DO_METHOD TRACE LAUNCH: do_method

launch: successful: user: Administrator, session id: 0100007b800025a3, JMS id: 0800007b8000151e, method:

dm_UserRename_Java, host:csd70.emcccsa.com, port:8080, path:/DmMethods/servlet/DoMethod

2013-10-22T03:09:00.286000 5596[7388] 0100007b800025a3 DO_METHOD TRACE LAUNCH: method launch:

successful, user: Administrator, session id: 0100007b800025a3, method: dm_UserRename_Java

Page 25: Documentum Composer Quick Start Guide

25

System Methods details

Below is the list of system methods and supportability for failover.

Method Name JMS Location Constrain

dm_DistOperations_dmcl40 JMS_LOCATION=MAIN

dm_RefreshReplicaMethod JMS_LOCATION=MAIN

dm_bp_transition_java JMS_LOCATION=ANY

dm_bp_schedule_java JMS_LOCATION=ANY

dm_bp_batch_java JMS_LOCATION=ANY

dm_bp_validate_java JMS_LOCATION=ANY

dmc_MigrateDbExprsToJava JMS_LOCATION=ANY

dmc_MigrateDbExprsToJavaForType JMS_LOCATION=ANY

dmc_SetJavaExprEnabled LOCAL_ONLY

dmc_AddCustomJavaExpr LOCAL_ONLY

CTSAdminMethod JMS_LOCATION=ANY

dm_ldif_export NA (does not use java method server)

dm_ldif_copy NA (does not use java method server)

dm_ldif_import NA (does not use java method server)

dm_ldif_status NA (does not use java method server)

dm_LDAPSynchronization LOCAL_ONLY

LDAPSync LOCAL_ONLY

LDAPSyncOnDemand LOCAL_ONLY

dm_LDAPCertDbAutomation LOCAL_ONLY

dm_dcfEdit LOCAL_ONLY

dm_run_dependent_jobs LOCAL_ONLY

dm_getClientDocbrokers LOCAL_ONLY

dm_webcache_publish LOCAL_ONLY

dm_bpm_transition JMS_LOCATION=ANY

dm_bpm_timer JMS_LOCATION=ANY

dm_WfmsTimer JMS_LOCATION=ANY

TCFActivityMethod JMS_LOCATION=ANY

TCFWorkitemActivityMethod JMS_LOCATION=ANY

dm_FTCreateEvents JMS_LOCATION=ANY

dm_FTStateOfIndex JMS_LOCATION=ANY

dm_FTIndexAgentBoot JMS_LOCATION=ANY

dm_FTOptimizeIndex LOCAL_ONLY

dm_event_template_sender JMS_LOCATION=ANY

dm_AsynchronousWrite JMS_LOCATION=ANY

dm_PreCacheContent JMS_LOCATION=ANY

dm_noop_auto_method_java JMS_LOCATION=ANY

BPMCreateFolder JMS_LOCATION=ANY

Page 26: Documentum Composer Quick Start Guide

26

BPMLifecycleAttach JMS_LOCATION=ANY

BPMLifecycleDemote JMS_LOCATION=ANY

BPMLifecyclePromote JMS_LOCATION=ANY

BPMLinkToFolder JMS_LOCATION=ANY

BPSFTIntegration JMS_LOCATION=ANY

BPSHTTPIntegration JMS_LOCATION=ANY

BPSJMSIntegration JMS_LOCATION=ANY

BPSMQJMSIntegration JMS_LOCATION=ANY

BPSSMTPIntegration JMS_LOCATION=ANY

BPSWebServiceIntegration JMS_LOCATION=ANY

BPSIntegration JMS_LOCATION=ANY

dm_bps_mail JMS_LOCATION=ANY

dm_QmCheckVerificationThreshold JMS_LOCATION=ANY

dm_QmPriorityAging JMS_LOCATION=ANY

dm_QmPriorityNotification JMS_LOCATION=ANY

dm_QmSetRequiredSkill JMS_LOCATION=ANY

dm_QmThresholdNotification JMS_LOCATION=ANY

dm_WFCheckPoint JMS_LOCATION=ANY

dm_WFExportData JMS_LOCATION=ANY

dm_WFReporting JMS_LOCATION=ANY

dm_WFReportPackageData JMS_LOCATION=ANY

dm_WFSuspendTimer JMS_LOCATION=ANY

DmSampleActivityTemplate JMS_LOCATION=ANY

ECISMethod JMS_LOCATION=ANY

ObservationPoint JMS_LOCATION=ANY

PostEventtoParentWorkflow JMS_LOCATION=ANY

StartSub-Process JMS_LOCATION=ANY

XSLTransformation JMS_LOCATION=ANY

Options for method

For a method to support JMS failover set the below parameters:

o Is_restartable to True (default is false)

o a_extended_properties[0] to JMS_LOCATION=ANY or leave it blank (default value is blank)

Verification steps

Configure a Java Method to support JMS failover.

Bring down first JMS.

Run the Method from first Content Server.

Method should be executed via second JMS. Verify the logs. Logs for second JMS would contain the method execution

information.

Bring down second JMS.

Run the Method from second Content Server.

Method should be executed via first JMS. Verify the logs. Logs for first JMS would contain the method execution information.

Page 27: Documentum Composer Quick Start Guide

27

Limitations

Not all java methods can be failover

o Some java method must be run on primary content server, some must be run on same host as originating content

server’s host

Default JMS for Content File Server/Remote Content Server (aka RCS) do not participate in JMS failover

JMS node must be bound to a content server host

o It cannot be installed on a stand-alone independent machine

We do not support JMS load balancing. A single content server cannot be explicitly associated to multiple Java method

servers.

Limitations inherited from single JMS model

o JBoss cannot handle large number of HTTP POST requests

o If JMS is crashed during ASYNC method execution, content server cannot detect the crash, hence will not failover to

another JMS

Custom Method configurations

If custom methods wish to take advantage of the JMS failover feature, make sure the method is failover aware. Set

Is_restartable parameter to True (default is false

If the method is failover aware, but method must be run on a JMS that’s on the same host as originating content server host,

then set a_extended_properties[0] = JMS_LOCATION=ORIGINAL

If method can be run on any CS-bound JMS, then set a_extended_properties[0] = JMS_LOCATION=MAIN

If method can be run on any JMS, then leave a_extended_properties attribute blank or assign value JMS_LOCATION=ANY. If

left blank, it is assume the method can be run on any JMS. Default value is blank.

Page 28: Documentum Composer Quick Start Guide

28

TYPE2: TWO HOST HA SETUP

JMS HA on two hosts

Two Host HA Setup – the primary and secondary Content Servers are installed on different hosts.

On the Second Content Server, the second content server has to be installed and configured.

For creating a second JMS, the same steps as single host JMS HA are followed. During the screen – “Is Primary Content Server”,

select the option NO.

To Install Content Server in HA refer to Content_Server_Enterprise_Edition_7.0_Installation_Guide.

Digital Signature Verification

In a single JMS model, JMS and CS are always hosted on same machine.

Before running the Java method, to prevent malicious cyber-attacks, to make sure the HTTP POST request is legit, JMS

Do_Method servlet performs IP validation to make sure request is originated from the same host as JMS’s host.

IP validation would always succeed in single JMS model environment.

In a JMS failover environment, IP validation would fail if content server tries to send method requests to a failover JMS on a

different host.

To address this IP security restriction, we’ve introduced digital signature validation instead.

6.6 onwards, content Server generates digital signature, JMS verifies it

Signature is signed by using the repository’s private key, and is then verified using the repository’s public key.

Page 29: Documentum Composer Quick Start Guide

29

JMS uses the following parameters :

$Documentum_shared\JBOSSx.x\server\DctmServer_MethodServer\deploy\ServerApps.ear\DmMethods.war\WEB-INF, make

sure the init value for “docbase” and “docbase_install_owner_name” are present in web.xml.

<init-param>

<param-name>docbase_install_owner_name</param-name>

<param-value>xxxxxx</param-value>

</init-param>

<init-param>

<param-name>docbase</param-name>

<param-value>xxxx</param-value>

</init-param>

Page 30: Documentum Composer Quick Start Guide

30

TYPE3: MULTIPLE HOSTS SETUP

JMS HA on Mulitple hosts

More than 2 Content servers can be clustered. Similarly the Java method server associated with each Content Server can be

configured for High Availability.

Same steps are followed for configuring the JMS HA as for 2 nodes.

Page 31: Documentum Composer Quick Start Guide

31

STEPS FOR CONFIGURING JMS HA 6.7 SP2

TYPE1:SINGLE HOST SETUPFOR 6.7 SP2

1. Preparing for Installation/Prerequisite:

Content Server in HA

To Achieve JMS HA, a second (or another) Content Server associated with JMS. Single Content server does not support multiple

JMS. To Install Content Server in HA refer to Content_Server_Enterprise_Edition_6.7_Installation_Guide.

Packaging WebApps

The WebApps are deployed on the first/primary JMS. Using the jmsPackager.bat, package WebApps to be deployed on the

second/additional JMS.

ServerApps.ear - WebApp has to be deployed for the JMS server.

In the webappsToExclude.txt, add the names of the WebApps to exclude from packaging. This file is found under

$Documentum\jmsTools\config\webappsToExclude.txt.

Run jmsPackager.bat file under $Documentum\jmsTools\bin.

After the Packaging is complete the WebApps are located at $Documentum\jmsTools\webapps\jmsWebApps.jar.

Copy the jmsWebApps.jar file on the machine to install second JMS under $Documentum\jmsTools\webapps path.

2. Creating second JMS Instance

The steps are similar as for creating second JMS instance for 7.0.

Run the jmsconfig.exe under $Documentum\jmsTools\bin folder.

Select Create Instance and click Next.

Provide JMS Instance Name

Set the password for the Application Server - Admin User.

Provide the port details to deploy JMS. JMS requires consecutive 20 ports.

By default 9080 to 9099 ports will be selected for JMS. Port numbers can be changed, ensure consecutive 20 ports are

available.

Page 32: Documentum Composer Quick Start Guide

32

On the primary Installation owner screen :

Provide the Installation Owner: Username and Password.

Click on Next.

The WebApps deploy and configuration process completes. Click on Done.

3. Verification of Instance and Associating Content Server with JMS Instance

Verify the JMS Instance following the same steps as Single Host JMS HA for 7.0

Associate the Content Servers with JMS Instances, same steps as Single Host JMS HA for 7.0 is followed.

TYPE 2: TWO OR MULTI HOST SETUP FOR 7.0 Two Host HA Setup – the primary and secondary Content Servers are installed on different hosts.

On the Second Content Server, the second content server has to be installed and configured.

For creating a second JMS, the same steps as single host JMS HA for 6.7 Sp2 are followed.

STEPS FOR CONFIGURING JMS HA 7.1 To Install Content Server in HA refer to Content_Server_Enterprise_Edition_7.1_Installation_Guide.

For Single Host Setup, the same steps as for configuring JMS HA 7.0 are followed.

For Two or more host setup, the Java Method Server Instance is created by the installer. Associate the Content Servers with JMS

Instances, same steps as for configuring JMS HA 7.0 is followed.

Page 33: Documentum Composer Quick Start Guide

33

CONCLUSION This whitepaper explains configuration of JMS High Availability with failover support setup. Describes the steps to enable

methods for failover and track the execution of methods from logs.

References

• Documentum Content Server 7.0 Installation Guide

• EMC Documentum Content Server Load Balance and FailOver

• EMC Documentum Content Server 7.0 Administration and Configuration Guide

CONTACT US To learn more about how

EMC products, services, and

solutions can help solve your

business and IT challenges,

contact your local

representative or authorized

reseller—or visit us at

www.EMC.com.

www.EMC.com

Copyright © 2013 EMC Corporation. All Rights Reserved.

EMC believes the information in this publication is accurate as of its publication date. The information

is subject to change without notice.

The information in this publication is provided “as is.” EMC Corporation makes no representations or

warranties of any kind with respect to the information in this publication, and specifically disclaims

implied warranties of merchantability or fitness for a particular purpose.

Use, copying, and distribution of any EMC software described in this publication requires an

applicable software license.

For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on

EMC.com.

EMC2, EMC, the EMC logo, and the RSA logo are registered trademarks or trademarks of EMC

Corporation in the United States and other countries. VMware a registered trademark of VMware,

Inc. in the United States and/or other jurisdictions. All other trademarks used herein are the property

of their respective owners. Published in the USA. 08/12 White Paper H12673