To enable your client applications to receive notifications
of change events that occur in theIBM® Content
Manager repository,
you must deploy several components and add functions to your applications.
Before you begin
Install a supported version of
WebSphere® Application
Server and
a corresponding version of
WebSphere MQ
on the same system, which does not have to be the system on which
IBM Content
Manager is
installed. If the applications are on different systems, you must
also install
IBM Information
Integrator for Content.
See the
Content Integrator system requirements technote.
About this task
Clients can subscribe to IBM Content
Manager item
classes (SubscriptionType.ITEM_CLASS) and, by extension,
the individual folders and content items that belong to the item class.
Clients cannot subscribe directly to IBM Content
Manager folders
or individual content items.
Restriction: The
IBM Content
Manager connector
does not support automatic unsubscribing from events. You must unsubscribe
manually but should still call the RES unsubscribe methods so that
the RES subscription is properly removed from the RES database. See
Updating or deleting an event subscription in
the
IBM Content
Manager information
center and
Implementing event subscription in this information center.
The
RES connector maps the IBM Content
Manager event
types to the event types of the RES event format.
Table 1. Event type mapping| RES event type |
IBM Content
Manager event |
| EventType.CREATE |
CMBEMUtil.MESSAGE_PROPERTY_TYPE_ITEM_CREATE |
| EventType.UPDATE (the default event type)
|
CMBEMUtil.MESSAGE_PROPERTY_TYPE_ITEM_UPDATE
CMBEMUtil.MESSAGE_PROPERTY_TYPE_REINDEX
|
| EventType.DELETE |
CMBEMUtil.MESSAGE_PROPERTY_TYPE_ITEM_DELETE |
| EventType.CHECKIN |
CMBEMUtil.MESSAGE_PROPERTY_TYPE_ITEM_CHECKIN |
| EventType.CHECKOUT |
CMBEMUtil.MESSAGE_PROPERTY_TYPE_ITEM_CHECKOUT |
| EventType.FILE |
CMBEMUtil.MESSAGE_PROPERTY_TYPE_FOLDER_ADD |
| EventType.UNFILE |
CMBEMUtil.MESSAGE_PROPERTY_TYPE_FOLDER_REMOVE |
Tip: Though you cannot use Content Integrator API
calls to change the item class of content stored in the repository,
other methods to do so might exist. These events are REINDEX events.
Remember: Content Integrator and
Content Manager EE use
different terms for the same objects:
| Content Integrator term |
IBM Content
Manager term |
| item class |
item type |
| property |
attribute (customized or not) |
Procedure
To enable repository event notification for IBM Content
Manager:
- In MQ Explorer, create an MQ queue named ICMMSGOQ and
a matching JMS queue with these values:
| Property |
Value |
| Name space |
File system |
| Bindings directory |
Create a folder such as C:\JNDI |
| Connection factory name |
ICMMSGOQ_CF |
| JMS queue name |
ICMMSGOQ |
- In the WebSphere Application
Server administration
console, create a JMS queue that maps to the MQ queue, using these
values:
| Property |
Value |
| Messaging provider |
WebSphere MQ |
| JMS queue name |
ICMMSGOQ |
| JNDI name |
/ICMMSGOQ |
| Queue manager name |
Type the name of the MQ queue manager |
- In the IBM Content
Manager system
administration client, use the MQ queue values to set up an event
monitor. See Modifying the event monitor and event handler settings in
the IBM Content
Manager information
center.
- Start the event monitor. See Starting and stopping the event monitor in
the IBM Content
Manager information
center. If the event monitor does not start, follow
these troubleshooting steps:
- If a ClassNotFoundException or a database error
occurs, execute II4C_HOME/bin/cmbenv81.bat,
where II4C_HOME is the path to the IBM Information
Integrator for Content installation
directory, to set up the command line environment, then retry.
- If the error "An event monitor instance has already been started..."
occurs, verify that the event monitor is not actually running, then
reset the Event Monitor Active Flag in the IBM Content
Manager system
administration client.
- In the IBM Content
Manager system
administration client, set up the item type for subscriptions. See Defining an event subscription for general integration.
- To deploy the RES CM connector to the WebSphere Application
Server,
open the WebSphere Application
Server administration
console, navigate to , and create a JMS activation specification that enables
the RES CM connector to receive JMS messages containing repository
events. Use these values:
| Property |
Value |
| Scope |
Select the largest scope available |
| Specification name |
WebSphereMQSpec |
| JNDI name |
jms/WebSphereMQSpec |
| JNDI destination name |
/ICMMSGOQ (the value
of the MQ JMS queue JNDI name) |
| Destination type |
Queue |
| MQ server queue manager |
Type the name of the MQ queue manager |
| MQ server host name and port |
Type the host name and port of the MQ server |
Test the connection and correct as needed.
- In the res_cm_connector.jar file,
open the file com/venetica/vbr/res/connector/cm/RESCMConnector.properties and
type these entries:
- the ConnectorID property: the persistent
ID of the CM connector (open the connector in the Content Integrator administration
tool to find this value)
- the RESDirectorURL property: http://host_name:port_number/ici/res/remote/IRESDirectorwhere host_name and port_number represent
the system on which you installed RES.
Alternatively, you can set the properties as system properties
in the application server.
Tip: To save time, use a
helper application that enables you to edit jar file components without
unpacking the jar file.
- To install the RES CM connector, open the WebSphere Application
Server administration
console and create an application based on the res_cm_connector.jar file. Use the default options and verify that the creation succeeded
without errors.
- In the administration console, navigate to and create two shared libraries for the new application.
- Create a library named ICI-VbrJar and
type the class path ICI_HOME/lib/vbr.jar,
where ICI_HOME is the Content Integrator installation
directory.
- Create a library named II4C and
type these entries in the class path:
- IBMCMROOT\lib\cmbview81.jar
- IBMCMROOT\lib\cmb81.jar
- IBMCMROOT\lib IBMCMROOT\cmgmt
- IBMCMROOT\lib\cmbem81.jar
- IBMCMROOT\lib\hlcbe101.jar
- IBMCMROOT\lib\hlcore.jar
- IBMCMROOT\lib\tlcore.jar
- IBMCMROOT\lib\ecore.jar
- IBMCMROOT\lib\common.jar
- IBMCMROOT\lib\icu.jar
- IBMCMROOT\lib\cmbsdk81.jar
where IBMCMROOT is the path to the IBM Information
Integrator for Content installation
directory.
- Navigate to , and
shift the new shared libraries to the right.
- Save the configuration and restart the RES CM application.
Results
To verify that the RES CM connector is processing events
properly, check the server trace logs on the IBM Content
Manager system
or, if you are running the connector remotely, check the server logs
on its system. On WebSphere Application
Server systems,
the log file is typically WAS_HOME/profiles/profile_name/logs/server_name/SystemOut.log.
If
the connector is not working as expected, look for these issues:
- If error message COEZ1024E occurs during an attempt to subscribe,
open the connector in the administration tool and set the EventProperty-item_class_name custom
property value to the name of a non-binary property in the specified
item class.
- If error message COEZ2003Z appears in the application server log,
check the values of the ConnectorID and RESDirectorURL properties.
- If the exception below occurs during an attempt to subscribe,
delete the subscriptions for the item class in the IBM Content
Manager system
administration client, then retry.
Caused by: com.ibm.mm.sdk.common.DKAlreadyExistException:
DGL7293A: There is a unique index violation during add or update
of an event subscription object.;
ICM8014: The Event Subscription definition cannot be defined or updated
because the definition already exists. Each Event Subscription definition
must be unique. (STATE) : [LS RC = 8014, SQL RC = -803]
- If events still do not appear, check the event monitor logs where
the event monitor is running.