Navision Blocks

rafael_riusrafael_rius Member Posts: 5
edited 2005-01-03 in Navision Attain
Since we start to work with navision, we have had a lot of problems with blocks... We are using MS-SQL Server that it is supposed that it does not block tables, only registers...

There is not an unique table that it's blocked... it could happen while making an invoice, or while changing an item from a salesperson to another one...

The traduction of the message error that it's shown by navision is this one: "Your activity was blocked by another user. Begin again."
In spanish: "Su actividad fue bloqueada por otro usuario. Empieze otra vez."

Have someone else had this problem with blocks?

Thank you in advance.

Comments

  • NaviTools.comNaviTools.com Member Posts: 88
    There are few bottlenecks in navision. Especially in posting process.

    Are you trying to post long invoices or journals? Are you running Navision client that does posting from a server?
    http://www.NaviTools.com
    Documentation for Microsoft Navision
    E/R diagrams, Workflow diagrams, UML diagrams, process diagrams
  • rafael_riusrafael_rius Member Posts: 5
    The invoices and posting documents are not very long (aprox. 20 lines of average per document)

    Our users first connect with a server of Terminal Server that has installed the Navision client, and then, with that Navision client installed in the Terminal Server connect to the database server, the connection is not from the local computer of the user.

    Example:
    User1 -> Terminal Server (+Navision client) -> Database Server
    User2 -> Terminal Server (+Navision client) -> Database Server
    ...
    UserN -> Terminal Server (+Navision client) -> Database Server

    Thank you for your help.

    Best regards.
  • kinekine Member Posts: 12,562
    There are deadlock places in Navision. It is by wrong design of application where the locking rules are violated (one process locking sales line and than document dimensions and another process lock document dimensions and than sales line - these two processes are potential deadlock generators - look into performance troubleshooting guide for more info). When you design application for MS SQL you must think about locking and use it in defined order to precede deadlocks... :?
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • musiiwabmusiiwab Member Posts: 4
    :oops:
    We have a similar problem, and i dont know if its SQL Server Record Locking problem.
    When we run the Inventory Batch Program, Adjust Cost-Item Entries, the system gives error "Another user has modified the record after you retrieved it...." even when no other users are using the system.

    What could this be.
    Mr B.Musiiwa
    Harare Zimbabwe
  • musiiwabmusiiwab Member Posts: 4
    :oops:
    We have a similar problem, and i dont know if its SQL Server Record Locking problem.
    When we run the Inventory Batch Program, Adjust Cost-Item Entries, the system gives error "Another user has modified the record after you retrieved it...." even when no other users are using the system.

    What could this be.
    Mr B.Musiiwa
    Harare Zimbabwe
  • rafael_riusrafael_rius Member Posts: 5
    even when no other users are using the system
    That's right... I think that the shame user locks himself, but that it's only a theory of me...
    I hope that somebody of this community help us because i have no idea to solve that problem.
  • kinekine Member Posts: 12,562
  • rafael_riusrafael_rius Member Posts: 5
    I had already readen that post but I had not payed too much attention because I thoght that the locks were not in that process.

    I have changed the code in that codeunit right now... I hope it works!

    Thank you a lot.
  • kinekine Member Posts: 12,562
    And this is no problem of locking, but wrong application design where record is retrieved into two records (variables) and after that changed in both (in this case the second modify is done on older version of record) - you must after first modify refresh second variable to have new values to be able to modify it. 8)
    Var1.GET(xxx);
    .
    .
    Var2.GET(xxx);
    Var2.MODIFY;
    .
    .
              <--- Var1.GET(xxx);    //this line must be added
    Var1.MODIFY;     //Var1 had old version of record, error
    

    But you must be sure that Var1 is not modified before second GET because you will lost the changes (there must be no Var1.xxx := or Var1.VALIDATE(xxx,yyy) etc.).
    [/code]
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Tarek_DemiatiTarek_Demiati Member Posts: 112
    We're planning to migrate to SQL Server because we can no longer live
    with the table locking from the Native Database Engine.

    I'm trying to push my management to move to SQL Server so our users will hopefullly experience less locking problems when posting documents.

    As far as I understood SQL lock at record level,
    so the only lock which can occurs are maybe where the record is unique
    (ie: two processes trying to increase the No. Series field)

    My question is the following :

    Will we experience less table locking if we upgrade to SQL Server ?
    (We're using a 3.60 Database Using WareHouse Management)

    Kine, mentionned that they're a few deadlock places in (standard?)Navision, can someone post a check list of those ?
    has someone a full check list
  • kinekine Member Posts: 12,562
    No! There will be no less tablelocking, because SQL lock the record but one record before and after too! If you are inserting record on the end of table, there is only serial access to the table for inserting!

    Going from Native DB to SQL does not mean less locking!
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
Sign In or Register to comment.