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); -
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...
ThanksHi 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 ---
<?xml version = '1.0' ?>
<!--
| Uncomment the following processing instruction and replace
| the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->
<page xmlns:xsql="urn:oracle-xsql" connection="Connection1">
<xsql:query max-rows="-1" null-indicator="no" tag-case="lower">
select * from Table2
</xsql:query>
</page>
- - - - Result ----
<?xml version="1.0" ?>
- <!--
| Uncomment the following processing instruction and replace
| the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->
- <page>
<error>oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode to Oracle character.</error>
</page>
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,
DavidSo 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.
============================================================= -
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,
PatriciaActually, 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. -
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 " and ' 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 -
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()); -
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.
nullMurali,
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 -
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
-
Hello! I am facing a problem. Every time I run Disk Repair, it does not complete the process. It stops in the middle of the process and the report does not conclude. The correct it was finished with a message GREEN or RED, informing or not an error.
-
I had to restore my iphone from the computer. There is a lot of info on backing up to the icloud but now I need to get the info back that I stored 3 days ago . Please help. I know this is an easy question for somebody but not me. Thanks
-
Had to restart router every time to connect to wifi
Just got a new Mac Book Pro which had a wifi connectivity problem from day 1. Every time the computer went standby or restarted, the airport connection was lost. When I run network diagnostics, I was asked to restart networking device. If I unplug an
-
Move Multiple direction in Soccer Game...?!
Hello, I have create simple keyboard event to move the ball/player to right, left, top & bottom. lets say the user click up arrow to move up after that he press the right arrow while still pressed the up arrow to move to top right and if he release t
-
How to make a terminal multiplexer in Python
How does a terminal multiplexer work? Like screen, tmux, dvtm, and dtach. Is it possible to write one in Python?