カスタム・アプリケーションJARが存在するため、OIMブートストラップが失敗する

OIM_HOME内にカスタム開発ライブラリまたはJARが配置されている場合、Oracle Identity Manager 12c (12.2.1.3.0)へのアップグレード中にOIMブートストラップが失敗します。

失敗すると、次のようなエラー・メッセージが生成されます:
<Server state changed to FORCE_SHUTTING_DOWN.>
<Nov 19, 2020 4:04:50,356 PM EST> <Notice> <Log Management> <BEA-170037> <The
log monitoring service timer has been stopped.>
<Nov 19, 2020 4:06:16,377 PM EST> <Warning> <JMX> <BEA-149513> <JMX Connector
Server stopped at
service:jmx:iiop://idmoimtl3.chop.edu:14000/jndi/weblogic.management.mbeanserv
ers.runtime.>
<Nov 19, 2020 4:15:43,045 PM EST> <Error> <netuix> <BEA-423142> <The control
com.bea.netuix.servlets.controls.layout.Layout could not be rendered properly
due to the following error:>
<Nov 19, 2020 4:15:44,356 PM EST> <Warning> <Socket> <BEA-000449> <Closing
the socket, as no data read from it on 10.250.116.181:54,532 during the
configured idle timeout of 5 seconds.>
<Nov 19, 2020 4:17:57,525 PM EST> <Warning> <J2EE> <BEA-160188> <Unresolved
application library references, for application
oracle.iam.console.identity.self-service.ear, defined in
weblogic-application.xml: [Extension-Name: oracle.iam.ui.model, exact-match:
false].>
<Nov 19, 2020 4:17:57,810 PM EST> <Warning> <J2EE> <BEA-160188> <Unresolved
WebApp library references defined in weblogic.xml, of module
'oracle.iam.console.identity.self-service.war' [Extension-Name:
oracle.iam.ui.view, exact-match: false], [Extension-Name:
oracle.iam.ui.oia-view, exact-match: false], [Extension-Name:
oracle.iam.ui.custom, exact-match: false], [Extension-Name:
oracle.idm.msm.ui.library, exact-match: false].>
java.lang.ClassNotFoundException:
oracle.iam.ui.platform.view.backing.SkinBean at
weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoad
er.java:1029) at
weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.ja
va:990)  at
weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.
java:611) at
weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.ja
va:543) at
weblogic.servlet.internal.AnnotationProcessingManager.processAnnotations(Annot
ationProcessingManager.java:105) at
weblogic.servlet.tools.WARModule.processAnnotations(WARModule.java:513) at
weblogic.servlet.tools.WARModule.processAnnotations(WARModule.java:605) at
weblogic.servlet.tools.WARModule.merge(WARModule.java:553) at
weblogic.application.compiler.ToolsModuleWrapper.merge(ToolsModuleWrapper.java
:96) at
weblogic.application.utils.CustomModuleManager.merge(CustomModuleManager.java:
78) at
weblogic.application.compiler.flow.MergeModuleFlow.compile(MergeModuleFlow.jav
a:38) at
weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:
70) at
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.jav
a:45) at
weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37)  
weblogic.application.compiler.flow.AppMergerFlow.mergeInput(AppMergerFlow.java
:75)at
weblogic.application.compiler.flow.AppMergerFlow.compile(AppMergerFlow.java:40
) at
weblogic.application.compiler.FlowDriver$FlowStateChange.next(FlowDriver.java:
70) at
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.jav
a:45) at
weblogic.application.compiler.FlowDriver.nextState(FlowDriver.java:37) at
weblogic.application.compiler.AppMerge.runBody(AppMerge.java:168) at
weblogic.utils.compiler.Tool.run(Tool.java:159) at
weblogic.utils.compiler.Tool.run(Tool.java:116) at
weblogic.application.compiler.AppMerge.merge(AppMerge.java:198) at
weblogic.deploy.api.internal.utils.AppMerger.merge(AppMerger.java:94)at
weblogic.deploy.api.internal.utils.AppMerger.getMergedApp(AppMerger.java:58)
at
weblogic.deploy.api.model.internal.WebLogicDeployableObjectFactoryImpl.createD
eployableObject(WebLogicDeployableObjectFactoryImpl.java:186) at
weblogic.deploy.api.model.internal.WebLogicDeployableObjectFactoryImpl.createD
eployableObject(WebLogicDeployableObjectFactoryImpl.java:167)at
com.bea.console.utils.DeploymentConfigurationHelper$1.execute(DeploymentConfig
urationHelper.java:860) at
com.bea.console.utils.DeploymentUtils.runDeploymentAction(DeploymentUtils.java
:5690) at
com.bea.console.utils.DeploymentConfigurationHelper.initDeploymentConfiguratio
n(DeploymentConfigurationHelper.java:848) at
com.bea.console.utils.DeploymentConfigurationHelper.completeInitialization(Dep
loymentConfigurationHelper.java:444) at
com.bea.console.utils.DeploymentConfigurationManager.getDeploymentConfiguratio
n(DeploymentConfigurationManager.java:151) at
com.bea.console.utils.DeploymentConfigurationManager.getDeploymentConfiguratio
n(DeploymentConfigurationManager.java:104) at

この問題を解決するために、Oracleでは、カスタム開発されたJARまたはライブラリをOIM_HOME内に保持しないようにして、ファイル・システムの依存関係を回避することをお薦めします。ファイル・システムの依存関係によって、アウトオブプレースOracleホームのアップグレード中にこのようなカスタム・ライブラリを維持するオーバーヘッドが追加されます。これは、そのようなカスタムJARが古いOracleホーム(アップグレード・プロセス前のOracleホーム)に残るためです。

このような問題を回避するには、カスタム・ライブラリをデータベースにアップロードする必要があります。カスタム・ライブラリがOIMプラグイン圧縮(.zip)形式の場合は、プラグイン・ユーティリティを使用して登録します。カスタム・ライブラリがJARの場合は、JARのアップロード・ユーティリティを使用してデータベースに同じものをアップロードします。

何らかの理由で前述の推奨事項に従わない場合は、カスタム開発したJARを古いOracleホームから適切な場所の新しいOracleホームに手動でコピーできます。