Performance tuning your Sage X3 system: Print Server

4 minute read time.

Updated: 18 October 2022

Back to Index

Please note this document and all other documents it links to are living documents so will evolve over time as new things are discovered, new functionality is provided, best practises adjusted and/or when I get time to add content; so please make sure you come back and visit this source document often.

Contents

Performance tuning your Sage X3 system: Print Server

Introduction

Purge X3 tables

Tuning X3 Print Server

Windows specific

General blogs, KB articles, etc.

 Introduction

The Print Server component is quite interesting as it sits in it’s own world and normally just does what it’s designed to do, however there are a few places where it can get “clogged up” and sometimes not print as quickly as you would like, or expect.

The basic steps on how print server work are described in the online help “Print Server Presentation and Operation Guide”, but essentially X3 creates a print request and sends it to the X3 Print Servers queue.  The X3 Print Server processes the reports in its queue in order, downloading a copy of the X3 report if it doesn’t already have it, then the X3 Print Server sends the generated report to the Windows Print Server.  The reasons for slowness can therefore be rooted in one of three main areas, X3 report request generation, X3 Print Server report generation or Windows Print Server.

Many of the steps you can take to identify where the report is slow and how to run traces, etc. is already covered in my blog Illustrated guide to tracing/debugging Sage X3 Report Server so take a look at that to see if that helps.

Purge X3 tables

Set the purge job "ATMP" (Temporary tables) to run regularly in order that the AREPORTM table is regularly purged.  This can impact certain reports when this table gets too big.

Tuning X3 Print Server

In the X3 Console you will find there are some configuration parameters that can influence performance.  Use the “Expert mode” button to see all parameters:

General Settings

Max pending print requests

all.processsrv.nbmaxjobs

Maximum number of Print requests that an instance of the Print Server will be allowed to manage in its print queue. Default value 200.   A large number of active print requests will take more memory, up to 1000 should be OK with 4GB RAM available.

Print processes

Variable coefficient for size of the shared memory

print.jobs.vpallocbyjob

 

Maximum size in Kb of the shared memory segments used to store the variable parameters.  Not normally an issue but can be increased if error messages being seen in this area.

Maximum number of concurrent printing processes

print.processes.nbmaxproc

 

Maximum number of concurrent (parallel) report/print jobs serving the queue. Too big value may be counter productive. Recommended rule of thumb value: not more than 2 jobs per logical CPU

print.processes.nbminproc

print.processes.nbminproc

Minimum number of printing processes.  This can reduce startup time of the print server requests by having a pool of print server processes ready to go.

Time before killing processus (Minutes)

print.processes.killtimeproc

 

Maximum duration before deletion of a blocked print process (expressed in minutes)  Useful as a safeguard against runaway processes.

Maximum successive jobs by a process

print.processes.maxjobsbyprocess

 

The maximum number of jobs that a print process “AdxImpNet” will process before automatically being killed.  Having processes refreshed in this way helps to reduce likelihood of process memory not being released properly.

Windows specific

I don’t have many notes of Windows specific setup, but there are some things you can do generally.

Windows Event viewer

Check the Windows Event Viewer for any relevant error or warning messages.  We have seen in the past where there were lots of “The printer name is invalid” recorded in the event log which ended up pointing to an issue with the network causing performance slowdown.

Print Server/Printer setup

1. In general it is best to keep the X3 Print Servers printer drivers up to date with the latest printer drivers from the appropriate Manufacturers web site, which normally give best performance and stability.

2. Sometimes larger reports seem to take a long time to start printing once sent to the Windows Print Server. In this case, on the X3 Print Server you could potentially set the windows spooler settings in the Print Driver, Advanced tab to "Start printing after the last page has spooled" rather than “Start printing immediately”  Also selecting “Print spooled documents first” often gives best performance in this case.

3. You could consider enabling more detailed Windows Event logging. You can find this in your Windows documentation, for example "Troubleshooting Windows Server 2012 Printing" includes a section on enabling "PrintService Event Log Channel", which could give additional clues to printing issues generally.

General blogs, KB articles, etc.

Illustrated guide to tracing/debugging Sage X3 Report Server (Blog)

Print Server Presentation and Operation Guide (Online help)

Print Server on Windows Includes hardware requirements (Online help)

Back to Index

  • Hello there,

    For point (1) I would suggest the temp files may only be there where an issue has occurred.  Maybe you can identify which reports where run for the days of the top sized .tmp files to try and work out what created them... it may also be directly linked to your issue (2) as well (i.e. the crashing jobs leave the t.tmp files behind)    From the size of the tmp files it could be a memory related issue along the lines suggested in community.sap.com/.../13544497   As per this article, it suggests you should remove these tmp files manually.

    You should probably raise case with your local X3 support team to help identify what is causing the crashing/temp files as it may be more complex than can be dealt with in this forum.

    hope this helps

    Mike

  • Hi Mike,

    I have found some additional issues and have no idea what else I can do in X3 v12p35 Print Server.

    [1] The print server keeps a large amount of temporary data into AppLocal. Is it safe to delete them daily (through custom Windows Server settings and scripting work)? Will there be any print performance issue if I delete it? I have been asked to ration the space used as this drive is dedicated for OS usage.

    [2] The Print Server also randomly crash. I believe it was a bad setting of "Maximum number of concurrent printing processes" which was set to 32 so I halved it. When reading the Print Server log, there is no information. When I read the Windows Event Viewer for the crash details:

    ```

    Faulting application name: AdxSrvImp.exe, version: 4.2024.1.24, time stamp: 0x65b0ed17
    Faulting module name: AdxSrvImp.exe, version: 4.2024.1.24, time stamp: 0x65b0ed17
    Exception code: 0xc0000409
    Fault offset: 0x0004a1ad
    Faulting process id: 0x11d4
    Faulting application start time: 0x01daa2a330facae5
    Faulting application path: D:\Sage\SafeX3\PRTSRV\AdxSrvImp.exe
    Faulting module path: D:\Sage\SafeX3\PRTSRV\AdxSrvImp.exe
    Report Id: 528cd6ec-e32a-4b51-97ce-f9bc332ff673
    Faulting package full name:
    Faulting package-relative application ID:

    ```

    Would appreciate if there is any idea I can try to fix it since there were a lack of information why it is crashing randomly.