PCS Issue of PPRLoader in Windows Server 2008 OS |
There is a basic change implemented by Microsoft in
WinServer2008 R2, that has some bearing on the performance
issue with heavy usage of console output. There will be a registry option
[HKEY_CURRENT_USER\Software\DELMIA\ergoplan\PPRLoader\PCS\writetoconsole]
to control the writing to console. By default, the user will
see the messages in the console at the cost of performance.
The user can opt to have only the important message (key
steps, critical & fatal errors) written to the console by
turning off the registry option that will have improved
performance or similar timings as that of WinServer2003 R2. When ‘writetoconsole’ is set to 0 or false or no,
only important messages will be written to the console. When ‘writetoconsole’ is set to 1 or true or yes,
then all the messages will be written to the console as in
R21 SP1. This is the default mode. |
LCALoader64.exe crashes during execution on some Windows 2008 R2 systems |
It has been observed that some of the DLLs do not get
registered properly on some Windows Server 2008
R2 machines during PE
installation. This results in LCALoader64.exe to crash
during execution. Please check the installation log and in case of DLL registration errors, invoke RegClientN64Dlls.bat from PPRClient\program\bin using an Administrator command prompt to resolve the issue |
IPDServer connection |
The LCALoader requires launching of an exclusive connection to IPD Server process, without which there is no control which IPD Server processes are accessed by the LCALoader applications main and child threads, rather the regular server pooling configuration. This could end up in situations, where each thread connects to a different IPD Server, which might in addition already serve another IPD client application (such as DPE or DPM). This difference in workload and the fact that there are several child threads loading the objects, the child threads have normally already completed, while the main thread is still traversing and updating the product structure.
The main thread of the importing LCALoader application starts its own, dedicated IPD Server process, thus avoiding influences from other IPD client applications. On the other hand, the LCALoader child threads focus on a second (set of) dedicated server(s) for loading the objects from the ManufacturingHub database. By default the main thread will always use its own exclusive IPD Server process, however, this, and the number of servers the child threads share can be customized.
Similar to the number of child threads
[HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”threads” e.g.
[HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”threads”=“4“ the number of IPD Servers those child threads will start and connect to, can be customized. There are two ways to do so. You can either define the number of servers directly through the registry key [HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”servers” e.g. [HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”servers”=“4“ The second way is to specify the number of child threads, sharing one IPD Server instance. This can be done by using the registry key
[HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”threadsperserver” e.g. [HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”threadsperserver”=“2“ Please note that the second setting is only taken into account if the registry key “servers” is not set. I.e. if the number of servers is directly specified, the number of threads per server is automatically calculated from that: threads per server = number of threads / number of servers. E.g. if 8 child threads are used on 3 IPD Server processes, the number of threads per server is 3, with one IPD Server serving only two child thread clients. Please note in addition, that in both cases the IPD Server of the main thread is not affected at all. The main thread starts its exclusive IPD Server, which is not shared with any child thread at all. The entire functionality can be switched off by using the following setting: [HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”servers”=“0“ i.e. not using any specific server for the child threads at all.
In addition, when LCALoader makes
the request for an IPDServer connection it passes a ‘server’
label as part of the request. If there is no server label
passed, then the LCALoader uses the pid of the LCALoader as
the label. Since each PID is unique, a new IPDServer
will be created each time. It is possible to define a static
label in the pprloader registry settings:
[HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”serverlabel” e.g. [HKCU\Software\DELMIA\ergoplan\PPRLoader\PCS]”serverlabel”=“LCALoader“
With this static serverlabel, the lcaloader will connect to any IPDServer process with the label "LCALoader". This would allow multiple lcaloaders to share a single IPDServer process.
Note: This setting is only recommended for small sized xmls to avoid a high memory load on a shared IPD Server process. |