From: | Barry Lind <blind(at)xythos(dot)com> |
---|---|
To: | Jeff Kolesky <jeff(at)edusoft(dot)com> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Multiple open ResultSets not allowed? |
Date: | 2003-03-18 05:55:15 |
Message-ID: | 3E76B4C3.6040701@xythos.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Jeff,
I run this code using the latest 7.3 driver and don't have any problems.
--Barry
Jeff Kolesky wrote:
> Just to make sure I wasn't looking at the code incorrectly, I wrote the
> following test code, making sure not to close the connection before
> trying to get data from the result set:
>
> Connection con = DB.getConnection();
> Statement s1 = con.createStatement();
> ResultSet rs1 = s1.executeQuery("SELECT * FROM table1");
> while(rs1.next())
> {
> String col = rs1.getString("col");
> System.out.println(col);
> Statement s2 = con.createStatement();
> ResultSet rs2 = s2.executeQuery("SELECT * FROM table2");
> while(rs2.next())
> {
> String col2 = rs2.getString("col");
> System.out.println("\t" + col2);
> }
> rs2.close();
> s2.close();
> }
> rs1.close();
> s1.close();
> con.close();
>
> Running this code throws the same exception. Looks like the connection
> is being closed incorrectly by the driver, or more likely that ResultSet
> data (Vector rows) is being set to null somehow.
>
> Any other ideas?
>
> Thanks.
>
> Jeff
>
>
> At 7:55 PM -0800 3/14/03, Barry Lind wrote:
>
>> The error message says that the Connection is closed. You can't use a
>> statement or result set after the connection that owns them is closed.
>> This is part of the jdbc spec, and I think logic in the driver was
>> tightened up in this area in 7.3.
>>
>> thanks,
>> --Barry
>>
>>
>> Jeff Kolesky wrote:
>>
>>> I have just switched to using the 7.3 JDBC driver and am no longer
>>> allowed to have multiple ResultSets open at the same time.
>>>
>>> When running code that iterates through two open ResultSets (from two
>>> different Statements from the same Connection), the following
>>> exception is thrown:
>>>
>>> Connection is closed. Operation is not permitted.
>>> at org.postgresql.jdbc1.AbstractJdbc1ResultSet.next
>>> (AbstractJdbc1ResultSet.java:92)
>>>
>>> I haven't looked at the AbstractJdbc1ResultSet code to see what is
>>> going on, but according to the JDBC Javadocs, "if the reading of one
>>> ResultSet object is interleaved with the reading of another, each
>>> must have been generated by different Statement objects." Therefore,
>>> the code I am executing should not throw this exception, and with the
>>> previous version of the driver it did not.
>>>
>>> Is this a known bug? Has it been fixed? Did I misinterpret the
>>> Javadocs?
>>>
>>> Thanks.
>>>
>>> Jeff
>>>
>>> ---------------------------(end of broadcast)---------------------------
>>> TIP 6: Have you searched our list archives?
>>>
>>> http://archives.postgresql.org
>>>
>>
>>
>>
>>
>> ---------------------------(end of broadcast)---------------------------
>> TIP 2: you can get off all lists at once with the unregister command
>> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
From | Date | Subject | |
---|---|---|---|
Next Message | Barry Lind | 2003-03-18 06:02:51 | Re: Any plans for multidim array support?? |
Previous Message | Achilleus Mantzios | 2003-03-17 20:57:24 | Any plans for multidim array support?? |