Bosch Building Technologies

    Showing results for 
    Search instead for 
    Did you mean: 

    How to collect VSG memory dump in case application crashes?

    Important to know:

    • Before VSG 8.0, there was 1 Connector (Proxy) instance/service and multiple Worker instances/services (1 - 7)
    • Since VSG 8.0 there is now a Connector (Proxy) instance/service (1 - 7) per worker instance/service (1 - 7)

    The normal process is to enable Complete memory dump, this will capture in the event there is an Unhandled Exception.


    Step-by-step guide


    Via BVMS CC: Would be needed to enable for each instance



    Via CM: Would be needed to enable for each instance



    If in the event that the crash is due to a "Memory Leak"

    • this would cause also all other applications also to crash due to all the memory on the sever to be consumed by 1 application.
    • So the normal way of collecting the dump files would not work as there is no more  memory available for the application to generate such a dump.

    In this case you should use ProcDump

    Or if the Application does not have a built-in dump creator for Unhandled Exceptions. use ProcDump

    To use ProcDump, you need to download the tool:

    • Open CMD navigate to where the ProcDump tools have been extracted to, then run the below commands when the memory usage is at its peak (VSG worker= 1Gig/1024MB, VSG Connector "Proxy" = 100MB).
    • Please keep in mind that VSG is a 64bit application therefore you must do a 64bit dump (collecting a 32bit dump for a 64bit application or visa versa is useless)
    To create a dump for the Connector use: procdump 64.exe -ma vsg_connector.exe C:\VSG-Connector.dmp
    To create a dump for the Worker use| procdump 64.exe -ma vsg_worker.exe C:\VSG-Worker.dmp


    • It is also possible to add the -e argument for Unhandled Exceptions
    • You can specify at which point the dump will be created - memory consumption using the -m argument and the amount of memory in MB
    • You can specify the Process ID "PID" instead of the Process name, for this we recommend to use Windows Task Manager to identify which PID match's which Process
    • If you do not specify the dump file name it will be defaulted to:


    • Due to the fact that VSG creates instances of the same executable this would lead in to much data as all instances will be collected in 1 big dump, making it almost impossible to analyze.
      So we need to identify each instance using the PID (Process ID)

      Note that the PID will be different on each system and each time you restart the Server.

    • Open Task Manager
      • On the Fist TAB = Processes, you will see all the VSG Instances and the memory used by the Connecter service "Video Streaming Gateway Proxy" and the Worker service "Bosch Video Streaming Gateway" below it:Central_Support_2-1663932487039.png
      • If you right click on the Process, choose Details, there you will see all connectors vsg_connector.exe""and worker "VSG_worker.exe" with their individual memory usage and their respective PID's.

      • Lastly when you go the the Services tab, you can identify which instance (Connector: "Bosch Video Streaming Gateway #" and Worker: "Bosch VSG Worker Instance #") belongs to which PID (not so obvious from the Details tab)


    • So if you need to create a dump for e.g. Instance 2 using the above screen shots for the PID's
      • Connector instance 2 = PID 2400
      • Worker instance 2 = PID 8648
    • Using the above data you can build the command as follows to generate the dump when the memory for the worker reaches 1 Gig (1024MB) or the Connector reaches 100 MB

      • vsg_connector2 reaches memory usage above 100MB (procdump 64.exe -m 100 -ma 2400 C:\MSException_vsg_connector2.dmp)
      • vsg_worker2 reached memory usage above 1024MB (procdump 64.exe -m 1024 -ma 8648 C:\MSException_vsg_worker2.dmp)


    Version history
    Revision #:
    3 of 3
    Last update:
    a week ago
    Updated by:
    Labels (6)