Re: Multi-thread use of a connection

Поиск
Список
Период
Сортировка
От Barry Lind
Тема Re: Multi-thread use of a connection
Дата
Msg-id 3D3CC0E6.2090301@xythos.com
обсуждение исходный текст
Ответ на Multi-thread use of a connection  ("Chris White" <cjwhite@cisco.com>)
Ответы Re: Multi-thread use of a connection  ("Chris White" <cjwhite@cisco.com>)
Список pgsql-jdbc

Chris White wrote:

> The documentation states the jdbc driver is thread safe allowing
> multiple threads to share the same connection. The documentation only
> talks about queries. So my question is: What if 2 threads are doing
> transactions and one wants to commit its data, does this mean that the
> other threads data will also be committed even though it hasn't
> completed it's transaction or is the driver aware of this?
>

This is really more of a generic jdbc question and isn't really postgres
specific, but I will attempt to answer.  The postgres jdbc driver should
be thread safe (but I don't believe it has received a lot of testing in
multi-threaded situations so there may be some bugs).  This applies to
both queries and updates.

When it comes to transactions and threads, I think you misunderstand how
jdbc is supposed to work.  The connection defines the scope of the
transaction.  Threads really have nothing to do with transactions.  Thus
if two threads are both using the same connection there is one
transaction (one connection = one transaction).  If either thread ends
the transaction (by calling either commit or rollback on the connection)
it is ended for both threads.  It is for this reason that you generally
don't have multiple threads accessing the same connection because it
becomes very difficult to keep track of the transaction.

thanks,
--Barry



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Barry Lind
Дата:
Сообщение: Re: XAER_RMERR warnings and rollback exceptions
Следующее
От: bluejacksong
Дата:
Сообщение: bothering error