[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
EOFetchSpecification.setFetchLimit(), EOAdaptorChannel.cancelFetch(), etc
- Subject: EOFetchSpecification.setFetchLimit(), EOAdaptorChannel.cancelFetch(), etc
- From: patrickx at onestep.co.uk (Patrick Middleton)
- Date: Thu Jul 17 09:50:01 2003
--Apple-Mail-1-696481478
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
format=flowed
Hi,
it seems lots of people are suddenly encountering something about
which I posted to the list last week, "EOAdaptorChannel.cancelFetch()
problem". I was sufficiently fortunate to receive a direct reply from
an Apple engineer (thank you "d"), and that reply included sourcecode --
some subclasses of classes in the JavaJDBCAdaptor, packaged as a
skeletal EOF adaptor -- that I found most useful.
The problem is that for most of us
EOFetchSpecification.setFetchLimit() isn't going to work right. When
any fetch limit is reached, the JDBC adaptor continues fetching the
entire row results set, but does not turn the extra rows into objects;
if you want a few dozen objects, and the app fetches all several million
rows, this will cause all sorts of performance problems, some of which
some us are seeing.
What does EOAdaptorChannel.cancelFetch() do? It's apparent that
JDBCChannel.cancelFetch() is not invoking java.sql.Statement.cancel()
anywhere. This is probably reasonable as this method is declared as
abstract in an abstract interface. The standard adaptor seems not to
try introspecting for a concrete subclass implementation, and so will
not call any JDBC driver-specific code that may be available to discard
any pending results. We can subclass JDBCChannel and override
cancelFetch() such that our implementation will call cancel() on the
protected instance variable _statement (we are all making full use of
JavaBrowser.app, aren't we?)
--Apple-Mail-1-696481478
Content-Disposition: attachment;
filename=JavaOSPJDBCAdaptor.zip
Content-Transfer-Encoding: base64
Content-Type: application/zip;
x-unix-mode=0644;
name="JavaOSPJDBCAdaptor.zip"
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
ADQEAAAmAAwAAAAAAAEAAECkgZwAAABKYXZhT1NQSkRCQ0FkYXB0b3IvT1NQSkRCQ0FkYXB0b3Iu
amF2YVVYCABvyxY/G8UOP1BLAQIVAxQAAAAIAE5/6y6dVWSa7AEAABsGAAAtAAwAAAAAAAEAAECk
gYACAABKYXZhT1NQSkRCQ0FkYXB0b3IvT1NQSkRCQ0FkYXB0b3JDaGFubmVsLmphdmFVWAgA+csW
P5TQDj9QSwECFQMUAAAACAAweesuszmd/3EBAADVAwAALQAMAAAAAAABAABApIHHBAAASmF2YU9T
UEpEQkNBZGFwdG9yL09TUEpEQkNBZGFwdG9yQ29udGV4dC5qYXZhVVgIAPnLFj8bxQ4/UEsBAhUD
FAAAAAgAjXbrLvt5Q1E8AQAAPQIAAB0ADAAAAAAAAQAAQKSBkwYAAEphdmFPU1BKREJDQWRhcHRv
ci9Qcm9wZXJ0aWVzVVgIAPnLFj8awQ4/UEsBAhUDFAAAAAgAx37rLpKRPWbZCQAArUkAADoADAAA
AAAAAQAAQKSBGggAAEphdmFPU1BKREJDQWRhcHRvci9KYXZhT1NQSkRCQ0FkYXB0b3IucGJwcm9q
L2FkbWluLnBieHVzZXJVWAgADcwWP5bPDj9QSwECFQMUAAAACABnivEuGOmYBO8MAABRSwAAPAAM
AAAAAAABAABApIFbEgAASmF2YU9TUEpEQkNBZGFwdG9yL0phdmFPU1BKREJDQWRhcHRvci5wYnBy
b2ovcHJvamVjdC5wYnhwcm9qVVgIAILMFj+CzBY/UEsBAhUDFAAAAAgAZ4rxLlz3/0WfAAAATQEA
AD0ADAAAAAAAAQAAQKSBtB8AAEphdmFPU1BKREJDQWRhcHRvci9KYXZhT1NQSkRCQ0FkYXB0b3Iu
cGJwcm9qL3BhdHJpY2t4LnBieHVzZXJVWAgAgswWP4LMFj9QSwECFQMUAAAACADlifEuK39oDcYB
AAAdBAAAIwAMAAAAAAABAABApIG+IAAASmF2YU9TUEpEQkNBZGFwdG9yL0FwcGxpY2F0aW9uLmph
dmFVWAgAAAAAAI3LFj9QSwUGAAAAAAoACgD3AwAA1SIAAAAA
--Apple-Mail-1-696481478
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
format=flowed
This is a Project Builder.app project. If building JavaOSPJDBCAdaptor
using ProjectBuilderWO, create a framework project called
JavaOSPJDBCAdaptor and add the three classes OSP*.java. Add a
CustomInfo.plist entry "EOAdaptorClassName" =
"uk.co.onestep.ospjdbcadaptor.OSPJDBCAdaptor";
and install in a well-known location. If you get the EOAdaptorClassName
or the project name wrong, EOF will not recognise your framework as a
Java EOF Adaptor.
The plan is to use the standard JavaJDBCAdaptor when using EOModeler
etc, and to swap to our custom one at runtime -- there is a sample class
Application.java showing the standard elegant way of doing this sort of
thing. You project will need to link against both the standard
JavaJDBCAdaptor and the JavaOSPJDBCAdaptor frameworks. All these
sources are released under the usual rules and disclaimers, "no warranty
given or implied, etc". In particular please be wary of my use of
NSSelector to establish whether or not we can call _statement.cancel().
Please search the list archives for mmalcolm's posting about
"interrupting a long-running fetch", a technique which I now have
working very well with this custom adaptor.
Patrick
--
Patrick Middleton
OneStep Solutions plc
351 London Road Phone: +44 (0)1702 426400
Hadleigh Fax: +44 (0)1702 556855
Essex. SS7 2BT Email: patrick@xxxxxxxxxxxxx
England (MIME welcome)
--Apple-Mail-1-696481478--