Message-Id: <10575.113391@fatcity.com> From: Christine Turner Date: Mon, 31 Jul 2000 10:00:43 -0000 Subject: Somewhat Offtopic....Anyone got any ideas???? Hello All.... Well I'm back to the Asynchronous vs Synchronous stuff again. If anyone can help out I would appreciate it. Please read below and comment. Thanks, Christine Turner Database Administrator IPS-Sendero Scottsdale, Arizona Phone: (800) 321-6899 ext. 3286 Fax: (480) 946-8224 E-mail: christine.turner@ips-sendero.com -----Original Message----- From: David Denison [SMTP:david.denison@ips-sendero.com] Sent: Monday, July 31, 2000 9:44 AM To: Christine Turner Subject: Fw: followup- CTL:20000717-10296. Christine, Would you mind submitting this to your newsgroup? Thanks, David ----- Original Message ----- From: Bret Carruthers To: David Denison Cc: Christine Turner Sent: Monday, July 31, 2000 9:27 AM Subject: FW: followup- CTL:20000717-10296. > Dave, > > Just as an idea regarding your current situation... > Do we have any Oracle tech contacts that we could ask a follow-up query such > as: > > ????? > Are there any intrinsic reasons why there seems to be no ODBC driver that > appears to support the asynchronous (OCI) obreak(LDA) call to abort any > outstanding requests on a connection ? > > Please let us know if you are aware of any ODBC implementations that support > this. > ????? > > Bret. > > -----Original Message----- > From: Bret Carruthers [mailto:bret.carruthers@ips-sendero.com] > Sent: Friday, July 28, 2000 11:03 AM > To: David Denison > Subject: RE: CTL:20000717-10296 Automated Response: > > > David, > > Here is a short clarification for the LDA & obreak(). > > The OCI Api opens a database connection with the function: orlon(lda_def > *lda, ub1 *hda,...). The OCI specification requires that each concurrent > connection have one LDA-HDA pair. Furthermore, the HDA and LDA memory/buffer > locations must not move for the life of the connection. Hence the address of > LDA must be (note: WILL BE) static from the point a connection is created. > > The OCI API call obreak(performs an immediate asynchronous abort of any > currently executing OCI function that is associated with the specified LDA > (i.e. connection). It is used to stop a long-running execute or fetch... > > If we can get access to the LDA address somehow, we can execute an obreak() > ourselves and hence shut down the synchronous Oracle function instead of > creating an orphaned synchronous function that will rum headlong into a GPF. > > Bret. > > -----Original Message----- > From: David Denison [mailto:david.denison@ips-sendero.com] > Sent: Wednesday, July 26, 2000 1:56 PM > To: Bret Carruthers > Subject: Fw: CTL:20000717-10296 Automated Response: > > > Bret, > > Would you mind giving a technical explanation of the "LDA" as requested > below? Just send me the reply and I'll forward it to Crystal. > > Thanks, > David > > ----- Original Message ----- > From: > To: > Sent: Wednesday, July 26, 2000 11:04 AM > Subject: RE: CTL:20000717-10296 Automated Response: > > > > This EMail was sent: 7/26/00 11:04:10 AM (Pacific Standard Time) > > > > *** Response to your question - CTL:20000717-10296 *** > > > > Whenever you send mail to the WebACD Service for this Technical Request > > you MUST include the 'CTL:' and your Control Number in the Subject Line. > > > > You may send more information about this Technical Request at any time - > > just make sure your Control Number is in the Subject line. > > > > -------------------------------------------------------------------------- > > ------------------------------------ > > > > Response To: David Denison > > > > Hi David, > > > > The p2sodbc.dll connects to an ODBC driver this ODBC driver connects to > > the OCI (you can use whichever ODBC driver you want to, you could even > > write your own if you wanted). If this ODBC driver supports a flag called > > SQL_ATTR_ASYNC_ENABLE and makes calls to the OCI to stop that query when > > this flag is set and the Crystal Reports p2sodbc.dll tells it to stop that > > query (i.e. by your user hitting cancel, or closing the preview window) > > then the query should be stopped. > > > > Currently I'm not aware of any Oracle ODBC drivers that do this - the ones > > that ship with Crystal Reports (i.e. the crOra*.dll) do not, possibly > > Oracle has some that do?. This is not a Crystal Reports issue, really, as > > you can use whichever ODBC driver to communicate with the OCI that you > > want to, and the p2sodbc.dll will communicate with it. > > > > The following Crystal Reports knowledge base articles address which ODBC > > drivers we supply that support Asynchronous connections via ODBCs > > SQL_ATTR_ASYNC_ENABLE flag and which ones do not. > > > > c2006041 > > c2003042 > > My understanding based from the snippet below from the second knowledge > > base article is that either the Crystal Reports Oracle ODBC drivers do not > > support this type of connection... if there are Oracle ODBC drivers out > > there that do, you should be good to go. > > > > --- > > When "Perform Queries Asynchronously" is checked, queries will be passed > > off asynchronously to the server by the ODBC driver if the ODBC driver > > supports it. Once the query is passed off to the server, control will be > > returned to the client. SCR will test the ODBC driver every 250ms if the > > server has completed the query. This allows the user to hit the cancel > > button in the Report Designer at any time to cancel the query. Once this > > is done, the ODBC driver will send a message to the SQL server to cancel > > the query request. > > > > This option will work only for ODBC drivers that support asynchronous > > queries. Oracle does not support asynchronous queries with any ODBC > > driver. Currently, the SQL native drivers that ship with SCR do not > > support asynchronous queries. > > ---- > > > > I'm unclear on what you're asking for by an LDA in your last question: > > " If there is definitely no support for this functionality built into the > > API, is it possible to obtain the associated LDA for implementation