RPC-Service - ManagerDiagnostic
Der ManagerDiagnostic ist ein RPC-Dienst (Remote Procedure Call), der für alle Managertypen außer Data-Manager verfügbar ist. Er ermöglicht das Abrufen von Diagnosedaten mit Flags in C++, C#, Node.js oder CTRL.
Übersicht
Der ManagerDiagnostic ist ein RPC-Dienst für alle WinCC OA-Manager mit Ausnahme des Data-Managers. Dieser Dienst ist über mehrere Sprachen
zugänglich, darunter C++, C#, Node.js und CTRL-Skripting.
Clients senden Anfragen an diesen Dienst mit bestimmten Report-Flags, um Diagnosen
zu erhalten. Diese Flags können als String oder dyn_string
übergeben werden. Der Dienst antwortet mit einer MappingVar Struktur,
welche die angeforderten Daten enthält.
Funktionen
| Funktion | Beschreibung |
|---|---|
getMetrics() |
Gibt einen |
getMetricData(reportFlags) |
Fordert Metrikdaten auf der Grundlage der übergebenen
|
Beispiel (CTRL)
#uses "vrpc"
void main()
{
unsigned managerType = EVENT_MAN; // Specify the manager type - see chapter myManType()
int managerNumber = 0; // Specify the manager number - This is the number of the manager for which you want to call up the procedure.
// For the administration of managers, see chapter Managerverwaltung.
DebugN("The Service Manager that is used: " + "(" + managerType + ")" + ", Number: " + managerNumber);
// Run the manager
run(managerType, managerNumber);
}
void run(unsigned managerType, int managerNumber)
{
// Create a client context
VrpcClientContext clientContext = VrpcClientContext();
// Create a stub
VrpcStubOptions options = VrpcStubOptions();
if (managerType != NO_MAN && managerNumber != -1)
options.withManagerSpecificService(managerType, managerNumber);
// ManagerDiagnostic is the name of the vRPC Service
shared_ptr<VrpcStub> stub = new VrpcStub("ManagerDiagnostic", options);
try
{
VrpcResponseData responseData = stub.callFunction("getMetrics", clientContext, "");
// Check and print the response
anytype response = responseData.getResponse();
DebugN(response);
// Send a request to the service
VrpcResponseData responseData = stub.callFunction("getMetricData", clientContext, makeDynString("DISPATCH"));
//VrpcResponseData responseData = stub.callFunction("getMetricData", clientContext, makeDynString("DPIDENTIFICATION", "DPCONNECTS,SUMMARY"));
//VrpcResponseData responseData = stub.callFunction("getMetricData", clientContext, "MSGQUEUE");
// Check and print the response
anytype response = responseData.getResponse();
DebugN(response);
}
catch
{
VrpcException exception = vrpcGetLastException();
DebugN("Exception: " + exception.toString());
}
}
Hinweise
- Stellen Sie immer sicher, dass der angegebene Manager aktiv ist.
- Verwenden Sie die Funktion
getMetrics(), um verfügbare Flags zu prüfen. - Behandlung von Ausnahmen in angemessener Weise, um Störungen bei der Diagnose zu vermeiden
