From: Claude B. <cl...@re...> - 2004-02-23 20:18:25
|
Ah yes, I had forgotten this mystic Oracle table - 'dual' ... Thanks for the info. CloD ----- Original Message ----- From: "Asar Khan" <asa...@in...> To: "Claude Brisson" <cl...@re...>; <vel...@li...> Sent: Monday, February 23, 2004 8:04 PM Subject: [Velosurf-devel] Re: Oracle jdbc driver specificities (was : Re: velosurf 0.8 - changes) > Claude, > > Unfortunatley, oracle's implementation if isOpen() does not work (unless it is > has been fixed in the latest flavours - which I doubt - maybe someone else > knows...) so it would cause a problem. If you do not want to introduce another > parameter I suggest that you also code in "select 1 from dual" for oracle for > backward compatibility if nothing else. > > Best Regards > Asar Khan > > > On Mon, 23 Feb 2004 16:56:12 +0100, Claude Brisson wrote > > (Since this thread is becoming quite informative, I respond in the > > mailing list) > > > > (my initial post) > > > On Mon, 23 Feb 2004 01:17:35 +0100, Claude Brisson wrote > > > > Hi Asar, > > > > > > > > I am currently reviewing your changes, and I noticed the following one : > > > > > > > > int concur = (mDBConnection.mDefaultReadOnly) ? > > > > ResultSet.CONCUR_READ_ONLY : ResultSet.CONCUR_UPDATABLE; statement = new > > > > PooledStatement(mDBConnection,mDBConnection.getConnection() > > > > .createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,concur)); > > > > > > > > I don't really understand it : > > > > > > > > 1. we don't need ResultSet.CONCUR_UPDATABLE since changes are made > > > > using separate queries. > > > > > > > > 2. we don't need ResultSet.TYPE_SCROLL_INSENSITIVE either, since we're > > > > only scrolling forward. > > > > > > > > So I'm not gonna include those changes, unless you can convince me I > > > > missed something. > > > > > > > > Other changes are fine, except that I'd like to try to determine > > > > automatically how to check the connection. > > > > > > > > CloD > > > > Asar Khan wrote : > > > Hi Claude, > > > > > > Unfortunately its probably the most non-standard driver! And can be very > > > frustrating to work with. > > > > > > The reason why we need ResultSet.TYPE_SCROLL_INSENSITIVE (or you could use > > > ResultSet.TYPE_SCROLL_SENSITIVE) is that your code does not work with the > > > default ResultSet.FORWARD_ONLY. The isLast() method is not compatible with > > > FORWARD_ONLY and fails with the error: > > > > > > java.sql.SQLException: Invalid operation for forward only resultset : isLast > > > > ok I see - so I'll keep ResultSet.TYPE_SCROLL_INSENSITIVE - no other > > driver should be disturbed by that > > > > > > > > IF YOU REMOVE THIS VELOSURF WILL NOT WORK WITH ORACLE. > > > > I've installed an oracle instance for testing purposes ; don't worry, > > I'll try not to let out something broken. > > > > > > > > As for the code to set concur to ResultSet.CONCUR_READ_ONLY / > > > ResultSet.CONCUR_UPDATABLE i agree with your statement and it can be > removed. > > > But you will have to specify ResultSet.CONCUR_READ_ONLY as the method > requires > > > this as a minimum. > > > > > > I'm not too sure what you mean by your final statement about checking > > > automatically for the connection. If you're referring to the the > checkConnection > > > () method in DBConnection.java then this had a hard-coded sql check "select > 1" > > > which again is incomaptible with oracle and causes a failure and a > > > reconnection - ultimatley it works but you have the overhead of a > reconnection > > > and unecessary error logging. > > > > > > By allowing the user to specify a check query (which for most jdbc drivers > will > > > not be required) the isOpen() will do the same thing when a query is not > > > supplied in the xml file. > > > > Since the database driver can be deduced from the url > > (mysql/oracle/...), I can call "select 1" in the case of mysql and > > just isOpen( ) for others for now (untill someone discover that such > > or such other driver also needs a special query). > > > > > > > > I hope all this makes sense! If you have any further questions drop me a > note. > > > > > > Regards > > > Asar Khan > > > > > I'm not too sure what you mean by your final statement about checking > > > automatically for the connection. If you're referring to the the > checkConnection > > > () method in DBConnection.java then this had a hard-coded sql check "select > 1" > > > which again is incomaptible with oracle and causes a failure and a > > > reconnection - ultimatley it works but you have the overhead of a > reconnection > > > and unecessary error logging. > > > > > > By allowing the user to specify a check query (which for most jdbc drivers > will > > > not be required) the isOpen() will do the same thing when a query is not > > > supplied in the xml file. > > > > I just don't want to introduce a parameter that will look obscure to many. > > > > Since the database driver can be deduced from the url > > (mysql/oracle/...), I can call "select 1" in the case of mysql and > > just isOpen( ) for others (untill someone discover that such or such > > other driver also needs a special query because isOpen( ) ). > > > > > I hope all this makes sense! If you have any further questions drop me a > note. > > > > > > Regards > > > Asar Khan > > > > Thanks, > > > > CloD > > > ------------------------------------------------------------------------------- > > Visit our Internet site at http://www.inservio.biz > > Any views expressed in this message are those of the individual sender, > except where the sender specifically states them to be the views of > Inservio Ltd. > > > > ------------------------------------------------------- > SF.Net is sponsored by: Speed Start Your Linux Apps Now. > Build and deploy apps & Web services for Linux with > a free DVD software kit from IBM. Click Now! > http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click > _______________________________________________ > Velosurf-devel mailing list > Vel...@li... > https://lists.sourceforge.net/lists/listinfo/velosurf-devel |