Oracle Forms 12c oracle.security.jps.JpsException Error after Database change

Posted by Dirk Nachbar on Thursday, July 20, 2017
My current huge Oracle Forms 12c Migration Project is still going on and every day we have some new problems.

After the DBA's were moving our Repository Database for the new Oracle Forms 12c environments (without any notice to us ...), nothing were working again on our environment :-)

So the first step, were to stop all processes from our Oracle Forms 12c environment:
  • Reports Server
  • all Managed Servers containing Oracle Reports and Oracle Forms Applications
  • Admin Server
Next step, we aligned the 4 JDBC Connections under $DOMAIN_HOME/config/jdbc in order to point to the new Database Server location:
  • LocalSvcTblDataSource-jdbc.xml
  • opss-audit-jdbc.xml
  • opss-auditview-jdbc.xml
  • opss-datasource-jdbc.xml
After that I tried to startup the Admin Server ... after some seconds the Admin Server stopped directly and in the corresponding logfile of the Admin Server I could find following error message:
<BEA-000362> <Server failed. Reason:
There are 1 nested errors:
oracle.security.jps.JpsException: oracle.security.jps.service.policystore.PolicyStoreException: javax.persistence.PersistenceException: java.lang.ClassCastException: oracle.jdbc.xa.client.OracleXADataSource cannot be cast to java.sql.Driver
        at oracle.security.jps.internal.config.OpssCommonStartup.start(OpssCommonStartup.java:215)
        at oracle.security.jps.wls.JpsWlsStartup.start(JpsWlsStartup.java:104)
        at oracle.security.jps.JpsStartup.start(JpsStartup.java:210)
        at oracle.security.jps.wls.JpsDefaultService.start(JpsDefaultService.java:74)
        . . .
        . . .
Caused by: oracle.security.jps.service.policystore.PolicyStoreException: javax.persistence.PersistenceException: java.lang.ClassCastException: oracle.jdbc.xa.client.OracleXADataSource cannot be cast to java.sql.Driver
        at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.processJPAException(JpsDBDataManager.java:2658)
        at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.existsTable(JpsDBDataManager.java:1682)
        . . .
        . . .

I verfied once again, if all JDBC Connections were defined correctly and I didn't found any typomistake or error ...

Finally, I came across the configuration files for the Oracle Platform Security for Java Configuration Files jps-config.xml and jps-config-jse.xml under $DOMAIN_HOME/config/fmwconfig. Within these 2 Configuration Files you also have to align the changed Database Server location.

In jps-config.xml go to line 22 and align the following line with your new settings:
# Line 22
<property name="jdbc.url" value="jdbc:oracle:thin:@//dbserver:listener_port/DB_ServiceName"/>

In the jps-config-jse.xml you have to align 2 lines with your new settings, line number 20 and line number 168:
# Line 20
<property name="jdbc.url" value="jdbc:oracle:thin:@//dbserver:listener_port/DB_ServiceName"/>

# Line 168
<property name="audit.loader.jdbc.string" value="jdbc:oracle:thin:@//dbserver:listener_port/DB_ServiceName"/>
After that you can startup your Admin Server and your Managed Servers for your Oracle Forms 12c environment without any problems :-)

Categories: ,