Enabling Waltz and Sonata traces on the FileNet® Server

You need to enable Waltz and Sonata on the FileNet®Server to see logs for these applications.

About this task

Waltz provides the common Directory Services and its extension such as WPI/WCI framework for Enterprise web Applications on the Java EE platform. As a shareable common directory service component Waltz focuses on accessing directory profile data.

Sonata provides the common HttpClient services for a RESTful back end with a set of configurable authenticators to support various SSO security tokens and cookies for secure server-to-server communication.

Both Waltz and Sonata support profile and community membership lookups in FileNet®.

This instruction is derived from the HCL Support technote: Configure tracing for HCL FileNet® Content Engine by using log4j. Waltz and Sonata are incorporated into the FileNet® Content Engine, which becomes part of the FileNet® P8 Server 5.2. This integration service enables Enterprise Content Management over the Social Business Platform. However, the FileNet® server is independent from the common usage of the troubleshooting vehicle that is provided by the WebSphere® Application Servers historically. Therefore, the troubleshooting mechanism for the FileNet® Application Server could be slightly different from the traditional Enterprise web-based applications that are used in HCL Connections.

Procedure

  1. Copy the sample log4j.xml outlined in the Results section into a new log4j.xml file to the location that is given in the sample.
    For example:
    • Linux: /<absolute_path_for_log4j_file>/log4j.xml
    • Windows:\<absolute_path_for_log4j_file>\log4j.xml
  2. Add the following JVM command-line arguments to the FileNet Application Server: -Dlog4j.configuration=file:/<absolute_path_for_log4j_file>/log4j.xml -DskipTLC=true See HCL Support technote: Configure tracing for HCL FileNet Content Engine using log4j for more information.
    Note: This instructs the Content Engine (FileNet Content Engine) server to skip the existing Trace Logging Configuration.
  3. Restart the FileNet Application Server.
  4. Re-create the problem and collect the trace files for support.
  5. Locate the waltz.sonata.trace.log file under the profiles folder.
    For example:
    • Windows: c:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01
    • Linux /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
  6. Turn tracing off by removing the JVM command-line arguments and restarting the FileNet Application Server.

Results

Here is a sample log4J.xml. You can also find the sample in IBM Support technote: Instructions for Generating Trace Logs for both FileNet P8 Content Platform Engine and HCL Connections Waltz.
<log4j:configuration debug="false"><!-- 
    ########################################################################
    # FileNet Apperders:
    ######################################################################## 
    --><appender name="FileNetErrorRollingAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="logs/p8_server_error.log"/><param name="Threshold" value="error"/>
    <param name="MaxFileSize" value="100MB"/><param name="MaxBackupIndex" value="5"/>
    <layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d %5p [%t] 
    - %m\r\n"/></layout></appender>
    <appender name="FileNetTraceRollingAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="logs/p8_server_trace.log"/><param name="MaxFileSize" value="100MB"/>
    <param name="MaxBackupIndex" value="5"/><!--
     # This is the layout that the TraceLoggingConfiguration framework uses.  To use this layout
     # in a manual log4j configuration (while using skipTLC=true for example), jace.jar
     # must be present in the startup classpath.-->
     <!-- layout class="com.filenet.apiimpl.util.TraceLayout"/ -->
     <!-- Comment out the following if using the FileNet TraceLayout -->
     <layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d %5p [%t] 
     - %m\r\n"/></layout></appender><!-- 
    ########################################################################
    # Waltz Apperders:
    ######################################################################## 
    --><appender name="WaltzFileAppender" class="org.apache.log4j.RollingFileAppender">
    <!-- absolute path to log file -->
    <param name="File" value="logs/waltz.sonata.trace.log"/>
    <!-- setting this to false will cause the file to be truncated with each restart -->
    <param name="Append" value="true"/><!-- MaxFileSize --><param name="MaxFileSize" value="100MB"/>
    <!-- Oldest file will be deleted if more than n files were generated -->
    <param name="MaxBackupIndex" value="2"/>
    <!-- Layout --> 
    <layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c 
    - %m%n"/></layout></appender><!-- 
    ########################################################################
    # FileNet Error Loggers:
    #
    # Set log level to either one of off/fatal/error/warn/info
    # By default, error logging is set to level INFO.
    ######################################################################## 
    --><logger name="filenet_error" additivity="false"><level value="info"/>
    <appender-ref ref="FileNetErrorRollingAppender"/>
    <appender-ref ref="FileNetTraceRollingAppender"/></logger><!-- 
    ########################################################################
    # FileNet Trace Loggers:
    #
    # Setting log level to "off" will turn off the trace logging.
    # Setting log level to "debug" will turn on the trace logging.
    #
    # Child logger's value overwrites parent logger's one.
    # If a logger is not specified, it inherents its value from its parent logger.
    # By default, trace logging is off. 
    #
    # The general message trace logging has a hierarchy of three detail levels represented with
    # hierarchical logger names:
    #    ...detail.moderate.summary  - Enables a summary level of tracing
    #    ...detail.moderate          - Enables a moderate level of tracing
    #    ...detail                   - Enables the most detailed level of tracing
    #
    # Uncomment corresponding lines to turn tracing on.  To enable trace logging
    # for all subsystems and all flags, set the level of the filenet_tracing
    # logger to debug.
    #
    # Here are the trace flags used for each sub system.  For message tracing, enable the line
    # corresponding to the desired detail level.
    #    log4j.logger.filenet_tracing.<SubSystem>.timer                   = debug
    #    log4j.logger.filenet_tracing.<SubSystem>.detail.moderate.summary = debug
    #    log4j.logger.filenet_tracing.<SubSystem>.detail.moderate         = debug
    #    log4j.logger.filenet_tracing.<SubSystem>.detail                  = debug
    #
    # For example:
    #    log4j.logger.filenet_tracing.engine.detail.moderate = debug
    #
    # NOTE: These entries are used only if -DskipTLC=true has been specified as
    #       a JVM argument.
    ######################################################################## 
    --><!-- By default, trace logging is turned off -->
    <logger name="filenet_tracing" additivity="false"> <level value="off"/>
    <appender-ref ref="FileNetTraceRollingAppender"/></logger>
    <!-- SubSystem: ejb -->
    <!-- logger name="filenet_tracing.ejb"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.ejb.timer"> <level value="debug"/>  
    </logger --><!-- logger name="filenet_tracing.ejb.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.ejb.detail.moderate"> <level value="debug"/>
    </logger --><logger name="filenet_tracing.ejb.detail"> <level value="debug"/></logger>
    <!-- SubSystem: security -->
    <!-- logger name="filenet_tracing.security">
    <level value="debug"/></logger --><!-- logger name="filenet_tracing.security.timer">
    <level value="debug"/></logger --><!-- logger name="filenet_tracing.security.detail.moderate.summary"> 
    <level value="debug"/></logger --><!-- logger name="filenet_tracing.security.detail.moderate">
    <level value="debug"/></logger --><logger name="filenet_tracing.security.detail"> <level value="debug"/>
    </logger><!-- SubSystem: database -->
    <!-- logger name="filenet_tracing.database"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.database.timer"> <level value="debug"/>  
    </logger --><!-- logger name="filenet_tracing.database.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.database.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.database.detail"> <level value="debug"/>  
    </logger --><!-- SubSystem: wsi -->
    <!-- logger name="filenet_tracing.wsi"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.wsi.timer"> <level value="debug"/>  
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.wsi.detail.moderate.summary"> <level value="debug"/>  
    </logger --><!-- logger name="filenet_tracing.wsi.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.wsi.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: api --><!-- logger name="filenet_tracing.api"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.api.timer"> <level value="debug"/>  
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.api.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.api.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.api.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: engine -->
    <!-- logger name="filenet_tracing.engine"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.engine.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.engine.detail.moderate.summary"> <level value="debug"/>  
    </logger --><!-- logger name="filenet_tracing.engine.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.engine.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: content_storage -->
    <!-- logger name="filenet_tracing.content_storage"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.content_storage.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.content_storage.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.content_storage.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.content_storage.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: events --><!-- logger name="filenet_tracing.events"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.events.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.events.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.events.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.events.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: fixed_content_provider -->
    <!-- logger name="filenet_tracing.fixed_content_provider"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.fixed_content_provider.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.fixed_content_provider.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.fixed_content_provider.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.fixed_content_provider.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: content_cache -->
    <!-- logger name="filenet_tracing.content_cache"> <level value="debug"/> 
    </logger --><!-- logger name="filenet_tracing.content_cache.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.content_cache.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.content_cache.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.content_cache.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: asynchronous_processing -->
    <!-- logger name="filenet_tracing.asynchronous_processing"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.asynchronous_processing.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.asynchronous_processing.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.asynchronous_processing.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.asynchronous_processing.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: cfs_daemon -->
    <!-- logger name="filenet_tracing.cfs_daemon"> <level value="debug"/> 
    </logger --><!-- logger name="filenet_tracing.cfs_daemon.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.cfs_daemon.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.cfs_daemon.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.cfs_daemon.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: ssi -->
    <!-- logger name="filenet_tracing.ssi"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.ssi.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.ssi.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.ssi.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.ssi.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: metadata_cache -->
    <!-- logger name="filenet_tracing.metadata_cache"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.metadata_cache.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.metadata_cache.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.metadata_cache.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.metadata_cache.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: cbr -->
    <!-- logger name="filenet_tracing.cbr"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.cbr.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.cbr.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.cbr.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.cbr.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: search -->
    <!-- logger name="filenet_tracing.search"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.search.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.search.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.search.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.search.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: gcd -->
    <!-- logger name="filenet_tracing.gcd"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.gcd.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.gcd.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.gcd.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.gcd.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: publish -->
    <!-- logger name="filenet_tracing.publish"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.publish.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.publish.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.publish.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.publish.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: code_module -->
    <!-- logger name="filenet_tracing.code_module"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.code_module.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.code_module.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.code_module.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.code_module.detail"> <level value="debug"/>
    </logger --><!-- SubSystem: error -->
    <!-- logger name="filenet_tracing.error"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.error.timer"> <level value="debug"/>
    </logger --><!-- ## Remove the comment corresponding to the desired detail level -->
    <!-- logger name="filenet_tracing.error.detail.moderate.summary"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.error.detail.moderate"> <level value="debug"/>
    </logger --><!-- logger name="filenet_tracing.error.detail"> <level value="debug"/>
    </logger --><!-- 
    ########################################################################
    # Waltz Loggers:
    ######################################################################## 
    --><category name="com.ibm.connections.directory.services" additivity="true"><priority value="debug"/>
    </category><category name="com.ibm.connections.httpClient" additivity="true"><priority value="debug"/>
    </category><category name="SonataHttpHeader" additivity="true"><priority value="debug"/></category><!-- 
    ########################################################################
    # Root Logger (Must go last):
    ######################################################################## 
    --><root><priority value="warn"/><appender-ref ref="WaltzFileAppender"/>
    <!-- appender-ref ref="FileNetTraceRollingAppender" / --></root></log4j:configuration>