DPS Tips and Tricks
Create Multiple Instances
The Dynamics Process Server (DPS) is a single thread application. This means that it will process only one task-at-a-time. When you schedule a task with GP Agent, the Dynamics GP client submits the task to the DPS and places it in the “Timed” queue. At the appointed time, the DPS submits the task to the “Normal” queue. The actual processing (posting, routines, reports, etc.) happens only in the Normal queue. When a task sits in the “Timed” queue, no actual processing happens. If you have a task that takes hours to run, no other task will actually be processed until the first task is completed, but the Timed queue will continue to submit tasks to the Normal queue while that first task is running and the tasks will line up waiting to be processed by the DPS. If you do not want delays between certain tasks, run them on a separate instance of the DPS. Refer to the related KB articles for more information on how to setup multiple instances.
Remove Products from your Launch File
Not all ISV or Microsoft add-on products are designed to run on the DPS, so you do not need to include all products in the launch file used for the DPS. Some products will not work the same (for example Manufacturing triggers won’t get registered), some products interfere with the functions of the DPS (Technical Services Tools), some will pop-up report destination dialog boxes (Analytical Accounting) that will stop the processing on the DPS. You do not need to create a separate install or use the launch file that you’d use to run Dynamics GP. Refer to the related KB articles for more information on how to setup a special launch file for the DPS and which applications you should not include.
If you want to email anything from the DPS, install Outlook on the machine. Make sure that Outlook can login automatically. If Outlook prompts for a login (typically in a hosted environment) the DPS will not process anything until someone has manually logged into Outlook. Emailing notifications every hour or so can be used to help you make sure that the DPS is running and emailing reports saves paper.
Create Named Services
If you create multiple instances, it might be easier to assign each server to a service in GP (Tools/Setup/System/Process Server). For example, if you have multiple companies and are dedicating a DPS instance to each company, or using each instance for specific tasks (Maintenance, Posting, Reports), rather than refer to them by name (DPSSERVER#1, DPSSERVER#2, DPSSERVER#3, etc.), create meaningful names for the Services: COMPANY1, COMPANY2, COMPANY3, etc.; or MAINTENANCE, POSTING, REPORTS. This way you can more easily assign tasks to each DPS.
The DPM is not necessary
Do not launch the Dynamics Process Monitor (DPM) when using GP Agent with the DPS, despite what you might read or hear from Microsoft. The DPM is designed to delegate tasks to different DPS instances for load balancing, but the assessment process it uses to assign tasks to a specific DPSs is based only on current activity — activity in the Normal queue. Because GP Agent utilizes the Timed queue, the DPM will think a DPS is availble as long as it has nothing in the Normal queue, and is unable to assess the processing requirements of a tasks waiting in the Timed queue. The DPM cannot also determine the time at which a task is supposed to execute. As a result, it might incorrectly assign a task to a DPS and overload that instance while other remain available.