IBM Support

BMXAA6838E - The PLUSSFEATUREOBJECT table is missing. BMXAA8342E - There was an error loading the OSLC interaction cache.

Technical Blog Post


Abstract

This article will provide information on what types of conditions can lead to the errors seen below, and to explain how I resolved them.
The errors being seen upon startup of Maximo are:
BMXAA6838E - The PLUSSFEATUREOBJECT table is missing.
and
BMXAA8342E - There was an error loading the OSLC interaction cache.

These errors are typicalled caused by a corrupt object structure cache.

Body

After upgrading a Maximo instance from 7.5.x to 7.6.x, I was not able to use the Integration Framework.  Web Services were not working, and the object structure application would not load object structures.  Errors were being written to the WebSphere SystemOut logs upon Maximo startup.
[3/14/19 12:08:41:622 EDT] 0000006b SystemOut     O 14 Mar 2019 12:08:41:591 [ERROR] [MAXIMO] [] BMXAA6838E - The PLUSSFEATUREOBJECT table is missing.
psdi.util.MXApplicationException: BMXAA6838E - The PLUSSFEATUREOBJECT table is missing.
    at psdi.iface.mic.MicUtil.getEntityName(MicUtil.java:404)
    at psdi.iface.mic.MicUtil.getKeyArray(MicUtil.java:329)
    at psdi.iface.mos.ObjectStructureCacheImpl.loadMosDetails(ObjectStructureCacheImpl.java:272)
    at psdi.iface.mos.ObjectStructureCacheImpl.loadIntegrationDictionary(ObjectStructureCacheImpl.java:168)
    at psdi.iface.mos.ObjectStructureCacheImpl.init(ObjectStructureCacheImpl.java:73)
    at psdi.mbo.AbstractMaximoMTEnabledCache.getCache(AbstractMaximoMTEnabledCache.java:99)
    at psdi.mbo.AbstractMaximoMTEnabledCache.init(AbstractMaximoMTEnabledCache.java:67)
    at psdi.iface.mos.ObjectStructureCache.<init>(ObjectStructureCache.java:83)
    at psdi.iface.mos.ObjectStructureCache.<clinit>(ObjectStructureCache.java:55)
    at psdi.iface.mic.MicService.init(MicService.java:176)
    at psdi.server.ServiceCoordinator.init(ServiceCoordinator.java:154)
    at psdi.server.MXServer.init(MXServer.java:2630)
    at psdi.server.MXServer.start(MXServer.java:3675)
    at psdi.servlet.MAXIMOStartupServlet.init(MAXIMOStartupServlet.java:92)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:342)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1366)
    at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:617)
    at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:587)
    at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:425)
    at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
    at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1177)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:776)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl$5.run(ApplicationMgrImpl.java:2195)
    at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5474)
    at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5600)
    at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2200)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:389)
    at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:332)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:119)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:938)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:502)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$1.run(WsComponentImpl.java:334)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1864)
[3/14/19 12:08:41:685 EDT] 0000006b SystemOut     O 14 Mar 2019 12:08:41:685 [ERROR] [MAXIMO] [] BMXAA8342E - There was an error loading the OSLC interaction cache. There might be corrupted database entries for the OSLC interaction. If interaction data was loaded outside of the OSLC Providers application, verify that the data was loaded correctly.
    null
psdi.util.MXApplicationException: BMXAA8342E - There was an error loading the OSLC interaction cache. There might be corrupted database entries for the OSLC interaction. If interaction data was loaded outside of the OSLC Providers application, verify that the data was loaded correctly.
    null
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCacheImpl.loadOslcProperties(OslcResourceCacheImpl.java:504)
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCacheImpl.loadOslcRelatedResources(OslcResourceCacheImpl.java:210)
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCacheImpl.loadOslcResourceInfo(OslcResourceCacheImpl.java:133)
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCacheImpl.init(OslcResourceCacheImpl.java:93)
    at psdi.mbo.AbstractMaximoMTEnabledCache.getCache(AbstractMaximoMTEnabledCache.java:99)
    at psdi.mbo.AbstractMaximoMTEnabledCache.init(AbstractMaximoMTEnabledCache.java:67)
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCache.<init>(OslcResourceCache.java:71)
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCache.<clinit>(OslcResourceCache.java:47)
    at psdi.iface.mic.MicService.init(MicService.java:181)
    at psdi.server.ServiceCoordinator.init(ServiceCoordinator.java:154)
    at psdi.server.MXServer.init(MXServer.java:2630)
    at psdi.server.MXServer.start(MXServer.java:3675)
    at psdi.servlet.MAXIMOStartupServlet.init(MAXIMOStartupServlet.java:92)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:342)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1366)
    at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:617)
    at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:587)
    at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:425)
    at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
    at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
    at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)
    at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1177)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:776)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl$5.run(ApplicationMgrImpl.java:2195)
    at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5474)
    at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5600)
    at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2200)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:389)
    at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:332)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:119)
    at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:938)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:502)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$1.run(WsComponentImpl.java:334)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1864)
Caused by: java.lang.NullPointerException
    at psdi.iface.mos.ObjectStructureCache.getMosInfo(ObjectStructureCache.java:120)
    at com.ibm.tivoli.maximo.oslc.provider.OslcResourceCacheImpl.loadOslcProperties(OslcResourceCacheImpl.java:480)
    ... 42 more
Q:  So, what do these errors point to?
A:  The errors indicate there is at least one object structure that is built using and object that does not exist in the database.
Q:  What would cause that to happen?
A:  If you upgrade Maximo from 7.5 to 7.6, some of the underlying objects may no longer be valid.  This is typically seen with upgrades to newer versions of industry solutions, such as Spatial in this case.
What I found was that the table noted in the error message above used to be a table owned by Spatial Asset Management.  Since this product changed, that table was dropped from the schema during the upgrade, however the integration objects were still referencing this object and still expected it to exist.
Another possible cause is simply that a user deleted an object from within the database configuration application, and this object was still referenced in one or more object structures.  This is the more common scenario.
Q:  How do you identify which integration objects reference missing database objects?
A:  By simply running this query for each object noted in your logs, you can find object structures that reference them:

select intobjectname, objectname, relation from maxintobjdetail where objectname = 'PLUSSFEATUREOBJECT'  order by intobjectname

This query will return all object structures that reference the missing object.

Q:  How do you resolve these type of errors?

A:  There are two possible ways to resolve these errors.  In these cases, the object structure application within Maximo will not function which will prevent you from making changes or deleting corrupt object structures:

1.  Create the missing object (if it is a necessary object) using the database configuration application.

2.  Delete the object structure from both the maxintobject and maxintobjdetail tables directly, then restart Maximo.

delete from maxintobject where intobjectname='yourobjectname'

delete from maxintobjdetail where intobjectname='yourobjectname'

After restarting Maximo, the oslc cache and missing table errors should no longer be presented, and the object structure application should again be functional.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"Component":"Integration Framework","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.6.x","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

UID

ibm10876356