Обсуждение: Java threads and the JDBC driver

Поиск
Список
Период
Сортировка

Java threads and the JDBC driver

От
Herouth Maoz
Дата:
As I understand it, the JDBC driver is not thread safe.

I am trying to figure out how much synchronization I need.

Is it safe to use separate ResultSets that originate from the same
Connection object concurrently? That is, lock the connection object, create
and perform the query into a new ResultSet, unlock the connection, and
proceed to use the ResultSet? If I do that, other threads may be issuing
queries while I'm still looping on the ResultSet.

It's supposed to be OK. But is it?

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma



Re: [INTERFACES] Java threads and the JDBC driver

От
Peter T Mount
Дата:
On Mon, 14 Sep 1998, Herouth Maoz wrote:

> As I understand it, the JDBC driver is not thread safe.
>
> I am trying to figure out how much synchronization I need.
>
> Is it safe to use separate ResultSets that originate from the same
> Connection object concurrently? That is, lock the connection object, create
> and perform the query into a new ResultSet, unlock the connection, and
> proceed to use the ResultSet? If I do that, other threads may be issuing
> queries while I'm still looping on the ResultSet.

As long as the query is done with a different Statement object, then in
theory yes. The api states that any existing ResultSet is closed when
executeQuery() or executeUpdate() is run, but you can have as many
Statement's as you want.

> It's supposed to be OK. But is it?

Now with our driver, all queries are actually done with the
Connection.ExecSQL() method.

Now that method is already syncronized, so it may work. I'll make up a
test, and see what happens.

--
       Peter T Mount peter@retep.org.uk
      Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgres
 Java PDF Generator: http://www.retep.org.uk/pdf