Affects Version/s: OpenIDM 3.0.0, OpenIDM 3.1.0
Fix Version/s: OpenIDM 4.5.0
During startup OpenIDM will occasionally fail to properly register routes to various OpenIDM Services. This is typically observed when there is latency between the OpenIDM instance and the JDBC Repository which causes the JDBC Repo Service to take longer than usual to start.
When the issue occurs for the ManagedObjectService, attempting to query a managed object defined with managed.json would result in the following:
Similar failures may occur for other Services whose routes have been 'lost' during startup.
The problem can be simulated explicitly via the following sequence of events:
- Start the OpenIDM instance
- Open the Apache Felix console via http://localhost:8443/system/console
- Edit the conf/managed.json file and add a new managed object type
- Within the Apache Felix console, navigate to Components and locate the org.forgerock.openidm.managed component
- Stop the org.forgerock.openidm.managed component
- Start the org.forgerock.openidm.managed component
- Perform a query-all-ids against maanaged/user and the failure should occur
Note that the above simply simulates the issue. At startup the same sequence of Service modification, followed by deactivation and reactivation is was causes the failure. However in the case of a startup the sequence is triggered by the parallel startup of multiple OSGi Services.