DELMIA - ENOVIA VPM V5 Connection (E5M)

General Issues

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.

Open Issues

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

Documentation Addenda

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.

  GPL120_a GPL120_d

GPL120_c

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.

GPL120_b GPL120_e

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.