Marcus B?rger wrote:
> Hello Jan,
> 
> Tuesday, July 22, 2003, 10:57:56 PM, you wrote:
> 
> JW> Bruce Momjian wrote:
> >> Marcus B?rger wrote:
> >>> However it may be very usefull to terminate any open transaction before
> >>> reusing a persisten connection. Typically this happens when the same script
> >>> runs again. But anyway using transactions together with persistent conenctions
> >>> in a multithreaded environment isn't the best thing you could do. So our
> >>> options are
> >>> 1) tell the users to do 'auto commit mode'
> >>> 2) nested transactions
> >>> 3) locking
> >>> 
> >>> >From my perspective 2) and 3) are bad ideas for the web environment. In other
> >>> words i guess we should leave it as is with transaction rollback only when the
> >>> client terminates (e.g. the webserver stops).
> >> 
> >> I don't see why you wouldn't just do BEGIN;COMMIT;RESET ALL; when you
> >> pass the connection to a new client.
> >> 
> 
> JW> Right, and I don't see why using transactions in a multithreaded 
> JW> environment would be a bad idea. However an application is designed, one 
> JW> logical unit of changes, called a business transaction, has to have one 
> JW>   database transaction modifying the business relevant information. 
> JW> There could be other transactions involved for dialog handling and 
> JW> advisory locking.
> 
> 
> So i'll update to "BEGIN;COMMIT;RESET ALL;" :-)

Yes, I think that is it.  The RESET ALL has to be at the end because you
have to make sure the RESET is in a valid transaction.

The only way to make sure autocommit doesn't effect you would be to do:

        BEGIN;COMMIT;BEGIN;RESET ALL;COMMIT;

but the autocommit GUC option was only in 7.3 and will not be in 7.4, so
this seems like overkill.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to