Subject RE: [IBO] Cursor unknown error -504
Author Helen Borrie
At 09:19 PM 8/08/2004 +1000, you wrote:
> > The error Bob reports is 1) not an IBO error and 2) has nothing
> > to do with
> > KeyLinks. Are you getting confused with some other type of error
> > that *is*
> > related to KeyLinks, such as "Record not located to update"? The latter
> > error occurs when the dataset is asked to post after an edit and
> > there are
> > no KeyLinks to enable the dataset to build a search clause for the UPDATE
> > statement.
> >
> > Helen
> >
> >
>No - the error I get is "Cursor Unknown" just as Bob defines it. And you
>were one of the kind souls who argued that it was a missing or invalud
>keylonks property which MAY be the cause.


>It comes back fropm the
>Transaction.Refresh(true) method - that much I am certain. It does NOT come
>from any attempt to update.

Transaction.Refresh (True) actually tries to commit all pending work and
close all open datasets. An "open" dataset is one that the application
thinks is active. I'd expect a Cursor Unknown error to happen where the
connection had been lost while a dataset was in the state of having posted
changes but not committed; or where the dataset itself was in Modified
state but the changes hadn't been posted. Transaction.Refresh (True) isn't
going to succeed on an idle machine if there is an exception, in any case,
since there's no fallback for rolling back in case commit fails, as there
is with Transaction.Close.

I continue to advise looking at what's happened to the network connection
during the idle time. The server will poll the client and, if the client
doesn't answer, eventually it will just time out the connection, as it's
designed to do. Look at the Wake Up On LAN setting in the BIOS, as I've
encountered this often enough disabled on boxes bought with pre-installed
OEM XP to deduce that it's virtually a default. If this is disabled, a
sleeping client won't respond to polling.