How to restart a job in “Error” or “Frozen Completed” status


Sometimes can happen that some recursively scheduled jobs can go wrong or get stuck, you can re-enable them automatically and after consult the log to see errors; it is not a perfect solution but sometimes the error can be a simple error ex: “another user has modified..” etc. This function could be useful for NAV versions up to 2016, NAV 2017 has an improved management and a robust task scheduling system.

Samples of Jobs in “Error” or “Frozen Completed State”

Before Execution

After Execution

The Simple Solution

The solution is based on a codeunit that takes care of reactivating the jobs in the state “error” or “completed”, it can be changed according to the needs.

It can be scheduled:

  • Directly into the NAS (in the same or other NAS instances)
  • On Windows Task Scheduler with codeunit invoked by Powershell

 

Fields Added on Table “Job Queue Entry”

 

Codeunit 50000 “ChangeJobsStatus”

CODE

OnRun()

ChangeJobStatus;

ChangeJobStatus()

Documentation()

“Restart Job” IF in errorin processfinished state

OnRun()

IF ChangeJobStatus() = TRUE THEN

MESSAGE(‘Jobs Status Changed!’)

ELSE

MESSAGE(‘Nothing Changed!’)

LOCAL ChangeJobStatus() JobStatusChanged : Boolean

//”Restart Job” IF in errorin processfinished state

JobStatusChanged := FALSE;

recJobQEntry.RESET;

IF recJobQEntry.FINDSET THEN

REPEAT

CASE recJobQEntry.Status OF

//*** STATE: IN PROCESS

recJobQEntry.Status::”In Process”:

BEGIN

recJobQLogEntry.RESET;

recJobQLogEntry.SETRANGE(“Object Type to Run”,recJobQEntry.”Object Type to Run”); //Check Run.Time

recJobQLogEntry.SETRANGE(“Object ID to Run”,recJobQEntry.”Object ID to Run”);

//Check Duration Process Max

IF recJobQEntry.”Duration Process Max” > 0 THEN

IF recJobQLogEntry.FINDLAST THEN

IF CURRENTDATETIME – recJobQLogEntry.”Start Date/Time” > recJobQEntry.”Duration Process Max” THEN BEGIN //CHECK MAX DURATION TIME

recJobQEntry.Status := recJobQEntry.Status::Ready; // –> SET STATUS TO READY

recJobQEntry.MODIFY(FALSE);

JobStatusChanged := TRUE;

END

END;

//*** STATE: ERROR OR FINISHED

recJobQEntry.Status::Error, recJobQEntry.Status::Finished: //IF “ERROR” OR “FINISHED”

BEGIN

recJobQEntry.Status := recJobQEntry.Status::Ready; // –> SET STATUS TO READY

recJobQEntry.MODIFY(FALSE);

JobStatusChanged := TRUE;

END;

END; //END CASE

COMMIT;

UNTIL recJobQEntry.NEXT = 0;

EXIT(JobStatusChanged);

Download from MSDN https://gallery.technet.microsoft.com/How-to-restart-a-job-in-8aca5516

 

About Scheduling

1) With NAV Codeunit scheduled by NAS

After Execution

2) With NAV Codeunit invoked by Powershell and scheduled by Windows Task Scheduler

Import-Module ‘C:Program FilesMicrosoft Dynamics NAV100ServiceMicrosoft.Dynamics.Nav.Management.dll’

Invoke-NAVCodeunit dynamicsnav100 -CodeunitId 50000 -CompanyName ‘CRONUS Italia S.p.A.’

To Schedule Powershell Script by Windows Task Scheduler

An easy way to schedule a PowerShell script is, to use Windows Task Scheduler, look at this post:

Coffee Break: Proactive Monitoring with Task Scheduler

https://blogs.msdn.microsoft.com/nav/2016/01/19/coffee-break-proactive-monitoring-with-task-scheduler/

My Old Post about NAV 2017 Task Scheduler

https://robertostefanettinavblog.com/2016/11/04/nav-2017-task-scheduler/

Advertisements

“ALL About” How To Boost Dynamics NAV Server


Hi Guys,
another post of “ALL About” Series, in this case, some people have asked me about NAV configuration and how to configure NAV Server for better performance (Boosting
NAV..);  also in Microsoft Forum there are several posts about this topic, i searched and collected a variety of useful information for a correct NAV Server configuration.
Documents and Posts
“Great White Paper” about typical questions around the number of users or tenants, hardware requirements, scaling, and upgrading
-> “…How to have a great configuration and “How-to Boost NAV”!!
“This white paper provides detailed insight into the concepts and principles that support performance testing in Microsoft Dynamics NAV”.
By outlining some sample goals from the start, it explains how you can use load testing to optimize your application and hardware to meet the customer and user requirements – addressing typical questions around the number of users or tenants, hardware requirements, scaling, and upgrading”
Below some useful information about NAV Server Configuration.
NAV Server Configuration Best Practices (from Whitepaper)
1) Number of Microsoft Dynamics NAV Service Tiers
When a client connects to Microsoft Dynamics NAV Server, the load balancer will select a server and keep the connection open throughout the lifetime of the client.
This means that setting up more servers behind a load balancer will increase the capacity of the cluster of Microsoft Dynamics NAV Service tiers.
2) Server Memory
Each Microsoft Dynamics NAV Service tier needs 500Mb of memory to run.
On top of that, the Microsoft Dynamics NAV Service tier needs memory for each active session, even if they are idle.
The more pages the user have opened, the more memory gets allocated, but a good starting point for doing sizing calculations is around 10Mb per active session.
Idle sessions are not terminated if they are running the Windows client.
Server CPU (cores and speed) Faster CPU will get things done faster, and more cores can run more things in parallel.
Idle sessions on the Microsoft Dynamics NAV Service tier don’t use any CPU power, except for generic housekeeping, which shouldn’t be counted.
3) Server CPU (cores and speed)
Faster CPU will get things done faster, and more cores can run more things in parallel.
Idle sessions on the Microsoft Dynamics NAV Service tier don’t use any CPU power, except for generic housekeeping, which shouldn’t be counted.
Active sessions will use CPU power depending on what they do, but it is hard to generalize how much.
For example, CPU power is used whenever the user is performing a task that requires the Microsoft Dynamics NAV Service tier to run some business logic or perform some UI logic or setup server pages.
If the Microsoft Dynamics NAV Service tier does a lot of IO (SQL calls or client callbacks), then the CPU will be waiting for response and thus be loaded less.
4) Data Cache Size
This is a Microsoft Dynamics NAV Server setting, which located in CustomSettings.config file. Sets the data cache size. This is an abstract value with contextual meaning on the type of the item being cached.
<add key=”DataCacheSize” value=”9″ />
The number you specify in DataCacheSize setting determines how much memory is used for caching data.
The actual amount of memory (in MB) allocated is 2n, where n is the value of the DataCacheSize setting:
Value Memor y 9 (default) 512Mb 10 1Gb 11 2Gb 12 4Gb 13 8Gb 14 16Gb 15 32Gb …
When running a single tenant system the default value of 9 is probably good.
When running a multi-tenant system, the data cache is shared between all tenants.
Set to 0 to disable cache.
boost2
5) Metadata Provider Cache Size
This is a Microsoft Dynamics NAV Server setting, which located in CustomSettings.config file.
Sets the Metadata Provider cache size (in number in objects cached).
Set to 0 to disable cache.
<add key=”MetadataProviderCacheSize” value=”150″ />
You can monitor the number of objects in the metadata cache by monitoring the following performance counter on the Microsoft Dynamics NAV Service tier.
There is really NO REASON not to set this to a high value (like 10000) if you are not pressed on memory on the Microsoft Dynamics NAV Server.
6) Max Concurrent Calls
This is a Microsoft Dynamics NAV Server setting, which is located in CustomSettings.config file.
Maximum number of concurrent client calls that can be active on the Microsoft Dynamics NAV Server.
To disable this setting set the value to “MaxValue”.
<add key=”MaxConcurrentCalls” value=”40″ />
The number specified here determines how many concurrent calls the Service Tier is able to handle. The more cores in your server, the higher this value can be.
NAVPERF (On Github)
GitHub organization for performance testing Microsoft Dynamics NAV
GitHub You will find a couple of projects on GitHub, which contains some sample code on how to do performance tests.
The GitHub organization is used to store the sample repositories and is available here:
boost1
boost3
nav-2017-sanmple

Microsoft Dynamics NAV 2017 Load Test sample as references from the Load Test WhitePaper

Enables you to create scenario tests for Microsoft Dynamics NAV.

The solution consists of:

Microsoft.Dynamics.Nav.LoadTest : A sample test for NAV Order Processor Scenarios Microsoft.Dynamics.Nav.TestUtilities : Test utilities to help build test scenarios Microsoft.Dynamics.Nav.UserSession : Client Library for the NAV Client Services Web Service

On the Microsoft Dynamics NAV 2017 DVD, you will find a folder called Test Assemblies. This folder contains one DLL, which is needed for running Load Tests: Microsoft.Dynamics.Framework.UI.Client.dll  The DLL is also included in this project.

Others nice links
Optimizing SQL Server Performance with Microsoft Dynamics NAV
https://msdn.microsoft.com/en-us/dynamics-nav/optimizing-sql-server-performance-with-microsoft-dynamics-nav
Videos
How Do I: Run NAV Performance Tests Using Visual Studio in Microsoft Dynamics NAV
https://www.youtube.com/watch?v=IG-y8DsXqaQ
Some my old posts here:
Monitoring Microsoft Dynamics NAV 2015 Server Using “Performance Counters”
https://robertostefanettinavblog.wordpress.com/2015/07/06/monitoring-microsoft-dynamics-nav-2015-server-using-performance-counters/

Dynamics NAV as SaaS …and 365 as IaaS


Dynamics NAV as SaaS (Software as a Service)
hi Guys,
some people have asked me information about this topic, below a little group of links about this topic (…old but actual).
saas
ABOUT SAAS (Software as a service)
Introducing Microsoft Dynamics NAV Managed Service for Partners
Microsoft Definition:
“The Microsoft Dynamics NAV managed service enables Dynamics partners to easily offer SaaS solutions to their customers, deployed on Azure infrastructure and managed by Microsoft Cloud Engineers.  It reduces the operational, technical and administrative complexity of deploying and maintaining multi-tenant NAV solutions in the cloud while at the same time enables partners to leverage the latest and greatest Microsoft technology.”
“Following the launch of Microsoft Dynamics NAV 2016, we are pleased to announce general availability of the Microsoft Dynamics NAV managed service for partners, a significant new option for Microsoft partners  interested in providing multitenant Software-as-a-Service (SaaS) solutions built on Microsoft Dynamics NAV and deployed in the cloud on Microsoft Azure.”
The Microsoft Dynamics NAV managed service is a highly scalable and reliable platform-as-a-service offering that consists of:
Streamlined administration: A new management portal and web services API enable Microsoft partners to efficiently deploy, manage, upgrade and monitor Microsoft Dynamics NAV multitenant solutions on Microsoft Azure.
Simplified operations: Cloud-optimized licensing and billing helps partners deploy customers more quickly, manage users seamlessly, and receive a single bill from Microsoft for the service.
Microsoft Azure:  Auto-scaled, load-balanced and highly-available, the service utilizes Microsoft Azure, which includes many built-in benefits such as enterprise-class security, geo-replication, backup support, and point-in-time restore.
24×7 support from Microsoft: Microsoft Cloud Engineers monitor and maintain partner solutions, customers, and users, offering Microsoft partners a financially-backed SLA of 99.9% availability.
The Microsoft Dynamics NAV managed service has been in preview since April 2015, with partner solutions and customers live on the service today.
Partners interested in the Microsoft Dynamics NAV managed service can find more information at:
CORE MODEL
FAQ
…some other useful links:
Microsoft Dynamics NAV 2016 now available, as is Microsoft Dynamics NAV 2016 managed service for partners
https://blogs.microsoft.com/firehose/2015/10/07/microsoft-dynamics-nav-2016-now-available-as-is-microsoft-dynamics-nav-2016-managed-service-for-partners/
ABOUT IAAS  (Infrastucture as a service)
and now … “THE IaaS ERA”… (from NAV TechDays 2016- Mibuso)
nice video here:
THE “NAVTechDays 2016 Playlist” (ALL VIDEOS)