[jira] Updated: (CAY-1051) Oracle 11 driver support - Drop OracleAdapter "optimizations"

From: Andrus Adamchik (JIRA) ("Andrus)
Date: Thu May 08 2008 - 11:34:52 EDT

  • Next message: Andrus Adamchik (JIRA): "[jira] Closed: (CAY-1051) Oracle 11 driver support - Drop OracleAdapter "optimizations""

         [ https://issues.apache.org/cayenne/browse/CAY-1051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

    Andrus Adamchik updated CAY-1051:
    ---------------------------------

        Description:
    It was reported that OrlaceAdapter throws when running with Oracle 11 driver [1]. The problem is caused by Oracle "optimizations" built in to the Adapter. While I found a quick fix for "optimizations" to work with the new driver, I think the whole idea that Cayenne should hardcode some special Oracle parameters in the adapter is lame. Aside from the fact that our own testing didn't find any benefits of those "optimizations", Cayenne should not reconfigure the Statements in a one-size-fits-all manner.

    Now what's *really* lame is Oracle inability to pass various parameters in the JDBC URL, so you have to call their API directly. We'll be leaving this as an exercise for the end-users from now on.

    [1] http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html

    ava.lang.IllegalAccessException: Class org.apache.cayenne.dba.oracle.OracleSelectTranslator can not access a member of class oracle.jdbc.driver.OracleStatementWrapper with modifiers "public"
            at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
            at java.lang.reflect.Method.invoke(Method.java:578)
            at org.apache.cayenne.dba.oracle.OracleSelectTranslator.createStatement(OracleSelectTranslator.java:132)
            at org.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:72)
            at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:58)
            at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:230)
            at org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:424)
            at org.apache.cayenne.access.DataDomainQueryAction.access$000(DataDomainQueryAction.java:68)
            at org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomainQueryAction.java:397)
            at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847)

      was:
    It was reported that OrlaceAdapter throws when running with Oracle 11 driver [1]. The problem is caused by Oracle "optimizations" built in to the Adapter. While I found a quick fix for "optimizations" to work with the new driver, I think the whole idea that Cayenne should hardcode some special Oracle parameters in the adapter is lame. Aside from the fact that our own testing didn't find any benefits of those "optimizations", Cayenne should not reconfigure the Statements.

    Now what's *really* lame is Oracle inability to pass various parameters in the JDBC URL, so you have to call their API directly. We'll be leaving this as an exercise for the end-users from now on.

    [1] http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html

    ava.lang.IllegalAccessException: Class org.apache.cayenne.dba.oracle.OracleSelectTranslator can not access a member of class oracle.jdbc.driver.OracleStatementWrapper with modifiers "public"
            at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
            at java.lang.reflect.Method.invoke(Method.java:578)
            at org.apache.cayenne.dba.oracle.OracleSelectTranslator.createStatement(OracleSelectTranslator.java:132)
            at org.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:72)
            at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:58)
            at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:230)
            at org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:424)
            at org.apache.cayenne.access.DataDomainQueryAction.access$000(DataDomainQueryAction.java:68)
            at org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomainQueryAction.java:397)
            at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847)

    > Oracle 11 driver support - Drop OracleAdapter "optimizations"
    > -------------------------------------------------------------
    >
    > Key: CAY-1051
    > URL: https://issues.apache.org/cayenne/browse/CAY-1051
    > Project: Cayenne
    > Issue Type: Improvement
    > Components: Cayenne Core Library
    > Affects Versions: 3.0
    > Environment: Oracle 11
    > Reporter: Andrus Adamchik
    > Assignee: Andrus Adamchik
    > Priority: Minor
    > Fix For: 3.0
    >
    >
    > It was reported that OrlaceAdapter throws when running with Oracle 11 driver [1]. The problem is caused by Oracle "optimizations" built in to the Adapter. While I found a quick fix for "optimizations" to work with the new driver, I think the whole idea that Cayenne should hardcode some special Oracle parameters in the adapter is lame. Aside from the fact that our own testing didn't find any benefits of those "optimizations", Cayenne should not reconfigure the Statements in a one-size-fits-all manner.
    > Now what's *really* lame is Oracle inability to pass various parameters in the JDBC URL, so you have to call their API directly. We'll be leaving this as an exercise for the end-users from now on.
    > [1] http://www.oracle.com/technology/tech/java/sqlj_jdbc/index.html
    > ava.lang.IllegalAccessException: Class org.apache.cayenne.dba.oracle.OracleSelectTranslator can not access a member of class oracle.jdbc.driver.OracleStatementWrapper with modifiers "public"
    > at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
    > at java.lang.reflect.Method.invoke(Method.java:578)
    > at org.apache.cayenne.dba.oracle.OracleSelectTranslator.createStatement(OracleSelectTranslator.java:132)
    > at org.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:72)
    > at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:58)
    > at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:230)
    > at org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:424)
    > at org.apache.cayenne.access.DataDomainQueryAction.access$000(DataDomainQueryAction.java:68)
    > at org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomainQueryAction.java:397)
    > at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847)

    -- 
    This message is automatically generated by JIRA.
    -
    You can reply to this email to add a comment to the issue online.
    



    This archive was generated by hypermail 2.0.0 : Thu May 08 2008 - 11:35:25 EDT