Thin versus OCI

I made a java servlet with JBuilder 3.5 using a Oracle 8.1.6.2.0 Database and the JDBC thin drivers.
I read somewhere that the OCI - drivers are faster and better for servlets. So I downloaded them and instead of the original thin drivers I used thes OCI-drivers.
But now I can't make a connection to the DB.
Is there a way to install them or do I just
need to locate the position of the .zip file ?
I am currently using win nt. Maybe its only for Solaris ?
Any help welcome at [email protected]
null

OCI drivers are quicker than their thin equivalents and are very good for server side programming.
There are a few basic rules:
Unlike thin drivers, you must have an Oracle Net8 client on the machine.
You have to use the full Database Service Name as defined in the TNSNAMES.ORA file to make the connection. i.e.,
My Database SID is SJJ
My Database Service Name is SJJ.APJ
My OCI Drive connection must specify:
Connection conn = DriverManager.getConnection ("jdbc:oracle:oci8:@sjj.apj" ,user,password);
otherwise I will get a SQL Exception/TNSNAMES error.
It works on NT too.
Hope this helps...

Similar Messages

  • Is ojdbc5.jar type of thin or oci jdbc driver?

    Hi!
    I have downloaded ojdbc5.jar(file of jdbc driver classes for oracle 11g) from OTN,but I don't know what kind of jdbc driver class it contains,THIN or OCI?
    Thanks!
    Huang

    I went to the OTN download site. The download area of the page was titled "JDBC Thin for All Platforms". Of course, that doesn't mean much.
    So I looked at [url-http://download.oracle.com/otn/utilities_drivers/jdbc/111060/Readme.txt]this ReadMe information, found one line above the at the same place as the download. That might be helpful, would it not?
    And, of course, thgere is some added information in the FAQ at
    http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html
    <g>

  • Which driver comes  with oracle9i (thin or OCI)

    I want to install oracle 9i. but I want to know which driver(thin ot OCI) will be installed along along with 9i installation. I want thin, is it possible?
    Thanks for your reply
    Ganibabu

    Hi,
    Both will be available in classes12.jar or classes12.zip.
    Regards
    Pete

  • Difference Between Thin and OCI drivers

    Hi,
    Can anyone tell me what the difference is between the OCI and thin JDBC drivers. Or point me to some documentation.
    Why would you use the thin driver over using the OCI driver??
    Thanks for any help.
    Steve

    - The thin driver is easier to deploy, since you don't need any Oracle software installed on the client.
    - The OCI driver will have slightly more functionality than the thin driver because it's able to leverage the Oracle client.
    - If you're doing a lot of data retrieval (lots of bits over the wire), the OCI driver will tend to be faster.
    - If you're not retrieving a lot of data, the thin driver may be faster, since the OCI driver incurs a context switch when it goes to make OCI calls via JNI.
    Justin

  • MySQL versus OCI Functions

    Hi, I am looking for a list
    to see the opposite from MySQL Functions to OCI Functions
    for example
    MySQL OCI
    mysql_list_fileds() ?
    mysql_fetch_field() ?
    mysql_query() ?
    mysql_free_result() ?
    and so on !
    Could somebody help me ?
    Thanks
    Stefan

    check this links :-
    http://www.php.net/manual/en/ref.oracle.php
    http://www.php.net/manual/en/ref.oci8.php

  • ORA-01000: maximum open cursors exceeded with Thin and OCI

    Hi I have this ERROR :
    ORA-01000: maximum open cursors exceeded
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at line 1
    and all the connections show this error, I run the weblogic.Admin RESET_POOL utility
    and the problem are fixed !!
    Why show this error ?
    why with RESET_POOL utility resolve the problem ?
    the Oracle Version is Oracle 8.1.7.0 32bits on Solaris 8

    Mitesh:
    I using testConnOnReserve=true and testReleasedConnections=true specify testTableName
    when the errors appear , but increse the open_cusror value to 1200, i think is
    not the solution, because the DB and Stored Procedure is used by Cold Fusion ,
    is the same Application, in Cold Fusion not show this error u other errors with
    380 users on the application.
    I check to increse the open_cusror and test the application.
    thanks
    Roberto
    Mitesh Patel <[email protected]> wrote:
    You should do couple of things here.
    First of all you can increse the open_cusror value to 1200 if it is ok
    with you.
    Secondly, make sure you are using testConnOnReserve=true and specify
    testTableNAme
    in your config.xml for your connection pool defination.
    Thanks,
    Mitesh
    Roberto Hernandez wrote:
    Mitesh Patel,
    WLS 6.1 sp3 on Solaris 8, in init.ora file
    session_cached_cursors = 30 and Open_Cursors = 600
    Any Idea to resolve the Error and not use manual RESET_POOL utility?
    thanks
    Mitesh Patel <[email protected]> wrote:
    This is know bug from oracle.
    XAResource.recover repeatedly returns the same set of in-doubt
    Xids irrespective of the input flag. According to the XA spec, the
    Transaction Manager should initially call XAResource.recover with
    TMSTARTRSCAN and then call XAResource.recover with
    TMNOFLAGS repeatedly until no Xids are returned. This Oracle
    bug could lead to infinite recursion and subsequent running out
    of Oracle cursors with error "ORA-01000: maximum open cursors
    exceeded."
    What version of weblogic are you using? What is value for max cursors
    in init.ora file
    in your dbserver?
    Resets the named database ConnectionPool by shutting down and
    reestablishing all the allocated connections. This method should
    only be called when the connection pool is known to be in a bad
    state, for example when the database has been restarted.
    By using Reset you are cleaning all bad connections and associated
    cursors
    with it. That
    is why it resolves ora-1000 for you.
    Mitesh
    Roberto Hernandez wrote:
    Hi I have this ERROR :
    ORA-01000: maximum open cursors exceeded
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at line 1
    and all the connections show this error, I run the weblogic.Admin
    RESET_POOL
    utility
    and the problem are fixed !!
    Why show this error ?
    why with RESET_POOL utility resolve the problem ?
    the Oracle Version is Oracle 8.1.7.0 32bits on Solaris 8

  • PreparedStatement vs Statement & OCI vs thin

    http://www.oreilly.com/catalog/jorajdbc/chapter/ch19.html
    came accross this sample chapter from a book which compares Statement vs PreparedStatement vs CallableStatement (and all of the aforementioned using both the thin and OCI drivers for Oracle)
    Just wondering if anyone had read the book. It was published in Dec 2001 so the results should be current. If anyone has read it, let me know what you think.
    I haven't found many reliable benchmarks for database access, but this one compares only Oracle implementations so I have to assume that it is unbiased. (not the usual "my drivers are better than my competitions - benchmarks to prove it"... then you check out the competition and it says "my drivers are the fastest - benchmarks to prove it!")
    Jamie

    I haven't read this book, but from other sources and my own experience the basic rules are as follows:
    - PreparedStatement is faster then Statement if the SQL statemtn is rather complex and used frequently
    - OCI is generally faster than Thin, but requires more setup on the client
    as always, these rules have exceptions, and the only way to find out is to try with your program.

  • Weblogic 6.1 sp5 core dump by OCI driver

    I have encountered a core dump problem on weblogic server 6.1 SP5 the error message
    as below, I am using weblogic oci driver for oracle "libweblogicoci37.so" , anyone
    can help?
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 4 occurred at PC=0x242795c
    Function name=(N/A)
    Library=(N/A)
    NOTE: We are unable to locate the function name symbol for the error
    just occurred. Please refer to release documentation for possible
    reason and solutions.

    Galen Boyer wrote:
    On Sun, 28 Mar 2004, [email protected] wrote:
    Galen Boyer wrote:
    On Sat, 27 Mar 2004, [email protected] wrote:
    One way to get a substantial boost in reliability is to switch
    to the latest appropriate Oracle thin driver.But then you can suffer performance losses.Actually, the latest oracle thin drivers are very fast. The 10g
    driver in particular. Well, we are on 9i here and we have lots of CLOB and BLOB
    operations. Understood. The latest should work. (How comfortable does that make you ;) )
    It is a sad choice we used to have to make between
    faster-but-buggy homicidal old OCI code (wherein a bug in one
    module can cause a segfault in an innocent unrelated module's
    execution, and bring down a whole JVM) and the reliability of
    Java. Fortunately, the future is at hand. The future is at hand? I do believe you are starting to sound a
    bit like an evangelist. :-)Yep. Back in '96 when we wrote and marketed all the first JDBC drivers
    for MS SQLServer, Oracle, Informix and Sybase, we did it solely
    so enable our application server to be able to do real work. We were all
    absolutely sure the driver market would dry up in 6 months as all the
    DBMS vendors made excellent free type-4 drivers. We were over-optimistic.
    Sybase's driver still requires you to install non-standard tables and
    procedures in the DBMS. Oracle drivers are sloutching toward sufficiency,
    but their first GA driver had a hard-wired value of READ_UNCOMMITTED
    for getTransactionIsolation, and if you tried setTransactionIsolation
    of either READ_COMMITTED or SERIALIZABLE, the driver would throw an
    exception! We actually had a weblogic workaround to intercept this
    jdbc call and send the "ALTER SESSION " to do what the customer wanted!
    At the same time we had a major struggle to get Oracle to admit that
    in spite of their documentation, OCI was not threadsafe (killing our
    OCI-based driver in weblogic applications) until 7.1.4 on solaris
    and NT, and 8.0.5 on other platforms. Did you know they had separate
    codelines for OCI on each platform? For a while each platform's OCI
    had a different hard-wired limit of the number of simultaneous connections
    on client could have? For a while that limited what our application server
    could do. OCI was written for simple teller-like client applications.
    The new thin drivers take on more of the possible client-side
    processing, and can do RAC failover etc. JoeOh well. I for one am a bit skeptical that Oracle is going to
    fix java driver bugs before OCI bugs and I don't have any reason
    to commit to any "platform independent" solution like java's thin
    driver. We are completely based on Oracle here and we have a
    J2EE solution for the app just cause we had to choose something.
    If thin is better, than we will go with that.The last highest-level talks I had with Oracle folks they indicated that
    they wanted everyone to go thin. OCI was a headache for them. Their
    OCI code was undocumented and all the original experts had left the company.
    That was in 2000 or so, so it is likely better now. They may well have
    invested a lot of reverse-documentation by now.
    One of the benefits of Java is the reliability. I think you'll
    ultimately be happier with the thin. We do want you successful.
    Joe

  • JDBC Thin vs Thick Driver

    Hello,
    We are looking for differences between Oracle JDBC Thin and OCI (thick) driver with respect to
    1. Peformance of the Java application.
    2. Maintenance and administration
    3. Known issues with OCI (thick) driver which is handled by Thin or vice versa.
    4. Better security
    Appreciate any help on the above.
    Thanks and Regards,
    Vamsi Mohan Harish

    1. Performance of the Java application.
    The difference in driver implementation is likely to be trivial compared to other considerations (network round trip time, application design, etc). However if you are really interested then chapter 19 of 'Java Programming with Oracle JDBC' by Donald Bales (O'Reilly) has some good information on this topic. It also happens to be available online: http://www.onjava.com/pub/a/onjava/excerpt/oraclejdbc_19/index.html
    Keep in mind that it is a little out of date now - you should run tests using the current versions of the drivers.
    2. Maintenance and administration
    The JDBC Thin driver is typically easier to update/distribute, as installation consists of copying a .jar file or two. The only case where OCI has an advantage is in the use of Oracle's naming layer for database service abstraction. Of course this assumes the database server is listening for TCP/IP and not the legacy protocols that are only supported by OCI. Failover configurations using TAF are supported by OCI only. The newer 'Fast Connection Failover' feature of 10g RAC can also run over Thin though.
    3. Known issues with OCI (thick) driver which is handled by Thin or vice versa.
    In my experience each has a roughly equal number of bugs. I find it easier to track them down in the Thin driver though :-)
    4. Better security
    The security options for the Thin driver are more limited with regard to external authentication and support for some of the Oracle Advanced Security features. However, both support the basics like encrypted connections. Chapter 23 of the JDBC driver docs goes into more depth: http://download-west.oracle.com/docs/cd/B14117_01/java.101/b10979/toc.htm
    Hope this helps.
    Jonathan.

  • OCI JDBC Driver migration

    Hi,
    We are trying to make a migration from Thin driver to OCI in a Java-Oracle application. All the paths seems to be OK (OCI classes are in casses12.zip, aren4t they?) , we have an Oacle client in the machine and the program says:"java.lang.UnsatisfiedLinkError:no ocijdbc8 in java.library.path"
    In any case, is it reasonable change from Thin to OCI
    to get better performance?
    Thanks.

    Some more info from gdb at the point of the segmentation fault:
    (gdb) bt
    #0 0x00002ad2b30a1326 in ?? ()
    #1 0x00002aaadbfcc938 in ?? ()
    #2 0x00002ad2b21dea13 in InterpreterRuntime::resolve_invoke () from /usr/local/java/jre/lib/amd64/server/libjvm.so
    Backtrace stopped: previous frame inner to this frame (corrupt stack?)
    (gdb) info reg
    rax 0x2aaaeac240f8 46913571406072
    rbx 0x2aaaeac240f8 46913571406072
    rcx 0x2aaadbfcc938 46913323583800
    rdx 0x0 0
    rsi 0x2aaadbfcc938 46913323583800
    rdi 0x2aaab1c6dba8 46912615406504
    rbp 0x0 0x0
    rsp 0x42675760 0x42675760
    r8 0x2ad2b27e8000 47084426133504
    r9 0x2aaab1c6d7f8 46912615405560
    r10 0x2ad2b27b9c40 47084425944128
    r11 0x2ad2b321e9b0 47084436842928
    r12 0x2 2
    r13 0x426758b0 1114069168
    r14 0x42675918 1114069272
    r15 0x2aaab1c6d000 46912615403520
    rip 0x2ad2b30a1326 0x2ad2b30a1326
    eflags 0x10206 [ PF IF RF ]
    cs 0x33 51
    ss 0x2b 43
    ds 0x0 0
    es 0x0 0
    fs 0x63 99
    gs 0x0 0
    fctrl 0x27f 639
    fstat 0x20 32
    ftag 0xffff 65535
    fiseg 0x2ad2 10962
    fioff 0xb249282f -1303828433
    foseg 0x0 0
    fooff 0x42676cf8 1114074360
    fop 0x55d 1373
    mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]

  • Running OCCI 12.1 with OCI 11.2

    Hi there.
    A quick newbie question: can I compile and link my apps with OCCI 12.1 (oraocci12.dll) and have it run on top of OCI 11.2 (oci.dll) ?
    I'm not using any advanced OCI features.
    Thanks in advance!

    4f2b8813-c251-4b48-8f2b-242dc36d4904 wrote:
    A quick newbie question: can I compile and link my apps with OCCI 12.1 (oraocci12.dll) and have it run on top of OCI 11.2 (oci.dll) ?
    I'm not using any advanced OCI features.
    Not sure what you mean... oraocci12.dll depends on oci.dll, so you are implicitly using OCI when you use OCCI.
    But I was told by Oracle (a few years back, about 11gR1 at the time) that you cannot mix OCCI with OCI, despite having accessors to the raw OCI handles from OCCI. OCCI sometimes lag in its support of feature that first come out first for OCI, like it used to for 64-bit LOB sizes, or XMLTYPE support, etc... Since those limitations of OCCI made us invest in the lower-level OCI, I haven't followed up on OCCI much.
    Another drawback of OCCI versus OCI is that since OCCI is C++, you must always wait (sometimes for months) for Oracle to provide you with a version compiled with the latest Visual Studio, whereas OCI as a C library can be used with any VS versions.
    But otherwise OCCI is great, much simpler that OCI. By all means use OCCI if it covers all the features (and VS versions) you want to use. --DD

  • SSL connection with JDBC thin driver

    I am attempting to connect to an instance of Oracle 10.2 using the JDBC thin driver with SSL. I want to use the encryption feature of SSL only, but I can not perform the getConnection on the DataSource without running into an exception. According the JDBC docs, the SSL encryption feature is new for the 10.2 release of the JDBC thin driver, but I have seen no working examples. See http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/overvw.htm#CHDIHFBD
    I am using ojdbc14.jar on Java 5.0 using a standalone application, and it fails with an IOException (The network adapter could not establish the connection) (Error code 17002). I even enabled tracing using the ojdbc-g.jar to try to figure out what the REAL problem is, but it was not helpful at determining a root cause. I changed the driver type from "thin" to "oci" (and installed Oracle Instant client for my test machine) and the connection works just fine using the same tnsnames file, the same wallet, and the same cipher suite. From the Java perspective the only thing that changed was four characters -> "thin" became "oci". I am still using password based authentication as I understand that the authentication part of SSL is not supported in the thin driver on 10.2
    Can anyone verify that the SSL encryption works with JDBC thin as advertised? (not the Oracle Net encryption, but rather the one described in Chapter 11 of the JDBC Developer's Guide. See http://download.oracle.com/docs/cd/B19306_01/java.102/b14355/sslthin.htm#CHDFEICG
    I really would prefer to avoid using the OCI driver because of its dependencies on the native platform. Is there something special with how the users are created or how the JDBC API should be used? I am setting what I think to be appropriate parameters (oracle.net.wallet_location, oracle.net.cipher_suites) all to no avail. Does anyone have a working example they can provide?

    1) I would suggest posting this question over in the JDBC forum. The folks over there are far more likely to be able to help you.
    2) When you do post this question over there, I would strongly suggest posting some sample code/ configuration scripts so that folks can reproduce your problem on their local machines. That tends to make it far easier to debug the problem and/or to notice if you've missed a step.
    Justin

  • Proxy Connection with thin driver

    Hello,
    I am using 10g, and bea 81 sp3, I am trying to setup proxy authetication. All the references I find for proxy authetication are using OCI driver. Is proxy authetication supported using oracle 10g thin driver (ojdbc14.jar)? Can anyone provide me an example using thin driver?
    appreciate any help,
    Shailesh

    See the following link for documentation on proxy authentication. http://download-uk.oracle.com/docs/cd/B19306_01/java.102/b14355/proxya.htm
    Also, the release note for 10gR2 JDBC driver installation includes the following text:
    Proxy Authentication
    In Oracle 10g R1 we introduced proxy authentication for the
    OCI driver. In this release we introduce a common proxy
    authentication api that is supported by both the Thin and
    OCI drivers. We strongly recommend that you use the common
    api instead of the OCI specific api.

  • Curious performance problem

    Hello,
    I have a very curious performance problem. I have a query which returns 0 rows and takes around 9 secs to execute in TopLink. If I try to execute generated SQL for that ReadAllQuery (taken from log) directly through JDBC, it takes only 70ms. I use TopLink 9.0.3 with Oracle9i 9.2.0.3. I've traced through sources and identified that the problem is not in Toplink directly but in call to Oracle JDBC driver. But then I don't understand why in my JDBC case it is so fast. The problem is the same no matter if I use thin or OCI driver.
    I've prepared a little test to show it up:
    import com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO;
    import java.util.Vector;
    import oracle.toplink.expressions.Expression;
    import oracle.toplink.expressions.ExpressionBuilder;
    import oracle.toplink.queryframework.ReadAllQuery;
    import oracle.toplink.queryframework.SQLCall;
    import oracle.toplink.sessions.DatabaseSession;
    import oracle.toplink.sessions.DefaultSessionLog;
    import oracle.toplink.sessions.Project;
    import oracle.toplink.tools.profiler.PerformanceProfiler;
    import oracle.toplink.tools.workbench.XMLProjectReader;
    * @author mstraka
    public class ToplinkTest {
    public static void main(String[] args) {
    try {
    // Pure JDBC test
    String sql =
    "SELECT object_type, MESSAGENUMBER, object_id, MESSAGETYPE, TIMESTAMP, VALUE1, POTORDER, " +
    "VALUE2, VALUE3, ORDERNUMBER, VALUE4, POTNAME, ISINCOMINGMESSAGE " +
    "FROM POTMESSAGELOG " +
    "WHERE " +
    "((((TIMESTAMP >= TO_DATE('2003-07-21 15:00:00', 'YYYY-MM-DD HH24:MI:SS')) " +
    "AND (TIMESTAMP <= TO_DATE('2003-07-21 16:00:00', 'YYYY-MM-DD HH24:MI:SS'))) " +
    "AND ((POTORDER >= 1) AND (POTORDER <= 172))) AND " +
    "(object_type = 'com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO')) " +
    "ORDER BY TIMESTAMP ASC";
    Class.forName("oracle.jdbc.driver.OracleDriver");
    java.sql.Connection con = java.sql.DriverManager.getConnection("jdbc:oracle:oci8:@katka", "sco", "sco");
    long time = System.currentTimeMillis();
    java.sql.PreparedStatement ps = con.prepareStatement(sql);
    java.sql.ResultSet rs = ps.executeQuery();
    int rows = 0;
    while (rs.next()) {
    rows++;
    System.out.println("*** Pure JDBC test ****");
    System.out.println("Rows: " + rows);
    System.out.println("JDBC Time: " + String.valueOf(System.currentTimeMillis() - time) + " ms");
    rs.close();
    ps.close();
    con.close();
    // TopLink test
    XMLProjectReader xmlReader = new XMLProjectReader();
    Project project = xmlReader.read("./config/bc/tlproject.xml");
    project.getLogin().setUserName("sco");
    project.getLogin().setPassword("sco");
    DatabaseSession dbSession = project.createDatabaseSession();
    dbSession.logMessages();
    DefaultSessionLog log = (DefaultSessionLog) dbSession.getSessionLog();
    log.logDebug();
    log.logExceptions();
    log.logExceptionStackTrace();
    log.printDate();
    dbSession.login();
    java.util.Calendar cal = java.util.Calendar.getInstance();
    cal.set(java.util.Calendar.YEAR, 2003);
    cal.set(java.util.Calendar.MONTH, 6);
    cal.set(java.util.Calendar.DAY_OF_MONTH, 21);
    cal.set(java.util.Calendar.HOUR_OF_DAY, 15);
    cal.set(java.util.Calendar.MINUTE, 0);
    cal.set(java.util.Calendar.SECOND, 0);
    cal.set(java.util.Calendar.MILLISECOND, 0);
    ExpressionBuilder eb = new ExpressionBuilder();
    Expression ex = eb.get("timestamp").greaterThanEqual(new java.sql.Date(cal.getTimeInMillis()));
    cal.set(java.util.Calendar.HOUR_OF_DAY, 16);
    ex = ex.and(eb.get("timestamp").lessThanEqual(new java.sql.Date(cal.getTimeInMillis())));
    Expression pot = eb.get("potOrder").greaterThanEqual(1);
    pot = pot.and(eb.get("potOrder").lessThanEqual(172));
    dbSession.setProfiler(new PerformanceProfiler());
    ReadAllQuery rq = new ReadAllQuery(PotMessageLogJDO.class);
    rq.setSelectionCriteria(ex.and(pot));
    rq.addAscendingOrdering("timestamp");
    time = System.currentTimeMillis();
    Vector result = (Vector)dbSession.executeQuery(rq);
    System.out.println("*** TopLink ReadAllQuery test ****");
    System.out.println("Rows: " + result.size());
    System.out.println("TopLink Time: " + String.valueOf(System.currentTimeMillis() - time) + " ms");
    time = System.currentTimeMillis();
    result = (Vector)dbSession.executeSelectingCall(new SQLCall(sql));
    System.out.println("*** TopLink direct SQL test ****");
    System.out.println("Rows: " + result.size());
    System.out.println("TopLink SQL Time: " + String.valueOf(System.currentTimeMillis() - time) + " ms");
    } catch (Exception e) {
    e.printStackTrace();
    ...and here is output from run:
    *** Pure JDBC test ****
    Rows: 0
    JDBC Time: 62 ms
    2003.07.21 06:07:44.127--DatabaseSession(30752603)--Connection(20092482)--TopLink, version:TopLink - 9.0.3 (Build 423)
    2003.07.21 06:07:44.736--DatabaseSession(30752603)--Connection(20092482)--connecting(DatabaseLogin(
         platform => OraclePlatform
         user name => "sco"
         datasource URL => "jdbc:oracle:oci8:@katka"
    2003.07.21 06:07:44.799--DatabaseSession(30752603)--Connection(20092482)--Connected: jdbc:oracle:oci8:@katka
         User: SCO
         Database: Oracle Version: Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.3.0 - Production
         Driver: Oracle JDBC driver Version: 9.2.0.1.0
    2003.07.21 06:07:44.971--DatabaseSession(30752603)--#executeQuery(ReadAllQuery(com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO))
    Begin Profile of{ReadAllQuery(com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO)
    2003.07.21 06:07:45.002--DatabaseSession(30752603)--Connection(20092482)--SELECT object_type, MESSAGENUMBER, object_id, MESSAGETYPE, TIMESTAMP, VALUE1, POTORDER, VALUE2, VALUE3, ORDERNUMBER, VALUE4, POTNAME, ISINCOMINGMESSAGE FROM POTMESSAGELOG WHERE ((((TIMESTAMP >= {ts '2003-07-21 15:00:00.0'}) AND (TIMESTAMP <= {ts '2003-07-21 16:00:00.0'})) AND ((POTORDER >= 1) AND (POTORDER <= 172))) AND (object_type = 'com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO')) ORDER BY TIMESTAMP ASC
    Profile(ReadAllQuery,
         class=com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO,
         total time=9453,
         local time=9453,
         query prepare=15,
         sql execute=9422,
    } End Profile
    *** TopLink ReadAllQuery test ****
    Rows: 0
    TopLink Time: 9468 ms
    2003.07.21 06:07:54.439--DatabaseSession(30752603)--#executeQuery(DataReadQuery())
    Begin Profile of{DataReadQuery()
    2003.07.21 06:07:54.439--DatabaseSession(30752603)--Connection(20092482)--SELECT object_type, MESSAGENUMBER, object_id, MESSAGETYPE, TIMESTAMP, VALUE1, POTORDER, VALUE2, VALUE3, ORDERNUMBER, VALUE4, POTNAME, ISINCOMINGMESSAGE FROM POTMESSAGELOG WHERE ((((TIMESTAMP >= TO_DATE('2003-07-21 15:00:00', 'YYYY-MM-DD HH24:MI:SS')) AND (TIMESTAMP <= TO_DATE('2003-07-21 16:00:00', 'YYYY-MM-DD HH24:MI:SS'))) AND ((POTORDER >= 1) AND (POTORDER <= 172))) AND (object_type = 'com.abilitydev.slovalco.parameter.messages.PotMessageLogJDO')) ORDER BY TIMESTAMP ASC
    Profile(DataReadQuery,
         total time=0,
         local time=0,
    } End Profile
    *** TopLink direct SQL test ****
    Rows: 0
    TopLink SQL Time: 16 ms
    Thanks a lot!
    Marcel

    Marcel,
    TopLink supports native SQL generation that will use the TO_DATE operators. You can turn on native SQL in a couple of ways.
    1. SESSIONS.XML
              <login>
                   <platform-class>oracle.toplink.internal.databaseaccess.OraclePlatform</platform-class>
                   <user-name>user</user-name>
                   <password>password</password>
                   <uses-native-sequencing>true</uses-native-sequencing>
    2. Through DatabaseLogin API:
    After the project is read in or instantiated:
    project.getLogin().useNativeSQL();
    This should get the SQL you need and address your performance issue.
    Doug

  • Error transaction no longer active, no further JDBC access allowed

    Hello
    Our application uses WLS 6.0 SP2, TopLink 3.5.3, WebLogic JMS. A
    (pooled) JMS driven message bean invokes other application components
    (stateless session beans). Also, application components use JMS to send
    messages. JMS and application (through TopLink) use the same JDBC
    connection pool. TopLink connects through javax.sql.DataSource and
    external transaction controller. 2PC transactions are required to
    integrate JMS and TopLink DB access (see data source definition below).
    All components run in a single JVM, there is not distributed transaction
    between JVMs.
    When pushing > 5 concurrent messages into the system I get an error that
    somehow indicates TopLink access to a connection that is no longer
    associated with a WebLogic transaction.
    I can consistently reproduce this error with the Oracle thin, Oracle OCI
    and WebLogic OCI JDBC drivers. It seems to occur independent from the
    maximum number of connections in the pool (tested between 1 and 30).
    Also, when serializing the message supply with a pause in between the
    error does not seem to occur.
    Has anybody seen this type of problem before?
    Are there possibly known issues with the external transaction controller
    integration?
    Any help greatly appreciated.
    Thanks,
    Thomas
    EXCEPTION [TOPLINK-4002] (3.5.3 JDK1.2):
    TOPLink.Public.Exceptions.DatabaseException
    EXCEPTION DESCRIPTION: java.sql.SQLException: The transaction is no
    longer active (status = Committing). No further JDBC access is allowed
    within this transaction.
    INTERNAL EXCEPTION: java.sql.SQLException: The transaction is no longer
    active (status = Committing). No further JDBC access is allowed within
    this transaction.
    ERROR CODE: 0
    ### WebLogic config.xml ###
    <JDBCConnectionPool CapacityIncrement="1"
    DriverName="oracle.jdbc.driver.OracleDriver" InitialCapacity="1"
    MaxCapacity="15" Name="oraclePool"
    Properties="user=wlpi20;password=wlpi20;dll=ocijdbc8;protocol=thin"
    Targets="appserver"
    URL="jdbc:oracle:thin:@10.3.209.35:1521:wcdevdb"/>
    <JDBCTxDataSource EnableTwoPhaseCommit="true"
    JNDIName="com.bea.wlpi.TXDataSource" Name="TXDataSource"
    PoolName="oraclePool" Targets="appserver"/>
    <JMSJDBCStore ConnectionPool="oraclePool" Name="oraclePool"/>
    ### TopLink session/login setup for external transaction controller ###
    DatabaseLogin login = project.getLogin();
    login.setConnector(new TOPLink.Public.JNDI.JNDIConnector(
    initialContext, jdbcDataSource));
    login.setUserName(jdbcUser);
    login.setPassword(jdbcPasswd);
    ServerSession session = new ServerSession(project);
    login.useExternalConnectionPooling();
    login.useExternalTransactionController();
    final String tmname = "weblogic/transaction/TransactionManager";
    javax.transaction.TransactionManager transMgr =
    (javax.transaction.TransactionManager)
    initialContext.lookup(tmname);
    JTSSynchronizationListener.setTransactionManager(transMgr);
    session.setExternalTransactionController(
    new TOPLink.Public.JTS.JTSExternalTransactionController());
    logger.fine("registered external transaction controller");

    Better to ask on a hibernate forum, but you seem to
    be trying to reuse a closed transaction. If you have
    auto-commit set to ttrue, try changing it to false,
    the explicitly calling commit when you are done.Might be worth finding out why something is trying to use a closed transaction first, before changing your entire transaction management idiom, though

Maybe you are looking for

  • Check deposit header is incorrect

    Hi All, I am getting the following error when i do the FPB12. PaytmedNo  Posting Date Lot          Line                                                              Status 10000003     08.12.2008    1              2                                 Ch

  • Windows 7 Desktop Gadgets disappeared

    Hello Everyone, After installing Windows 7, I was able to select and run desktop gadgets on my desktop. After few days, or I should say that after few reboots, the desktop gadgets disappeared. Now, when I right click on the desktop and click on gadge

  • New iPad Air won't sync with iTunes on Windows 8

    Hello, I have an iPad Air that will not sync with iTunes. That same machine however syncs with my original iPad and iPad 2 with no issues. Only thing that happens when I connect the iPad Air to the PC is a tile/window pops up like it is looking for p

  • Debug ABAP code in InfoPackage

    Hi friends, How i can debug a ABAP code from a variable selection in Infopackage? Thanks, EA

  • I just bought an apple tv bt i can find where to subscribe to stasrt using my phone

    hey there