5. Performance

When using the SBO notification listener, the frequency at which this tool will check for new transactions to process can have a very important impact on the global performance of the system.

This frequency is controlled by a setting in the SBO notification listener's configuration file (Produmex.Foundation.SboNotification.ServiceHost.exe.config), called FrequencyMilliseconds and located in the appSettings section:

<appSettings>
  <add key="TransactionIsolation" value="ReadCommitted" />
  <add key="TransactionTimeout" value="00:10:00" />
  <add key="FrequencyMilliseconds" value="5000" />
</appSettings>

For PDMX versions 5.3 and older, the default value is 1000, meaning that the SBO notification listener will check for new transactions to process every second.

For PDMX versions 5.4 and higher, the default value is 5000, meaning that the SBO notification listener will check for new transactions to process every 5 seconds.

This value can be changed to any frequency. Increasing the delay defined in this value will typically help decreasing the load on the server.

On version 5.3 or older, there is a possible performance gain when adding the following to the 'root' tag in the logging section of the config file:

<level value="WARN" />

It will make sure that time consuming logging operations for logging levels lower than 'WARN' won't be executed.

The full logging section will then look similar to:

  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="WARN" />
        <levelMax value="FATAL" />
      </filter>
      <file value="C:\Produmex\Log\Produmex.Sbo.Logex.Execute.FatClient.exe.${USERDOMAIN}.${USERNAME}.${SESSIONNAME}.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="WARN" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
 

For more information about the application configurations please see: 10. Application configurations

If you want to enable extra logging for debugging purposes, you can enable this in the config files.

If we need to add this extra debug-logging to let's say the fat client, you need to change some values in the FatClient config file:

C:\Program Files (x86)\Produmex\Produmex Fat Client\Produmex.Sbo.Logex.Execute.FatClient.exe.config

In this file you'll need to change all the 'WARN' levels to 'DEBUG'

<FILTER TYPE="log4net.Filter.LevelRangeFilter">
        <levelMin VALUE="DEBUG" />
        <levelMax VALUE="FATAL" />
      </filter>
    <root>
      <level VALUE="DEBUG" />
      <appender-REF REF="RollingLogFileAppender" />
    </root>

Run trace during closure to see what Queries are taking a lot of time to execute;

Possible fix is to add an index to JDT1, but this needs to be clear from the trace.

CREATE NONCLUSTERED INDEX [PMX_TEST_2] ON [dbo].[JDT1]
(
	[MatchRef] ASC,
	[TransType] ASC,
	[InterimTyp] ASC
)
INCLUDE ( 	[TransId],
	[Line_ID],
	[Account],
	[Debit],
	[Credit],
	[SYSCred],
	[SYSDeb],
	[FCDebit],
	[FCCredit],
	[CreatedBy],
	[Project],
	[DebCred]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

Check the print filter script. Make sure that you did not use SELECT * in your SELECT QUERY.

For more information please see: Print filters

It is possible to speed up the pick list proposal creation process. There are columns in the pick list proposal line table that stores some additional information on the stock when the proposal was created. In the pick list proposal form this information is shown in the columns 'Full stock' and 'Stock compliant shelf life'. If this information is not being used, you can disable the calculation of this stock status field. There is a setting in the Pick list proposal generator for this.

This topic does not exist yet

You've followed a link to a topic that doesn't exist yet. If permissions allow, you may create it by clicking on Create this page.