Skip to main content

Support & downloads  >  

Java Content Repository (JCR) information and Frequently Asked Questions (FAQ) for IBM Web Content Management (WCM)

 Technote (FAQ)
 
 
Question
What are some of the basic concepts and terminology required to understand the role of JCR (Java™ Content Repository) in an IBM® Web Content Management (WCM) environment?
 
Answer

What is a "workspace"?
Within the JCR specification, the concept of a workspace is defined to be a container for a collection of nodes. The content repository is divided into the following hierarchy:
    1. Repository - Container for workspaces
    2. Workspace - Container for nodes
    3. Node - Container for properties
    4. Property - Attribute of node

All work in the repository is done by way of a workspace. When a user logs into the repository, he is given a "ticket". Through this "ticket", the user requests a workspace. It is through the workspace that all interaction with the nodes, or content, is performed. All modifications to nodes within a workspace is transient until a save operation. The workspace save operation persists all changes made to the nodes within the workspace to permanent storage, the database.

What are dynamic workspaces?

If one thinks of regular workspaces as a "sandbox" then you may make changes to your workspace and they are not persisted to the back-end data store until save is called on the workspace. A dynamic workspace is a workspace created from a regular workspace. It contains all the nodes that exist in the regular workspace. Except this sandbox is even more specialized. In this sandbox any changes you make to nodes can be persisted by way of a save operation called on the workspace to the back-end data store.

NOTE: Changes made in the dynamic workspace are NOT made in the stable workspace. The changes made in a dynamic workspace are merged into the backing stable workspace when a merge operation is called.

What kind of user permissions are given by default to a workspace?

A workspace itself does not have access/permissions associated with it. All authorization decisions within the repository are made against the nodes in the workspace. Therefore, if you request an operation within a workspace, the authorization check is made against the nodes involved in the operation. There are no workspace authorization checks.

Does each logged in user gets a workspace OR is the workspace shared?

Within the repository there is only one workspace with a given name. However, every user that logs into the repository and requests a workspace with a given name is given a distinct Java object to represent it. Thus, each user has their own personal playground copy of that workspace. Their changes are only persisted if they call save on the workspace object.

NOTE: Applications above the repository may choose to share or cache the workspace object in their own manner.

What specific names correspond to the Personalization workspace, WCM workspace and PDM workspace?

Every workspace in the repository is identified by a unique name. Usage of named workspaces by the various applications vary depending upon the exact WebSphere Portal release level. For WP6.0, the following workspace instance to application usage exists:

    • PZN => RULESWORKSPACE
    • PDM => ROOTWORKSPACE
    • WCM => ROOTWORKSPACE

How does one backup and restore the database?

Each database will provide its own tooling to accomplish a backup or data restore of a database instance. The database administrator should have a regular process of backup for the repository database along with the other portal databases. In the event of a catastrophic failure, a restore may be the shortest path to recovery of the data in the system.

NOTE: Restoring data from backup will not solve the root cause of problems affecting the application server itself.

For Cloudscape, a backup can be as simple as creating a zip file archive of the directory structure that contains the database. For the other database platforms, use the associated vendor tools. Your database administrator should be familiar with how to use them.


How is content stored in the JCR tables, nodes, and UUIDs?

Content is stored in the repository against a complex schema of interrelated tables. For each node within a workspace it is modeled via the following tables at a minimum:

  • ICMSTJCRWSNODES
  • ICMSTJCRLINKS
  • ICMSTJCRNODELOCKS
  • ICMSTUT00XXXX (for each nodetype it will have information stored in it)

Each node is modeled through a graph of information stored across multiple tables. For this reason, deleting a node is not such a simple matter as removing one row from a table in the database. The interrelated connections between all of the tables must be handled. In many cases, the level of logic required is not encoded in any singular SQL command that can be sent to the database.

Does IBM publish the JCR database schema?

No. The data in the JCR is separated across several tables in the database. There is no simple correlation between the WCM objects and database tables or rows.

What data can be safely deleted from the database without causing corruption?

In most cases there is not simply a SQL statement that can be constructed to fix an application issue. The context or semantics for functions are encoded in the application and not the database itself.

How many characters are allowed for a user ID in JCR?

For Portal 6.0.1.x and earlier, there is a limit of 32 characters for user ID's which are using JCR. This limit is documented in technote 1265895.

For Portal 6.1 and later, the user ID length can be up to 175 characters.

Can you synchronize PDM Document libraries between two servers?

You can use PDM Staging to Production to upload PDM data to a production server. However, you cannot use Staging to Production for complete synchronization, as it requires the user to manually synchronize deletes, renames, and moves.

If restoring databases from backup, do we need to restore all Portal/JCR databases at once?

Yes. It is a best practice to always backup and restore all of the databases at the same time.

Can you share the same JCR database between two different portal (non-clustered) instances?

No. This is not possible unless the schema names are different.

Can you share the same JCR database when the schema names are different?

Yes. Provided that the schema names are unique for each portal instance.

What is the use of icmjcradminwar?

The icmjcradminwar includes a number of functions that are used by the content repository. The primary function however is the InitServlet. The InitServlet is loaded to initialize the content repository for usage by applications.

As part of this initialization, the cache of node types within the system must be initially prepared. This cache is a large cache that requires multiple reads against the tables of the repository. As such, it does take a while for the cache to be loaded.

Due to this time, rather than make the first application request encounter this delay, the InitServlet experiences the delay during the server startup.

This behavior is by design and the application should not be disabled as several of the core portal functions depend upon the content repository.

What database tables belong to JCR?

The following tables in the JCR database below to JCR:

    • All tables that start with ICM*
    • All tables that start with TSS*

What other applications write to JCRDB?

In 6.0x and 6.1, WCM event logging writes directly to JCRDB without going through JCR.

Portal Access Control writes data directly to JCRDB in 6.0x and 6.1. 




Can I change the database access rights after the JCR Database has been created?

Refer to the following technotes for more information:
DB2 Rights for the Portal Runtime Database User
DB2 for z/OS Database Rights Definition for the Portal Runtime Database User

Database character sets

All databases must be created using UNICODE Database and National character sets such as UTF8, AL32UTF8, or AL16UTF16

 
 
 

Copyright and trademark information
IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.
Rate this page
Please take a moment to complete this form to help us better serve you.
This material provides me with the information I need.




This material is clear and easy to understand.




Did the information help you to achieve your goal?
What updates, improvements, or related information would you like to see in this document?
Your response will be used to improve our document content. Requests for assistance, if applicable, should be submitted through your normal support channel as we cannot respond from this site.
Input the verification number to submit feedback:
Document information
 Product categories:
 Software
 Enterprise Content Management
 Content Management
 Workplace Web Content Management
 General
 Operating system(s):
  AIX, HP-UX, Linux, Solaris, Windows, i5/OS, z/OS
 Software version:
  6.0, 6.0.0.1, 6.0.0.2, 6.0.0.3, 6.0.0.4, 6.0.1, 6.0.1.1, 6.0.1.2, 6.0.1.3, 6.0.1.4
 Software edition:
  Java edition
 Reference #:
  1321701
 IBM Group:
 Software Group
 Modified date:
 2008-10-14

Translate My Page
 
 

Rate this page

Help us improve this page. Your response will be used to improve our document content. Requests for assistance, if applicable, should be submitted through your normal support channel as we cannot respond from this site.