SQL server Locking issue

ara3nara3n Member Posts: 9,255
Is there a way to do a "DIRTY READ" on a table from outside of Navision even if it locked by a Navision client?

I don't think it is possible, but you never know.

Thank you.
Ahmed Rashed Amini
Independent Consultant/Developer

blog: https://dynamicsuser.net/nav/b/ara3n


  • johnson_alonsojohnson_alonso Member Posts: 690
    Do you mean that there are someone but not user try to see or even edit the navision database and also the table in the object designer without any permission from user or lient ?
    If yes, it's not probably be done except the permission is false.

    Johnson Alonso

    "Past, Present, Future is just an illussion"
  • ara3nara3n Member Posts: 9,255
    No Johnson
    The users are sql users. one is using navision. The other would use lets say enterprise manager and running a select statement.
    Basically the problem is that when a navision user posts orders (this is a very busy with lots of transaction client), SQL locks the table (Item Ledger Entry). They have other systems that read the item ledger, and these other systems get locked out. I would like to know if it is possible to read a table even if it's locked.

    Other solution is to create a copy of item ledger and allow replication on server synchronize the two tables.
    Ahmed Rashed Amini
    Independent Consultant/Developer

    blog: https://dynamicsuser.net/nav/b/ara3n
  • krikikriki Member, Moderator Posts: 9,086
    With a SQL-DB it is possible in Navision.
    I mean: when you are posting, it is possible for the other clients to read the UN-COMMITTED data!
    It depends on the TRANSACTIONTYPE. The default Navision uses is UpdateNoLocks. This gives the best performance but as a negative, it can read unposted transactions.
    With Update or Shapshot, you don't have the problem, but it is slower.

    You can easily check it:
    In C12 Function Code, put a CONFIRM-statement. This blocks the program even if in a transaction.
    Create some lines G/L journal.
    Post them. For each G/L journal line, the CONFIRM will come up.
    In this moment, check your G/L Entry-table, you will see appearing the G/L entries 1 by 1.

    This is from a Navision client, so I think it is also possible from the enterprise manager.

    In a Navision-DB, there is no way to see dirty data.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!

Sign In or Register to comment.