Monday, January 11, 2010

Tuning the Performance of UCF Content Transfer

Introduction
In Documentum applications, the speed at which users can retrieve or add content to the system plays a big part in the overall end user experience. Network latency and bandwidth restrictions, physical architecture and client configuration all have an impact on the time it takes between initiating a content transfer, performing the upload or download, and returning control back to the user.



This document will discuss various tuning options available to achieve the best possible performance for UCF content transfer in your network environment.



Overview of UCF
UCF (Unified Client Facilities) is the EMC Documentum framework for performing content transfer between the client and content servers over HTTP. It provides many features that extend beyond simple file transfer protocol, such as:

Content compression to optimize transfers of larger files over the network
Support for complex documents, such as XML files
Support for compound document types, such as OLE objects inside a Microsoft Office document
Awareness of locally downloaded files, and the ability to avoid downloading the same content twice
Registry support, to allow checkout from one application and check in from another
Recoverability in the case of a brief network interruption
Location aware, to allow users to transfer content from the closest ACS or BOCS server
High-Level UCF Operations
When a content transfer is initiated, the UCF client running on the end user machine is initiated if it is not already running. The applet loads the UCF client jars and initiates contact with the UCF server, running on the application server.



The UCF client and server pass information back and forth about the environment and requested action before content is transferred between the two machines. Depending on the architecture and configuration, content may be transferred through the application server, directly to or from an ACS server on the content server, or a BOCS server located near the user.



After the content transfer is complete, there will be some additional communication from server to client to provide instructions on registry entries to be added or modified, directions on how to launch the appropriate application for view or edit operations, or instructions on how to delete the local file on check in.





Optimizing UCF for Best Performance



Tip #1 - Use ACS and BOCS for Content Transfer Whenever Possible



The introduction of ACS and BOCS servers in 5.3 SP1 have allowed content transfer to be performed directly from the content server, rather than requiring that the content always pass through the application server. This not only removes the double-hop that is required (which is very costly for small files) but also reduces the load on the application server.



In the 5.3 timeframe, ACS and BOCS could only be used for download operations such as checkout, export and view. All upload operations still passed through the application server.



From D6 onward, ACS and BOCS servers can also be used for upload operations.



Note that not all applications are network location aware and able to take advantage of remote ACS and BOCS servers.



Tip #2 - Optimize UCF Client Initialization



In 5.3 SP1 through SP5, D6 and D6SP1, the UCF client engine will time out after one minute of inactivity, and the javaw.exe process would be terminated. This means that if a user initiates another content transfer request after the timeout has occurred, the browser must re-initialize the UCF client and restart javaw.exe.



This value can be increased in the ucf.client.config.xml file as follows:



Edit the ucf.client.config.xml file (located at C:\Documents and Settings\\Documentum\ucf\\shared\config\ucf.client.config.xml) and add the following option to extend the UCF Client Timeout.