Deutsch | English

Enterprise Content Management SDK (ECMSDK) is a robust and flexible runtime and development platform for building demanding content management applications. The features and capabilities of EMCSDK are designed to help developers bring enterprise-scalable content management-based applications to market faster and better than with any other platform. ECMSDK provides a set of Java APIs that developers can use to customize or extend the product's core functionality in numerous ways to build comprehensive enterprise-scale database numerous ways to build comprehensive enterprise-scale database solutions.

These notes are additional to the ECMSDK Installation Guide and supersede information supplied in that Guide.

The information in this document is current as of the date of publication.

About this Release

This version of ECMSDK 2.4.0 is a full ECMSDK release, and can be applied as a cumulative patch on top of a previous ECMSDK release.

ECMSDK 2.4.0 is architecturally compatible with the latest middleware versions. It contains an updated set of APIs that are JDK 1.8 compliant, and also contains tools to create an ECMSDK 2.4.0 schema that is compatible with these APIs. This release should be reviewed carefully by development teams that have built custom applications with previous versions of Oracle CM SDK, as there are a number of differences between this version and the previous Oracle CM SDK versions. This release implements the features and bug fixes listed below.

New Features

The following features have been introduced with this release:

Features New in 2.4.0

Feature# Category Description Note
Repository Introduce pattern to enforce single instance categories 10
Installation Introduce new tool for ClassObject creation for improved perfomance and robustness 11
Repository Improve PreparedSelectorGenerator ease-of-use  
Repository Add new Format for Excel XLSM files  
Agents Add new ServerConfiguration property 'RetryAttempts' for ExecutedActionRetainedEventAgent  
Agents Enhance AuditEventHandlerAdapter to facilitate creating custom handlers  
Repository Support Content Encryption 12
Scripting Add identifyGroup() and identifyAcl() to script operations  
Repository Add verifyCapabilities() method to PublicObject  
Protocols Allow Basic Authentication over http with WebDAV  
Runtime Add support for JDBC driver version 12.1  

Features New in 2.3.1

Feature# Category Description Note
Runtime New script to re-create the GroupIndex  

Features New in 2.3

Feature# Category Description Note
Runtime New script-based Node start and stop 9
Environment ECMSDK sources now available as Maven project  
Agents New handler that remove entries from any Audit Event History  
Repository Enhance Activity framework for ReasonType, ReadIndication, and improved extensibility  
Installation Support multiple software versions against a single schema version  
Repository Add support for composite groups  

Features New in 2.2

Feature# Category Description Note
Repository Adding additional configuration parameters for Multi-Threaded LibrarySessions 6
Repository Adding additional formats 7
Repository Enable new Oracle Text features in Oracle 12c database that are beneficial for markup and highlighting  
Repository Identify a cloned session and provide clone and reservation info  
Repository Introducing new base object type "SimpleObject"  
Agents Automatic coordination of multi-instance AuditEvent handlers  
Repository Add Category as target class for custom audit events  

Features New in 2.1

Feature# Category Description Note
ECMSDK-41 Installation Ability to split installation into DBA work and ECMSDK schema work 1
ECMSDK-92 Repository Added search macro for multiple array attribute values  
ECMSDK-93 Repository Added search macro for property qualification  
ECMSDK-99 Agents Introduce asynchronous mode for the group index 2
ECMSDK-109 Repository Introduce FileSystemMediaDriver as a CustomMediaDriver  
Introduce new GroupMembershipCache 3
ECMSDK-125 Repository Adding support for managed/pooled cloned LibrarySessions

Features New in 2.0

Feature# Category Description Note
ECMSDK-44 Repository New Action and Activity Framework for building IoT or Social driven applications 4
Dependency to Oracle Database Client installation removed
New custom_classes directory for custom development class overwrites included in the CLASSPATH
ECMSDK-34 Installation Single command installation process for clean installation and patching  
ECMSDK-37 Installation Added support for Oracle Database Express Edition (XE)  

Features New in 1.0

Feature# Category Description
  Repository New Social features such as like, follow, comments, status messages as well as activity streams and notifications
  Environment Support for Java 1.7
  Environment Support for Oracle Database 12c
  Environment Support for Oracle WebLogic Server 12c
  Environment Support for GlassFish Server 4.1
  Environment Support for Apache Tomcat 8

Bugs Fixed

The following bugs have been fixed with this release:

Bugs Fixed in 2.4.0

Bug# Category Description Note
Repository PreparedSelectorGenerator has restrictions in its FRQ support  
Repository Category flags are not in sync with categories  
Repository Enhance caching of objects to reduce memory usage  
Agents Dangling SimpleObject references are not cleaned up  
Repository Race condition during creation of activity data  
Repository Unable to perform deep copy without copying categories  
Repository Improve performance of accessing group hierarchy information  
Repository PreparedSelector.getItems() should not return null to indicate zero results  
Repository Enforce LockEntry restrictions in server-side operations  
Repository addAttribute fails if a tableless ClassObject exists lower in the class hierarchy  
Repository Treat a null value the same as 0 for object type attributes 13
Repository Improve performance of adding attributes to existing ClassObjects  

Bugs Fixed in 2.3.2

Bug# Category Description Note
ECMSDK-152 Runtime Make JDBC code application server independent  
ECMSDK-164 Runtime Skip optional UserManager operations if unsupported by Credential Manager  
ECMSDK-274 Runtime Prevent RuntimeException when initializing SessionStatisticsCache  
ECMSDK-277 Runtime Add exception logging upon abort transaction failure  
ECMSDK-284 Agents Add support for retry processing of ExecutedActionRetainedEvents  

Bugs Fixed in 2.3.1

Bug# Category Description Note
ECMSDK-120 Runtime LibrarySessionEventPollerThreadPerProcess logs excessively for session with disconnected LibraryConnection  
ECMSDK-217 Runtime Improve performance of getAllMembers() with admin mode pushed  
ECMSDK-232 Installation Patch introduces null-valued domain property  
ECMSDK-234 Runtime Cannot get SimpleObject from AttributeValue  
ECMSDK-236 Runtime S_LibrarySession.setLastOperationTime() throws NPE  
ECMSDK-238 Installation ApplyCategoryFlag upgrade action requires temporary installation mode  
ECMSDK-239 Runtime Fix incompatibilities with the JDBC 12c driver  
ECMSDK-246 Runtime Cannot create new session if DB becomes unavailable while EventExchanger is stopped  
ECMSDK-275 Runtime Creation of SimpleObject server-side incorrectly constructs AttributeValue  

Bugs Fixed in 2.3

Bug# Category Description Note
ECMSDK-90 Agents LockExpirationAgent can't release expired LockEntry  
ECMSDK-220 Runtime Running Node names should not be case-sensitive  

Bugs Fixed in 2.2.1

Bug# Category Description Note
ECMSDK-166 Installation Clean up DO NOT MODIFY area in  
ECMSDK-176 Agents Node creates high server load on unexpected exceptions 8
ECMSDK-188 Installation Clean up obsolete SchemaCreator parameter logging  
ECMSDK-189 Agents Log messages from agents should indicate the specific agent  

Bugs Fixed in 2.2

Bug# Category Description Note
ECMSDK-57 Repository PARSelector throwing IFS-10659  
ECMSDK-86 Repository Milliseconds are missing in Dates  
ECMSDK-134 Installation SchemaCreator logs same line twice  
ECMSDK-135 Repository Race condition when processing PublicObject IDs  
ECMSDK-146 Scripting Specified ServiceConfiguration not used in Node start if service already started  
ECMSDK-150 Scripting ScriptOperations.create() registers the wrong object  
ECMSDK-155 Repository AuditEvent selection does not support the use of bind variables  
ECMSDK-157 Scripting Server.startStandalone() does not use ServiceConfiguration specified in .def file  
ECMSDK-159 Scripting does not work from ANT_HOME if it contains a space in its path  
ECMSDK-165 Installation DB_URL configuration error results in wrong source schema version  
ECMSDK-170 Scripting Cannot load Java sources into DB with .sql file via SQLAction  

Bugs Fixed in 2.1.1

Bug# Category Description Note
ECMSDK-148 Installation ClassNotFoundException during upgrade to 2.1.0  

Bugs Fixed in 2.1

Bug# Category Description Note
ECMSDK-75 Installation Simplify  
ECMSDK-79 Repository Cache invalidation not accessible Bean-side  
ECMSDK-81 Protocols WebDav throws XMLParseException  
ECMSDK-87 Repository Changing security of a community throws exception when modifying child objects afterwards  
ECMSDK-89 Repository Need a process to clean up disposed state objects  
ECMSDK-100 Agents FolderIndexAgent relies solely on timer in processing deferred updates  
ECMSDK-101 Repository Change core API code to use implicit transactions  
ECMSDK-119 Repository S_LibrarySession.disconnect() is not transaction safe  
ECMSDK-127 Installation SchemaCreator does not abort if ScriptOperation fails due to .def file not found.  
ECMSDK-129 Repository Cache all ancestor IDs for the session's user within session context  

Bugs Fixed in 2.0

Bug# Category Description Note
ECMSDK-8 Protocols FTPServer does not support custom object types  
ECMSDK-20 Protocols FTP Server does not support switch to admin mode  
ECMSDK-22 Protocols ApplicationSessions are not cleaned up when calling disconnect() on the LibrarySession  
ECMSDK-23 Agents ContentAgent does not use batching when destroying expired content  
ECMSDK-27 Agents IFS-21000: Session is not connected or has timed-out in FolderIndexAgent  
ECMSDK-29 Repository NPE in LibrarySessionEventPollerThreadPerProcess  
ECMSDK-32 Agents ContentAgent need better exit criteria for deleteContentObjects()  
ECMSDK-35 Protocols WebDAV does not work with windows 7  
ECMSDK-38 Repository Remove unused Workflow schema 5
ECMSDK-49 Repository SharedState of a LibraryObject gets overwritten during DataCache put  
ECMSDK-51 Documentation ecmsdk.war stalls during startup if wrong LogFilePath specified  
ECMSDK-53 Repository Custom LockEntries can't be unregistered  
ECMSDK-68 Clients Object Inspector uses wrong JAR file reference  

Bugs Fixed in 1.0

Bug# Category Description
ECMSDK-4 Validator Validator in non-english locale throws exceptions
ECMSDK-6 Installation Patching a fresh installation with or higher fails
ECMSDK-17 Scripting addGlobalOperationActionSpecification() method missing in ScriptOperations

Known Issues

Problem Problem Cause Corrective Action
 - -

Additional Notes

Note 1:

This new installation option supports the separation of duty model. The installation process can now be separated and executed by two different administrator roles, the database administrator and the application administrator.
For more details please see chapter 4 in the ECMSDK Installation Guide.

Note 2:

To change the group index update mode from synchronous (default) to asynchronous, you can use the following script command:

./ecmsdk script install/config/UpdateAclIndex.def
Note 3:

The new GroupMembershipCache can increase the overall performance of security checks if larger group hierarchies are in-place. Depending on the number of group memberships configured in the system the startup process of the ECMSDK node can take a bit longer, as the caches are initially populated during this startup phase.

To make use of the new GroupMembershipCache, you need to enable it by setting the following ServiceProperty:

IFS.SERVICE.GroupMembershipCacheEnabled = true
Note 4:

The new ECMSDK Activity module improves and simplifies the communication and collaboration between users and/or devices. Any action can be recorded and automatically processed for easy context-sensitive information access. In addition, data is enriched with statistics and provide personalized delta states and views on activities.

This outstanding product feature enables the modeling of many user and data driven use cases in the real world. For example, social intranet actions such as "follow", "like" or "suggest" can be captured and summarized for documents or other supporting data objects, and can be tracked in an organized manner by users with access to the object. Many other use cases in the area of IoT or Smart Data can also benefit from this product enhancement.

From a technical point of view, each data object in the ECMSDK repository can be enabled for activities. The object can be a traditional content management object (such as a document or forum post entry), or any object that models a real world entity such as an electronic device or a car. The activity of an object is comprised of the set of actions that were performed with it as its target. Predefined actions are provided out of the box and can be easily extended. Every single action contains a variety of detailed information such as the actor, action type, timestamp, and objects related to the action. The behavior of actions can be configured and customized via Activity Specification objects. Advanced search and filter options allow for a fine-grained analysis and evaluation of tracked activities.

In addition to the Activity API, numerous new ECMSDK business objects will be introduced to simplify context-sensitive conversations such as MessageList, MessageEntry, Conversation, ContactList, and Attachment. For a full list of new ECMSDK objects introduced in the ECMSDK 2.0 release, please refer to the API summary bundled with this release under ECMSDK_HOME/docs/api.

Note 5:

The database schema that was used in previous Oracle CM SDK installations for Oracle Workflow functionality will not be installed anymore starting with ECMSDK 2.0. Oracle Workflow was shipped by Oracle until late 2007. This schema was left in for compatibility reasons. Today, similar functionality can be achieved in different ways, such as inxire Processes or other BPEL engines.

Upgrading an existing Oracle CM SDK or ECMSDK 1.0 installation will not remove this schema for data security reasons. This unused schema could be removed manually after patching to ECMSDK 2.0 with the following SQL command, executed by system

drop user ECMSDK$WF cascade;
Note 6:

The following additional ServiceProperties have been added with the ECMSDK 2.2 release to support better configuration of Multi-Threaded LibrarySessions:

  • IFS.SERVICE.MaximumClonedSessions
    This property defines the maximum number of cloned sessions you can generate from a master session. Default value is 0, which means unlimited. If the limit is reached an exception is thrown

  • IFS.SERVICE.ClonedSessionRetryPeriod
    This property defines the period in milliseconds after which another check will be made to look for an available session in the cloned session pool, before an exception is thrown. Default value is 100ms.

Note 7:

The following formats have been added with the ECMSDK 2.2 release and are therefore now searchable out of the box:

  • MS Word (docx)

  • MS Powerpoint (pptx)

  • MS Excel (xlsx)

  • Computer Graphics Metafile (CGM)

  • Scalable Vector Graphics (SVG)

  • StarOffice Document

  • StarOffice Picture

  • StarOffice SpreadSheet

  • StarOffice Slides

  • XML Document Type

  • XML Stylesheet

  • Resource Description Framework (RDF)

  • OpenDocument Text

  • OpenDocument Spreadsheet

  • OpenDocument Presentation

  • OpenDocument Drawing

  • OpenDocument Chart

  • OpenDocument Formula

  • OpenDocument Database

  • OpenDocument Image

Note 8:

In the case of an unexpected exception, e.g. database unavailable, the background processes now go into a sleep mode, waiting until the repository is available again. The following optional ServerConfiguration property can be set to define the period the background processes should check for the status of the repository:


The default value of this property is 30 seconds (30s).

Note 9:

In addition to the possibility to deploy a ECMSDK Node to an application server, you can run an ECMSDK Node standalone. There are new commands available to do this from command-line:

ecmsdk node.start
ecmsdk node.stop

For more details please see chapter 7 in the ECMSDK Installation Guide.

Note 10:

ECMSDK uses a zero value in the associated Database column to indicate a null value for object data types (PublicObject, SystemObject, etc.). This fix allows for a null value in the column to also represent a null value for object data types, which can occur in some situations resulting from upgrading from an earlier version of ECMSDK.

Note 11:

This feature introduces a new data-driven pattern for enforcing certain Categories to have no more than one instance defined on any given PublicObject. The pattern involves setting a class-level property,


for each Category subclass where this enforcement is desired.
See an example of this pattern that sets the class-level property in file

Note 12:

This feature introduces a new set of script operations for creating ECMSDK ClassObjects during installation, and for creating or modifying ClassObjects during upgrade. These new script operations improve the performance of the installation and upgrade processes, and provides a complete and robust definition of the entire object model used within ECMSDK.
See an example of this new scripting pattern in

Note 13:

This feature introduces a new API that can be used to indicate that new content being added to ECMSDK (via creation or update of a Document) should be encrypted when it is stored in the database or within a designated custom Media store. This prevents unauthorized access to the content when the Media store is inspected directly.
When the content is accessed in an authorized manner via the API or protocols, the content presented to the user will be automatically decrypted.
If the content being introduced requires full-text indexing, the indexing process will operate on a transient decrypted copy, which will not persist in the database or custom Media store.
See the javadoc for class oracle.ifs.beans.DocumentDefinition for details about this API.

Unsupported Features

The following previously deprecated Oracle CM SDK features have now been fully removed since the ECMSDK 1.0 release:

  • Integration with Oracle Application Server 10g

  • Integration with Oracle Enterprise Manager

  • Out of the box integration with Oracle Internet Directory

  • Oracle CM SDK Configuration Assistant

  • Oracle CM SDK Manager

  • Oracle FileSync

  • Out of the box Web Starter Application

  • AFP, IMAP, SMTP, NFS, NTFS and SMB protocol servers

Additional features that are unsupported in this ECMSDK release:

  • Support for Oracle Database 9i and 10gR1

  • Online Upgrade from Oracle CM SDK and later (since ECMSDK 2.0)

  • Support for iFS Browser (Since ECMSDK 2.3)

Software Requirements

ECMSDK 2.4 is supported with the following software versions:

  • Oracle Database and higher

  • Java 1.8.0 and higher

Supported optional middlware components:

  • Apache Tomcat 7.0.50 and higher

  • GlassFish Server 4.1 and higher

  • Oracle WebLogic Server 12.1.3 and higher

  • JBoss WildFly 8 and higher

  • JBoss EAP 6.4 and higher