Oracle® Fusion Middleware

JCR Adapter Guide for Content Server

11g Release 1 (11.1.1)


May 2010

The Oracle Fusion Middleware JCR Adapter Guide for Content Server describes the JCR adapter for Oracle Content Server and provides deployment and configuration information.

This document covers the following topics:

1 What's New

The JCR adapter 11g Release 1 (11.1.1) includes the following new features and enhancements.

Support for the RevClasses Table in Oracle Content Server 11g

The JCR adapter supports the RevClasses table implemented in Oracle Content Server 11g. The JCR returns information in that table on document owner, creator, last modifier, last modified date, and creation date. See "Tables for Content Items, Search Index, and File Store" for more information.

2 Java Content Repository (JCR)

The Java Content Repository API is a specification for accessing content repositories in a standardized manner. This specification was developed under the Java Community Process as JSR-170 and includes the Content Repository for Java API and the Java Content Repository (JCR).

The standard APIs associated with the JSR-170 specification are functional and exposed in the JCR adapter. The JCR 1.0 API is required and must by pre-deployed and integrated as part of the underlying framework.

Oracle adapters are fully standards-based and compliant with both the J2EE Connector Architecture and the Web Services Architecture. The JCR adapter can be deployed on any JSR-170-compliant application to enable communication with Oracle Content Server via the standards-based JCR specification.

JCR Adapter API Documentation

For detailed information on the JCR Adapter API, see the Oracle Fusion Middleware JCR Adapter Java API Reference in the Oracle Enterprise Content Management Suite documentation library.

JCR 1.0 API Documentation

The API documentation for the JCR 1.0 API is available online as a JavaDoc and can be referenced from the Apache Software Foundation Web site or the Java Community Process Web site:

3 Required APIs and Runtime Libraries

The JCR adapter can be used with any application that supports the JSR-170 specification, but requires a custom integration. This custom integration requires that an underlying framework consisting of several APIs and runtime libraries be installed.


All of these APIs and runtime libraries are provided with Oracle JDeveloper and WebCenter, with the exception the JCR adapter and RIDC.

ADF Runtime Libraries

Several of the Application Development Framework (ADF) runtime libraries are required and must be installed on your application. These files are available on your Oracle JDeveloper instance. You can perform the installation using the ADF Runtime Installer wizard in JDeveloper or you can do it manually.

The following ADF runtime libraries must be deployed on your application:

  • adf-share-base.jar

  • adf-share-ca.jar

  • adf-share-support.jar

  • adflogginghandler.jar

If you choose to manually install these libraries on your application, they must be installed to the lib directory. For example, an installation on Tomcat would use the TOMCAT_HOME/common/lib directory and an installation on WebLogic would use the WEBLOGIC_HOME/ADF/lib directory (on WebLogic, you must create these directories).

Remote Intradoc Client (RIDC)

Remote Intradoc Client (RIDC) must be deployed on your application. RIDC provides a thin communication API for communication with Oracle Content Server. This API removes data abstractions to the content server while still providing a wrapper to handle connection pooling, security, and protocol specifics. RIDC is included with the JCR adapter distribution file and is available from the Oracle Download Library.


The Java Content Repository (JCR) API must be deployed on your application. The JCR API is available with Oracle JDeveloper, for download from the Apache Software Foundation, and as part of the JSR-170 specifications download from the Java Community Process Web site

Apache Software Foundation:

Java Community Process:

JCR Integration Libraries

The following JCR integration libraries are required and must be deployed on your application:

  • jcr-common-runtime.jar

  • ojcr.jar

  • ojdbc5.jar

These files are available on your Oracle JDeveloper instance.

XML Integration Files

The following XML integration libraries are required and must be deployed on your application:

  • xmlparserv2.jar

  • xquery.jar

These files are available on your Oracle JDeveloper instance.

4 JCR Adapter Deployment

The JCR adapter must be deployed on your application to enable communication with an Oracle Content Server instance. The JCR adapter utilizes Remote Intradoc Client (RIDC) as part of the underlying framework and works in conjunction with the general JSR-170 architecture.

Follow the general instructions of your specific JSR-170-compliant application for deploying JCR adapters. The JCR adapter uses an embedded deployment descriptor (rep_descriptor.xml). Upon deployment, many applications will use the deployment descriptor to populate the configuration entries as part of an administration interface or deployment wizard. If your application does not use an administration interface or deployment wizard, you will need to edit the deployment descriptor directly and provide the required values.

5 Configuration Settings

You must supply several configuration values to enable communication between the JCR adapter and Oracle Content Server.

Connection Method

Supply the provider name and communication method.

  • CIS_SOCKET_TYPE_CONFIG: This configuration setting defines the communication method with Oracle Content Server. Options are socket, socketssl, and web.

    • The socket (listener port) communication method specifies that RIDC should use the Oracle Content Server listener port. If socket is used as the communication method, you must provide the required configuration values. See "Socket Communication (Listener Port)" for more information.

    • The socketssl (secure socket communication) communication method specifies that secure socket communication (SSL) be used as the communication protocol. If socketssl is used as the communication method, you must provide configuration values for both socket communication and secure socket communication. See "Socket Communication (Listener Port)" and "Secure Socket Communication (SSL)" for more information.

    • The web (web server filter) communication method specifies that RIDC should communicate via the web server filter (requires individual authentication for each request). If web is used as the communication method, you must provide the required configuration value. See "Web Communication (Web Server Filter)" for more information.

Socket Communication (Listener Port)

You must supply values for these configuration settings if CIS is connecting through the Oracle Content Server listener port (socket communication) or if secure socket communication (SSL) is used as the communication protocol:

  • SERVER_HOST_CONFIG: The hostname of the machine on which Oracle Content Server is running. The default value is localhost.
  • SERVER_PORT_CONFIG: The port on which Oracle Content Server is listening. The default value is 4444.


Secure Socket Communication (SSL)

You must supply values for both socket communication (listener port) and values for these configuration settings if secure socket communication (SSL) is used as the communication protocol:

  • KEYSTORE_LOCATION: The location and name of the keystore file.

  • KEYSTORE_PASSWORD: The password for the keystore file.

  • PRIVATE_KEY_ALIAS: The private key alias for authentication.

  • PRIVATE_KEY_PASSWORD: The private key password.


Web Communication (Web Server Filter)

You need to supply a value for this configuration settings if CIS is connecting through the web server filter (web communication):

  • SERVER_WEB_URL_CONFIG: The full URL to Oracle Content Server's web server plugin. Include the protocol (usually http or https), hostname, port, relative web root, and the plugin root (usually idcplg). If a port other than port 80 is used, the port number needs to be specified.

    For example: http://myserver:8080/cs/idcplg/


User Agent

You may optionally supply a value to identify JCR requests:

  • CIS_USER_AGENT_CONFIG: A string to append to the RIDC user agent. This can be set to help identify requests made by the JCR adapter.


Cache Settings

You may optionally supply values for these cache settings:

  • VCR_CACHE_INVALIDATION_INTERVAL: Polling interval used by the UCM SPI to check for cache invalidations, in minutes. Defaults to 0 (cache invalidation disabled). The minimum value is 2 minutes.
  • VCR_BINARY_CACHE_MAX_SIZE: Maximum size of documents stored in the VCR binary cache, in bytes. Defaults to 102400 (800kb).


6 JCR Data Model

The JCR standard uses a hierarchical data model based on extensible node types and content properties. This data model is used by the repository's underlying storage subsystems. Refer to the JCR and JSR-170 standards for additional information.

  • The nt:folder node type represents a structured collection of nodes. It is closely related to the directory or folder concept found in many file systems and is the node type that is normally used when mapping file system directories to a content repository.

  • The nt:resource child node is normally used instead of a plain binary property when more resource metadata is required.

  • The nt:file node type represents a file with some content.

  • The nt:unstructured node type permits all kinds of properties and child nodes to be added to a node. It is normally used when nothing is known about the content that will be stored within a node.

Oracle Content Server JCR Adapter Data Model

This is the data model for Oracle Content Server's JCR adapter:

A Folder [nt:folder]
+- jcr:content [nt:resource]
   +- jcr:created DATE
      <returns dCreateDate for the folder>
   +- ojcr:owner STRING
      <returns dCollectionOwner for the folder>
   +- ojcr:creator STRING
      <returns dCollectionCreator if it is available,
      otherwise it returns dCollectionOwner>
   +- ojcr:lastModifier STRING
      <returns dCollectionModifier if it is available,
       otherwise it returns dCollectionOwner
   +- ojcr:lastModified STRING
      <returns dLastModifiedDate>
   +- ojcr:displayName STRING
      <returns dCollectionName for the folder>
   +- idc:defaultMetadata [nt:unstructured]
      <metadata that should by default be applied to content checked
      into this folder. see idc:metadata under nt:file/jcr:content for
      example fields>
  +- idc:folderMetadata [nt:unstructured]
     +- idc:dCollectionName STRING
     +- idc:dCreateDate DATE
     +- idc:dCollectionPath STRING
     +- idc:dLastModifiedDate DATE
     +- idc:dCollectionOwner STRING
     +- idc:dCollectionGUID STRING
     +- idc:dParentCollectionID INTEGER
     +- idc:dCollectionQueries INTEGER
     +- idc:dCollectionEnabled INTEGER
     +- idc:dCollectionInherit INTEGER
     +- idc:dChildManipulation INTEGER
     +- idc:dCollectionID INTEGER
     +- idc:dCollectionCreator STRING
     +- idc:dCollectionModifier STRING
  +- idc:folderPermissions [nt:unstructured]
     +- idc:userCanRead INTEGER
     +- idc:userCanWrite INTEGER
     +- idc:userCanDelete INTEGER

A Document.txt [nt:file]
+- jcr:content [nt:resource]
   +- jcr:data=...
   +- jcr:created DATE 
      <returns dDocCreatedDate from the RevClasses table>
   +- ojcr:creator STRING
      <returns dDocCreator from the RevClasses table>
   +- ojcr:lastModifier STRING
      <returns dDocLastModifier from the RevClasses table>
   +- ojcr:lastModified STRING
      <returns dDocLastModifiedDate >
   +- ojcr:author STRING
      <returns dDocAuthor for the document>
   +- ojcr:comment STRING
      <if xComments exists as a metadata field, that is returned>
   +- ojcr:displayName STRING
      <returns the filename>
   +- ojcr:language STRING
      <if xIdcLanguage exists as a metadata field, that is returned>
   +- idc:metadata [nt:unstructured]
      <returns values for everything in the RevClasses table, 
      please see the definition of that table to see exactly what is defined
      +- idc:dID INTEGER
      +- idc:dDocName STRING
      +- idc:dDocTitle STRING
      +- idc:dDocAuthor STRING
      +- idc:dRevClassID INTEGER
      +- idc:dRevisionID INTEGER
      +- idc:dRevLabel STRING
      +- idc:dIsCheckedOut INTEGER
      +- idc:dSecurityGroup STRING
      +- idc:dCreateDate DATE
      +- idc:dInDate DATE
      +- idc:dOutDate DATE
      +- idc:dStatus STRING
      +- idc:dReleaseState STRING
      +- idc:dWebExtension STRING
      +- idc:dProcessingState STRING
      +- idc:dMessage STRING
      +- idc:dDocAccount STRING
      +- idc:dReleaseDate DATE
      +- idc:dRendition1 STRING
      +- idc:dRendition2 STRING
      +- idc:dIndexerState STRING
      +- idc:dPublishType STRING
      +- idc:dPublishState STRING
      +- idc:dWorkflowState STRING
      +- idc:dRevRank INTEGER
         <all custom metadata properties for a revision
          like idc:xComments STRING>

7 Tables for Content Items, Search Index, and File Store

This section presents table information for content items, search index, and file store.

7.1 Information for Each Content Item

Content managed by Oracle Content Server is primarily tracked by four tables: Revisions, Documents, DocMeta, and RevClasses. These tables track the content's metadata, state, and actions as well as information that is associated with each file.


This table tracks core information of each revision of the content.

  • One row per revision.

  • Different revisions with same content share the same content ID and RevClass ID.

  • System metadata for each revision:

    • Metadata for revisions: content ID, title, author, checkin date, and so on

    • Metadata for categorization and security: type, security group, doc account

  • State information for various actions:

    • Indexing

    • Workflow

    • Document Conversion

  • Numeric IDs and text labels to help track and retrieve a revision:

    • A unique dID per revision (the primary key in the table).

    • A unique dRevClassID per content.

    • A revision ID to mark the revision number for each revision.


This table tracks information for files that are associated with each content revision.

  • One row per revision.

  • Multiple rows per revision, one row for each of these files:

    • Primary

    • Alternate

    • WebViewable

  • File information: original name, location, language, size, and so on


This table contains extended metadata fields.

  • One row per revision.

  • One column per metadata field.

  • Definition for each field stored in the DocMetaDefinition table.


This table tracks information for each content revision.

  • One row per content item.

  • Row locked for content modification.

  • A unique dDocName and RevClassId.

  • Current indexed revision.

  • Tracks date and user:

    • Creation date and creator

    • Last modified date and user

    • Owner

7.2 Search Index

Oracle Content Server provides various ways to search the repository. Metadata searches can be based on Revisions, Documents, DocMeta, and RevClasses tables. To efficiently perform full-text searches, the Oracle database text search feature can be utilized, and the IdcText table can be created to hold the search index.


  • This table contains selected columns from the Revisions, Documents, DocMeta, and RevClasses tables.

    • Predefined list from Revisions, RevClasses and Documents table.

    • Custom metadata from DocMeta table that are indicated as searchable.

  • OtsMeta column (CLOB field) contains SDATA section and additional indexable fields that are not in the columns.

  • OtsContent contains indexable document.

  • ResultSetInterface can be used for sorting, count estimation, and drill-down.

  • SDATA section has significant limitations.

7.3 File Store

The File Store Provider can be used to distribute files managed by Oracle Content Server on the file system, database, and/or other devices. The files are stored in SecureFiles in Oracle Content Server 11g. For database-backed file storage, the FileStorage and FileCache tables store the information related to each file.


This table stores file information and some additional information.

  • Store file in a BLOB field (SecureFiles in Oracle Content Server 11g). DBA can turn on addition BLOB optimizations. For example, deduplication, compression, and encryption with SecureFiles.

  • Maintain a dID and dRenditionID to point to a particular file managed by Oracle Content Server.

  • Small number of fields for tracking information: last modified date and file size.


This table stores pointers for files cached on the file system, for certain types of processing (extraction, conversion, and so on) and quick access by the web server. This pointer is also used to perform clean-up.

8 Documentation Accessibility

Our goal is to make Oracle products, services, and supporting documentation accessible to all users, including users that are disabled. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Accessibility standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For more information, visit the Oracle Accessibility Program Web site at

Accessibility of Code Examples in Documentation

Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit or visit if you are hearing impaired.

Oracle Fusion Middleware JCR Adapter Guide for Content Server, 11g Release 1 (11.1.1)


Copyright © 1996, 2010, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.