Subject RE: [IBO] Graceful Recovery From DB Data Read Error
Author Bill Morrison
-----Original Message-----
From: Jason Wharton [mailto:jwharton@...]
Sent: Tuesday, August 07, 2001 2:41 PM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] Graceful Recovery From DB Data Read Error


Ok, now I am catching on better. Thanks for your patience.
Curious... Have you looked into using the OnBlobCallback events? Did you
know they were there?
It is possible to have a progress bar monitoring and reporting percentage
done.
See the IBOSource app as it provides a good example.

--> I vaguely recall seeing them, but really didn't consider using them :
this program is designed to run without user intervention to poll remote
databases for certain diagnostic values. Might be worth looking at though.

I do need to make IBO sensitive in this area so that long blob transfers
will be more appropriately handled. Does it go into a loop of exceptions or
does it give one clean exception and break you out of the loop?

--> It'll break me out to the TIB_Connection OnError error, and will raise
an exception in the routine doing the transfer. I can catch this gracefully,
and that type of behavior is what I feel is appropriate for such a
circumstance.

The problem lies in that the TIB_Connection itself goes into a bad
state, where it is impossible to disconnect it or even free it without
raising the same exception. Since I'm fortunate enough to have the
datamodule being created as part of a thread, I can thread.terminate it so I
can move on with the rest of the program (a very nasty way of doing things),
but otherwise it makes for a very messy way of trying to exit the program,
to say nothing of trying to reconnect to another db.


Please don't hesitate to ask any more questions about it, I'm eager
to see a solution to this myself, even if it's just a
TIB_Connection.Disconnect_No_Matter_What method!


HTH

Bill Morrison


Regards,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com


----- Original Message -----
From: "Bill Morrison" <bmorrison@...>
To: <IBObjects@yahoogroups.com>
Sent: Tuesday, August 07, 2001 1:57 PM
Subject: RE: [IBO] Graceful Recovery From DB Data Read Error


> The blob is being transfered through accessing the variant value of the
> query pointing at the remote database.
>
> The transfer of one of these blobs takes time, and it is during this
lengthy
> transfer that a failure can cause the problems I mentioned.
>
> Perhaps there's a safer way to transfer blobs?
>
>
> Thanks again for your assistance.
>
>
> Bill
>
> -----Original Message-----
> From: Jason Wharton [mailto:jwharton@...]
> Sent: Tuesday, August 07, 2001 1:48 PM
> To: IBObjects@yahoogroups.com
> Subject: Re: [IBO] Graceful Recovery From DB Data Read Error
>
>
> I believe whatever it is in your application that is trying to get the
> AsVariant of a blob is the cause. Gate this so that when a connection has
> failed it won't be called.
>
> I will change it so that it will be a little smarter about what error is
> returned but you still need to fix something in your application as well,
I
> believe.
>
> Regards,
> Jason Wharton
> CPS - Mesa AZ
> http://www.ibobjects.com
>
>
> ----- Original Message -----
> From: "Bill Morrison" <bmorrison@...>
> To: <IBObjects@yahoogroups.com>
> Sent: Tuesday, August 07, 2001 9:18 AM
> Subject: RE: [IBO] Graceful Recovery From DB Data Read Error
>
>
> > As a brief explanation, CAPSITE is the remote db. The intent is to copy
a
> > blob from that remote db to another InterBase db (in this case on the
> > localmachine).
> >
> > The error is being trapped in the CAPSITE.OnError event, and is being
> > created by physically disconnecting the phone line during blob retrieval
> > (simple yet effective).
> >
> > This error occuring is no big deal. I can handle it. However, the
problem
> > lies in that I can't seem to get CAPSITE to go back to csDisconnected,
ie
> > trying a CAPSITE.disconnect will raise this exception again, etc.
> >
> > Let me know if you need any more information Jason.
> >
> > Bill
> >
> >
>
TdmPCSThread.CAPSITEError($E7BF8C,335544721,$EA1684,$EA16B8,-902,$EA16EC,$EA
> > 1720,True)
> >
>
TIB_Component.DoHandleError($EB5BF0,335544721,$EA1684,$EA16B8,-902,$EA16EC,$
> > EA1720,True)
> >
>
TIB_Statement.DoHandleError($1A55F08,335544721,$EA1684,$EA16B8,-902,$EA16EC,
> > $EA1720,True)
> >
>
TIB_Component.DoHandleError($1A55F08,335544721,$EA1684,$EA16B8,-902,$EA16EC,
> > $EA1720,True)
> >
>
TIB_Statement.DoHandleError($1A55F08,335544721,$EA1684,$EA16B8,-902,$EA16EC,
> > $EA1720,True)
> >
>
TIB_Session.DoHandleError($1A55F08,335544721,$EA1684,$EA16B8,-902,$EA16EC,$E
> > A1720,True)
> > TIB_SessionBase.HandleException($1A55F08)
> > TIB_Statement.GetBlobNodeData($1A5A3B4,nil,$1A58E50)
> > TIB_BlobStream.Initialize
> > TIB_BlobStream.Create($1A566B0,(521, 0, 0, 8, $E8F2CC, $E8F2CA, 8, ('A',
> > 'T', 'M', 'I', 'M', 'A', 'G', 'E', #0, #0, #0, #0, #0, #0, #0, #0, #0,
#0,
> > #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0), 9, ('S', 'H',
> 'O',
> > 'R', 'T', 'T', 'E', 'R', 'M', #0, #0, #0, #0, #0, #0, #0, #0, #0, #0,
#0,
> > #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0), 6, ('S', 'Y', 'S', 'D',
> > 'B', 'A', #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0,
#0,
> > #0, #0, #0, #0, #0, #0, #0, #0, #0, #0), 8, ('A', 'T', 'M', 'I', 'M',
'A',
> > 'G', 'E', #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0, #0,
#0,
> > #0, #0, #0, #0, #0, #0, #0, #0)),$E8B838,$EB5B30,bsmRead)
> > TIB_BlobStream.CreateForColumn($E8DBE0,bsmRead)
> > TIB_Statement.CreateBlobStream($E8DBE0,bsmRead)
> > TIB_ColumnBlob.GetAsString
> > TIB_Column.GetAsVariant
> >
> > -----Original Message-----
> > From: Jason Wharton [mailto:jwharton@...]
> > Sent: Monday, August 06, 2001 5:30 PM
> > To: IBObjects@yahoogroups.com
> > Subject: Re: [IBO] Graceful Recovery From DB Data Read Error
> >
> >
> > Look at the callstack and send me a copy while you are at it.
> > Something is making it think it is still connected or you are doing
> > something I should raise a more sensible exception for.
> >
> > Jason Wharton
> > CPS - Mesa AZ
> > http://www.ibobjects.com
> >
> >
> > ----- Original Message -----
> > From: "Bill Morrison" <bmorrison@...>
> > To: <IBObjects@yahoogroups.com>
> > Sent: Monday, August 06, 2001 2:03 PM
> > Subject: [IBO] Graceful Recovery From DB Data Read Error
> >
> >
> > > Greetings,
> > >
> > > I have run into the situation where during access to a remote DB
> > > through a RAS dialup, the physical connection occasionally fails. This
> > > generates the 335544721 error, which I can trap in the OnError event
of
> a
> > > TIB_Connection and Transaction.
> > >
> > > However, the TIB_Connection still believes itself to be connected,
> > > and an attempt to .Disconnect it will respawn the error.
> > >
> > > What is the proper way to handle this situation?
> > >
> > >
> > > Thanks in advance,
> > >
> > >
> > >
> > > Bill Morrison
> > >
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
> > >
> > >
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
> >
> >
>
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>





Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/