- 17 Aug 2020
- 4 Minutes to read
- Print
- DarkLight
Troubleshooting Designer Elements
- Updated on 17 Aug 2020
- 4 Minutes to read
- Print
- DarkLight
Overview
The purpose of this article is to discuss the potential causes of performance issues with slow rendering on the end-user side. Issues can include problems with the server, network connection, database, Decisions logic, and more. Some issues can be isolated to the build on the back-end of Decisions, but a lot of issues can have outside factors. This article will also offer some troubleshooting steps to help isolate the issue.
Causes For Performance Issues
Potential causes in Decisions
Data Flows | Too many Data Flows running at startup. |
External Content | Too much external content being loaded in. Data populating a large list, redirect loops, and slow external systems are examples. |
Visibility Rules | Conflicting Visibility Rules in a Form interrupts rendering. |
Development Issues | Errors or mistakes in development could cause issues like unclosed loops. |
Older Decisions Versions | Potential bugs in legacy versions of Decisions. |
Running Processes | Other running processes like Scheduled Jobs. |
Improper Design | Improper Form/Flow design can be an incorrect use of Data Repeaters or incorrect logic in the Flow. |
Static Content | Static content is too massive. |
Nested Containers | Containers nested too deeply. |
Potential outside causes
Network Issues | Network issues at the server site. |
Browser Issues | Out of memory, browser extension issues, etc. |
Skype | If Skype click-to-call is installed (browser issues). |
Cluster Issues | problems with a cluster or a node within the cluster. |
DDoS Attack | Distributed denial-of-service attacks (network issues). |
IIS Issues | Problems occurring with Internet Information Services. |
Potential database causes
Storage | Running out of space on the database. |
Logs | Database logs are full. |
Long Queries | Long-running or complex queries can cause slowness trying to execute. |
Bottlenecks | Too many interactions occurring with the database at once. |
Version | Wrong version of database software. |
Network Database | Issues that could occur with a database or could be from network issues of the database. |
Troubleshooting Performance Issues
It's important to note that the source of an issue could be coming from a wide range of places. Each of these potential causes could have varying sources. The next sections highlight best practices when attempting to troubleshoot these issues.
When an issue occurs like slow performance on a build that was assumed to be logical, isolating the issue becomes pivotal to deal with such a wide range of potential causes. The best practice we can offer as Decisions professionals is to cut any issue in half. Look for something in the entire configuration that can be changed to potentially eliminate an entire set of related issues.
The Basics
Step 1: Decisions Logic
The best first practice to troubleshoot performance is to open a Decisions Object with similar functionality to see if the issue occurs elsewhere. With this step, the Decisions Objects in question can be duplicated for testing purposes. If a Flow contains a Form in question, make a copy of the Flow, and change some configurations around in the Flow Designer to see if the performance issues resolved. Do the same with the Form if the Flow does not seem to be the problem. Check for proper configurations on complex Form Controls and make sure complex Form Controls aren't stacked in different Form tabs. Make sure Flow logic executes as expected in the Debugging window.
Step 2: Browser
Try running the project from the Decisions environment in a private browser window, to eliminate possible browser issues causing slow Form performance. Alternatively, try different browsers if multiple are installed.
Step 3: Machine
Try running the project outside of the built-in firewall or on a different machine. This will help isolate whether or not the issue is between the environment or perhaps the server, which means determining if it is the platform or an outside issue. There are a lot of issues that could occur between the client environment and the server such as latency issues, DNS records, encryption, and more. Eliminating the machine as a potential cause for the issue is half of the equation.
Step 4: Environments
Take a look at some quick snapshot observations of the different environments that help run Decisions. These environments would include the database itself, various service managers, client machines, and server performance. Evaluate each of these components in their respective environments to determine if any issues stand out that could be causing problems on the front-end Form execution. Some of these environments may require a System Administrator to inspect.
Advanced Troubleshooting
Decisions Profiler
The Decisions Profiler is a built-in Decisions Tool that is located at System > Administration > System Tools > Profiler. This interface offers several different Reports and Dashboards that provide details on performance within the environment. The detail that this includes extends to Database calls as well.
The Profile view shows the type of occurrence that took place, the ProfileName which acts as a description, the count of times this executed, how long it took, how long it took with children, the objects it created, and the objects it created with children.
The screenshot below looks into a Service investigation where a child process is taking longer to perform. Each section can be expanded down to pinpoint which areas of the process are producing what and how long it is taking.
To learn more about troubleshooting using the Profiler, please visit our Troubleshooting Using Profiler article.
Browser Developer Tools
Using the Developer Tools (if available) in the web browser where Decisions are running is an excellent source for troubleshooting issues. Within this window is a suite of helpful tools to help isolate issues with performance. Developer tools offer different tabbed sections that will help with finding where errors are coming from.
The Console tab provides allows the user to view logged messages based on the webpage and the actions completed on it. These messages can vary from warnings to informational logs, and the sections are generally broken down as shown in the screenshots below.
The network tab allows the user to see how long it takes to connect Decisions depending on which element is being interacted with. This is a good tool to use to confirm whether or not an issue is based on the environment. This tool will also show the properties of an individual resource for more refined troubleshooting.
If further support is needed with troubleshooting errors in the Decisions environment, please contact support@decisions.com