You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-user@db.apache.org by Ferruh Zamangoer <fe...@gistec-online.de> on 2004/12/20 18:31:12 UTC

Auto Commit + Transaction Problems

Hi NG,

is there any way in Torque to turn on auto commit? We have the problem that
we become the following Exception, when we want to insert a dataset into the
database.

java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste Anweisung der
Transaktion sein
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
	at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
	at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
	at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
	at
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132
)
	at
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)
	at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:2877)
	at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:608)
	at
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j
ava:684)
	at
oracle.jdbc.driver.OracleConnection.setReadOnly(OracleConnection.java:1579)
	at
org.apache.commons.dbcp.cpdsadapter.ConnectionImpl.setReadOnly(ConnectionImp
l.java:392)
	at
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
taSource.java:490)
	at
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
taSource.java:458)
	at org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:743)
	at org.apache.torque.Torque.getConnection(Torque.java:306)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1496)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1448)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1411)
	at com.gistec.geomisservice.PtFreetextPeer.doInsert(PtFreetextPeer.java:33)
	at
com.gistec.geomisservice.sync.DataInserter.setPtText(DataInserter.java:461)
	at
com.gistec.geomisservice.sync.DataInserter.createCI_Citation(DataInserter.ja
va:5420)
	at
com.gistec.geomisservice.sync.DataInserter.setCI_Citation(DataInserter.java:
5393)
	at
com.gistec.geomisservice.sync.DataInserter.setFeatureTypeB44(DataInserter.ja
va:3208)
	at
com.gistec.geomisservice.sync.DataInserter.setAttributeTypeB44(DataInserter.
java:3150)
	at
com.gistec.geomisservice.sync.DataInserter.setGF_AttributeType(DataInserter.
java:3093)
	at
com.gistec.geomisservice.sync.DataInserter.setMD_DescriptionList(DataInserte
r.java:2962)
	at
com.gistec.geomisservice.sync.DataInserter.setMD_MaintenanceInformation(Data
Inserter.java:998)
	at
com.gistec.geomisservice.sync.DataInserter.setMetdataMaintenance(DataInserte
r.java:1332)
	at
com.gistec.geomisservice.sync.DataInserter.doInsert(DataInserter.java:124)
	at
com.gistec.geomisservice.sync.DataSync.metaDataMustBeInserted(DataSync.java:
248)
	at com.gistec.geomisservice.sync.DataSync.syncData(DataSync.java:197)
	at com.gistec.geomisservice.TestClient.LogicTest.main(LogicTest.java:86)
rethrown as org.apache.torque.TorqueException: ORA-01453: SET TRANSACTION
muss erste Anweisung der Transaktion sein
	at org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:755)
	at org.apache.torque.Torque.getConnection(Torque.java:306)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1496)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1448)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1411)
	at com.gistec.geomisservice.PtFreetextPeer.doInsert(PtFreetextPeer.java:33)
	at
com.gistec.geomisservice.sync.DataInserter.setPtText(DataInserter.java:461)
	at
com.gistec.geomisservice.sync.DataInserter.createCI_Citation(DataInserter.ja
va:5420)
	at
com.gistec.geomisservice.sync.DataInserter.setCI_Citation(DataInserter.java:
5393)
	at
com.gistec.geomisservice.sync.DataInserter.setFeatureTypeB44(DataInserter.ja
va:3208)
	at
com.gistec.geomisservice.sync.DataInserter.setAttributeTypeB44(DataInserter.
java:3150)
	at
com.gistec.geomisservice.sync.DataInserter.setGF_AttributeType(DataInserter.
java:3093)
	at
com.gistec.geomisservice.sync.DataInserter.setMD_DescriptionList(DataInserte
r.java:2962)
	at
com.gistec.geomisservice.sync.DataInserter.setMD_MaintenanceInformation(Data
Inserter.java:998)
	at
com.gistec.geomisservice.sync.DataInserter.setMetdataMaintenance(DataInserte
r.java:1332)
	at
com.gistec.geomisservice.sync.DataInserter.doInsert(DataInserter.java:124)
	at
com.gistec.geomisservice.sync.DataSync.metaDataMustBeInserted(DataSync.java:
248)
	at com.gistec.geomisservice.sync.DataSync.syncData(DataSync.java:197)
	at com.gistec.geomisservice.TestClient.LogicTest.main(LogicTest.java:86)
Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste
Anweisung der Transaktion sein
	at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
	at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
	at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
	at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
	at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
	at
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132
)
	at
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)
	at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
:2877)
	at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
ment.java:608)
	at
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j
ava:684)
	at
oracle.jdbc.driver.OracleConnection.setReadOnly(OracleConnection.java:1579)
	at
org.apache.commons.dbcp.cpdsadapter.ConnectionImpl.setReadOnly(ConnectionImp
l.java:392)
	at
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
taSource.java:490)
	at
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
taSource.java:458)
	at org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:743)
	... 18 more


Can anybody tell us what is going wrong is there any problem in the code or
is has the database some problems by executing the statements.

Thanks for any help in advance.


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Auto Commit + Transaction Problems

Posted by "Henning P. Schmiedehausen" <hp...@intermeta.de>.
Thomas Fischer <Fi...@seitenbau.net> writes:

>Hi,

>Some pools can test connections before they give it to the end user (in
>this case Torque). This is done by executing a simple query like "select
>sysdate from dual". If the connections are not auto commit, this is the
>first query in the transaction, and it is not possible to use any "set
>transaction..." commands afterwards.

>do you only use the methods (save()...)without connection, or do you also
>use methods that need a connection (save(connection)...) or custom queries
>?
>What Pool are you using (see your runtime configuration) ?

There is also a configuration option which allows the OID generator to
use a separate connection. (However this would happen outside the
Transaction).

	Regards
		Henning

-- 
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen          INTERMETA GmbH
hps@intermeta.de        +49 9131 50 654 0   http://www.intermeta.de/

RedHat Certified Engineer -- Jakarta Turbine Development  -- hero for hire
   Linux, Java, perl, Solaris -- Consulting, Training, Development

What is more important to you...
   [ ] Product Security
or [ ] Quality of Sales and Marketing Support
              -- actual question from a Microsoft customer survey

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


AW: Auto Commit + Transaction Problems

Posted by Ferruh Zamangoer <fe...@gistec-online.de>.
Hi,

in most cases I use the save method without a connection object. I have some
methods wehere I use executeStatement and executeQuery.  A set transaction
Command i've never used in my code.

Do you mean with the runtime configuration the torque.properties ?

I have the following setting in Torque properties:

torque.applicationRoot = C:\torque-gen-3.1

log4j.rootLogger = ALL, default

log4j.appender.default = org.apache.log4j.FileAppender
log4j.appender.default.file = C:/Temp/torque_log.txt
log4j.appender.default.layout = org.apache.log4j.PatternLayout
log4j.appender.default.layout.conversionPattern = %d [%t] %-5p %c - %m%n
log4j.appender.default.append = false

torque.database.default = ingeo
torque.database.ingeo.driver = oracle.jdbc.driver.OracleDriver
torque.database.ingeo.url = jdbc:oracle:thin:@xxx.xx.xxx.xx:xxx:ingeo
torque.database.ingeo.username = advmis
torque.database.ingeo.password = advmis
torque.database.ingeo.adapter = oracle

torque.dsfactory.ingeo.factory=org.apache.torque.dsfactory.TorqueDataSourceF
actory
torque.dsfactory.ingeo.pool.defaultMaxConnections=20
torque.dsfactory.ingeo.pool.maxExpiryTime=3600
torque.dsfactory.ingeo.pool.connectionWaitTimeout=10
torque.dsfactory.ingeo.connection.driver = oracle.jdbc.driver.OracleDriver
torque.dsfactory.ingeo.connection.url =
jdbc:oracle:thin:@xxx.xx.xxx.xx:xxx:ingeo
torque.dsfactory.ingeo.connection.user = advmis
torque.dsfactory.ingeo.connection.password = advmis


And this is one of the overidden Methods where I'am using executeStatements
and executeQuery:

public static void doInsert(PtFreetext obj)
			throws TorqueException
		{
			DBOracleAdapter db = new DBOracleAdapter();

			String sqlSequenceQuery = db.getIDMethodSQL("GISTEC_PT_FREETEXT_SEQ");

			List list = executeQuery(sqlSequenceQuery); // Here is the Execption
thrown.

			Record primaryKey = new Record();

			if(list.size()!=0)
			{
				primaryKey = (Record)list.get(0);
			}

			String pk = primaryKey.toString();

			int begin = pk.indexOf("'");
			int end = pk.lastIndexOf("'");
			String uniquePrimaryKey = pk.substring(begin+1, end);

			obj.setIdfreetext(new Integer(Integer.parseInt(uniquePrimaryKey)));

			executeStatement("INSERT INTO PT_FREETEXT values("+uniquePrimaryKey+")");


		}


Thanks for any help.

Regards
Ferruh


Hi,

Some pools can test connections before they give it to the end user (in
this case Torque). This is done by executing a simple query like "select
sysdate from dual". If the connections are not auto commit, this is the
first query in the transaction, and it is not possible to use any "set
transaction..." commands afterwards.

do you only use the methods (save()...)without connection, or do you also
use methods that need a connection (save(connection)...) or custom queries
?
What Pool are you using (see your runtime configuration) ?

   Thomas

zamangoer@gistec-online.de schrieb am 20.12.2004 23:18:34:

> Hi,
>
> in my code i never use a commit/rollback. If I'm not mistaken Torque
makes
> a commit/rollback internally when method save() is called???? Can you
> explain a little bit more what you mean with testOnBorrow??
>
> Ferruh
>
> >
> > Hi,
> >
> > One reason could be that you do not commit /rollback a connection
before
> > giving it back to the pool, and the pool does not do a commit/rollback,
> > and
> > you fetch the connection again and the pool tries to set transaction
> > isolation or something similar.
> > Another reason might be that are you explicitly using any "set
Transaction
> > ..." statement, and it is not the first statement in the transaction.
This
> > can happen e.g. if you use testOnBorrow = true.
> >
> >    Thomas
> >
> > "Ferruh Zamangoer" <fe...@gistec-online.de> schrieb am
> > 20.12.2004 18:31:12:
> >
> >> Hi NG,
> >>
> >> is there any way in Torque to turn on auto commit? We have the problem
> > that
> >> we become the following Exception, when we want to insert a dataset
into
> > the
> >> database.
> >>
> >> java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste Anweisung
> > der
> >> Transaktion sein
> ..


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Auto Commit + Transaction Problems

Posted by Thomas Fischer <Fi...@seitenbau.net>.



Hi,

Some pools can test connections before they give it to the end user (in
this case Torque). This is done by executing a simple query like "select
sysdate from dual". If the connections are not auto commit, this is the
first query in the transaction, and it is not possible to use any "set
transaction..." commands afterwards.

do you only use the methods (save()...)without connection, or do you also
use methods that need a connection (save(connection)...) or custom queries
?
What Pool are you using (see your runtime configuration) ?

   Thomas

zamangoer@gistec-online.de schrieb am 20.12.2004 23:18:34:

> Hi,
>
> in my code i never use a commit/rollback. If I'm not mistaken Torque
makes
> a commit/rollback internally when method save() is called???? Can you
> explain a little bit more what you mean with testOnBorrow??
>
> Ferruh
>
> >
> > Hi,
> >
> > One reason could be that you do not commit /rollback a connection
before
> > giving it back to the pool, and the pool does not do a commit/rollback,
> > and
> > you fetch the connection again and the pool tries to set transaction
> > isolation or something similar.
> > Another reason might be that are you explicitly using any "set
Transaction
> > ..." statement, and it is not the first statement in the transaction.
This
> > can happen e.g. if you use testOnBorrow = true.
> >
> >    Thomas
> >
> > "Ferruh Zamangoer" <fe...@gistec-online.de> schrieb am
> > 20.12.2004 18:31:12:
> >
> >> Hi NG,
> >>
> >> is there any way in Torque to turn on auto commit? We have the problem
> > that
> >> we become the following Exception, when we want to insert a dataset
into
> > the
> >> database.
> >>
> >> java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste Anweisung
> > der
> >> Transaktion sein
> ..


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Auto Commit + Transaction Problems

Posted by za...@gistec-online.de.
Hi,

in my code i never use a commit/rollback. If I'm not mistaken Torque makes
a commit/rollback internally when method save() is called???? Can you
explain a little bit more what you mean with testOnBorrow??

Ferruh

>
> Hi,
>
> One reason could be that you do not commit /rollback a connection before
> giving it back to the pool, and the pool does not do a commit/rollback,
> and
> you fetch the connection again and the pool tries to set transaction
> isolation or something similar.
> Another reason might be that are you explicitly using any "set Transaction
> ..." statement, and it is not the first statement in the transaction. This
> can happen e.g. if you use testOnBorrow = true.
>
>    Thomas
>
> "Ferruh Zamangoer" <fe...@gistec-online.de> schrieb am
> 20.12.2004 18:31:12:
>
>> Hi NG,
>>
>> is there any way in Torque to turn on auto commit? We have the problem
> that
>> we become the following Exception, when we want to insert a dataset into
> the
>> database.
>>
>> java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste Anweisung
> der
>> Transaktion sein
>>    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>>    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
>>    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
>>    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
>>    at
> oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
>>    at
>>
> oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132
>
>> )
>>    at
>>
> oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)
>
>>    at
>>
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
>
>> :2877)
>>    at
>>
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
>
>> ment.java:608)
>>    at
>>
> oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j
>
>> ava:684)
>>    at
>>
> oracle.jdbc.driver.OracleConnection.setReadOnly(OracleConnection.java:1579)
>>    at
>>
> org.apache.commons.dbcp.cpdsadapter.ConnectionImpl.setReadOnly(ConnectionImp
>
>> l.java:392)
>>    at
>>
> org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
>
>> taSource.java:490)
>>    at
>>
> org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
>
>> taSource.java:458)
>>    at
> org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:743)
>>    at org.apache.torque.Torque.getConnection(Torque.java:306)
>>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1496)
>>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1448)
>>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1411)
>>    at
> com.gistec.geomisservice.PtFreetextPeer.doInsert(PtFreetextPeer.java:33)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setPtText(DataInserter.java:461)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.createCI_Citation(DataInserter.ja
>
>> va:5420)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setCI_Citation(DataInserter.java:
>
>> 5393)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setFeatureTypeB44(DataInserter.ja
>
>> va:3208)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setAttributeTypeB44(DataInserter.
>
>> java:3150)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setGF_AttributeType(DataInserter.
>
>> java:3093)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setMD_DescriptionList(DataInserte
>
>> r.java:2962)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setMD_MaintenanceInformation(Data
>
>> Inserter.java:998)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setMetdataMaintenance(DataInserte
>
>> r.java:1332)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.doInsert(DataInserter.java:124)
>>    at
>>
> com.gistec.geomisservice.sync.DataSync.metaDataMustBeInserted(DataSync.java:
>
>> 248)
>>    at com.gistec.geomisservice.sync.DataSync.syncData(DataSync.java:197)
>>    at
> com.gistec.geomisservice.TestClient.LogicTest.main(LogicTest.java:86)
>> rethrown as org.apache.torque.TorqueException: ORA-01453: SET
>> TRANSACTION
>> muss erste Anweisung der Transaktion sein
>>    at
> org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:755)
>>    at org.apache.torque.Torque.getConnection(Torque.java:306)
>>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1496)
>>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1448)
>>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1411)
>>    at
> com.gistec.geomisservice.PtFreetextPeer.doInsert(PtFreetextPeer.java:33)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setPtText(DataInserter.java:461)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.createCI_Citation(DataInserter.ja
>
>> va:5420)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setCI_Citation(DataInserter.java:
>
>> 5393)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setFeatureTypeB44(DataInserter.ja
>
>> va:3208)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setAttributeTypeB44(DataInserter.
>
>> java:3150)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setGF_AttributeType(DataInserter.
>
>> java:3093)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setMD_DescriptionList(DataInserte
>
>> r.java:2962)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setMD_MaintenanceInformation(Data
>
>> Inserter.java:998)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.setMetdataMaintenance(DataInserte
>
>> r.java:1332)
>>    at
>>
> com.gistec.geomisservice.sync.DataInserter.doInsert(DataInserter.java:124)
>>    at
>>
> com.gistec.geomisservice.sync.DataSync.metaDataMustBeInserted(DataSync.java:
>
>> 248)
>>    at com.gistec.geomisservice.sync.DataSync.syncData(DataSync.java:197)
>>    at
> com.gistec.geomisservice.TestClient.LogicTest.main(LogicTest.java:86)
>> Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste
>> Anweisung der Transaktion sein
>>    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>>    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
>>    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
>>    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
>>    at
> oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
>>    at
>>
> oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132
>
>> )
>>    at
>>
> oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)
>
>>    at
>>
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java
>
>> :2877)
>>    at
>>
> oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState
>
>> ment.java:608)
>>    at
>>
> oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j
>
>> ava:684)
>>    at
>>
> oracle.jdbc.driver.OracleConnection.setReadOnly(OracleConnection.java:1579)
>>    at
>>
> org.apache.commons.dbcp.cpdsadapter.ConnectionImpl.setReadOnly(ConnectionImp
>
>> l.java:392)
>>    at
>>
> org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
>
>> taSource.java:490)
>>    at
>>
> org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa
>
>> taSource.java:458)
>>    at
> org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:743)
>>    ... 18 more
>>
>>
>> Can anybody tell us what is going wrong is there any problem in the code
> or
>> is has the database some problems by executing the statements.
>>
>> Thanks for any help in advance.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: torque-user-help@db.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Auto Commit + Transaction Problems

Posted by Thomas Fischer <Fi...@seitenbau.net>.



Hi,

One reason could be that you do not commit /rollback a connection before
giving it back to the pool, and the pool does not do a commit/rollback, and
you fetch the connection again and the pool tries to set transaction
isolation or something similar.
Another reason might be that are you explicitly using any "set Transaction
..." statement, and it is not the first statement in the transaction. This
can happen e.g. if you use testOnBorrow = true.

   Thomas

"Ferruh Zamangoer" <fe...@gistec-online.de> schrieb am
20.12.2004 18:31:12:

> Hi NG,
>
> is there any way in Torque to turn on auto commit? We have the problem
that
> we become the following Exception, when we want to insert a dataset into
the
> database.
>
> java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste Anweisung
der
> Transaktion sein
>    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
>    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
>    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
>    at
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
>    at
>
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132

> )
>    at
>
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)

>    at
>
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java

> :2877)
>    at
>
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState

> ment.java:608)
>    at
>
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j

> ava:684)
>    at
>
oracle.jdbc.driver.OracleConnection.setReadOnly(OracleConnection.java:1579)
>    at
>
org.apache.commons.dbcp.cpdsadapter.ConnectionImpl.setReadOnly(ConnectionImp

> l.java:392)
>    at
>
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa

> taSource.java:490)
>    at
>
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa

> taSource.java:458)
>    at
org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:743)
>    at org.apache.torque.Torque.getConnection(Torque.java:306)
>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1496)
>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1448)
>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1411)
>    at
com.gistec.geomisservice.PtFreetextPeer.doInsert(PtFreetextPeer.java:33)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setPtText(DataInserter.java:461)
>    at
>
com.gistec.geomisservice.sync.DataInserter.createCI_Citation(DataInserter.ja

> va:5420)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setCI_Citation(DataInserter.java:

> 5393)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setFeatureTypeB44(DataInserter.ja

> va:3208)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setAttributeTypeB44(DataInserter.

> java:3150)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setGF_AttributeType(DataInserter.

> java:3093)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setMD_DescriptionList(DataInserte

> r.java:2962)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setMD_MaintenanceInformation(Data

> Inserter.java:998)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setMetdataMaintenance(DataInserte

> r.java:1332)
>    at
>
com.gistec.geomisservice.sync.DataInserter.doInsert(DataInserter.java:124)
>    at
>
com.gistec.geomisservice.sync.DataSync.metaDataMustBeInserted(DataSync.java:

> 248)
>    at com.gistec.geomisservice.sync.DataSync.syncData(DataSync.java:197)
>    at
com.gistec.geomisservice.TestClient.LogicTest.main(LogicTest.java:86)
> rethrown as org.apache.torque.TorqueException: ORA-01453: SET TRANSACTION
> muss erste Anweisung der Transaktion sein
>    at
org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:755)
>    at org.apache.torque.Torque.getConnection(Torque.java:306)
>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1496)
>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1448)
>    at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:1411)
>    at
com.gistec.geomisservice.PtFreetextPeer.doInsert(PtFreetextPeer.java:33)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setPtText(DataInserter.java:461)
>    at
>
com.gistec.geomisservice.sync.DataInserter.createCI_Citation(DataInserter.ja

> va:5420)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setCI_Citation(DataInserter.java:

> 5393)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setFeatureTypeB44(DataInserter.ja

> va:3208)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setAttributeTypeB44(DataInserter.

> java:3150)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setGF_AttributeType(DataInserter.

> java:3093)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setMD_DescriptionList(DataInserte

> r.java:2962)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setMD_MaintenanceInformation(Data

> Inserter.java:998)
>    at
>
com.gistec.geomisservice.sync.DataInserter.setMetdataMaintenance(DataInserte

> r.java:1332)
>    at
>
com.gistec.geomisservice.sync.DataInserter.doInsert(DataInserter.java:124)
>    at
>
com.gistec.geomisservice.sync.DataSync.metaDataMustBeInserted(DataSync.java:

> 248)
>    at com.gistec.geomisservice.sync.DataSync.syncData(DataSync.java:197)
>    at
com.gistec.geomisservice.TestClient.LogicTest.main(LogicTest.java:86)
> Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION muss erste
> Anweisung der Transaktion sein
>    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
>    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
>    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)
>    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)
>    at
oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1094)
>    at
>
oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2132

> )
>    at
>
oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2015)

>    at
>
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java

> :2877)
>    at
>
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedState

> ment.java:608)
>    at
>
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.j

> ava:684)
>    at
>
oracle.jdbc.driver.OracleConnection.setReadOnly(OracleConnection.java:1579)
>    at
>
org.apache.commons.dbcp.cpdsadapter.ConnectionImpl.setReadOnly(ConnectionImp

> l.java:392)
>    at
>
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa

> taSource.java:490)
>    at
>
org.apache.torque.pool.TorqueClassicDataSource.getConnection(TorqueClassicDa

> taSource.java:458)
>    at
org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:743)
>    ... 18 more
>
>
> Can anybody tell us what is going wrong is there any problem in the code
or
> is has the database some problems by executing the statements.
>
> Thanks for any help in advance.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org