WebCenter Content shared folders for clustering

When configuring a WebCenter Content (WCC) cluster, one of the things which makes it unique from some other WebLogic Server applications is its requirement for a shared file system.  This is actually not any different then 10g and previous versions of UCM when it ran directly on a JVM.  And while it is simple enough to say it needs a shared file system, there are some crucial details in how those directories are configured. And if they aren't followed, you may result in some unwanted behavior. This blog post will go into the details on how exactly the file systems should be split and what options are required.

Beyond documents being stored on the file system and/or database and metadata being stored in the database along with other structured data, there is other information being read and written to on the file system.  Information such as user profile preferences, workflow item state information, metadata profiles, and other details are stored in files.  In addition, for certain processes within WCC, each of the nodes needs to know what the other nodes are doing so they don’t step on each other.  WCC keeps track of this through the use of lock files on the file system.  Because of this, each node of the WCC must have access to the same file system just as they have access to the same database.

WCC uses its own locking mechanism using files, so it also needs to have access to those files without file attribute caching and without locking being done by the client (node).  If one of the nodes accesses a certain status file and it happens to be cached, that node might attempt to run a process which another node is already working on.  Or if a particular file is locked by one of the node clients, this could interfere with access by another node.  Unfortunately, when disabling file attribute caching on the file share, this can impact performance.  So it is important to only disable caching and locking on the particular folders which require it. 

When configuring WebCenter Content after deploying the domain, it asks for 3 different directories: Content Server Instance Folder, Native File Repository Location, and Weblayout Folder.  And starting in PS5, it now asks for the User Profile Folder.

Folder Configuration


Even if you plan on storing the content in the database, you still need to establish a Native File (Vault) and Weblayout directories.  These will be used for handling temporary files, cached files, and files used to deliver the UI.

For these directories, the only folder which needs to have the file attribute caching and locking disabled is the ‘Content Server Instance Folder’.  So when establishing this share through NFS or a clustered file system, be sure to specify those options. For instance, if creating the share through NFS, use the ‘noac’ and ‘nolock’ options for the mount options. For the other directories, caching and locking should be enabled to provide best performance to those locations.  

These directory path configurations are contained within the <domain dir>\ucm\cs\bin\intradoc.cfg file:

#Server System Properties
IDC_Id=UCM_server1

#Server Directory Variables
IdcHomeDir=/u01/fmw/Oracle_ECM1/ucm/idc/
FmwDomainConfigDir=/u01/fmw/user_projects/domains/base_domain/config/fmwconfig/
AppServerJavaHome=/u01/jdk/jdk1.6.0_22/jre/
AppServerJavaUse64Bit=true
IntradocDir=/mnt/share_no_cache/base_domain/ucm/cs/
VaultDir=/mnt/share_with_cache/ucm/cs/vault/
WeblayoutDir=/mnt/share_with_cache/ucm/cs/weblayout/

#Server Classpath variables

#Additional Variables
#NOTE: UserProfilesDir is only available in PS5 – 11.1.1.6.0
UserProfilesDir=/mnt/share_with_cache/ucm/cs/data/users/profiles/

In addition to these folder configurations, it’s also recommended to move node-specific folders to local disk to avoid unnecessary traffic to the shared directory.  So on each node, go to <domain dir>\ucm\cs\bin\intradoc.cfg and add these additional configuration entries:

VaultTempDir=<domain dir>/ucm/<cs>/vault/~temp/
TraceDirectory=<domain dir>/servers/<UCM_serverN>/logs/
EventDirectory=<domain dir>/servers/<UCM_serverN>/logs/event/

And of course, don’t forget the cluster-specific configuration values to add as well.  These can be added through Admin Server -> General Configuration -> Additional Configuration Variables or directly in the <IntradocDir>/config/config.cfg file:

ArchiverDoLocks=true
DisableSharedCacheChecking=true
ServiceAllowRetry=true    (use only with Oracle RAC Database)
PublishLockTimeout=300000  (time can vary depending on publishing time and number of nodes)

For additional information and details on clustering configuration, I highly recommend reviewing document [1209496.1] on the support site.  In addition, there is a great step-by-step guide on setting up a WebCenter Content cluster [1359930.1].


Comments:

Hi Kyle,

If we are not using these mounting options, what is scale of the tradeoff?
Did this have a big impact? Is it actually necessary for reaching certain performance levels?

Cheers.

Posted by guest on July 02, 2012 at 12:40 AM CDT #

I would not consider these mounting options as optional. If you do not implement them, there are known issues that will happen. They are generally in the areas of indexing, archiving, and workflow because those processes rely heavily on the file system and if they do not have a real-time view of the data or experience locking issues, those processes will cause errors. How quickly and frequently you will run into issue is a bit dependent on how the system is being used. If you contact Support, they will direct you to implement these mounting options per the support note mentioned above.

Thanks,
-Kyle

Posted by Kyle Hatlestad on July 10, 2012 at 09:51 AM CDT #

Hey Kyle,
Can you trace where AppServerJavaHome gets set? I have a Sym link to /usr/local/redstack/vendor -->/pvendord01/vendor and in there I have a sym link jrockit -> /usr/local/redstack/vendor/oracle/IS_UCM002/jdk//jrockit-jre1.6.0_29-R28.2.0/

The AppSerJavaHome=/pvendord01/vendor/oracle/IS_UCM002/jdk/jrockit-jre1.6.0_29-R28.2.0/jre/ and not the sym link

Tom

Posted by guest on September 01, 2012 at 07:13 AM CDT #

Hi Kyle,
Please explain the purpose of Storing the same document in Weblayout & vault directories.I Mean to say any specific difference between vault & weblayout folders.

Posted by Prashant on December 11, 2012 at 03:31 AM CST #

Hello Prashant,

The Vault directories are used to store the original (untouched) file that was checked in. The Weblayout path will store either a copy of that original or a web-viewable version that has been converted by the IBR (such as PDF) and provide a direct "friendly" URL for direct access to that file. If you don't care about having that direct URL, you can enable 'Is Webless file store' on the File Store Provider page. In that case, only files converted by IBR will be stored in the Weblayout. It will not store copies of the originals from the Vault.

Thanks,
-Kyle

Posted by Kyle Hatlestad on December 11, 2012 at 09:02 AM CST #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Kyle Hatlestad is a Solution Architect in the WebCenter Architecture group (A-Team) who works with WebCenter Content and other products in the WebCenter & Fusion Middleware portfolios. The WebCenter A-Team blog can be found at: https://blogs.oracle.com/ ateam_webcenter/

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today