| View previous topic :: View next topic |
| Author |
Message |
Janne Timmerbacka Guest
|
Posted: Sat Jan 20, 2007 9:57 pm Post subject: Blob not found - interbase + TIB components + datasnap : whe |
|
|
I changed from dbExpress to IBX and I began to have daily problems with
blob not found! This is really big problem for my customers!!
My server application has one TIBTransaction (InterbaseExpress components
version 7.08)
TIBTransaction
-AutoStopAction = saCommit
-DefaultAction = taCommit
-Transaction isolation mode was not set! I don't know if it has an effect,
since Datasets are exposed to the thin client via the IAppServer
interface, but now it is set to READ COMMITTED
I have two datamodules for datasnap. Second datamodule is for briefcase
mode syncronizing and it contains only one TIBQuery + provider with
poAllowCommandKey option.
Any ideas? |
|
| Back to top |
|
 |
Bill Todd Guest
|
Posted: Sun Jan 21, 2007 5:17 am Post subject: Re: Blob not found - interbase + TIB components + datasnap : |
|
|
What version of Interbase?
Have you verified the database with gfix?
What SQL statement causes the error or what dataset method causes the
error?
Which line of code in your app causes the error?
The behavior you describe is not normal so the more detail you can
provide the better.
--
Bill Todd (TeamB) |
|
| Back to top |
|
 |
Janne Timmerbacka Guest
|
Posted: Mon Jan 22, 2007 9:10 am Post subject: Re: Blob not found - interbase + TIB components + datasnap : |
|
|
Thank you very much for you answer. See answer below.
On Sun, 21 Jan 2007 01:17:54 +0200, Bill Todd <no (AT) no (DOT) com> wrote:
| Quote: | What version of Interbase?
|
<Janne>The problem occurs at least with 7.1.0.131 (desktop version). This
problem didn't occurr when I was using dbExpress components, but when I
switched to IBX, they becan within few days. I haven't seen this problem
with FireBird 2 so far, but there are also two 7.1 versions running so far
without any problems. Softwares are configurations are identical in every
server.
| Quote: | Have you verified the database with gfix?
|
<Janne>Yes I have. When the problem first occurred there were some errors
that gfix fixed, but could not fix the blob not found error. The next time
there were no error found by gfix, but blob not found error was there. I
"fixed" the blob not found by updating memo field to NULL value.
| Quote: | What SQL statement causes the error or what dataset method causes the
error?
|
<Janne>I don't write any SQL's my self. Everything is handled via datasnap
data dataproviders. I don't know when the problem is created, probably
when client is updating changes for a record via ApplyUpdates. After that
the problem is visible every time the blob field is accessed (SELECT *
.....).
| Quote: | Which line of code in your app causes the error?
|
<Janne>See previous answer.
| Quote: | The behavior you describe is not normal so the more detail you can
provide the better.
|
I'm using TIBQuery component with DataProviders. I create persistent
fields for TIBQuery and the the main unique index is set "ProviderFlags :=
ProviderFlags + [pfInKey];" setting.
TIBQUERY' settings:
UniDirectional = true
TDataProvider's settings:
Options := [poAutoRefresh, poPropogateChanges ];
UpdateMode := upWhereKeyOnly;
AfterUpdateRecord := DoAfterUpdateRecord;
procedure TRODataSnapModule_Mecware.DoAfterUpdateRecord( Sender: TObject;
SourceDS: TDataSet;
DeltaDS:
TCustomClientDataSet; UpdateKind: TUpdateKind );
(* this routine stores a modified date for briefcase syncronization after
record edit *)
..
..
..
if UpdateKind <> ukDelete then
begin
IBQuery.SQL.Text := 'UPDATE '+ TDataSetProvider( Sender ).Name +
' SET ZXC_MODIFIED =
'''+FormatDateTime( 'dd/mm/yyyy', Date, iFormatSettings )+''' WHERE
'+iBuffer+' = :ID';
IBQuery.Params[ 0 ].Value := DeltaDS.FieldByName( iBuffer ).OldValue;
IBQuery.ExecSQL;
..
..
..
I really hope this information helps
Janne |
|
| Back to top |
|
 |
Bill Todd Guest
|
Posted: Mon Jan 22, 2007 8:31 pm Post subject: Re: Blob not found - interbase + TIB components + datasnap : |
|
|
Do you have forced writes enabled?
--
Bill Todd (TeamB) |
|
| Back to top |
|
 |
Janne Timmerbacka Guest
|
Posted: Tue Jan 23, 2007 10:50 pm Post subject: Re: Blob not found - interbase + TIB components + datasnap : |
|
|
I haven't heard about Forced writes before and it is disabled for all
databases. After some googling it seems it shoud be enabled?
This problem occur on computers that are somewhat limited in their
resources (memory, processorload, etc.).
Million thanks you for this
Janne |
|
| Back to top |
|
 |
Bill Todd Guest
|
Posted: Tue Jan 23, 2007 11:11 pm Post subject: Re: Blob not found - interbase + TIB components + datasnap : |
|
|
Yes, forced (synchronous) writes should be enabled. If you do not any
abnormal shutdown or crash of InterBase can corrupt the database.
--
Bill Todd (TeamB) |
|
| Back to top |
|
 |
Janne Timmerbacka Guest
|
Posted: Wed Jan 31, 2007 9:11 am Post subject: Re: Blob not found - interbase + TIB components + datasnap : |
|
|
So far so good. No Blob not found errors so far!
Million thanks
Janne
On Tue, 23 Jan 2007 19:11:57 +0200, Bill Todd <no (AT) no (DOT) com> wrote:
| Quote: | Yes, forced (synchronous) writes should be enabled. If you do not any
abnormal shutdown or crash of InterBase can corrupt the database. |
|
|
| Back to top |
|
 |
|