Hi Vince, I never thought that you can buy a database where transactions are an optional feature.
Castor currently has no way to be configured to not call setAutocommit() and the setAutocommit() will not be the only problem. For castor to work you need to call db.begin() and db.commit() or db. rollback() which call corresponding methods on the connection and I expect them to also throw exceptions that transactions are not supported. I can see only 5 possible solutions for you: - use another database - buy the informix transaction support - work with plain jdbc statements on informix - use another object-reletional mapping but I don't know if there is one that works without transactions - create a patch for castor that improves it to work without a real transaction Having said that I would support you with creating that patch but I don't know if this would be possible and how much work this may be. Regards Ralf Vince Puzzella schrieb: > Hi Ralf, > > Thanks for the suggestions (config and updated informix driver). I > tried them out, but no luck. > > I ran a simple test by querying the db using raw jdbc and got the same > exception on the call to Connection.setAutoccommit(false). However, the > query executes properly if I ommit the call to > Connection.setAutocommit(false). > > My informix dba tells me that transactions are not supported unless we > buy a special package. > > Is there anyway to get castor to not call setAutocommit? > > > > > On 11/17/05 7:17 PM, "Ralf Joachim" <[EMAIL PROTECTED]> wrote: > > Hi Vince, > > as far as I understand informix documentation it does support > transactions. You may have a look it it yourself: > > > http://publib.boulder.ibm.com/infocenter/ids9help/index.jsp?topic=/com.ibm.jdbc.doc/jdbc49.htm > > > At the moment I have no idea whats missing. It seams castor can get a > connection from the informix DriverManager. Just after it got that > connection it tries to call 'con.setAutoCommit(false);' which is > allowed > according to the documentation. One thing you can try is to slightly > modify your configuration but I expect this to change nothing. > > <database name="ricars" engine="informix" > > <driver class-name="com.informix.jdbc.IfxDriver" > url="jdbc:informix-sqli://r1hp:987/mainer"> > > <param name="user" value="xxxxx"/> > <param name="password" value="xxxxx" /> > <param name="informixserver" value="mainer" /> > <param name="SERVICENAME" value="mainer" /> > </driver> > <mapping href="mapping.xml" /> > </database> > > As I personally have no experience with informix I can only guess what > can be going wrong with it. Maybe you can check configuration of > informix server or try to update to another driver if possible. > > Regards > Ralf > > > Vince Puzzella schrieb: > >> Hi Folks, >> >> I was wondering if anyone can help me out on this (TIA!) >> >> I am running castor version 0.9.7 >> >> I am getting an exception when attempting to query an Informix DB. It >> has something to do with transactions being unsupported. The same >> query works fine on a Sybase DB. I am assuming the Informix database >> does not support transactions. Is there some way to disable >> transaction for a particular DB? Am I on the right track? Please let >> me know if you need more info. >> >> This is my database.xml file and the exception follows ... >> >> <!DOCTYPE databases PUBLIC "-//EXOLAB/Castor JDO Configuration DTD >> Version 1.0//EN" "http://castor.exolab.org/jdo-conf.dtd"> >> <jdo-conf> >> <database name="ricars" engine="informix" > >> <driver class-name="com.informix.jdbc.IfxDriver" >> url="jdbc:informix-sqli://r1hp:987/mainer:informixserver=mainer"> > >> >> <param name="user" value="xxxxx"/> >> <param name="password" value="xxxxx" /> >> <param name="SERVICENAME" value="mainer" /> >> </driver> >> <mapping href="mapping.xml" /> >> </database> >> <database name="wincis" engine="sybase" > >> <driver class-name="com.sybase.jdbc2.jdbc.SybDataSource" >> url="jdbc:sybase:Tds:172.22.32.101:2638"> >> <param name="user" value="xxxxx"/> >> <param name="password" value="xxxxx" /> >> <param name="SERVICENAME" value="wincis" /> >> </driver> >> <mapping href="mapping.xml" /> >> </database> >> <transaction-demarcation mode="local" /> >> </jdo-conf> >> >> Debug Log Excerpt follows.... >> >> 2005-11-17 16:43:07,889 DEBUG >> [org.exolab.castor.jdo.engine.DatabaseRegistry] Fetching >> DatabaseRegistry: ricars >> 2005-11-17 16:43:08,025 DEBUG >> [org.exolab.castor.jdo.engine.JDOConfLoader] Loaded jdo conf > successfully >> 2005-11-17 16:43:08,025 DEBUG >> [org.exolab.castor.jdo.engine.DatabaseRegistry] Fetching >> DatabaseRegistry: ricars >> 2005-11-17 16:43:08,026 DEBUG >> [org.exolab.castor.jdo.engine.DatabaseImpl] Beginning tx >> 2005-11-17 16:43:08,380 DEBUG >> [org.exolab.castor.jdo.drivers.ConnectionProxy] Creating instance of >> ConnectionProxy for calling class >> org.exolab.castor.jdo.engine.DatabaseRegistry >> 2005-11-17 16:43:08,382 DEBUG >> [org.exolab.castor.jdo.engine.DatabaseImpl] Rolling back tx >> 2005-11-17 16:43:08,382 DEBUG >> [org.apache.axis.i18n.ProjectResourceBundle] >> org.apache.axis.i18n.resource::handleGetObject(toAxisFault00) >> 2005-11-17 16:43:08,383 DEBUG [org.apache.axis.enterprise] Mapping >> Exception to AxisFault >> java.lang.reflect.InvocationTargetException >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > >> at java.lang.reflect.Method..invoke(Method.java:324) >> at >> org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) > >> at >> org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) > >> at >> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) > >> at >> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) > >> at > org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) >> at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) >> at >> org.apache.axis.handlers..soap.SOAPService.invoke(SOAPService.java:453) > >> at > org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) >> at >> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) > >> at > javax.servlet.http.HttpServlet.service(HttpServlet.java:709) >> at >> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) > >> at > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) >> at >> org.apache.catalina.core..ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > >> at >> org.apache.catalina.core..ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > >> at >> org.apache.catalina.core..StandardWrapperValve.invoke(StandardWrapperValve.java:213) > >> at >> org.apache.catalina.core..StandardContextValve.invoke(StandardContextValve.java:178) > >> at >> org.apache.catalina.core..StandardHostValve.invoke(StandardHostValve.java:126) > >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > >> at >> org.apache.catalina.core..StandardEngineValve.invoke(StandardEngineValve.java:107) > >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > >> at >> org.apache.coyote.http11..Http11Processor.process(Http11Processor.java:868) > >> at >> org.apache.coyote.http11..Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) > >> at >> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > >> at >> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > >> at >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > >> at java.lang.Thread.run(Thread.java:552) >> Caused by: org.tri.api.regadt.ComponentException: >> org.exolab.castor.jdo.PersistenceException: Nested error: >> java.sql.SQLException: Transactions not supported: Transactions not >> supported >> at org.tri.api.regadt.ComponentImpl.executeQuery(Unknown > Source) >> at >> org.tri.api.regadt.PatientComponentImpl.getPatientByIdEx(Unknown > Source) >> ... 30 more >> Caused by: org.exolab.castor.jdo.PersistenceException: Nested error: >> java.sql.SQLException: Transactions not supported: Transactions not >> supported >> at >> org.exolab.castor.jdo.engine.TransactionContextImpl.getConnection(TransactionContextImpl.java:250) > >> at >> org.exolab.castor.jdo.engine.TransactionContextImpl.getConnectionInfo(TransactionContextImpl.java:261) > >> at >> org.exolab.castor.jdo.engine.OQLQueryImpl.create(OQLQueryImpl.java:246) > >> at >> org.exolab.castor.jdo.engine.DatabaseImpl.getOQLQuery(DatabaseImpl.java:438) > >> ... 32 more >> Caused by: java.sql.SQLException: Transactions not supported >> at > com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:348) >> at >> com.informix.jdbc.IfxSqliConnect.setAutoCommit(IfxSqliConnect.java:1454) > >> at >> org.exolab.castor.jdo.drivers.ConnectionProxy.setAutoCommit(ConnectionProxy.java:369) > >> at >> org.exolab.castor.jdo.engine.TransactionContextImpl.getConnection(TransactionContextImpl.java:246) > >> ... 35 more >> --B_3215095280_424 > > > > ------------------------------------------------- > If you wish to unsubscribe from this list, please > send an empty message to the following address: > > [EMAIL PROTECTED] > ------------------------------------------------- > > -- Syscon Ingenieurbüro für Meß- und Datentechnik GmbH Ralf Joachim Raiffeisenstraße 11 D-72127 Kusterdingen Germany Tel. +49 7071 3690 52 Mobil: +49 173 9630135 Fax +49 7071 3690 98 Email: [EMAIL PROTECTED] Web: www.syscon-world.de ------------------------------------------------- If you wish to unsubscribe from this list, please send an empty message to the following address: [EMAIL PROTECTED] -------------------------------------------------

