NAS cannot be Stopped until the entire job is completed?

NavRasNavRas Member Posts: 11
Hi guys

I have a wired problem with NAS
First of all let me clarify the versions and enviroment

NAV2009 Client
Window2008 Server 64bit

We have two NAS services installed on the windows 2008 server
One is doing some Polling job all through the day
The other is doing overnight Scheduled jobs

One of the jobs scheduled overnight was to generate and printing statement (it uses Amuyni PDF driver to print PDF and send email)
During testing (for the Scheduled task NAS only), due to the large amount of statements involved, the user tries to Stop the NAS when it is running the statement generation (the user has full admin rights all through the system)
The NAS turns into a Stopping Status and cannot be stopped

When they use the attached SQL query they can see some sql process (spid62 which is connected to the NAS instance) is still running
At the end, the entire statement generation and printing is completed but NAS still wont recover from the Stopping status until the server is rebooted

At first, we all blame the Amuyni PDF converter as NAS has no control of
Then we tried some other scheduled task which does not involve printing and try to stop NAS half way

But NAS does the same thing - turn to Stopping Status, the only difference is once the entire process is completed the NAS acutally stops gracefully

Can anyone shed some light on this? Why NAS cannot be stopped half way? :?:

Thanks!

Comments

  • rdebathrdebath Member Posts: 383
    The NAS is single threaded so it only sees the 'please stop' event from the service manager when it has nothing else to do.

    If you want to kill it hard send a service stop message then kill it's SQL connection.

    I haven't tried it but the 'YIELD' command may let it take the message, it does for automation events on the GUI client.

    PS: Oops, how can I forget to mention the 'taskkill' or 'pskill' will hard kill the nas too. Hard enough that the service manager may restart it.
  • NavRasNavRas Member Posts: 11
    Thanks for the response

    In line with your theory, if say we have a table holds all the customers that requies to generate Statement
    And we have report to process that table

    Instead of having a dataitem to loop through the table, I will only process one record each time (i.e. the first one comes to the list that are not processed), then mark the record as processed

    Then I will set the Timer interval as say 2min. So NAS will only process one record at a time, then after 2min process another one that has not been marked as processed

    Do you consider at the end of each record processing (before the Timer hit the 2min interval again), NAS can be stopped? as it has completed the job?

    Your thought is appreciated!
  • rdebathrdebath Member Posts: 383
    Yup, it'll even stop if the NFTimer's interval is set to Zero ms as the event from the service manager is queued not ignored completely.

    Do remember though that all events will be allowed in, including the events from the main scheduler timer to start another job.
  • ara3nara3n Member Posts: 9,256
    If you look at task manager, you'll see nassql.exe as a process running. Just kill it through shell and you don't need to reboot the server.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
Sign In or Register to comment.