Oracle, Serializable and java.sql.SQLException

I'm reading in the weblogic documentation about serializable transactions
and Oracle at:
http://www.weblogic.com/docs51/classdocs/API_ejb/EJB_environment.html
I've excerpted below the section of interest. Essentially it says that if
you want to use an isolation level of SERIALIZABLE with Oracle,
you must be prepared to catch and retry transactions which fail due
to the "can't serialize access for this transaction". What I don't understand,
is where do I catch this exception. The doc below suggests that it
is in the EJB client code. By this, I assume it should be caught
by any client calling into an EJB method which is starting a transaction.
What I don't understand is I didn't think that ejb methods threw a
java.sql.SQLException. How can I catch this exception? The
exception is caused at commit time, which I don't have any
direct control over since I am using CMP.
Do I then need to inspect the exception text for the string:
"ORA-08177: can't serialize access for this transaction", in order
to determine whether to retry the transaction?
Is there any sample code for this. I just need to know where
the exception should be caught in my code, and how to
inspect the exception (scanning text based error messages
sounds problematic, since the exact message text might
change over versions of the database and deployment, etc.).
I am planning on using CMP, so I am not making any
jdbc calls directly.
Jason
Special note for Oracle Databases
Keep in mind that Oracle uses optimistic concurrency. As a consequence, even with a setting of TRANSACTION_SERIALIZABLE, Oracle does
not detect serialization problems until commit time. The message returned is:
java.sql.SQLException: ORA-08177: can't serialize access for this transaction
Even if you use the TRANSACTION_SERIALIZABLE setting for an EJB, you may receive exceptions or rollbacks in the EJB client if
contention occurs between clients for the same rows. To avoid these problems, you must ensure that clients catch and examine the SQL
exceptions, and take appropriate action, such as restarting the transaction.
Jason Rosenberg
SquareTrade
(remove 'nospam' from my return address)

I'm reading in the weblogic documentation about serializable transactions
and Oracle at:
http://www.weblogic.com/docs51/classdocs/API_ejb/EJB_environment.html
I've excerpted below the section of interest. Essentially it says that if
you want to use an isolation level of SERIALIZABLE with Oracle,
you must be prepared to catch and retry transactions which fail due
to the "can't serialize access for this transaction". What I don't understand,
is where do I catch this exception. The doc below suggests that it
is in the EJB client code. By this, I assume it should be caught
by any client calling into an EJB method which is starting a transaction.
What I don't understand is I didn't think that ejb methods threw a
java.sql.SQLException. How can I catch this exception? The
exception is caused at commit time, which I don't have any
direct control over since I am using CMP.
Do I then need to inspect the exception text for the string:
"ORA-08177: can't serialize access for this transaction", in order
to determine whether to retry the transaction?
Is there any sample code for this. I just need to know where
the exception should be caught in my code, and how to
inspect the exception (scanning text based error messages
sounds problematic, since the exact message text might
change over versions of the database and deployment, etc.).
I am planning on using CMP, so I am not making any
jdbc calls directly.
Jason
Special note for Oracle Databases
Keep in mind that Oracle uses optimistic concurrency. As a consequence, even with a setting of TRANSACTION_SERIALIZABLE, Oracle does
not detect serialization problems until commit time. The message returned is:
java.sql.SQLException: ORA-08177: can't serialize access for this transaction
Even if you use the TRANSACTION_SERIALIZABLE setting for an EJB, you may receive exceptions or rollbacks in the EJB client if
contention occurs between clients for the same rows. To avoid these problems, you must ensure that clients catch and examine the SQL
exceptions, and take appropriate action, such as restarting the transaction.
Jason Rosenberg
SquareTrade
(remove 'nospam' from my return address)

Similar Messages

  • Oracle error 1403:java.sql.SQLException: ORA-01403: no data found ORA-06512

    My customer has an issue, and error message as below:
    <PRE>Oracle error 1403: java.sql.SQLException: ORA-01403: no data found ORA-06512:
    at line 1 has been detected in FND_SESSION_MANAGEMENT.CHECK_SESSION. Your
    session is no longer valid.</PRE>
    Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
    And customer’s statement is: Upgrade from EBS 11.5.10 to 12.1.3. Login the EBS, open any forms and put it in idle. Then refresh the form, error happens
    Then, I checked ISP, and found two notes:
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid (Doc ID 1284094.1)
    Note 1319380.1: Webadi Gl Journal Posting Errors After Atg R12.1.3 (Doc ID 1319380.1)
    But these two notes are both WebADI.
    Following is the data collection from customer:
    1. Run UNIX command to check .class file version:
    strings $JAVA_TOP/oracle/apps/bne/utilities/BneViewerUtils.class | grep Header--> S$Header: BneViewerUtils.java 120.33.12010000.17 2010/11/21 22:19:58 amgonzal s$
    2. Run SQL to check you patch level:
    SELECT * FROM fnd_product_installations WHERE patch_level LIKE '%BNE%';--> R12.BNE.B.3
    3. Run SQL to check patch '9940148' applied or not:
    SELECT * FROM ad_bugs ad WHERE ad.bug_number = '9940148';--> No Rows returned
    4. Run SQL to check patch '9785477' applied or not:
    SELECT * FROM ad_bugs WHERE bug_number in ('9785477');-->
    BUG_ID APPLICATION_SHORT_NAME BUG_NUMBER CREATION_DATE ARU_RELEASE_NAME CREATED_BY LAST_UPDATE_DATE LAST_UPDATED_BY TRACKABLE_ENTITY_ABBR BASELINE_NAME GENERIC_PATCH LANGUAGE
    576982 11839583 2011/8/7 上午 08:20:36 R12 5 2011/8/7 上午 08:20:36 5 pjt B n US
    516492 9785477 2011/6/12 上午 11:42:45 R12 5 2011/6/12 上午 11:42:45 5 bne B n US
    546109 9785477 2011/6/12 下午 01:17:41 R12 5 2011/6/12 下午 01:17:41 5 bne B n ZHT
    5. Run SQL to check the status of object ‘FND_SESSION_MANAGEMENT’
    SELECT * FROM dba_objects do WHERE do.object_name = 'FND_SESSION_MANAGEMENT';-->
    OWNER OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NAME
    APPS FND_SESSION_MANAGEMENT 219425 PACKAGE 2004/10/30 下午 01:52:35 2011/8/7 上午 08:18:39 2011-08-07:08:18:26 VALID N N N 1
    APPS FND_SESSION_MANAGEMENT 226815 PACKAGE BODY 2004/10/31 上午 01:05:40 2011/8/7 上午 08:18:54 2011-08-07:08:18:27 VALID N N N 2
    So, my question is: Customer’s BneViewerUtils.java version is already 120.33.12010000.17, which greater than 120.33.12010000.14. Is there any others solutions for this issue? Does customer still need to apply patch '9940148' based on action plan of
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid?
    Customer's EBS version is 12.1.3; OS is HP-UX PA-RISC (64-bit); DB is 11.2.0.2.
    Thanks,
    Jackie

    And customer’s statement is: Upgrade from EBS 11.5.10 to 12.1.3. Login the EBS, open any forms and put it in idle. Then refresh the form, error happens
    Idle for how long? Is the issue with all sessions?
    Please see these docs/links
    User Sessions Get Timed Out Before Idle Time Parameter Values Are Reached [ID 1306678.1]
    https://forums.oracle.com/forums/search.jspa?threadID=&q=Timeout+AND+R12&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Then, I checked ISP, and found two notes:
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid (Doc ID 1284094.1)
    Note 1319380.1: Webadi Gl Journal Posting Errors After Atg R12.1.3 (Doc ID 1319380.1)
    But these two notes are both WebADI.Can you find any details about the error in Apache log files and in the application.log file?
    Any errors in the database log file?
    So, my question is: Customer’s BneViewerUtils.java version is already 120.33.12010000.17, which greater than 120.33.12010000.14. Is there any others solutions for this issue? No.
    Does customer still need to apply patch '9940148' based on action plan ofIf the issue not with Web ADI, then ignore this patch. However, if you use Web ADI you could query AD_BUGS table and verify if you have the patch applied.
    Note 1284094.1: Web ADI Journal Upload Errors With ORA-01403 No Data Found ORA-06512 At Line Has Been Detected In FND_SESSION_MANAGEMENT.CHECK_SESSION.Your Session Is No Longer Valid?
    Customer's EBS version is 12.1.3; OS is HP-UX PA-RISC (64-bit); DB is 11.2.0.2.If you could not find any details in the logs, please enable debug as per (R12, 12.1 - How To Enable and Collect Debug for HTTP, OC4J and OPMN [ID 422419.1]).
    Thanks,
    Hussein

  • Oracle error 1403: java.sql.SQLException:

    Hi All,
    ebs r12 12.1.3
    db 11gr1 11.1.0.7
    os OUL5x64
    After the clone, the database and the middle tier were ready, no error. when open the url i was able to type in username/password
    but then got this error
    <PRE>Oracle error 1403: java.sql.SQLException: ORA-01403: no data found ORA-06512: at line 1 has been detected in FND_SESSION_MANAGEMENT.CHECK_SESSION. Your session is no longer valid. </PRE>
    Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
    --i did check invalid objects and it was fine.
    Can someone please advise for this error.
    Thanks in advance.
    Regards,

    After the clone, the database and the middle tier were ready, no error. when open the url i was able to type in username/password
    but then got this error Is the issue with all usernames?
    Did AutoConfig complete successfully on both tiers?
    Please confirm that none of the main database accounts is expired (i.e. system, apps, applsys, ..etc).
    <PRE>Oracle error 1403: java.sql.SQLException: ORA-01403: no data found ORA-06512: at line 1 has been detected in FND_SESSION_MANAGEMENT.CHECK_SESSION. Your session is no longer valid. </PRE>
    Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.Any details about the error in the application log files?
    Can someone please advise for this error.Please see if (FND_SESSION_MANAGEMENT.CHECK_SESSION Error During External Candidate Registration [ID 1368801.1]) is applicable.
    Also, make sure your FND_NODES table has correct entries.
    Unable to login from Notificationdetail.htm or AppsLogin.jsp [ID 269748.1]
    How to Clean Nonexistent Nodes or IP Addresses From FND_NODES [ID 260887.1
    Thanks,
    Hussein                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Oracle.jbo.SQLStmtException & java.sql.SQLException: Invalid column index

    Hi,
    I am using Jdeveloper 10.1.2.3 and created a ADFBC JSP struts application. I have an entity based viewobject which we have modified, enhance over the years. Some where along this way a bug was introduced in the viewobject that has the following exception
    JBO-30003: The application pool (pkgEmpContExp.amEmpContExpSnLocal) failed to checkout an application module due to the following exception:
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.SQLStmtException, msg=JBO-27122: SQL error during statement preparation. Statement: SELECT statement here
    ## Detail 0 ##oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation
    ## Detail 0 ##java.sql.SQLException: Invalid column index
    The viewobject query on its own has no indexes. It does have a lot of transient attributes which are populated with Preparestatements and callablestatements.
    If you want I can give the whole stacktrace.
    This always occurs after we insert into this table and we click on another link. If we clear the browser cache, it works properly.
    Can anyone please guide me in resolving this issue.
    Thanks in advance

    Hi,
    any chance the database table has been changed with the change not being reflected in the ADF BC model?
    Frank

  • Java.sql.SQLException: Closed Connection error when invoking web service

    Hi
    I've assembled a simple web service for an Oracle PL/SQL package and deployed it on a Standalone OC4J, when I come to invoke it on the Oracle Enterprise Manager screen I'm getting the following returned within the envelope body:
    <env:Body>
    <env:Fault>
    <faultcode>env:Server</faultcode>
    <faultstring>Internal Server Error (serialization error: java.sql.SQLException: java.sql.SQLException: Closed Connection)</faultstring>
    </env:Fault>
    </env:Body>
    The function that is called within the database returns a user defined object that consists of a RAW value and an XMLTYPE. The function takes a string as a parameter, when I enter a string that I know will not return an object there is no error in the envelope body, only when there is an object to return does the error appear.
    Anyone have any suggestion as to why this is?

    I'm no further forward with this: has anyone assembled, deployed and invoked a web service that returns a XMLTYPE?? I know this should be possible but I think there's maybe some manual intervention required with the classes created with webservicesassembler: I'd really appreciate it if anyone with any experience of this kind of thing could help me think this through.

  • Error in simple SOA Composite - "java.sql.SQLException: No suitable driver"

    I have created a sample project that reads XML files using a file adapter and inserts into the database using a database adapter.
    When I run the composite, I get the following error:
    Dec 11, 2008 10:44:06 AM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log
    WARNING: JCABinding=&gt; JCABinding=&gt; ReadEmpLoaction:InsertData [InsertData_ptt::insert(EmployeeTrackingCollection)|http://forums.oracle.com/forums/]JNDI lookup of 'eis/DB/Connection1' failed due to: eis/DB/Connection1 not found
    Dec 11, 2008 10:44:09 AM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log
    WARNING: Database Adapter ReadEmpLoaction:InsertData [InsertData_ptt::insert(EmployeeTrackingCollection)|http://forums.oracle.com/forums/]
    java.sql.SQLException: No suitable driver
    bq.      at java.sql.DriverManager.getConnection(DriverManager.java:545) \\     at java.sql.DriverManager.getConnection(DriverManager.java:140) \\     at oracle.toplink.sessions.DefaultConnector.connect(DefaultConnector.java:76) \\     at oracle.toplink.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:153) \\     at oracle.toplink.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:273) \\     at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:230) \\     at oracle.toplink.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:350) \\     at oracle.toplink.threetier.ConnectionPool.buildConnection(ConnectionPool.java:117) \\     at oracle.toplink.threetier.ConnectionPool.startUp(ConnectionPool.java:354) \\     at oracle.toplink.threetier.ServerSession.connect(ServerSession.java:425) \\     at oracle.toplink.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:607) \\     at oracle.tip.adapter.db.DBManagedConnectionFactory.createServerSession(DBManagedConnectionFactory.java:1185) \\     at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:505) \\     at oracle.tip.adapter.db.transaction.DBTransaction.getSession(DBTransaction.java:458) \\     at oracle.tip.adapter.db.DBConnection.getSession(DBConnection.java:235) \\     at oracle.tip.adapter.db.DBInteraction.executeOutboundWrite(DBInteraction.java:726) \\     at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:226) \\     at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:298) \\     at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeJcaReference(JCAInteractionInvoker.java:509) \\     at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeAsyncJcaReference(JCAInteractionInvoker.java:493) \\     at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAEndpointInteraction.performAsynchronousInteraction(JCAEndpointInteraction.java:429) \\     at oracle.integration.platform.blocks.adapter.AdapterReference.post(AdapterReference.java:193) \\     at oracle.integration.platform.blocks.mesh.AsynchronousMessageHandler.doPost(AsynchronousMessageHandler.java:153) \\     at oracle.integration.platform.blocks.mesh.MessageRouter.post(MessageRouter.java:152) \\     at oracle.integration.platform.blocks.mesh.MeshImpl.post(MeshImpl.java:159) \\     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \\     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \\     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \\     at java.lang.reflect.Method.invoke(Method.java:585) \\     at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296) \\     at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) \\     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) \\     at oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:71) \\     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) \\     at $Proxy70.post(Unknown Source) \\     at oracle.tip.mediator.serviceEngine.MediatorServiceEngine.post2Mesh(MediatorServiceEngine.java:705) \\     at oracle.tip.mediator.service.BaseActionHandler.requestProcess(BaseActionHandler.java:164) \\     at oracle.tip.mediator.service.BaseActionHandler.requestProcess(BaseActionHandler.java:79) \\     at oracle.tip.mediator.service.BaseActionHandler.requestProcess(BaseActionHandler.java:53) \\     at oracle.tip.mediator.service.OneWayActionHandler.oneWayRequestProcess(OneWayActionHandler.java:67) \\     at oracle.tip.mediator.service.OneWayActionHandler.process(OneWayActionHandler.java:34) \\     at oracle.tip.mediator.service.ActionProcessor.onMessage(ActionProcessor.java:61) \\     at oracle.tip.mediator.dispatch.MessageDispatcher.executeCase(MessageDispatcher.java:103) \\     at oracle.tip.mediator.dispatch.InitialMessageDispatcher.processCase(InitialMessageDispatcher.java:465) \\     at oracle.tip.mediator.dispatch.InitialMessageDispatcher.processCases(InitialMessageDispatcher.java:361) \\     at oracle.tip.mediator.dispatch.InitialMessageDispatcher.processCases(InitialMessageDispatcher.java:254) \\     at oracle.tip.mediator.dispatch.InitialMessageDispatcher.dispatch(InitialMessageDispatcher.java:149) \\     at oracle.tip.mediator.serviceEngine.MediatorServiceEngine.process(MediatorServiceEngine.java:533) \\     at oracle.tip.mediator.serviceEngine.MediatorServiceEngine.post(MediatorServiceEngine.java:634) \\     at oracle.integration.platform.blocks.mesh.AsynchronousMessageHandler.doPost(AsynchronousMessageHandler.java:138) \\     at oracle.integration.platform.blocks.mesh.MessageRouter.post(MessageRouter.java:152) \\     at oracle.integration.platform.blocks.mesh.MeshImpl.post(MeshImpl.java:159) \\     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \\     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \\     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \\     at java.lang.reflect.Method.invoke(Method.java:585) \\     at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296) \\     at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) \\     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) \\     at oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:59) \\     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) \\     at $Proxy70.post(Unknown Source) \\     at oracle.integration.platform.blocks.adapter.fw.jca.mdb.AdapterServiceMDB.onMessage(AdapterServiceMDB.java:574) \\     at oracle.integration.platform.blocks.adapter.fw.jca.messageinflow.MessageEndpointImpl.onMessage(MessageEndpointImpl.java:295) \\     at oracle.tip.adapter.file.inbound.ProcessWork.publishMessage(ProcessWork.java:2127) \\     at oracle.tip.adapter.file.inbound.ProcessWork.doTranslation(ProcessWork.java:1719) \\     at oracle.tip.adapter.file.inbound.ProcessWork.translateAndPublish(ProcessWork.java:677) \\     at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:320) \\     at oracle.integration.platform.blocks.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51) \\     at oracle.integration.platform.blocks.adapter.fw.common.ThreadPool.run(ThreadPool.java:283) \\     at java.lang.Thread.run(Thread.java:595)
    I have created ADF projects using the same database (Oracle XE) and they work fine. Its only this composite, which is complaining of "No suitable driver" exception.
    I found a post very similar to mine -&gt; Composite is failing
    So I went and checked my parameters. Here's what I found:-
    SQL&gt; show parameter sessions
    NAME TYPE VALUE
    java_max_sessionspace_size integer 0
    java_soft_sessionspace_limit integer 0
    license_max_sessions integer 0
    license_sessions_warning integer 0
    logmnr_max_persistent_sessions integer 1
    sessions integer 170
    shared_server_sessions integer
    SQL&gt; show parameter processes
    NAME TYPE VALUE
    aq_tm_processes integer 0
    db_writer_processes integer 1
    gcs_server_processes integer 0
    job_queue_processes integer 4
    log_archive_max_processes integer 2
    processes integer 150
    So parameters is not the issue here.
    Edited by: user8028667 on Dec 11, 2008 10:52 AM
    Edited by: user8028667 on Dec 11, 2008 11:40 AM

    I ran the sample that you pointed out and unfortunately got the same error in the log: "java.sql.SQLException: No suitable driver" along with a bunch of others as well. You will have to scroll down to see the No suitable driver exception.
    But here's the weird part - the output is as expected: VALID and INVALID depending on the Credit card number I supply. Which means the database is reachable.
    The only difference is that the example performs a SELECT operation, whereas I am trying to perform an INSERT operation. Also I have a for-each node in the XSL and I am inserting multiple records from an XML to the Database.
    Here's the log for your inspection:
    bq. SEVERE: Exception creating custom component loader \\ java.lang.IllegalStateException: ClassLoader "default.composite.ReadEmpLoaction.2008-12-07_16-00-12_609" (from Application component in user-defined-origin): A loader with this name and version already exists, from Application component in user-defined-origin. \\ at oracle.classloader.util.ClassLoadAsserts.fail(ClassLoadAsserts.java:167) \\ at oracle.classloader.PolicyClassLoaderSet$LoaderList.insert(PolicyClassLoaderSet.java:164) \\ at oracle.classloader.PolicyClassLoaderSet.add(PolicyClassLoaderSet.java:294) \\ at oracle.classloader.ConfigurationPolicy.configure(ConfigurationPolicy.java:447) \\ at oracle.classloader.PolicyClassLoader.&lt;init&gt;(PolicyClassLoader.java:466) \\ at oracle.classloader.PolicyClassLoader.&lt;init&gt;(PolicyClassLoader.java:417) \\ at oracle.classloader.util.ClassLoaderUtilities.createClassLoader(ClassLoaderUtilities.java:155) \\ at oracle.fabric.composite.CompositePolicyClassLoaderImpl.&lt;init&gt;(CompositePolicyClassLoaderImpl.java:28) \\ at oracle.fabric.composite.model.CompositeModel.getCompositeClassloader(CompositeModel.java:241) \\ at oracle.integration.platform.blocks.deploy.DeploymentConnection.deploy(DeploymentConnection.java:58) \\ at oracle.integration.platform.blocks.deploy.CompositeDeployerImpl.deploy(CompositeDeployerImpl.java:90) \\ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \\ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \\ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \\ at java.lang.reflect.Method.invoke(Method.java:585) \\ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) \\ at oracle.integration.platform.blocks.deploy.DeploymentEventPublisher.invoke(DeploymentEventPublisher.java:30) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\ at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\ at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) \\ at $Proxy71.deploy(Unknown Source) \\ at oracle.integration.platform.blocks.deploy.DeployedCompositesManagerImpl.makeDeploymentChanges(DeployedCompositesManagerImpl.java:376) \\ at oracle.integration.platform.blocks.deploy.DeployedCompositesManagerImpl.processDeployedCompositesModel(DeployedCompositesManagerImpl.java:232) \\ at oracle.integration.platform.blocks.deploy.DeployedCompositesManagerImpl.processDeployedCompositesModel(DeployedCompositesManagerImpl.java:238) \\ at oracle.integration.platform.blocks.deploy.OC4JApplicationListener.documentChanged(OC4JApplicationListener.java:135) \\ at oracle.integration.platform.blocks.deploy.OC4JApplicationListener.documentAdded(OC4JApplicationListener.java:85) \\ at oracle.as.config.notification.oc4j.OC4JWatchingDocumentChangeNotifier$OC4JChangeListener.documentAdded(OC4JWatchingDocumentChangeNotifier.java:154) \\ at oracle.as.config.notification.filesystem.WatchingDocumentChangeNotifier.checkUsingListeners(WatchingDocumentChangeNotifier.java:197) \\ at oracle.as.config.notification.filesystem.WatchingDocumentChangeNotifier.checkFiles(WatchingDocumentChangeNotifier.java:125) \\ at oracle.as.config.notification.filesystem.WatchingDocumentChangeNotifier.run(WatchingDocumentChangeNotifier.java:114) \\ at java.lang.Thread.run(Thread.java:595) \\ 08/12/12 13:55:27 SEVERE: HttpRequestHandler.run Exception: java.lang.IllegalStateException: This DMSMetricController is not started.Phase event info: WEBs:processRequest soa-console:processRequest \\ at com.evermind.server.http.DMSMetricController.abort(DMSMetricController.java:115) \\ at com.evermind.server.http.EvermindHttpServletRequest.dmsAbort(EvermindHttpServletRequest.java:268) \\ at com.evermind.server.http.HttpRequestHandler.dmsProcRequestDone(HttpRequestHandler.java:358) \\ at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:425) \\ at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:189) \\ at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:163) \\ at oracle.oc4j.network.ServerSocketReadHandler$ClientRunnable.run(ServerSocketReadHandler.java:275) \\ at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) \\ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) \\ at java.lang.Thread.run(Thread.java:595) \\ Dec 12, 2008 1:55:29 PM oracle.classloader.util.ClassLoaderUtilities createClassLoader \\ SEVERE: Exception creating custom component loader \\ java.lang.IllegalStateException: ClassLoader "default.composite.ReadEmpLoaction.2008-12-07_16-00-12_609" (from Application component in user-defined-origin): A loader with this name and version already exists, from Application component in user-defined-origin. \\ at oracle.classloader.util.ClassLoadAsserts.fail(ClassLoadAsserts.java:167) \\ at oracle.classloader.PolicyClassLoaderSet$LoaderList.insert(PolicyClassLoaderSet.java:164) \\ at oracle.classloader.PolicyClassLoaderSet.add(PolicyClassLoaderSet.java:294) \\ at oracle.classloader.ConfigurationPolicy.configure(ConfigurationPolicy.java:447) \\ at oracle.classloader.PolicyClassLoader.&lt;init&gt;(PolicyClassLoader.java:466) \\ at oracle.classloader.PolicyClassLoader.&lt;init&gt;(PolicyClassLoader.java:417) \\ at oracle.classloader.util.ClassLoaderUtilities.createClassLoader(ClassLoaderUtilities.java:155) \\ at oracle.fabric.composite.CompositePolicyClassLoaderImpl.&lt;init&gt;(CompositePolicyClassLoaderImpl.java:28) \\ at oracle.fabric.composite.model.CompositeModel.getCompositeClassloader(CompositeModel.java:241) \\ at oracle.integration.platform.blocks.deploy.DeploymentConnection.deploy(DeploymentConnection.java:58) \\ at oracle.integration.platform.blocks.deploy.CompositeDeployerImpl.deploy(CompositeDeployerImpl.java:90) \\ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \\ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \\ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \\ at java.lang.reflect.Method.invoke(Method.java:585) \\ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) \\ at oracle.integration.platform.blocks.deploy.DeploymentEventPublisher.invoke(DeploymentEventPublisher.java:30) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\ at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\ at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) \\ at $Proxy71.deploy(Unknown Source) \\ at oracle.integration.platform.blocks.deploy.DeployedCompositesManagerImpl.makeDeploymentChanges(DeployedCompositesManagerImpl.java:376) \\ at oracle.integration.platform.blocks.deploy.DeployedCompositesManagerImpl.processDeployedCompositesModel(DeployedCompositesManagerImpl.java:232) \\ at oracle.integration.platform.blocks.deploy.DeployedCompositesManagerImpl.processDeployedCompositesModel(DeployedCompositesManagerImpl.java:238) \\ at oracle.integration.platform.blocks.deploy.OC4JDeploymentListener.documentChanged(OC4JDeploymentListener.java:124) \\ at oracle.as.config.notification.oc4j.OC4JWatchingDocumentChangeNotifier$OC4JChangeListener.documentChanged(OC4JWatchingDocumentChangeNotifier.java:172) \\ at oracle.as.config.notification.filesystem.WatchingDocumentChangeNotifier.checkUsingListeners(WatchingDocumentChangeNotifier.java:182) \\ at oracle.as.config.notification.filesystem.WatchingDocumentChangeNotifier.checkFiles(WatchingDocumentChangeNotifier.java:125) \\ at oracle.as.config.notification.filesystem.WatchingDocumentChangeNotifier.run(WatchingDocumentChangeNotifier.java:114) \\ at java.lang.Thread.run(Thread.java:595) \\ Dec 12, 2008 1:55:29 PM oracle.classloader.util.ClassLoaderUtilities createClassLoader \\ 08/12/12 13:55:45 SEVERE: HttpRequestHandler.run Exception: java.lang.IllegalStateException: This DMSMetricController is not started.Phase event info: WEBs:processRequest soa-console:processRequest \\ at com.evermind.server.http.DMSMetricController.abort(DMSMetricController.java:115) \\ at com.evermind.server.http.EvermindHttpServletRequest.dmsAbort(EvermindHttpServletRequest.java:268) \\ at com.evermind.server.http.HttpRequestHandler.dmsProcRequestDone(HttpRequestHandler.java:358) \\ at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:425) \\ at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:189) \\ at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:163) \\ at oracle.oc4j.network.ServerSocketReadHandler$ClientRunnable.run(ServerSocketReadHandler.java:275) \\ at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) \\ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) \\ at java.lang.Thread.run(Thread.java:595) \\ Dec 12, 2008 1:56:05 PM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log \\ WARNING: JCABinding=&gt; JCABinding=&gt; validationForCC:getCreditValidation getCreditValidation_ptt::getCreditValidationSelect(getCreditValidationSelect_inputParameters,CreditcardinfoCollection) JNDI lookup of 'eis/DB/soademoDatabase' failed due to: eis/DB/soademoDatabase not found \\ Dec 12, 2008 1:56:05 PM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log \\ WARNING: Database Adapter validationForCC:getCreditValidation getCreditValidation_ptt::getCreditValidationSelect(getCreditValidationSelect_inputParameters,CreditcardinfoCollection) \\ java.sql.SQLException: No suitable driver \\ at java.sql.DriverManager.getConnection(DriverManager.java:545) \\ at java.sql.DriverManager.getConnection(DriverManager.java:140) \\ at oracle.toplink.sessions.DefaultConnector.connect(DefaultConnector.java:76) \\ at oracle.toplink.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:153) \\ at oracle.toplink.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:273) \\ at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:230) \\ at oracle.toplink.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:350) \\ at oracle.toplink.threetier.ConnectionPool.buildConnection(ConnectionPool.java:117) \\ at oracle.toplink.threetier.ConnectionPool.startUp(ConnectionPool.java:354) \\ at oracle.toplink.threetier.ServerSession.connect(ServerSession.java:425) \\ at oracle.toplink.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:607) \\ at oracle.tip.adapter.db.DBManagedConnectionFactory.createServerSession(DBManagedConnectionFactory.java:1185) \\ at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:505) \\ at oracle.tip.adapter.db.transaction.DBTransaction.getSession(DBTransaction.java:458) \\ at oracle.tip.adapter.db.DBConnection.getSession(DBConnection.java:235) \\ at oracle.tip.adapter.db.DBInteraction.executeOutboundRead(DBInteraction.java:317) \\ at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:219) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:298) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeJcaReference(JCAInteractionInvoker.java:509) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeSyncJcaReference(JCAInteractionInvoker.java:484) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAEndpointInteraction.performSynchronousInteraction(JCAEndpointInteraction.java:411) \\ at oracle.integration.platform.blocks.adapter.AdapterReference.request(AdapterReference.java:123) \\ at oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(SynchronousMessageHandler.java:155) \\ at oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.java:137) \\ at oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:101) \\ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \\ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \\ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \\ at java.lang.reflect.Method.invoke(Method.java:585) \\ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) \\ at oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:71) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\ at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) \\ Dec 12, 2008 1:56:05 PM oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl log \\ WARNING: Database Adapter validationForCC:getCreditValidation getCreditValidation_ptt::getCreditValidationSelect(getCreditValidationSelect_inputParameters,CreditcardinfoCollection) \\ java.sql.SQLException: No suitable driver \\ at java.sql.DriverManager.getConnection(DriverManager.java:545) \\ at java.sql.DriverManager.getConnection(DriverManager.java:140) \\ at oracle.toplink.sessions.DefaultConnector.connect(DefaultConnector.java:76) \\ at oracle.toplink.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:153) \\ at oracle.toplink.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:273) \\ at oracle.toplink.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:230) \\ at oracle.toplink.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:350) \\ at oracle.toplink.threetier.ConnectionPool.buildConnection(ConnectionPool.java:117) \\ at oracle.toplink.threetier.ConnectionPool.startUp(ConnectionPool.java:354) \\ at oracle.toplink.threetier.ServerSession.connect(ServerSession.java:430) \\ at oracle.toplink.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:607) \\ at oracle.tip.adapter.db.DBManagedConnectionFactory.createServerSession(DBManagedConnectionFactory.java:1185) \\ at oracle.tip.adapter.db.DBManagedConnectionFactory.acquireSession(DBManagedConnectionFactory.java:505) \\ at oracle.tip.adapter.db.transaction.DBTransaction.getSession(DBTransaction.java:458) \\ at oracle.tip.adapter.db.DBConnection.getSession(DBConnection.java:235) \\ at oracle.tip.adapter.db.DBInteraction.executeOutboundRead(DBInteraction.java:317) \\ at oracle.tip.adapter.db.DBInteraction.execute(DBInteraction.java:219) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.executeJcaInteraction(JCAInteractionInvoker.java:298) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeJcaReference(JCAInteractionInvoker.java:509) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAInteractionInvoker.invokeSyncJcaReference(JCAInteractionInvoker.java:484) \\ at oracle.integration.platform.blocks.adapter.fw.jca.cci.JCAEndpointInteraction.performSynchronousInteraction(JCAEndpointInteraction.java:411) \\ at oracle.integration.platform.blocks.adapter.AdapterReference.request(AdapterReference.java:123) \\ at oracle.integration.platform.blocks.mesh.SynchronousMessageHandler.doRequest(SynchronousMessageHandler.java:155) \\ at oracle.integration.platform.blocks.mesh.MessageRouter.request(MessageRouter.java:137) \\ at oracle.integration.platform.blocks.mesh.MeshImpl.request(MeshImpl.java:101) \\ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \\ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) \\ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) \\ at java.lang.reflect.Method.invoke(Method.java:585) \\ at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144) \\ at oracle.integration.platform.metrics.PhaseEventAspect.invoke(PhaseEventAspect.java:71) \\ at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166) \\ at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

  • *URGENT HELP REQUIRED* java.sql.SQLException: Invalid Oracle URL specifed

    Hi all,
    In the middle of the last week for my final year project and having to convert to an Oracle database due to compatibility problems with university Tomcat Server and MS Access. I'm having trouble connecting to the Oracle database and would appreciate some help please.
    Running on Windows 98 in the lab here, and the Oracle 9i, release 9.2.0.2.0, J2SDK1.4.0, Classes12.zip installed OK.
    Code for connection looks like this inside the constructor of my class:
    Class.forName("oracle.jdbc.driver.OracleDriver");
    cardSaleConnexion = DriverManager.getConnection("jdbc:oracle:[email protected]:1521:sid","user_name","pwdt");
    System.out.println("Connection Successful ");
    And I'm getting the following error when calling the constructor in a driver program:
    java.sql.SQLException: Invalid Oracle URL specified
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:188)
         at java.sql.DriverManager.getConnection(DriverManager.java:512)
         at java.sql.DriverManager.getConnection(DriverManager.java:171)
         at CardSale.<init>(CardSale.java:30)
         at Driver.main(Driver.java:11)
    Exception in thread "main"
    Please reply on a very urgent basis.
    Kind regards,
    Peter

    Try ojdbc14.jar as the JDBC driver instead of classes12.zip.
    Refer:
    http://otn.oracle.com/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html
    http://docs.sun.com/source/817-5603-10/index.html
    Database Driver
    This section describes the known database driver issues and associated solutions.
    ID      Summary
    4700531      On Solaris, an ORACLE JDBC driver error occurs.
         This new Java Database Connectivity (JDBC) driver is for Oracle (R) working with JDK1.4. The problem is caused by a combination of the Oracle 9.1 database and ojdbc14.jar. Applying the patch will fix the problem on Solaris 32-bit machine, running an Oracle 9.0.1.3 database.
         Solution
         Obtain and apply the patch to your server from the Oracle Web site for Bug 2199718. Perform the following steps:
         1.��Go to the Oracle web site.
         2.��Click the 'patches' button.
         3.��Type 2199718 in the patch number field.
         4.��Click the 32-bit Solaris OS patch.Go to Metalink.oracle.com.
         5.��Click patches.
         6.��Under patch number, enter 2199718.
         7.��Click the 32 bit Solaris OS patch.
    4707531      On Solaris, accessing an Oracle 9.1 database with an Oracle 9.2 Client may cause data corruption.
         If you use an Oracle (R) 9.2 client to access an Oracle 9.1 database, data corruption might occur when a number column follows a timestamp column.
         The problem might be caused by using the ojdbc14.jar file with an Oracle 9.1 database. Applying the patch might assist in addressing the situation on Solaris 32-bit machines, running an Oracle 9.1 database. This JDBC driver is for Oracle working with JDK1.4.
         Solution
         Obtain the patch that Oracle might make available from the Oracle web site for Bug 2199718 and apply it to your server.
    Regards,
    Pankaj D.

  • Java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv

    Hi all,
    I am writing a servlet that connects to Oracle 8.0.6 through jdbc for jdk1.2 on NT 4.0
    English version and it works fine.
    But when the servlet is deployed to a solaris with Oracle 8.0.5 (not a typo, the oracle on
    NT is 8.0.6 and oracle on solaris is 8.0.5) and jdbc for jdk1.2 (of course, for Solaris),
    the servlet failed with the Exception:
    java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv
    (I am using JRun 3.0 as the application and web server for both NT and Solaris)
    (The database in both the NT and solaris platform are using UTF8 charset)
    My servlet looks like this: (dbConn is a Connection object proved to be connected to Oracle
    in previous segment of the same method):
    String strSQL = "SELECT * FROM test";
    try { Statement stmt = dbConn.createStatement();
    ResultSet rs = stmt.execute(strSQL);
    while (rs.next()) {
    out.println("id = " + rs.getInt("id"));
    System.out.println("id written");
    out.println("name = " + rs.getString("name")); // <-- this is the line the
    exception is thrown
    System.out.println("name written");
    } catch (java.sql.SQLException e) {
    System.out.println("SQL Exception");
    System.out.println(e);
    The definition of the "test" table is:
    create table test(
    id number(10,0),
    name varchar2(30));
    There are about 10 rows exists in the table "test", in which all rows contains ONLY chinese
    characters in the "name" field.
    And when I view the System log, the string "id written" is shown EXACTLY ONCE and then there
    is:
    SQL Exception
    java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv
    That means the resultset is fetch back from the database correctly. The problem arise only
    during the getString("name") method.
    Again, this problem only happens when the servlet is run on the solaris platform.
    At first I would expect there are some strange code shown on the web page rather than having
    an exception. I know that I should use getBytes to convert between different encodings, but
    that's another story.
    One more piece of information: When all the rows contains ascii characters in their "name"
    field, the servlet works perfectly even in solaris.
    If anyone knows why and how to tackle the problem please let me know. You can feel free to
    send email to me at [email protected]
    Many thanks,
    Ben
    null

    Hi all,
    For the problem I previously posted, I found that Oracle had had such bug filed before in Oracle 7.3.2 (something like that) and is classified to be NOT A BUG.
    A further research leads me to the document of Oracle that the error message:
    "java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv"
    is a JDBC driver error message of error number ORA-17037.
    I'm still wondering why this behaviour will happen only in Solaris platform. The servlet on an NT machine I am using (which has an Oracle 8.0.6 and jdbc for jdk 1.2 running) is working just fine. I also suspect that this may be some sort of mistakes from jdbc driver.
    Nevertheless, I have found a way to work around the problem that I cannot get non-English string from Oracle in Solaris and I would like to share it with you all here.
    Before I go on, I found that there are many people out there on the web that encounter the same problem. (Some of which said s/he has been working on this problem for a month). As a result, if you find this way of working around the problem does help you, please tell those who have the same problem but don't know how to tackle. Thanks very much.
    Here's the way I work it out. It's kinda simple, but it does work:
    Instead of using:
    String abc = rs.getString("SomeColumnContainsNonEnglishCharacters");
    I used this:
    String abc = new String(rs.getBytes("SomeColumnContainsNonEnglishCharacters"));
    This will give you a string WITH YOUR DEFAULT CHARSET (or ENCODING) from your system.
    If you want to convert the string read to some other encoding type, say Big5, you can do it like this:
    String abc = new String(rs.getBytes("SomeColumneContainsNonEnglishCharacters"), "BIG5");
    Again, it's simple, but it works.
    Finally, if anyone knows why the fail to convert problem happens, please kindly let me know by leaving a word in [email protected]
    Again, thanks to those of you who had tried to help me out.
    Creambun
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by creambun creambun ([email protected]):
    Hi all,
    I am writing a servlet that connects to Oracle 8.0.6 through jdbc for jdk1.2 on NT 4.0
    English version and it works fine.
    But when the servlet is deployed to a solaris with Oracle 8.0.5 (not a typo, the oracle on
    NT is 8.0.6 and oracle on solaris is 8.0.5) and jdbc for jdk1.2 (of course, for Solaris),
    the servlet failed with the Exception:
    java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv
    (I am using JRun 3.0 as the application and web server for both NT and Solaris)
    (The database in both the NT and solaris platform are using UTF8 charset)
    My servlet looks like this: (dbConn is a Connection object proved to be connected to Oracle
    in previous segment of the same method):
    String strSQL = "SELECT * FROM test";
    try { Statement stmt = dbConn.createStatement();
    ResultSet rs = stmt.execute(strSQL);
    while (rs.next()) {
    out.println("id = " + rs.getInt("id"));
    System.out.println("id written");
    out.println("name = " + rs.getString("name")); // <-- this is the line the
    exception is thrown
    System.out.println("name written");
    } catch (java.sql.SQLException e) {
    System.out.println("SQL Exception");
    System.out.println(e);
    The definition of the "test" table is:
    create table test(
    id number(10,0),
    name varchar2(30));
    There are about 10 rows exists in the table "test", in which all rows contains ONLY chinese
    characters in the "name" field.
    And when I view the System log, the string "id written" is shown EXACTLY ONCE and then there
    is:
    SQL Exception
    java.sql.SQLException: Fail to convert between UTF8 and UCS2: failUTF8Conv
    That means the resultset is fetch back from the database correctly. The problem arise only
    during the getString("name") method.
    Again, this problem only happens when the servlet is run on the solaris platform.
    At first I would expect there are some strange code shown on the web page rather than having
    an exception. I know that I should use getBytes to convert between different encodings, but
    that's another story.
    One more piece of information: When all the rows contains ascii characters in their "name"
    field, the servlet works perfectly even in solaris.
    If anyone knows why and how to tackle the problem please let me know. You can feel free to
    send email to me at [email protected]
    Many thanks,
    Ben<HR></BLOCKQUOTE>
    null

  • JDBC 8.1.6 (2.0) and JDK 1.2 java.sql.SQLException

    I wrote an applet program and access to Oracle database using JDBC 2.0 (Oracle 8i 8.1.6). When testing, I got errors java.sql.SQLException: No suitable driver.
    Who havd any idea to solve this problems.
    It works fine when I use JDBC 1.2 and JDK 1.2 .
    Chuleerat.

    "No suitable driver" usually means that the
    connect string is incorrect.
    The 8.1.6 driver supports JDK1.1 and JDK1.2.
    If you use JDK1.2, the JDBC 2.0 features
    are available to you.
    null

  • Java.sql.SQLException: Internal Error while using oracle.sql.ARRAY.getArray

    Hello All,
    Here is the issue description. Our application uses Oracle Object Types and LIST. We deployed our application on QA environment which has Oracle 10g. Application runs fine...no issues. Now we moved to UAT. UAT environment is same as QA environment and DBA have created replica of QA database.
    Now WAR file which works fine with QA database , somehow doesnt work with UAT database. Application throws following exception when code tries to call getArray() on java.sql.Array.
    We tried to point UAT weblogic to QA database and it worked fine.....but when we point UAT weblogic to UAT database , we get following exception. So we know that this is a database issue.
    DBA claims that QA env database and UAT env database are same.
    Can anybody please tell me what wrong here? What setting is not done on UAT database which is done on QA?
    java.sql.SQLException: Internal Error at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227) at oracle.jdbc.oracore.OracleTypeCOLLECTION.initCollElemTypeName(OracleTypeCOLLECTION.java:975) at oracle.jdbc.oracore.OracleTypeCOLLECTION.getAttributeType(OracleTypeCOLLECTION.java:1005) at oracle.jdbc.oracore.OracleNamedType.getFullName(OracleNamedType.java:96) at oracle.jdbc.oracore.OracleTypeADT.createStructDescriptor(OracleTypeADT.java:1958) at oracle.jdbc.oracore.OracleTypeADT.unpickle81(OracleTypeADT.java:1432) at oracle.jdbc.oracore.OracleTypeUPT.unpickle81UPT(OracleTypeUPT.java:426) at oracle.jdbc.oracore.OracleTypeUPT.unpickle81rec(OracleTypeUPT.java:383) at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody_elems(OracleTypeCOLLECTION.java:928) at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody(OracleTypeCOLLECTION.java:872) at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81(OracleTypeCOLLECTION.java:692) at oracle.jdbc.oracore.OracleTypeCOLLECTION._unlinearize(OracleTypeCOLLECTION.java:217) at oracle.jdbc.oracore.OracleTypeCOLLECTION.unlinearize(OracleTypeCOLLECTION.java:189) at oracle.sql.ArrayDescriptor.toJavaArray(ArrayDescriptor.java:663) at oracle.sql.ARRAY.getArray(ARRAY.java:282) at weblogic.jdbc.wrapper.Array_oracle_sql_ARRAY.getArray(Unknown Source)
    Please help.

    425260 wrote:
    This can happen if you use the oracle.sql.ARRAY class with WebLogic.
    WebLogic wraps oracle.sql.ARRAY with its own class (i.e. weblogic.jdbc.wrapper.Array_oracle_sql_ARRAY). The easiest solution is to replace oracle.sql.ARRAY with the JDBC standard java.sql.Array.
    <PRE class=jive-pre><CODE class="jive-code jive-java">Object[] items = (Object[])array.getArray();
    <FONT color=navy><B>if</B></FONT> (items.length &gt; 0) <FONT color=navy>{</FONT>
    <FONT color=navy><B>for</B></FONT> (<FONT color=navy><B>int</B></FONT> i = 0; i &lt; items.length; i++) <FONT color=navy>{</FONT>
    Object arrayItem = items;
    <FONT color=navy>}</FONT>
    <FONT color=navy>}</FONT>
    </CODE></PRE>
    The <B>array</B> object is a java.sql.Array. Here no unwrapping of the WebLogic wrapper is needed.
    If you absolutely need the oracle.sql.ARRAY class than you must use an <B>unwrap</B> API on the WebLogic wrapper class.
    <PRE class=jive-pre><CODE class="jive-code jive-java"><FONT color=navy><B>if</B></FONT> (object <FONT color=navy><B>instanceof</B></FONT> weblogic.jdbc.wrapper.Array)
    array = (ARRAY) ( ((weblogic.jdbc.wrapper.Array)object).unwrap(Class.forName(<FONT color=red>"oracle.sql.ARRAY"</FONT>)) );
    <FONT color=navy><B>else</B></FONT>
    array = (ARRAY) object;
    </CODE></PRE>
    Here, <B>array</B> is an oracle.sql.ARRAY. Try to see if this <A class=bodylinkwhite href="http://www.software-to-convert.com/3gp-conversion-software/3gp-to-myspace-video-software.html"><FONT face=tahoma,verdana,sans-serif color=#000 size=1>helps</FONT></A>. Good luck.
    Thanks for your explanation! It's very valuable, It is exactly what I need, I understand this part.

  • Java.sql.SQLException: Internal Error: at oracle.sql.ARRAY.getArray(ARRAY.j

    hi all,
    I am getting the below exception
    Basically i am registering an out parameters like this
    cs.registerOutParameter(4, Types.ARRAY, "ISSUESECTION_LIST");
    my database version: oracle 11.1.0.7.0.
    I have created a synonym and given the execute privileges ,but also it comes up with the below exception
    java.sql.SQLException: Internal Error
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.initCollElemTypeName(OracleTypeCOLLECTION.java:1026)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.getAttributeType(OracleTypeCOLLECTION.java:1056)
    at oracle.jdbc.oracore.OracleNamedType.getFullName(OracleNamedType.java:110)
    at oracle.jdbc.oracore.OracleTypeADT.createStructDescriptor(OracleTypeADT.java:2262)
    at oracle.jdbc.oracore.OracleTypeADT.unpickle81(OracleTypeADT.java:1656)
    at oracle.jdbc.oracore.OracleTypeUPT.unpickle81UPT(OracleTypeUPT.java:466)
    at oracle.jdbc.oracore.OracleTypeUPT.unpickle81rec(OracleTypeUPT.java:416)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody_elems(OracleTypeCOLLECTION.java:979)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody(OracleTypeCOLLECTION.java:923)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81(OracleTypeCOLLECTION.java:743)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION._unlinearize(OracleTypeCOLLECTION.java:242)
    at oracle.jdbc.oracore.OracleTypeCOLLECTION.unlinearize(OracleTypeCOLLECTION.java:208)
    at oracle.sql.ArrayDescriptor.toJavaArray(ArrayDescriptor.java:963)
    at oracle.sql.ARRAY.getArray(ARRAY.java:370)
    at com.db.gmr.eds.sm.jdbc.IssueSectionStoreJDBC.getResources(IssueSectionStoreJDBC.java:69)
    at com.db.gmr.eds.handler.GetResources.handle(GetResources.java:126)
    at com.db.gmr.eds.servlet.PageController.handle(PageController.java:138)
    at com.db.gmr.eds.servlet.PageController.doGet(PageController.java:80)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at com.db.gmr.core.servlet.filters.TomcatParameterBugFix.doFilter(TomcatParameterBugFix.java:65)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:500)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)
    If i use cs.registerOutParameter(4, Types.ARRAY, "SCHEMA_OWNER_NAME.ISSUESECTION_LIST"); Then i wont be getting the error.
    COULD ANYONE LET ME KNOW THE WORK AROUND OTHER THAN THE ABOVE SOLUTION LIKE ADDING THE OWNER SCHEMA NAME WITH THE USER DEFINED COLLECTION TYPE.

    There couold be two reasons:
    1) it depends how u have defined type. if ISSUESECTION_LIST is defined in type SCHEMA_OWNER, then you have to call this ways only 'SCHEMA_OWNER_NAME.ISSUESECTION_LIST'
    2) You might have defined using schema_owner_name like scott.<TYPE_NAME>. if its so, then drop it and again define type without using schema owner.
    For detail help post your type declaration.

  • Java.sql.SQLException: Internal Error with oracle.sql.ARRAY getArray()

    hi,
    I am having having problems with the getArray() of oracle.sql.ARRAY.
    Here are the details:
    Oracle Database - 9.2.0.6. The JDBC driver used -10.2.0.1 jar.(the latest available).
    I am calling a stored procedure from java, that has out param as a collection (VARRAY) of a user defined type.
    The stored procedure works fine, if the user/schema used to connect,contains actual type, and i am able to extract the user defined object from the oracle.sql.ARRAY, via getArray().
    But if i use a different user to connect which has public synonyms and execute rights to the actual type, i get the following error:
    java.sql.SQLException: Internal Error
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.initCollElemTypeName(OracleTypeCOLLECTION.java:1026)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.getAttributeType(OracleTypeCOLLECTION.java:1056)
         at oracle.jdbc.oracore.OracleNamedType.getFullName(OracleNamedType.java:110)
         at oracle.jdbc.oracore.OracleTypeADT.createStructDescriptor(OracleTypeADT.java:2262)
         at oracle.jdbc.oracore.OracleTypeADT.unpickle81(OracleTypeADT.java:1656)
         at oracle.jdbc.oracore.OracleTypeUPT.unpickle81UPT(OracleTypeUPT.java:466)
         at oracle.jdbc.oracore.OracleTypeUPT.unpickle81rec(OracleTypeUPT.java:416)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody_elems(OracleTypeCOLLECTION.java:979)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody(OracleTypeCOLLECTION.java:923)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81(OracleTypeCOLLECTION.java:743)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION._unlinearize(OracleTypeCOLLECTION.java:242)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unlinearize(OracleTypeCOLLECTION.java:208)
         at oracle.sql.ArrayDescriptor.toJavaArray(ArrayDescriptor.java:963)
         at oracle.sql.ARRAY.getArray(ARRAY.java:370)
    The problem is happening because we have 2 different users to connect to the database. one is the dba user, which contains all the types, packages and other one the application user, which we are supposed to use, to connect via java. This application user does have access to types via public synonym, but it gives the above mentioned error.
    Please help :(.
    Regards,
    Gaurav.

    Hi avi,
    Even I am getting the same error inspite of preceding the type name with the same user who has created the type.
    It has displayed the array length.When I am trying to fetch each array, I am getting the error.
    ARRAY simpleArray = (ARRAY) cs.getObject(3);          
    System.out.println("Array is of length " + simpleArray.length());          ********************** The above stmt prints 2 records ******************
    But it goes to exception in the foll stmt..
    Object [] objArrStructArray = null;
    try{
         objArrStructArray = (Object[]) simpleArray.getArray();
    }catch(SQLException e){
         e.printStackTrace();
    Do u know abt this?
    The foll is the error which I am getting.
    java.sql.SQLException: Internal Error
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.initCollElemTypeName(OracleTypeCOLLECTION.java:1026)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.getAttributeType(OracleTypeCOLLECTION.java:1056)
         at oracle.jdbc.oracore.OracleNamedType.getFullName(OracleNamedType.java:110)
         at oracle.jdbc.oracore.OracleTypeADT.createStructDescriptor(OracleTypeADT.java:2262)
         at oracle.jdbc.oracore.OracleTypeADT.unpickle81(OracleTypeADT.java:1656)
         at oracle.jdbc.oracore.OracleTypeUPT.unpickle81UPT(OracleTypeUPT.java:466)
         at oracle.jdbc.oracore.OracleTypeUPT.unpickle81rec(OracleTypeUPT.java:416)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody_elems(OracleTypeCOLLECTION.java:979)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81_imgBody(OracleTypeCOLLECTION.java:923)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unpickle81(OracleTypeCOLLECTION.java:743)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION._unlinearize(OracleTypeCOLLECTION.java:242)
         at oracle.jdbc.oracore.OracleTypeCOLLECTION.unlinearize(OracleTypeCOLLECTION.java:208)
         at oracle.sql.ArrayDescriptor.toJavaArray(ArrayDescriptor.java:963)
         at oracle.sql.ARRAY.getArray(ARRAY.java:353)
         at com.telstra.plo.data.NetworkDAO.findCablesInBuffer(NetworkDAO.java:730)
         at com.telstra.plo.data.NetworkDAOTest.testFindCablesInBuffer(NetworkDAOTest.java:45)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at junit.framework.TestCase.runTest(TestCase.java:154)
         at junit.framework.TestCase.runBare(TestCase.java:127)
         at junit.framework.TestResult$1.protect(TestResult.java:106)
         at junit.framework.TestResult.runProtected(TestResult.java:124)
         at junit.framework.TestResult.run(TestResult.java:109)
         at junit.framework.TestCase.run(TestCase.java:118)
         at junit.framework.TestSuite.runTest(TestSuite.java:208)
         at junit.framework.TestSuite.run(TestSuite.java:203)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Thanks
    Archana

  • Java.sql.SQLException: Non supported character set: oracle-character-set-17

    Hi,
    i am trying to execute an Oracle procedure from JDBC. The procedure accepts a Nested table as an input parameter. Definition of the nested table is given below.
    Database – Oracle 10g.
    Application Server – JBOSS 4.2.1
    I get the following exception._
    java.sql.SQLException: Non supported character set: oracle-character-set-178
    at oracle.gss.util.NLSError.throwSQLException(NLSError.java:46)
    I.  JDBC  Code_
    Session s = HibernateUtil.getSession();
    Transaction tr = s.beginTransaction();
    con=s.connection();
    oraConn = (OracleConnection) con.getMetaData().getConnection();
    TableObject obj=new TableObject();
    obj.setId(new Integer(123));//Tested ok, stroing in DB
    obj.setDescr("test"); // this line throwing error
    obj.setCre_user(new Integer(456));
    obj.setUpd_user(new Integer(789));
    obj.setXfr_flag("Y");
    ArrayList al=new ArrayList();
    al.add(obj);
    Object[] objAray = al.toArray();
    ArrayDescriptor arrayDescriptor =ArrayDescriptor.createDescriptor("T_TEST_SYN", oraConn);
    ARRAY oracleArray = new ARRAY(arrayDescriptor, oraConn, objAray);
    cs = (OracleCallableStatement)oraConn.prepareCall("call PKG_OBJ_TEST.accept_ui_input(?) ");
    cs.setArray(1, oracleArray);
    cs.execute();
    tr.commit();
    public class TableObject implements SQLData{
    private String sql_type = "T_OBJ_TEST";
    private int id;
    private String descr;
    //private Date cre_date;
    private int cre_user;
    //private Date upd_date;
    private int upd_user;
    private String xfr_flag;
    public TableObject()
    public TableObject (int id,String descr,int cre_user,int upd_user,String xfr_flag)
    // this.sql_type = sql_type;
    this.id = id;
    this.descr = descr;
    // this.cre_date=cre_date;
    this.cre_user=cre_user;
    //this.upd_date=upd_date;
    this.upd_user=upd_user;
    this.xfr_flag=xfr_flag;
    public String getSQLTypeName() throws SQLException {
    return "T_OBJ_TEST";
    public void readSQL(SQLInput stream, String typeName) throws SQLException {
    //sql_type = typeName;
    id=stream.readInt();
    descr=stream.readString();
    //cre_date=stream.readDate();
    cre_user=stream.readInt();
    //upd_date=stream.readDate();
    upd_user=stream.readInt();
    xfr_flag=stream.readString();
    public void writeSQL(SQLOutput stream) throws SQLException {
    try {
    stream.writeInt(this.id);
    System.out.println("Iddddd");
    stream.writeString(this.descr);
    System.out.println("Desccccccccccccccc"+":"+descr);
    //stream.writeDate(cre_date);
    stream.writeInt(this.cre_user);
    System.out.println("userrrrrrrrrrrr");
    //stream.writeDate(upd_date);
    stream.writeInt(this.upd_user);
    System.out.println("upd uiserrrrrrrrrrr");
    stream.writeString(this.xfr_flag);
    System.out.println("flagggggggggggggggggggg"+xfr_flag);
    }catch (SQLException se) {
    System.out.println("Table object sql exception");
    se.printStackTrace();
    catch (Exception e) {
    System.out.println("Table object exception");
    * @return the id
    public int getId() {
    return id;
    * @param id the id to set
    public void setId(Object obj) {
    Integer iobj= (Integer)obj;
    this.id =iobj.intValue();
    * @return the descr
    public String getDescr() {
    System.out.println("getDescr "+descr);
    return descr;
    * @param descr the descr to set
    public void setDescr(Object obj) {
    System.out.println("setDescr "+obj);
    String sobj = (String)obj;
    this.descr=sobj.toString();
    System.out.println("setDescr "+obj);
    * @return the cre_user
    public int getCre_user() {
    return cre_user;
    * @param cre_user the cre_user to set
    public void setCre_user(Object obj) {
    Integer iobj=(Integer)obj;
    this.cre_user = iobj.intValue();
    * @return the upd_user
    public int getUpd_user() {
    return upd_user;
    * @param upd_user the upd_user to set
    public void setUpd_user(Object obj) {
    Integer iobj=(Integer)obj;
    this.upd_user = iobj.intValue();
    * @return the xfr_flag
    public String getXfr_flag() {
    return xfr_flag;
    * @param xfr_flag the xfr_flag to set
    public void setXfr_flag(Object obj) {
    this.xfr_flag = (String)xfr_flag;
    II.  Oracle database object details
    Details of Object and Nested table created in the database.
    T_TEST_SYN is a public synonym created for t_tab_obj_test
    CREATE OR REPLACE TYPE t_obj_test as object (
    id number(10),
    descr varchar2(100),
    --cre_date  date,
    cre_user number(10),
    --upd_date  date,
    upd_user number(10),
    xfr_flag varchar2(1),
    CONSTRUCTOR FUNCTION t_obj_test ( id IN NUMBER DEFAULT NULL,
    descr IN varchar2 default null,
    --cre_date  in date      default null,
    cre_user in number default null,
    --upd_date  in date      default null,
    upd_user in number default null,
    xfr_flag in varchar2 default null ) RETURN SELF AS RESULT ) ;
    CREATE OR REPLACE TYPE BODY t_obj_test as
    CONSTRUCTOR FUNCTION t_obj_test ( id IN NUMBER DEFAULT NULL,
    descr IN varchar2 default null,
    --cre_date  in date      default null,
    cre_user in number default null,
    --upd_date  in date      default null,
    upd_user in number default null,
    xfr_flag in varchar2 default null ) RETURN SELF AS RESULT IS
    BEGIN
    SELF.id := id ;
    SELF.descr := descr ;
    --SELF.cre_date  := cre_date ;
    SELF.cre_user := cre_user ;
    --SELF.upd_date  := cre_date ;
    SELF.upd_user := cre_user ;
    SELF.xfr_flag := xfr_flag ;
    RETURN ;
    END ;
    END ;
    CREATE OR REPLACE TYPE t_tab_obj_test AS TABLE OF t_obj_test ;
    CREATE OR REPLACE PACKAGE BODY PKG_OBJ_TEST AS
    PROCEDURE accept_ui_input ( p_tab_obj_test in T_TAB_OBJ_TEST ) IS
    BEGIN
    FOR row IN p_tab_obj_test.First .. p_tab_obj_test.LAST
    LOOP
    INSERT INTO OBJ_TEST ( ID,
    DESCR,
    CRE_DATE,
    CRE_USER,
    UPD_DATE,
    UPD_USER,
    XFR_FLAG )
    VALUES ( p_tab_obj_test(row).ID,
    p_tab_obj_test(row).DESCR,
    NULL,
    p_tab_obj_test(row).CRE_USER,
    NULL,
    p_tab_obj_test(row).UPD_USER,
    p_tab_obj_test(row).XFR_FLAG ) ;
    END LOOP ;
    COMMIT ;
    END accept_ui_input ;
    END PKG_OBJ_TEST;
    /

    Check your CLASSPATH enviroment variable. Try to add something like c:\Ora10g\jlib\orai18n.jar.
    From "JDBC Developer’s Guide and Reference":
    orai18n.jar
    Contains classes for globalization and multibyte character sets support
    This solved the same error in my case.

  • App failed due to java.sql.SQLException: [Microsoft][ODBC driver for Oracl

    Hello I developed a small applicaion for insert data into database.but i am getting exception in the server like this.
    app failed due to java.sql.SQLException: [Microsoft][ODBC driver for Oracle][Oracle]ORA-01401: inserted value too large for column
    And the code is given below..
    import java.io.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class Jdbc1 extends HttpServlet
    public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
    PrintWriter out=response.getWriter();
    String no=request.getParameter("no");
    String name=request.getParameter("name");
    String age=request.getParameter("age");
    try
    System.out.println("1");
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    System.out.println("2");
    Connection con=DriverManager.getConnection("jdbc:odbc:rakesh","scott","tiger");
    System.out.println("3");
    Statement st=con.createStatement();
    System.out.println("4");
    st.executeUpdate("INSERT INTO ind VALUES('+no+','+name+','+age+')" );
    con.commit();
    con.close();
    catch(Exception e)
    System.out.println(" app failed due to "+e);
    }Please give solution for this....

    Hello sir..
    thanks for ur reply...
    for oracle 10g -----> we use XE as datasourse
    name..What?
    now i am using oracle 8i...Not so from the code you posted. Didn't I see "jdbc:odbc:..." in your first post?
    so what should i
    write...in the datasourse name...that means.......
    Connection
    con=DriverManager.getConnection("jdbc:oracle:thin:@loc
    alhost:1521:????????","scott","tiger");Do you really use the default username and password?
    What should i write in place of ?????????..The name of the database you wish to connect to, of course.
    Do you have your tnsnames.ora set up properly? Did you install this database?
    None of this has ANYTHING to do with the error you posted, of course. Fix that first and then worry about the thin driver. At least it appears that the code you posted managed to connect to the database.
    %

  • SQLException:java.sql.SQLException:[Microsoft][Odbc driver for Oracle]

    hi all..im tryin to connect to Oracle db from java application.. i can complile the code but when it comes to executing d cod im gettin d followin error.. pls help me out.. here is d error
    SQLException:java.sql.SQLException:[Microsoft][Odbc driver for Oracle][Oracle]

    henrymania wrote:
    This is d driver im loadin..
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    and this is URL im assiging....
    "jdbc:oracle:thin:@192.168.32.68:1521:test";
    Here test is my sid name....highly unlikely, as that's not an ODBC driver nor is it an ODBC DSN.

Maybe you are looking for