Community articleIBM Connections Audit and Compliance Enablement
Added by IBM contributorIBM | Edited by IBM contributordeveloperWorks Lotus Team on July 7, 2014
Rate this article 1 starsRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars

No abstract provided.
IBM Connections provides the capability to track all data change events in all IBM Connections components to help customers with their audit and compliance requirements. The data-change activities include all create, update, and delete (CUD) operations, and they are represented as real-time events with necessary data. The events can then be processed by a third-party tool using the SPIs provided by IBM Connections.

Events are generated for

  • End-user actions for all CUD (create, update, and delete) operations from either the IBM Connections user interface or API calls
  • End-user actions for changes in their preferences and personalization (Home page, News, etc.)
  • Administrator actions that cause any data changes in the applications (for example, user life-cycle events)
  • Automatic system events that cause data changes and data flows (for example, auto-completion of Activities)
  • Content moderation actions when moderation is enabled

In total, there are about 400 events across all components.

Events are not generated for
  • Read access
    • General browsing from all user interfaces in all components
    • Data retrieval through APIs from inside IBM Connections components, plug-ins, or external applications
    • Search queries in each component or global searching through the user interface and APIs
    • File downloads in all components
    • Retrieval of data for metrics as administrator actions
    • Data retrieval through seedlist for indexing contents for search
  • System actions such as internal scheduling tasks that don't cause any data changes like updating internal caches, etc.
  • Application configuration changes, that is, changes in any configuration files in IBM Connections
  • System configuration changes, that is, configuration changes in WebSphere Application Server and/or the OS

General Comments on event data

  • Delete actions only generate events at the level of the deleted object. If the object has children, the deletion of the children won't generate additional events.
  • Events with file attachments do not contain the attachments as part of the event data. The event data contains a reference to retrieve the actual content of the attachments

How to set up the environment to consume events

Register the event handler in the events-config.xml file. For example:

<postHandler enabled="true" invoke="ASYNC" name="AsyncAuditHandler" class="sample.audit.AuditHandler">
<subscription source="*" type="*" eventName="*"/>
<property name="logFile">c:/tmp/lcaudit_async.log</property>
  • Add your handler .jar file to the system through the shared library.
  • Link to the shared library for all the components that you want to consume events from.
  • Configure settings for attachments in the events-config.xml file. For example:

<dataStore enabled="true" timeToKeep="1" rootDir="${EVENT_ROOT_DIR}" >
<store source="activities" contentDir="${ACTIVITIES_CONTENT_DIR}" />
<store source="blogs" contentDir="${BLOGS_CONTENT_DIR}" />
<store source="communities" contentDir="${COMMUNITIES_CONTENT_DIR}" />
<store source="files" contentDir="${FILES_CONTENT_DIR}" />
<store source="forums" contentDir="${FORUM_CONTENT_DIR}" />
<store source="profiles" contentDir="${PROFILES_CONTENT_DIR}" />
<store source="wikis" contentDir="${WIKIS_CONTENT_DIR}" />

How to write an event handler

  • Import the event SPI packages.
  • Your handler class should implement this class:
  • Your handler should implement this method: public void handleEvent(Event event) throws EventHandlerException;
    • This method will be called whenever there is an event generated.
  • Extract event data from the 'event' object and various attributes associated with the event.
  • Process the event data.
  • Store the event data, etc.

Sample code


public class AuditHandler implements EventHandler {

/* (non-Javadoc)
* @see
public void handleEvent(Event event) throws EventHandlerException {
StringBuffer buffer = new StringBuffer();
buffer.append(new Date(event.getTimestamp()));


Event references from all components


  • Audit handlers do not log any event:
    • Make sure that the audit handler .jar file is loaded.
  • Events with attachments do not get logged or attachment data is not logged:
    • Make sure to check that the element exists in the events-config.xml file.
  • Events are logged in some components but not others:
    • Check whether the events-config.xml file is only processing events from certain components. that is, check the element for the 'subscriptions'.
  • Some events within the same component are logged but not all events:
    • Similar to the above, check to see whether the events-config.xml file is only processing events from certain components. that is, check the element for the 'subscriptions'.
  • Common problems:
    • Is the News component working?
      • Go to the Home page and check whether you see News updates.
    • Do you see the events in the trace.log?
      • With the trace setting for events, you should see 'Event Data' (see sample later).
    • Is the audit handler .jar file properly installed as 'shared lib'?
      • Use the WAS admin console to check the installed shared libraries
    • Does the shared library contain the audit handler shared in the application?
      • Use the WebSphere Applicaiton Server admin console to check that each IBM Connections application has the audit handler .jar file in its shared library.