500 Internal server accessing OIM application : com.bea. security.MicroSM. getInstance oracle.iam. platform. authz.impl

Oracle Identity Manager (OIM) is a J2EE application deployed on Oracle Weblogic Server (In OIM 11g WebLogic is mandatory, in previous versions You could deploy OIM on other application servers like IBM WebSphere, TomCat, IAS etc). In this post I am going to cover an issue that I encountered while accessing OIM application and fix for that.

  • For any errors during startup check logs under $DOMAIN_HOME/ servers/ [oim_server1]/ logs/ (where oim_server1 is name of managed server where OIM application is deployed)
  • You should also check STATE of application (oim in my case) from WebLogic Console under deployments link (STATE of OIM application should be ACTIVE)

 

 

In my case error was during accessing OIM application /oim and error (in OIM diagnostic log file) was related to Oracle Entitlement Server (OES) during Authorization. OIM 11g uses embedded Oracle Entitlement Server (OES) instance for authotization, more on OES from Naresh Persaud here

ERROR in $DOMAIN_HOME/ servers/ [oim_server1]/ logs/ oim_server1-diagnostic.log

______

<Nov 16, 2012 6:29:50 AM UTC> <Error> <oracle.iam.platform.authz.impl> <IAM-1010000> <Encountered exception {0}
java.lang.RuntimeException: java.lang.ClassNotFoundException
at com.bea.security.MicroSM. getInstance(MicroSM.java:92)
at oracle.iam.platform.authz.impl. OESAuthzServiceImpl. init(OESAuthzServiceIm///∆∆/pl.java:138)

Caused By: java.lang.ClassNotFoundException
at oracle.iam.platform. authz.vo.OESClassLoader. loadClass(OESClassLoader.java:105)
at com.bea.security.MicroSM.getInstance(MicroSM.java:81)
at oracle.iam.platform.authz.impl.OESAuthzServiceImpl.init(OESAuthzServiceImpl.java:138)

<Nov 16, 2012 6:29:50 AM UTC> <Warning> <oracle.iam.platform.utils> <IAM-0070016> <An error occurred while initializing service : oracle.iam.platform.authz.api.AuthorizationService>
<Nov 16, 2012 6:29:50 AM UTC> <Warning> <oracle.iam.platform.utils> <IAM-0070016> <An error occurred while initializing service : {0}
java.lang.ClassNotFoundException
at oracle.iam.platform.authz.vo.OESClassLoader.loadClass(OESClassLoader.java:105)
at com.bea.security.MicroSM.getInstance(MicroSM.java:81)
<Nov 16, 2012 6:29:51 AM UTC> <Error> <oracle.iam.platform.utils> <IAM-0079900> <An error occurred while loading the parent resource bundle oracle.iam.consoles.faces.resources.Common>
<Nov 16, 2012 6:29:51 AM UTC> <Error> <HTTP Session> <BEA-100028> <Could not deserialize session data.
java.util.MissingResourceException: Can’t find bundle for base name oracle.iam.consoles.faces.resources.Common, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)

<Nov 16, 2012 6:29:51 AM UTC> <Error> <HTTP> <BEA-101020> <[ServletContext@384013578[app:oim module:oim path:/oim spec-version:2.5 version:11.1.1.3.0]] Servlet failed with Exception
oracle.iam.platform.utils.ServiceInitializationException: java.lang.ClassNotFoundException
at oracle.iam.platform.Platform.getService(Platform.java:266)

______

 

If you see error like above then

a) Shutdown OIM managed server
b) Either remove files/directory related to oes/oracle from /tmp or change permission of /tmp to 777 (recursive)
c) Restart OIM Server

  • Other option is to change TEMP file location in WebLogic Server to different location
Reason for above issue : If there is another application (like OAM) that uses OES and if that application is started by different linux user then OES related files in /tmp are not writable to OES (from OIM).

 

About the Author Masroof Ahmad

Leave a Comment:

1 comments
Add Your Reply