ArrayDescriptor.createDescriptor is throwing SQLException
524493Jul 21 2006 — edited Aug 3 2006I am trying to create ArrayDescriptor for an oracle type which is throwing SQL exception. Here is the line thats throwing exception.
ArrayDescriptor arraydesc = ArrayDescriptor.createDescriptor("JACKCACHE.ACCOUNT_TYPE", nativeConnection);
And here is the full stacktrace
2006-07-20 16:22:14,293 ERROR [ExecuteThread: '24' for queue: 'weblogic.kernel.Default'] account.EDAddUpdateAccount (EDAddUpdateAccount.java:155) -
java.sql.SQLException: Undefined type: get_next_type
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:1130)
at oracle.jdbc.oracore.OracleTypeADT.getNextTypeObject(OracleTypeADT.java:1262)
at oracle.jdbc.oracore.OracleTypeADT.parseTDSrec(OracleTypeADT.java:873)
at oracle.jdbc.oracore.OracleTypeADT.parseTDS(OracleTypeADT.java:808)
at oracle.jdbc.oracore.OracleTypeADT.applyTDSpatches(OracleTypeADT.java:954)
at oracle.jdbc.oracore.OracleTypeADT.parseTDSrec(OracleTypeADT.java:882)
at oracle.jdbc.oracore.OracleTypeADT.parseTDS(OracleTypeADT.java:808)
at oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:412)
at oracle.sql.ArrayDescriptor.initPickler(ArrayDescriptor.java:1952)
at oracle.sql.ArrayDescriptor.<init>(ArrayDescriptor.java:199)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:118)
at com.cingular.cam.commonservices.actionprocessors.jackcache.ora.account.EDAddUpdateAccount.execute(EDAddUpdateAccount.java:107)
at com.cingular.cam.commonservices.core.Controller.process(Controller.java:169)
at com.cingular.cam.commonservices.core.CAMInterfaceHandler.process(CAMInterfaceHandler.java:111)
at com.cingular.cam.commonservices.core.VersionHandler.process(VersionHandler.java:290)
at com.cingular.cam.ejb.statelessmediator.StatelessMediatorBean.process(StatelessMediatorBean.java:134)
at com.cingular.cam.ejb.statelessmediator.StatelessMediator_av4k1c_EOImpl.process(StatelessMediator_av4k1c_EOImpl.java:154)
at com.cingular.cam.ejb.statelessmediator.StatelessMediator_av4k1c_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:492)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:435)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:430)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:35)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
This type is valid because I tried to set this type to typemap that i got from OracleConnection. the following 3 lines of code didnt create any problem.
java.util.Map myMap = nativeConnection.getTypeMap();
myMap.put("JACKCACHE.ACCOUNT_TYPE", Class.forName("com.cingular.cam.commonservices.util.jackcache.ora.AddUpdateAccountInfo"));
AddUpdateAccountInfo addUpdateAccount = new AddUpdateAccountInfo("JACKCACHE.ACCOUNT_TYPE",accResp);
Can someone help me in resolving the ArrayDescriptor problem?