On Wed, July 11, 2007 01:14, Fei Liu wrote:
> Hello, I met another problem. In my test case, I don't see it but in my
> application, it shows up. Here is the error message. Any idea what's
> happening? I don't understand under what condition pqxx throws
> std::logic_error.

Generally speaking, that happens when the program has made a "logical
mistake."  In other words, it's a bug somewhere.


> terminate called after throwing an instance of 'std::logic_error'
>   what():  Started transaction<READ COMMITTED> 'pgdb_insert' while
> transaction<READ COMMITTED> 'pgdb_insert' still active
> Aborted

It means that a new transaction was started while a previous transaction
on the same connection was still open.  It looks like in this case, both
transactions were created by your transactor.

That shouldn't even be possible, unless you are either trying to perform
your transactor from inside your transactor, or trying to perform the
transactor from multiple threads on the same connection.  Both are bad.


Jeroen


_______________________________________________
Libpqxx-general mailing list
[email protected]
http://gborg.postgresql.org/mailman/listinfo/libpqxx-general

Reply via email to