freetds JDBC + Stack Overflow Error

Bob Kline bkline at rksystems.com
Thu Oct 28 11:44:27 EDT 1999


On Thu, 28 Oct 1999, Steve Sherwood wrote:

> Using the lastest version of the freetds JDBC drivers.
> 
> Bit complex this. Using MSSQL7, I have a stored procedure like
> the following :-
> 
> BEGIN TRANSACTION
> DECLARE @LOWER int, @UPPER int, @COUNT
> SET @LOWER=0
> SET @UPPER=0
> 
> SET @COUNT=0
> WHILE (@COUNT < 255)
> BEGIN
>     INSERT INTO subnet VALUES (@COUNT, <data>)
>     SET @COUNT = @COUNT+1
> END
> COMMIT TRANSACTION
> 
> Then in my Java code I call this
> Statement s = connection.createStatement();
> s.execute("EXEC StoredProc");
> s.close();
> 
> I get the exception :-
> 
> [28/10/1999 16:24:34:609 GMT+01:00] java.lang.StackOverflowError
> 	at com.internetcds.jdbc.tds.TdsComm.skip(Compiled Code)
> 	at com.internetcds.jdbc.tds.Tds.processDoneInProc(Compiled Code)
> 	at com.internetcds.jdbc.tds.Tds.processSubPacket(Compiled Code)
> 	at com.internetcds.jdbc.tds.Tds.processSubPacket(Compiled Code)
> 	at com.internetcds.jdbc.tds.Tds.processDoneInProc(Compiled Code)
> 	at com.internetcds.jdbc.tds.Tds.processSubPacket(Compiled Code)
> 	at com.internetcds.jdbc.tds.Tds.processSubPacket(Compiled Code)
> ...etc (lots of lines removed - Possibly 255 sets)
> 
> I can decrease the count to about 124 and then the exception 
> goes away. I'm assuming it's something to do with multiple
> rowsets, but I can't find a way around it.
> 
> Anyone help ?

I don't understand why any result sets would be produced by the
procedure at all if the only SQL queries are INSERT statements.  So it's
hard to see how a change which should be completely transparent to the
client (that's why we use servers, right?) could have such an effect.

-- 
Bob Kline
mailto:bkline at rksystems.com
http://www.rksystems.com




More information about the FreeTDS mailing list