Hello everyone,

I apologize for not continuing to let you know what was happening
in my exploration of this issue. I think I found a 4D bug but it could be
database corruption I suppose.

The record locking was caused by sorting a related many (automatic) table
within the transaction, where my guess is that the parent record was
reloaded multiple times.

Changing the relation to manual fixed the problem in the one place where it
was very repeatable. The other more long-term occasional problem may be
better but it doesn't seem to be fixed.

I kept tracing through the code that ran on opening the detail form and
stopping at different places to see if the locking had occurred and it was
only the sort that caused the problem.

This occurred in v17.4 and v17.5.

Thanks,
Alan

On Thu, Dec 10, 2020 at 11:42 PM Guy Algot <g...@me.com> wrote:

> Alan,
>
> Have you tried using ‘Get locked records info’?
>
>
>
> On Dec 8, 2020, at 1:22 PM, Alan Tilson via 4D_Tech <4d_tech@lists.4d.com>
> wrote:
>
> Hello everyone,
>
> I'm having a record locking problem where I cannot understand how the
> record is staying locked. There is no open transaction and no record stack
> (Push Record).
>
> I simply open a record from a list view and close it. The table is still
> read-write but the record is unloaded. Load Record can load another record
> without releasing the locked record.
>
> I don't see anything in the trigger code that would keep the record locked
> and trigger issues discussed here seem to affect related tables, not the
> main table.
>
> Opening another record in the offending process does unlock the locked
> record, but users report that sometimes this does not work. They have to
> close the process.
>
> 4D v17.4 Client Server, Windows Server 2008 R2 server and client
>
> I'm thinking to try going to read-only in the list view to see if that
> works but I would love to hear some other ideas!
>
> Thanks,
> Alan Tilson
>
> On Fri, Aug 29, 2014 at 1:33 AM Justin Leavens <jleav...@gmail.com> wrote:
>
> Ben Kershaw-3 wrote
>
> Create a method that calls READ ONLY(*), and set the method to execute on
> the server. Call this method from your init process method (I’m assuming
> you have one).
>
> If the problem is a trigger loading a record in another table and leaving
> it locked, this will start all tables in READ ONLY mode, so when the
> record is loaded it will be in READ ONLY state.
>
> If you still have records getting locked, at least you’ll know it has
> nothing to do with triggers or something running in the servers ‘twin’
> process.
>
>
> Thanks, Ben. Indeed I found the culprit was a related table being loaded in
> a trigger and not being unloaded. This resulted in the record being
> reported
> locked by the process (yes, I use Chuck's locked record component) yet zero
> records loaded on the client. And this of course worked differently in
> client server than it did in single user. Thanks for the tip!
>
>
>
>
> Later,
>
> Guy
>
>
> --
>
> Guy Algot, Solutions Specialist
>
> Edmonton, Alberta
>
> (780) 974-8538
>
>
> hardware, installation, training, support, programming, internet
>
> specializing in 4th Dimension
>
> =-= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> "Microsoft is a cross between the Borg and the Ferengi. Unfortunately,
>
> they use Borg to do their marketing and Ferengi to do their programming."
>
>     -- Simon Slavin
>
>
>
>
**********************************************************************
4D Internet Users Group (4D iNUG)
New Forum: https://discuss.4D.com
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to