Debugging MDrivenServer Serverside actions
No edit summary
No edit summary
Line 24: Line 24:
[[File:2019-09-09 13h54 03.png|none|thumb]]
[[File:2019-09-09 13h54 03.png|none|thumb]]
You can also get an overview what runs when by looking at /admin/WorkInfo.aspx
You can also get an overview what runs when by looking at /admin/WorkInfo.aspx
The workinfo page is really good to get an oversight in both short and long term what the server does. Do not get intimidated by all the colors! Start by ignoring all colors but bright red. The bright read are a running jobs - they come in from the right - far-right is NOW. As time pass they move to the left. A job that starts and stops directly shows up as a dot - but it is running some time a line will form. The problem with the bright red speed is that it will pass the whole time line in one minute. This is why we have the other colors! These are the exact same job in another scale. The blue is the slowest - and what was a red line might show up as blue dot due to the much lower resolution than the red, but the good thing that it stays on screen for a longer time. The colors between red and blue are other resolutions in between the two described.
[[File:2019-09-09 13h55 32.png|none|thumb|x]]
[[File:2019-09-09 13h55 32.png|none|thumb|x]]
And then you will always see actions in the log at admin/Log.aspx:
And then you will always see actions in the log at admin/Log.aspx:

Revision as of 08:17, 1 July 2020

Catching debug info and saving it to your model

To further simplify debugging we have in the September 2019 release added extended functionality.

You can add root viewmodel columns named:

ErrorInfo (not case sensitive, must start with) - string typically less than 255 char

ExceptionInfo (not case sensitive, must start with) - string typically long with a callstack - we will truncate to fit target attribute

OnException (action, not case sensitive, must start with)

If an exception occurs in a serverside viewmodel we will set ErrorInfo, ExceptionInfo and lastly call OnException-action.

2019-09-09 14h11 14.png

The email action above will fail since we have not provided the needed columns for sending an email.

The action OnException is executed last - you may receive the errorinfo and exceptioninfo in string variables and make use of them in the OnException action.

When an exception occurs changes done will be rolled back prior to applying the error handling described here.

It is ok to leave out some of the error handling columns if you do not need them.

Logging and information on what the server does

To see what actions that has been executed you can look them up in admin/AdminAppPeriodicActions.aspx

2019-09-09 13h54 03.png

You can also get an overview what runs when by looking at /admin/WorkInfo.aspx

The workinfo page is really good to get an oversight in both short and long term what the server does. Do not get intimidated by all the colors! Start by ignoring all colors but bright red. The bright read are a running jobs - they come in from the right - far-right is NOW. As time pass they move to the left. A job that starts and stops directly shows up as a dot - but it is running some time a line will form. The problem with the bright red speed is that it will pass the whole time line in one minute. This is why we have the other colors! These are the exact same job in another scale. The blue is the slowest - and what was a red line might show up as blue dot due to the much lower resolution than the red, but the good thing that it stays on screen for a longer time. The colors between red and blue are other resolutions in between the two described.

x

And then you will always see actions in the log at admin/Log.aspx:

x

Notice the number hiliited in green - this number binds one server job together - there may be many jobs going in parallel - and the log will be mixed - but the number will help you see what belongs to what.

Generic tip to how to debug the MDrivenServer if you have source code

MDrivenServer takes all its settings from compact database found here AppCompleteGeneric\AppCompleteGeneric.PServerIis\App_Data\DatabaseCompact.sdf

If you have a server environment that shows errors you want to debug locally - a practical way is to get a copy of the servers DatabaseCompact.sdf and replace the DatabaseCompact.sdf you have in the development environment. This way any connectionstrings or other settings that may be part of the problem you try and find are all the same in your development environment as on the server.

In the MDrivenDesigner Portal window you have an option to snapshot and download the DatabaseCompact from the server - even if this can be done manually as well:

2020-01-07 10h29 41.png

Consider to stop the server while searching for the error since 2 MDrivenServers mean 2 Client Synchronization queues - and that will confuse everyone.

This page was edited 78 days ago on 02/10/2024. What links here