oracle12c - Migrating to Oracle 12c from previous version: Do I use a multitenant container database (CDB) or non-CDB database -


i attempting add oracle 12c support our large project has been in development many years. running on oracle 10g.

if run script use in 10g create our database objects using 12c ora-65096 error when attempt create user, which described here.

if use following fix can create user , database schema using scripts used 10g:

alter session set "_oracle_script"=true;  

however, when application executes i'm getting following permissions error:

ejb invocation failed on component commondaoejb method public abstract java.lang.string com.mycompany.myappserver.dao.remote.commondao.getschemaversion(java.lang.string): javax.ejb.ejbexception: javax.persistence.persistenceexception: org.hibernate.exception.sqlgrammarexception: ora-00942: table or view not exist      @ org.jboss.as.ejb3.tx.cmttxinterceptor.handleexceptioninourtx(cmttxinterceptor.java:166) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.as.ejb3.tx.cmttxinterceptor.invokeinourtx(cmttxinterceptor.java:230) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.as.ejb3.tx.cmttxinterceptor.required(cmttxinterceptor.java:304) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.as.ejb3.tx.cmttxinterceptor.processinvocation(cmttxinterceptor.java:190) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.remote.ejbremotetransactionpropagatinginterceptor.processinvocation(ejbremotetransactionpropagatinginterceptor.java:80) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.component.interceptors.currentinvocationcontextinterceptor.processinvocation(currentinvocationcontextinterceptor.java:41) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.security.authorizationinterceptor.processinvocation(authorizationinterceptor.java:106) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.security.securitycontextinterceptor.processinvocation(securitycontextinterceptor.java:76) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.component.interceptors.logginginterceptor.processinvocation(logginginterceptor.java:59) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ee.component.namespacecontextinterceptor.processinvocation(namespacecontextinterceptor.java:50) [jboss-as-ee-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.component.interceptors.additionalsetupinterceptor.processinvocation(additionalsetupinterceptor.java:43) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ee.component.tcclinterceptor.processinvocation(tcclinterceptor.java:45) [jboss-as-ee-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.invocation.chainedinterceptor.processinvocation(chainedinterceptor.java:61) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ee.component.viewservice$view.invoke(viewservice.java:165) [jboss-as-ee-7.1.1.final.jar:7.1.1.final]     @ org.jboss.as.ejb3.remote.protocol.versionone.methodinvocationmessagehandler.invokemethod(methodinvocationmessagehandler.java:302) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.as.ejb3.remote.protocol.versionone.methodinvocationmessagehandler.access$200(methodinvocationmessagehandler.java:64) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.as.ejb3.remote.protocol.versionone.methodinvocationmessagehandler$1.run(methodinvocationmessagehandler.java:196) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ java.util.concurrent.executors$runnableadapter.call(executors.java:471) [rt.jar:1.7.0_51]     @ java.util.concurrent.futuretask.run(futuretask.java:262) [rt.jar:1.7.0_51]     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) [rt.jar:1.7.0_51]     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) [rt.jar:1.7.0_51]     @ java.lang.thread.run(thread.java:744) [rt.jar:1.7.0_51]     @ org.jboss.threads.jbossthread.run(jbossthread.java:122) caused by: javax.persistence.persistenceexception: org.hibernate.exception.sqlgrammarexception: ora-00942: table or view not exist      @ org.hibernate.ejb.abstractentitymanagerimpl.convert(abstractentitymanagerimpl.java:1361) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.ejb.abstractentitymanagerimpl.find(abstractentitymanagerimpl.java:816) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.ejb.abstractentitymanagerimpl.find(abstractentitymanagerimpl.java:770) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final]     @ org.jboss.as.jpa.container.abstractentitymanager.find(abstractentitymanager.java:193) [jboss-as-jpa-7.1.1.final.jar:7.1.1.final]     @ com.mycompany.myappserver.ejb.commondaobean.getsystemcontextproperty(commondaobean.java:565) [myappserverejb.jar:]     @ com.mycompany.myappserver.ejb.commondaobean.getschemaversion(commondaobean.java:67) [myappserverejb.jar:]     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) [rt.jar:1.7.0_51]     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) [rt.jar:1.7.0_51]     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) [rt.jar:1.7.0_51]     @ java.lang.reflect.method.invoke(method.java:606) [rt.jar:1.7.0_51]     @ org.jboss.as.ee.component.managedreferencemethodinterceptorfactory$managedreferencemethodinterceptor.processinvocation(managedreferencemethodinterceptorfactory.java:72) [jboss-as-ee-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.invocation.weavedinterceptor.processinvocation(weavedinterceptor.java:53) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ee.component.interceptors.userinterceptorfactory$1.processinvocation(userinterceptorfactory.java:36) [jboss-as-ee-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.jpa.interceptor.sbinvocationinterceptor.processinvocation(sbinvocationinterceptor.java:47) [jboss-as-jpa-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.invocation.initialinterceptor.processinvocation(initialinterceptor.java:21) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.invocation.chainedinterceptor.processinvocation(chainedinterceptor.java:61) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ee.component.interceptors.componentdispatcherinterceptor.processinvocation(componentdispatcherinterceptor.java:53) [jboss-as-ee-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.component.pool.pooledinstanceinterceptor.processinvocation(pooledinstanceinterceptor.java:51) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     @ org.jboss.invocation.interceptorcontext.proceed(interceptorcontext.java:288) [jboss-invocation-1.1.1.final.jar:1.1.1.final]     @ org.jboss.as.ejb3.tx.cmttxinterceptor.invokeinourtx(cmttxinterceptor.java:228) [jboss-as-ejb3-7.1.1.final.jar:7.1.1.final]     ... 30 more caused by: org.hibernate.exception.sqlgrammarexception: ora-00942: table or view not exist      @ org.hibernate.exception.internal.sqlexceptiontypedelegate.convert(sqlexceptiontypedelegate.java:82) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.exception.internal.standardsqlexceptionconverter.convert(standardsqlexceptionconverter.java:47) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:125) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.engine.jdbc.spi.sqlexceptionhelper.convert(sqlexceptionhelper.java:110) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.engine.jdbc.internal.proxy.abstractstatementproxyhandler.continueinvocation(abstractstatementproxyhandler.java:129) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.engine.jdbc.internal.proxy.abstractproxyhandler.invoke(abstractproxyhandler.java:81) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ com.sun.proxy.$proxy100.executequery(unknown source)     @ org.hibernate.loader.loader.getresultset(loader.java:1978) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.loader.loader.doquery(loader.java:829) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.loader.loader.doqueryandinitializenonlazycollections(loader.java:289) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.loader.loader.doqueryandinitializenonlazycollections(loader.java:259) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.loader.loader.loadentity(loader.java:2058) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.loader.entity.abstractentityloader.load(abstractentityloader.java:82) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.loader.entity.abstractentityloader.load(abstractentityloader.java:72) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.persister.entity.abstractentitypersister.load(abstractentitypersister.java:3697) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.event.internal.defaultloadeventlistener.loadfromdatasource(defaultloadeventlistener.java:439) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.event.internal.defaultloadeventlistener.doload(defaultloadeventlistener.java:420) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.event.internal.defaultloadeventlistener.load(defaultloadeventlistener.java:204) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.event.internal.defaultloadeventlistener.proxyorload(defaultloadeventlistener.java:251) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.event.internal.defaultloadeventlistener.onload(defaultloadeventlistener.java:148) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.internal.sessionimpl.fireload(sessionimpl.java:954) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.internal.sessionimpl.get(sessionimpl.java:870) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.internal.sessionimpl.get(sessionimpl.java:863) [hibernate-core-4.0.1.final.jar:4.0.1.final]     @ org.hibernate.ejb.abstractentitymanagerimpl.find(abstractentitymanagerimpl.java:795) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final]     ... 53 more caused by: java.sql.sqlsyntaxerrorexception: ora-00942: table or view not exist      @ oracle.jdbc.driver.sqlstatemapping.newsqlexception(sqlstatemapping.java:91) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.databaseerror.newsqlexception(databaseerror.java:133) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.databaseerror.throwsqlexception(databaseerror.java:206) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.t4cttioer.processerror(t4cttioer.java:455) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.t4cttioer.processerror(t4cttioer.java:413) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.t4c8oall.receive(t4c8oall.java:1034) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.t4cpreparedstatement.dooall8(t4cpreparedstatement.java:194) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.t4cpreparedstatement.executefordescribe(t4cpreparedstatement.java:791) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.t4cpreparedstatement.executemaybedescribe(t4cpreparedstatement.java:866) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.oraclestatement.doexecutewithtimeout(oraclestatement.java:1186) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.oraclepreparedstatement.executeinternal(oraclepreparedstatement.java:3387) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.oraclepreparedstatement.executequery(oraclepreparedstatement.java:3431) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ oracle.jdbc.driver.oraclepreparedstatementwrapper.executequery(oraclepreparedstatementwrapper.java:1491) [ojdbc6-11.1.0.7.0.jar:oracle jdbc driver version - "11.1.0.7.0-production"]     @ org.jboss.jca.adapters.jdbc.wrappedpreparedstatement.executequery(wrappedpreparedstatement.java:462)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) [rt.jar:1.7.0_51]     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) [rt.jar:1.7.0_51]     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) [rt.jar:1.7.0_51]     @ java.lang.reflect.method.invoke(method.java:606) [rt.jar:1.7.0_51]     @ org.hibernate.engine.jdbc.internal.proxy.abstractstatementproxyhandler.continueinvocation(abstractstatementproxyhandler.java:122) [hibernate-core-4.0.1.final.jar:4.0.1.final]     ... 72 more 

i'm thinking related user not being associated cdb , therefore not having privileges objects in schema.

before can start trying fix need determine if user needs created cdb user or non-cdb user. if user cdb user how create cdb user should associated with?

some additional information.

  • all of database interaction creation of database objects through jdbc.

  • the application connects through jboss 7.1.1-final using hibernate dialect set 10g jvm arg when jboss started this: dhibernate.dialect=org.hibernate.dialect.oracle10gdialect

  • the following statements executed create database objects:

alter session set \"_oracle_script\"=true  create tablespace myapp4 datafile 'myapp4.dbf' size 100m reuse   autoextend on next 500m maxsize 25000m  create user myapp4 identified myapp4  grant privileges myapp4  alter user myapp4 quota unlimited on myapp4 

following these steps script run creates table etc. in myapp4 schema.

it turns out underlying issue here caused using incorrect jdbc driver jar.

this problem fixed adding odbc7.jar file came installed product (installed here default \product\12.1.0\dbhome_1\jdbc\lib) , setting hibernate dialect adding following jvm parameter jboss startup script:

-dhibernate.dialect=org.hibernate.dialect.oracle10gdialect

after making these changes legacy 10g application , running , ready testing in 12c.

so answer specific question asked here is: neither, able application including scripts used create 10g schema work in 12c "as-is" once got configured correctly.


Comments