ESQL/C transaction logging - outside a transaction?
Posted in 1997
Topics: Backup & Restore, Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration, Transactions, Locking & Isolation
I have an application which runs nightly and dumps all records from a certain table to flat files. I recently discovered that when this app runs, it quickly fills up all our transaction logs (we're currently using the Ontape facility), even though the only database operations occurring are SELECTs. Upon examination of the ESQL/C code, we found that we're using a "generic" retrieval function, which operates within a transaction and uses an update cursor (some apps which use it may need to update the database). OK, so we create a new ESQL/C retrieval function for use by apps that will only be doing retrievals - no update cursor and the retrieval is now done completely outside any transaction. Rebuilt the db interface library, re-linked the problem app, ran it and. . . man, it's still creating all kinds of transactions. Now, my understanding (and I'm not a DBA) of the purpose of transaction logging is to capture delta's so that work can be either committed or rolled back - in any case, it has to do with the possibility of data modification. Can anyone tell me why transactions are being created when we never even begin a transaction to start with and does anyone know whether there's a way to turn this stuff off for particular apps and/or ESQL/C functions? Thanks.