Oracle.xml.sql.OracleXMLSQLException:Cannot enable auto commit within JTS transaction

Hi All,
OracleXMLSave class in the Oracle XDK is being used to load XML data into an 8170 database. The Java code is running in IBM WebSphere with container-managed transactions. When JTA is enabled with the Merant JDBC driver for Oracle, we get the following error when the XML is loaded:
oracle.xml.sql.OracleXMLSQLException: Cannot enable auto commit within JTS
transaction
     at java.lang.Throwable.fillInStackTrace(Native Method)
     at oracle.xml.sql.dml.OracleXMLSave.saveXML(OracleXMLSave.java:2213)
     at oracle.xml.sql.dml.OracleXMLSave.insertXML(Compiled Code)
This suggests the OracleXMLSave class is not aware of the fact that it is now operating in a JTS transaction where control is managed elsewhere. i.e. should also not attempt to commit or rollback, as this is the responsibility of the container.
Is there a property which needs to set to prevent the above or does the XDK not work with J2EE (JTS) transactions?.
If you have any useful comments, let me know. Testing the above presents me with a number of problems so if this is easily explained , let me know.
Thanks,
Malcolm

Clearly , there does seem to be something a bit odd with the above stack.
<Bug:1917808> mentions OracleXMLSave in context of plsql equivalent : dbms_xmlsave . i.e dbms_xmlsave is a wrapper around OracleXMLSave class.
disabling autocommit on connection as follows should help:
conn = DriverManager.getConnection("connect string","scott","tiger");
conn.setAutoCommit(false);
to disble auto commit and see if this has an effect.
This issue might be <Bug:1497506>. If disabling autocommit does not work then it appears that it could be this issue .
Malcolm
Hi All,
OracleXMLSave class in the Oracle XDK is being used to load XML data into an 8170 database. The Java code is running in IBM WebSphere with container-managed transactions. When JTA is enabled with the Merant JDBC driver for Oracle, we get the following error when the XML is loaded:
oracle.xml.sql.OracleXMLSQLException: Cannot enable auto commit within JTS
transaction
     at java.lang.Throwable.fillInStackTrace(Native Method)
     at oracle.xml.sql.dml.OracleXMLSave.saveXML(OracleXMLSave.java:2213)
     at oracle.xml.sql.dml.OracleXMLSave.insertXML(Compiled Code)
This suggests the OracleXMLSave class is not aware of the fact that it is now operating in a JTS transaction where control is managed elsewhere. i.e. should also not attempt to commit or rollback, as this is the responsibility of the container.
Is there a property which needs to set to prevent the above or does the XDK not work with J2EE (JTS) transactions?.
If you have any useful comments, let me know. Testing the above presents me with a number of problems so if this is easily explained , let me know.
Thanks,
Malcolm

Similar Messages

  • Cannot enable auto commit within JTS using websphere

    i suddenly encountered some exceptions like this yet the process seems to be ok. i am pretty new to websphere, help please:
    java.lang.IllegalStateException: Cannot enable auto commit within JTS transaction
         at com.ibm.ejs.cm.pool.ConnectO.setAutoCommit(ConnectO.java:2085)
         at com.ibm.ejs.cm.proxy.ConnectionProxy.setAutoCommit(ConnectionProxy.java:594)

    I'm setting autoCommit to false in some of my code and it works. Here is the example:
    //This code works for the Oracle Thin Driver
                   conn.setAutoCommit(false); // <- required!
                 // initialize LOB reference
                 GDate curDate = new GDate();
                 ps = conn.prepareStatement("insert into Calculated_Rate_Import values (empty_clob(), ?)");
                 //conn.createStatement().executeUpdate("insert into Calculated_Rate_Import values (empty_clob(), TO_DATE('" + GDate.getSafeSqlDate(curDate) + "'))");
                 ps.setTimestamp(1, GDate.getSafeTimestamp(curDate));
                 ps.executeUpdate();
                 ps = conn.prepareStatement("select Calculated_Rate_Import from Calculated_Rate_Import where Import_Date = ? for update");
                 ps.setTimestamp(1, GDate.getSafeTimestamp(curDate));
                   results = ps.executeQuery();
                 results.next();
                 // get lob reference from write lock
                     //oracle.sql.CLOB clob = ((oracle.jdbc.driver.OracleResultSet)results).getCLOB(1);
                   oracle.sql.CLOB clob = (oracle.sql.CLOB)results.getClob("Calculated_Rate_Import");
                 // create statement for update
                 ps = conn.prepareStatement("update Calculated_Rate_Import set Calculated_Rate_Import = ? where Import_Date = ?");
                 // stream data into lob
                 java.io.OutputStream os = ((oracle.sql.CLOB)clob).getAsciiOutputStream();
                 try{
                      os.write(fileContents.getBytes());
                           os.close();
                 }catch(IOException e){
                      e.printStackTrace();
                 // execute update
                 //((oracle.jdbc.driver.OraclePreparedStatement)ps3).setCLOB(1, clob);
                 ps.setClob(1, clob);
                 ps.setTimestamp(2, GDate.getSafeTimestamp(curDate));
                 ps.executeUpdate();
                 // close lock
                 results.close();
                 conn.commit();
                 //finished inserting CLOB
                 //set the auto commit back to true, required!
                   conn.setAutoCommit(true);

  • JDeveloper Error ! oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode

    Hi All,
    I have 2 identical table structures with different data in Oracle.
    I am using following xsql and XSLT sheet to produce xml files with these tables. ( have to run twice xsql file by changing the Table names )
    When I run the xsql file with Table1, it works fine, produced the xml file on the browser.
    But when I run the xsql file with Table2, it gives following error message:
    The XML page cannot be displayed
    Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
    Invalid at the top level of the document. Error processing resource 'http://192.10.1.14:8988/Workspace_ONIX-ONIX2-context-root/untitled1.xsql'. Line 1, Position 1
    oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode to Oracle character.
    ^
    These two are my xsql and xslt files:
    - - - - xsql file - - - -
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <?xml-stylesheet type="text/xsl" href="TT14.xsl"?>
    <xsql:query connection="Connection1" id-attribute="" tag-case="lower"
    rowset-element="LIST" row-element="DEPA"
    xmlns:xsql="urn:oracle-xsql">
    SELECT * from TT26
    </xsql:query>
    TT14.xsl file
    <xsl:stylesheet version="1.0" encoding="UTF-8" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method ="xml" indent= "yes" encoding="UTF-8"/>
    <!--DOCTYPE ONIXmessage SYSTEM "http://www.editeur.org/onix/2.1/reference/onix-international.dtd"-->
    <xsl:template match ="list">
    <BBMessage>
    <<xsl:for-each select="depa">
    <Product>
    <RecordReference>
    <xsl:value-of select="wai"/>
    </RecordReference>
    <NotificationType>
    <xsl:value-of select="wantype"/>
    </NotificationType>
    </Product>
    </xsl:for-each>
    </BBMessage>
    </xsl:template>
    </xsl:stylesheet>
    All comments are highly welcomed...
    Thanks

    Hi Deepak
    Thanks for the post, but I am afraid that's not the issue with the error.
    I changed both encoding to "UTF-8" still i get the problem.
    I tried even without the XSLT sheet, still I have the problem..
    - - - - xsql file ---
    &lt;?xml version = '1.0' ?&gt;
    &lt;!--
    | Uncomment the following processing instruction and replace
    | the stylesheet name to transform output of your XSQL Page using XSLT
    &lt;?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?&gt;
    --&gt;
    &lt;page xmlns:xsql="urn:oracle-xsql" connection="Connection1"&gt;
    &lt;xsql:query max-rows="-1" null-indicator="no" tag-case="lower"&gt;
    select * from Table2
    &lt;/xsql:query&gt;
    &lt;/page&gt;
    - - - - Result ----
    &lt;?xml version="1.0" ?&gt;
    - &lt;!--
    | Uncomment the following processing instruction and replace
    | the stylesheet name to transform output of your XSQL Page using XSLT
    &lt;?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?&gt;
    --&gt;
    - &lt;page&gt;
    &lt;error&gt;oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode to Oracle character.&lt;/error&gt;
    &lt;/page&gt;
    Any Comment ???
    Thanks

  • Oracle.xml.sql.OracleXMLSQLException: Expected name instead of .

    Hi,
    I'm using XDK in Tomcat to execute queries and get the XML result in the browser. I have written many queries but now I'm having problems in one of them.
    The error output that I see in my browser is this one:
    <ROOT>
    <ERROR>
    oracle.xml.sql.OracleXMLSQLException: Expected name instead of <.
    </ERROR>
    </ROOT>:
    This error message is known as XML-20126 but it's not documented in the XML Developer's Kit Programmer's Guide, so I don't know what to do.
    My XSQL query is the following:
    <ROOT connection="xxxx_read" xmlns:xsql="urn:oracle-xsql">
    <xsql:query>
    SELECT XMLAGG(XMLELEMENT("NODE",
    XMLELEMENT("name", b.nodename),
    (SELECT XMLAGG(XMLELEMENT("SERVICE",
    XMLATTRIBUTES(a.serviceabbr AS "type")
    ORDER BY a.serviceabbr
    FROM service a, serviceinstance c
    WHERE c.isdeleted='N'
    AND a.serviceid=c.serviceid
    AND c.nodeid=b.nodeid
    ORDER BY b.nodename
    ) AS "NODES"
    FROM node b
    WHERE b.isdeleted='N'
    </xsql:query>
    </ROOT>
    That query executes fine in sqlplus, where I can see the XML result.
    I think my problem could be related to the size of the XML output. In sqlplus, the output has around 38000 bytes size, which is nothing, so I don't really know why that should be a problem. Do you have any idea?
    Thanks for your help,
    David

    So it seems there is a problem in fact:
    XDB FUNCTION RESULTS ARE TRUNCATED WHEN USING XSQL
    *** 02/25/04 08:28 am ***
    Problem Description
    There appears to be a limit on the content or characters that XSQL pages
    handle when being passed data from XDB functions such as XMLAGG() and
    XMLELEMENT().
    If you have a xsql page of the form
    < ?xml version="1.0"?>
    < xsql:query xmlns:xsql="urn:oracle-xsql" connection="demo" >
    select XMLAgg(XMLElement("Test", XMLAttributes(i.id as "Id_van_de_test",
    i.name as "Name_van_de_test"))) as "Tests" from problem_xml i
    < /xsql:query>
    If the number of rows (or amount of data) in the table is low, the result
    appears okay. However, if the data returned is large the data appears to
    truncate giving xml parsing errors as if the xml returned is not well formed.
    In the testcase provided, the error is as follows :-
    Results from 10.1.0.2
    < Line 2, Column 16354>: XML-20126: (Fatal Error) '< ' cannot appear in attribute value.
    < Line 2, Column 16366>: XML-20190: (Fatal Error) Whitespace required.
    < Line 2, Column 16366>: XML-20201: (Fatal Error) Expected name instead of 4.
    < ?xml version = '1.0'?>
    value.< /ERROR>
    Results from 9.2.0.6
    < Line 2, Column 16354>: XML-0126: (Fatal Error) '< ' cannot appear in attribute value.
    < Line 2, Column 16368>: XML-0190: (Fatal Error) Whitespace required.
    < Line 2, Column 16368>: XML-0201: (Fatal Error) Expected name instead of 3.
    < Line 2, Column 16371>: XML-0122: (Fatal Error) '=' missing in attribute.
    < Line 2, Column 16391>: XML-0190: (Fatal Error) Whitespace required.
    < Line 2, Column 16396>: XML-0122: (Fatal Error) '=' missing in attribute.
    < Line 2, Column 16397>: XML-0125: (Fatal Error) Attribute value should start with quote.
    < ?xml version = '1.0'?>
    value.< /ERROR>
    And the workaround:
    ======================================================
    The only workaround we have is to get the Document generated using
    DBMS_XMLQUERY [with expanded entities].
    _==Start===
    create or replace procedure Query2XML(QueryString varchar2 default
    'select col1 from xml_tab where r_id = ?') IS
    XMLCtx number;
    myXML clob;
    myXMLLength number;
    BEGIN
    XMLCtx := DBMS_XMLQUERY.NEWCONTEXT(QueryString);
    myXML := DBMS_XMLQUERY.GETXML(XMLCtx);
    myXMLLength := DBMS_LOB.GETLENGTH(myXML);
    DBMS_XMLQUERY.CLOSECONTEXT(XMLCtx);
    END Query2XMLFile;
    _==Start===
    Currently, XDB uses a DOM based model for XSLT evaluation. It is not
    possible to support disable-output-escaping constructs through this
    evaluation. This might be supported in a future release when a different
    model is implemented.
    =============================================================

  • Oracle.xml.sql.OracleXMLSQLException when using OracleXMLQuery getXMLDOM()

    Hi!
    I am trying to reuse a code in JDeveloper to get XML from a query. I have copied the code from a method and created a new method with the copied code and changed it. The problem is that when I run the old code I now get following error:
    Ett oförväntat fel har inträffat: Application: FND, Message Name: FND_GENERIC_MESSAGE.
    Tokens: MESSAGE = oracle.xml.sql.OracleXMLSQLException: Det här objektet har stängts.
    Vill du inte att objektet ska stängas automatiskt mellan anropen kan du granska metoden 'keepObjectOpen()'.;
    This means in english something like:
    An unexpected error accoured: Application: FND, Message Name: FND_GENERIC_MESSAGE = oracle.xml.sql.OracleXMLSQLException: This object is closed. If you don't want the object to close automatically between calls you can check method 'keepObjectOpen()';
    the code I'm running is:
    public String punchoutSomething()
    throws Exception
    StringBuffer sqlForXml =new StringBuffer("select pv.*"
    +", cursor(select * from XXPOS_PUNCHOUT_TABLE2 c where c.vendor_id=pv.vendor_id) as contacts"
    +" from XXPOS_PUNCHOUT_TABLE1 pv where vendor_id in (");
    // add all ids
    SuppSummVOImpl vendorView = getSuppSummVO();
    Row row;
    int punchoutCnt=0;
    // vendorView.reset();
    Row[] selectedRows = vendorView.getFilteredRows("SelectStatus","Y");
    for(int i=0;i<selectedRows.length;i++)
    if(punchoutCnt>0)
    sqlForXml.append(",");
    sqlForXml.append(((Number)selectedRows.getAttribute("VendorId")).toString());
    punchoutCnt++;
    if(punchoutCnt==0)
    sqlForXml.append("-1"); // make sql valid, will not return rows
    sqlForXml.append(")");
    // System.out.println(sqlForXml); // DEBUG
    OADBTransaction tx = (OADBTransaction)getOADBTransaction();
    OracleXMLQuery xq = new OracleXMLQuery( tx.getJdbcConnection()
    , sqlForXml.toString()
    xq.setRaiseException(true); // in case of error raise an exception (default
    // is to generate an error document
    xq.setEncoding("UTF-8"); // not necessary?
    xq.useLowerCaseTagNames();
    xq.setRowsetTag("vendors");
    xq.setRowTag("vendors_row");
    //System.out.println(xq.getXMLString()); // DEBUG
    XMLDocument suppl = (XMLDocument)xq.getXMLDOM();
    XSLProcessor xslt = new XSLProcessor();
    InputStream sheetStream = this.getClass().getResourceAsStream("mystylesheet.xsl");
    if(sheetStream==null)
    throw new Exception("Could not load stylesheet");
    XSLStylesheet sheet = xslt.newXSLStylesheet(
    sheetStream
    StringWriter serialize = new StringWriter();
    xslt.processXSL(sheet,suppl,new PrintWriter(serialize));
    String returnXML = serialize.getBuffer().toString();
    // System.out.println("X:"+returnXML); // DEBUG
    sheetStream.close();
    return returnXML;
    ===================
    i've copied the same code into another method and only changed the sql-statment to be used and the stylesheet to use to transform the xml. Is something wrong with that?
    Another question: if the xsl refers to a xsd but wihtout any path where should it be?
    Thanks for the help,
    Patricia

    Actually, having looked at Metalink, seems that although this message may be accurate and correct,
    it has been 'introduced' as part of the 9i JDBC driver.
    So, I used the 8i JDBC driver I happened to have instead and that worked fine.

  • Oracle.xml.sql.OracleXMLSQLException: Character ')' is not allowed in an XM

    I need to use query-database functionality in transform activity to make a stored function call. My sql query parameter should be
    Select CDMB_BPEL_UTILS_PKG.get_coa(null) from dual
    Corresponding XML is
    ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.example.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" exclude-result-prefixes="xsl ns0 xsd ldap xp20 bpws ora orcl">
    <xsl:template match="/">
    <ns0:OracleRoot>
    <ns0:OracleMappedOut>
    <ns0:ExpType>
    <xsl:value-of select="orcl:query-database('select cdmb_bpel_utils_pkg.get_coa(null) from dual',false(),false(),'eis/JNDI/GDB2')"/>
    </ns0:ExpType>
    </ns0:OracleMappedOut>
    =========But I get the following error when testing the same===========
    oracle.xml.sql.OracleXMLSQLException: Character ')' is not allowed in an XML tag name
    ========================================================
    I guess I need to use escape characters to pass ( . I tried using &quot; and &apos; but in vain. Any help is appreciated to resolve this issue.

    Siva,
    version: 10.1.3.4
    Your inputs may be of high use for me as well.
    I have similar requirement. I have to execute the following sql query
    select sum(salary) from emp. When I run this query using ora:orcl:query-database, I got the same exception what you have got. So do you mean if i use an alias for this, it would solve my pbm?
    select sum(salary) sal from emp+
    rgds,
    sen

  • Oracle.xml.sql.OracleXMLSQLException

    this is my code:
    try{
    Connection con=dbh.GetConnection();
    Statement s=con.createStatement();
    ResultSet rs=s.executeQuery("select * from tg_tbl");
    OracleXMLQuery qry = new OracleXMLQuery(con,rs);
    String xmlString = qry.getXMLString();
    System.out.println(" OUPUT IS:\n" + xmlString);
    catch(Exception e){e.printStackTrace();}
    this result is:
    OUPUT IS:
    <?xml version = '1.0'?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: java.sql.SQLException</ERROR>
    can anyone tell me the reason

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Steven Muench ([email protected]):
    Given what you've included in your posting it's hard to say. It could be any ORA- error. Table or view does not exist.
    If you change your query to
    "SELECT * FROM DUAL"
    does it work?<HR></BLOCKQUOTE>
    I know it now.The columnName should be used to replace the "*"
    null

  • XSU error oracle.xml.sql.OracleXMLSQLException: Conversion to String failed

    Appication Server: 10g, Database: Oracle 9i and Oracle 10g
    I have a table 'sw_icd2' in the database that has one column of XMLType.
    The code below, attempts to query this table as 'select * from sw_icd2' and display the result. I was able to execute this query in sqlplus.
    But when I run a program using XSU in JDeveloper:
    OracleXMLQuery qry = new OracleXMLQuery(conn, "select * from sw_icd2");
    XMLDocument domDoc = (XMLDocument)qry.getXMLDOM();
    domDoc.print(System.out);
    StringWriter s = new StringWriter(10000);
    domDoc.print(new PrintWriter(s));
    System.out.println(s.toString());
    qry.close();
    I get the following Error:
    "oracle.xml.sql.OracleXMLSQLException: Conversion to String failed"
    Any ideas on how I can resolve this issue? Your help would be appreciated.
    Thanks!

    Okay, it looks like the problem has something to do with the TIMESTAMP data type in tables.
    oracle.xml.sql.query.OracleXMLQuery can't seem to handle tables with the TIMESTAMP data type.
    this code ran fine on my machine :
    import oracle.jdbc.driver.*;
    import oracle.xml.sql.query.OracleXMLQuery;
    import java.lang.*;
    import java.sql.*;
    public class testXMLSQL {
         public static void main(String[] args) {
    try {
    // Create the connection
    System.out.println("before getConnection ");
    Connection conn = getConnection("scott","tiger");
    System.out.println("after getConnection ");
    // Create the query class
    OracleXMLQuery qry = new OracleXMLQuery(conn, "SELECT * FROM EMP");
    System.out.println("after OracleXMLQuery object created ");
    // Get the XML string
    String str = qry.getXMLString();
    // Print the XML output
    System.out.println("The XML output is:\n"+str);
    // Always close the query to get rid of any resources..
    qry.close();
    } catch(SQLException e) {
    System.out.println(e.toString());
    // Get the connection given the user name and password.!
    private static Connection getConnection(String username,
    String password)
    throws SQLException
    // register the JDBC driver..
    DriverManager.registerDriver(new
    oracle.jdbc.driver.OracleDriver());
    // Create the connection using the OCI8 driver
    Connection conn =
    DriverManager.getConnection(
    "jdbc:oracle:thin:@<server_name>:1521:<sid>",
    username,password);
    return conn;
    Then I created another table :
    create table emp_test as select * from emp;
    added a timestamp to it :
    alter table emp_test add (time timestamp(6));
    and filled it with timestamp information :
    update emp_test set time = timestamp'2005-09-22 09:26:50.124';
    ran the same code but changed the SQL to :
    "SELECT * FROM EMP_TEST"
    and got the error message :
    The XML output is:
    <?xml version = '1.0'?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: Conversion to String failed</ERROR>
    looks like bug in OracleXMLQuery object??

  • Oracle.xml.sql.OracleXMLSQLException: getCollectionMetaData:

    The following Java code:
    // Create an OracleOCIConnectionPool instance with default configuration
    OracleOCIConnectionPool cpool = new OracleOCIConnectionPool("appserver", "9ias", url, null);
    // Print out the default configuration for the OracleOCIConnectionPool
    System.out.println ("-- The default configuration for the OracleOCIConnectionPool --");
    displayPoolConfig(cpool);
    // Get a connection from the pool
    OracleOCIConnection conn1 = (OracleOCIConnection) cpool.getConnection("usecase", "uml");
    // Create a Statement
    Statement stmt = conn1.createStatement ();
    // Select the ENAME column from the EMP table
    ResultSet rset = stmt.executeQuery ("select * from usecases_ov");
    OracleXMLQuery q = new OracleXMLQuery(conn1,"select * from usecases_ov");
    System.out.println(q.getXMLString());
    Produces:
    -- The default configuration for the OracleOCIConnectionPool --
    Min poolsize Limit: 1
    Max poolsize Limit: 1
    Connection Increment: 0
    NoWait: false
    Timeout: 0
    PoolSize: 1
    ActiveSize: 0
    <?xml version = '1.0'?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: getCollectionMetaData: this method is not supported by 'OracleXMLDataSetGenJdbc' class. Please use 'OracleXMLDataSetExtJdbc' instead.</ERROR>
    Is there a workaround?

    Solved:
    Replace the last three lines of the above code with -
    I replaced the corresponding section of the above code with:
    ResultSet rset = stmt.executeQuery ("select * from usecases_ov");
    OracleXMLDataSetExtJdbc dset =
    new OracleXMLDataSetExtJdbc(conn1, "select * from usecases_ov");
    OracleXMLQuery q = new OracleXMLQuery(dset);
    System.out.println(q.getXMLString());

  • Oracle XML SQL utility, error oracle.xml.sql.OracleXMLSQLException:....

    I am using Oracle XML SQL utility to generate some XML using CURSOR
    operator.
    Following is the query -
    SELECT PROJECT.PROJ_CD,
    PROJECT.PROJ_TITLE,
    CURSOR(SELECT ISSUES.ISSUE_ID
    FROM ISSUES
    WHERE PROJECT.PROJ_ID = ISSUES.PROJ_ID )
    as ISSUES_DATA
    FROM PROJECT
    WHERE PROJECT.PROJ_ID = 1
    This query works fine when I create a direct connection using Oracle JDBC
    thin driver. But when I execute same thing using a connection from a
    Weblogic connection pool (which uses exactly the same Oracle JDBC thin
    driver, classes12.zip), I get following error-
    <?xml version = '1.0'?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: cursorGetMetaData: this method
    is not supported by OracleXMLDataSetGenJdbc' class. Please use
    'OracleXMLDataSetExtJdbc' instead.</ERROR>
    Following are the details about my environment:
    Weblogic5.1 on Windows NT 4.0
    Oracle 8.1.5 on Sun Solaris
    Oracle JDBC thin Classes12.zip (from Oracle 8.1.6)
    Oracle XML SQL utility XSU12_ver1_2_1
    Does anyone have any idea what is going on. Please help.
    Thanks.

    Thanks for your reply.
    Here is what I am doing:
    I have connection pool defined in welogic.properties file
    weblogic.jdbc.connectionPool.oraclePool=\
    url=jdbc:oracle:thin:@192.168.2.251:1521:orcl,\
    driver=oracle.jdbc.driver.OracleDriver,\
    loginDelaySecs=1,\
    initialCapacity=1,\
    maxCapacity=15,\
    capacityIncrement=1,\
    allowShrinking=true,\
    shrinkPeriodMins=5,\
    refreshMinutes=5,\
    testTable=,\
    props=user=someuser;password=somepasswd
    weblogic.allow.reserve.weblogic.jdbc.connectionPool.oraclePool=everyone
    weblogic.jdbc.TXDataSource.orclDataSource=oraclePool
    Then I have a DBConnection class which gets connection from the pool
    following is some code from DBConnection class
    private Connection con = null;
    private DataSource ds = null;
    private String providerURL;
    private String dataSource;
    private String contextFactory;
    private IpmsProps ipmsProp = null;
    public Connection getConnection() {
    if ( con == null ) {
    try {
    ipmsProp = IpmsProps.getInstance();
    providerURL = ipmsProp.getProviderURL();
    dataSource = ipmsProp.getDataSource();
    contextFactory = ipmsProp.getContextFactory();
    Properties p = new Properties();
    p.put(javax.naming.Context.PROVIDER_URL, providerURL);
    p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
    contextFactory);
    Context ctx = new InitialContext(p);
    Context ctx = new InitialContext();
    ds = (DataSource) ctx.lookup(dataSource);
    con = ds.getConnection();
    } catch (Exception e) {
    System.out.println("Error While creating connection! " +
    e.toString());
    } // catch
    I Hope you will be able to provide me some work around.
    Thank you very much for the help.
    Rajinder.
    "Joseph Weinstein" <[email protected]> wrote in message
    news:[email protected]...
    Hi. It's probably because you're calling some Oracle-specific method,passing it
    a pool JDBC object, and though the Oracle methos signature says it will
    take a generic java.sql.XXX object, it really is going to assume the thingis
    an Oracle class, and fails when it tries to cast it to such.
    Depending on how you're getting your pool connection, I may have aworkaround.
    Joe
    Rajinder Arora wrote:
    I am using Oracle XML SQL utility to generate some XML using CURSOR
    operator.
    Following is the query -
    SELECT PROJECT.PROJ_CD,
    PROJECT.PROJ_TITLE,
    CURSOR(SELECT ISSUES.ISSUE_ID
    FROM ISSUES
    WHERE PROJECT.PROJ_ID =
    ISSUES.PROJ_ID )
    as ISSUES_DATA
    FROM PROJECT
    WHERE PROJECT.PROJ_ID = 1
    This query works fine when I create a direct connection using OracleJDBC
    thin driver. But when I execute same thing using a connection from a
    Weblogic connection pool (which uses exactly the same Oracle JDBC thin
    driver, classes12.zip), I get following error-
    <?xml version = '1.0'?>
    <ERROR>oracle.xml.sql.OracleXMLSQLException: cursorGetMetaData: thismethod
    is not supported by OracleXMLDataSetGenJdbc' class. Please use
    'OracleXMLDataSetExtJdbc' instead.</ERROR>
    Following are the details about my environment:
    Weblogic5.1 on Windows NT 4.0
    Oracle 8.1.5 on Sun Solaris
    Oracle JDBC thin Classes12.zip (from Oracle 8.1.6)
    Oracle XML SQL utility XSU12_ver1_2_1
    Does anyone have any idea what is going on. Please help.
    Thanks.--
    PS: Folks: BEA WebLogic is expanding rapidly, with both entry and advancedpositions
    for people who want to work with Java, XML, SOAP and E-Commerceinfrastructure products.
    We have jobs at Nashua NH, Liberty Corner NJ, San Francisco and San JoseCA.
    Send resumes to [email protected]

  • Unable to load Oracle XML SQL utility

    The following error appears for each java
    class, when we attempt to load Oracle XML sql
    utility into Oracle using the oraclexmlsqlload
    script:
    E.g.
    Error while resolving class OracleXMLStore
    ORA-00904: invalid column name
    Does anyone know why we would receive this error?
    Platform: Hp-UX 11.0
    Oracle Version: 8.1.5.0
    Background information:
    The database was original created with the
    compatible=8.0.5 set in the init.ora file, and
    the creatation of java classes failed due to this,
    so switched compatible to 8.1.0. Now after we
    we adjusted the compatible setting and restarted
    database, we started to receive the errors as
    described above.
    null

    Murali,
    Thank you, after I initialized Oracle's javavm
    the errors disappeared.
    The scripts were located under the javavm/install
    directory.
    Thanks again.
    Murali K (guest) wrote:
    : Hi Steven,
    : Is the JavaVM loaded. i.e. are all the classes necessary for
    : running Java in the server are loaded into the server? The
    most
    : common answer to your problem is that the javavm has not been
    : initialized correctly or the database does not have all the
    java
    : library files necessary to load java programs.
    : Please read chapter 4 in the Oracle8i java developers guide
    : which talks about initializing a java-enabled database by
    : running the initjvm script.
    : If this still occurs then maybe it is a bug and we will have
    to
    : look at it.
    : Thx
    : Murali
    : Steven Wegner (guest) wrote:
    : : The following error appears for each java
    : : class, when we attempt to load Oracle XML sql
    : : utility into Oracle using the oraclexmlsqlload
    : : script:
    : : E.g.
    : : Error while resolving class OracleXMLStore
    : : ORA-00904: invalid column name
    : : Does anyone know why we would receive this error?
    : : Platform: Hp-UX 11.0
    : : Oracle Version: 8.1.5.0
    : : Background information:
    : : The database was original created with the
    : : compatible=8.0.5 set in the init.ora file, and
    : : the creatation of java classes failed due to this,
    : : so switched compatible to 8.1.0. Now after we
    : : we adjusted the compatible setting and restarted
    : : database, we started to receive the errors as
    : : described above.
    null

  • Java.lang.NoClassDefFoundError: oracle/xml/sql/query/OracleXMLQuery

    Hello, all.
    I get this error message:
    java.lang.NoClassDefFoundError: oracle/xml/sql/query/OracleXMLQuery
    at oracle.xml.xsql.actions.XSQLQueryHandler.handleAction(Compiled Code) ...
    when trying to view an xsql page with the jswdk 1.0.1 web server. (I have no problems when using Web-to-go)
    Classpath includes:
    C:\jdk1.1.8\lib\classes.zip;
    C:\xsql\lib\oraclexsql.jar;
    C:\xsql\lib\xmlparserv2.jar;
    C:\xsql\lib\xsu111.jar;
    C:\xsql\lib\classes111.zip;
    C:\xsql\lib;
    What could be the problem?
    Mateja
    null

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Steven Muench ([email protected]):
    Only thing I can think of is that maybe your server classpath is getting too long. I recall one of the Java Web Server releases having a classpath length limit that caused strange errors like this because that .jar files you thought were on your classpath were getting their path names truncated so the Java VM cannot find the JAR's.
    Try putting xsu111.jar earlier in the list of JAR's and/or try shortening the classpath (perhaps by using SUBST'd drive letters or softlinks on Unix to shorten the path names).<HR></BLOCKQUOTE>
    Putting the xsu11.jar file towards the start of the path did not help.
    I have rewriten the entire bat file that creates the CLASSPATH and starts the server and things now seem to work. There must have been some error in the original bat file, that I just couldn't see.
    Anyway - I thank you for your help.
    null

  • Medrec pointbase orace RDBMS migration (Cannot set auto-commit mode)

    For proof-of-concept purposes, I'm trying to install the MEDREC application on an Oracle database. I've migrated the schema using the demo.ddl found on the base install image. However, when I update the JDBC connect string to point to the oracle rdbms, I rec'v the message below. Has anyone discovered a workaround?
    After the jdbc connect string is updated to point to Oracle, I see the app server connected successfully to the database.
    javax.ejb.EJBTransactionRolledbackException: EJB Exception: ; nested exception is: <openjpa-1.1.0-r422266:657916 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: Cannot set auto-commit mode when using distributed transactions
         at weblogic.ejb.container.internal.BaseLocalObject.handleSystemException(BaseLocalObject.java:794)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:486)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)

    For proof-of-concept purposes, I'm trying to install the MEDREC application on an Oracle database. I've migrated the schema using the demo.ddl found on the base install image. However, when I update the JDBC connect string to point to the oracle rdbms, I rec'v the message below. Has anyone discovered a workaround?
    After the jdbc connect string is updated to point to Oracle, I see the app server connected successfully to the database.
    javax.ejb.EJBTransactionRolledbackException: EJB Exception: ; nested exception is: <openjpa-1.1.0-r422266:657916 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: Cannot set auto-commit mode when using distributed transactions
         at weblogic.ejb.container.internal.BaseLocalObject.handleSystemException(BaseLocalObject.java:794)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:486)
         at weblogic.ejb.container.internal.BaseLocalObject.postInvokeTxRetry(BaseLocalObject.java:424)

  • Oracle XSU: oracle.xml.sql.query.OracleXMLQuery is not recognized

    Hi, there!
    I've got a problem when tryed to use Oracle XSU (xml-sql utility to generate xml). My simple java application works fine using XSU. But when I created session stateless bean I've got an EJBException regarding this
    line:
    oracle.xml.sql.query.OracleXMLQuery qry = new oracle.xml.sql.query.OracleXMLQuery(conn, commandSQLStatement);
    It doesn't recognize OracleXMLQuery class as I've got in dump. So my classpath includes original location of that utility and Oracle parser.
    I really appreciate for any help.
    Thanks.
    strXML = qry.getXMLString();

    Patricia,
    Did you go through the link
    Re: XML SQL Utility
    You have to put xsu12.jar in the lib directory of the jdev.
    xsu12.jar is in the lib directory of the XDK installation.
    You can download XDK from
    http://www.oracle.com/technology/tech/xml/xdk/software/prod/xdk_java.html
    Just download the XDK kit, get the xsu12.jar from the lib directory and put in the lib directory of the jdev.
    -- Arvind

  • Oracle.xml.sql.query.OracleXMLQuery   GetXML -withDTD

    I'm trying to create a dtd for each table in my schema. I've created a java program that loops through the user_tables and I am then trying to create the DTD with oracle.xml.sql.query.OracleXMLQuery -withDTD. I am able to make it work using the XSU Command Line Utility, but I'm having a hard time trying to find out where the -withDTD flag goes inside my java program. Anyone know how to use the -withDTD option inside of a java program?
    Thanks

    [from XmlRpc-Java]
    As a result, my XML
    is contained in a String instead of an InputStream.
    It is possible to convert a String to an InputStream using
    StringBufferInputStream, but this class is deprecated in favor of
    StringReader (as StringBufferInputStream does not properly convert
    characters into bytes).
    For the default HTTP transport, an InputStreamReader could be used to
    wrap the InputStream before calling parse().
    Ultimately, the InputStream is converted to an InputSource for use by
    the SAX parser. InputSource will accept a Reader as well.
    [from XmlRpc-Java]
    There should be a way to go from "getXMLString()" to "parse(Reader)" also. In the meantime I'm stuck.
    null

Maybe you are looking for