This project enhances IBM ODM on WebSphere Liberty by enabling asynchronous trace capture, which improves performance by saving rule execution traces ashynchronously in the background.
- Asynchronous Trace Persistence: Saves trace logs asynchronously using Java EE Concurrency Utilities
- Robust Error Handling: Handles null traces gracefully and uses fallback values
- Detailed Logging: Logs comprehensive trace information for debugging and monitoring
- IBM ODM Installed
- Java 8 or later
- WebSphere Liberty with
concurrent-1.0feature enabled
-
Before building, check and update the ODM and Liberty paths in the build.xml file:
<property name="jrules.home" value="/Applications/IBM/ODM900" /> <property name="liberty.home" value="/Applications/wlp" />
Make sure these paths match the installation locations on your system.
-
Build the JAR using Apache Ant
ant clean build
-
Copy the resulting JAR file to your Liberty server's lib directory:
cp build/jrules-asynctrace.jar /path/to/liberty/usr/servers/yourserver/lib/ -
Add the managed executor service to your server.xml (the name must be "concurrent/AsyncTraceExecutor" as it's hardcoded in AsyncTraceDAOFactory):
<managedExecutorService jndiName="concurrent/AsyncTraceExecutor" />
-
Configure your server.xml to include the JAR as a library:
<library id="AsyncTraceLib"> <fileset dir="${server.config.dir}/lib" includes="jrules-asynctrace.jar" /> </library>
-
Configure your application to use the library:
<application type="war" id="DecisionService" name="DecisionService" location="${server.config.dir}/apps/DecisionService.war"> <classloader delegation="parentLast" privateLibraryRef="AsyncTraceLib"/> </application>
-
Enable trace logging in your server.xml:
<logging traceSpecification="*=info:ilog.rules.support.asynctrace.*=all" />
For issues relating specifically to this repository, please use the GitHub issue tracker. We welcome contributions following our guidelines.
The code found in this project are licensed under the Apache License 2.0.
© Copyright IBM Corporation 2025.