Trace-Modus für Funktionen des CyberEnterprise®
Für einige komplexe Funktionen des CyberEnterprise® kann ein Trace-Modus aktiviert werden.
Die Trace-Ausgabe zeigt vor allem die von der Verarbeitung betroffenen Objekte.
Zur Zeit kann der Trace-Modus für die Funktion Process() des Transaktionsmanagers und alle Resolve3() - Funktionen der von CX_ALLOCATION abgeleiteten Klassen aktiviert werden.
Die Trace-Information werden immer in ein File geschrieben. Zusätzlich kann man eine Message anmelden und so die Trace-Texte sofort darstellen.
Funktionen des Function-Trace-Managers
Name | Parameter | Rückgabewert | |
---|---|---|---|
Enable | Funktionsname *) | - | aktiviert den Trace-Modus für diese Funktion |
Disable | Funktionsname *) | - | deaktiviert den Trace-Modus für diese Funktion |
SetMessage | Message | - | für jede Trace-Ausgabe wird diese Message gefeuert, mit dem Trace-Text als CX_STRING auf dem Stack |
FileName | MA | - | mit deser MA-Funktion kann der Filname des Trace-Files dargestellt / geändert werden; Vorgegeben ist CX_SYSTEMOUT\function.trc |
*) zur Zeit unterstützt: "Process" und "Resolve3"
InstantView®-Codebeispiel für die Anwendung des Function-Trace-Managers:
Module(funtrace) [ Msg(FUNCTION_TRACE, TRACE_EVENT) Var(traceMgr) INITIALIZE: GetManager(TRACE) -> traceMgr // get function trace manager (TRACE_EVENT) traceMgr Call(SetMessage) // set message FUNCTION_TRACE: OpenWindow(win) ] Window(win, 23, 23, 700, 99, "Function Tracer") { Menu { Item(SELECT_MULTIPLE, "Trace Options") { Item(CHECK_MARK, "CX_TXN_MANAGER::Process()") // toggle trace mode [ SELECT: "Process" traceMgr GetValue if Call(Enable) else Call(Disable) traceMgr FillWindow(, this) // display current state of function trace manager ] Item(CHECK_MARK, "CX_xxxxx_ALLOCATION::Resolve3()") // toggle trace mode [ SELECT: "Resolve3" traceMgr GetValue if Call(Enable) else Call(Disable) traceMgr FillWindow(, this) // display current state of function trace manager ] } } ObjectList(trace, 3, 3, 1, 1) [ INITIALIZE: [ "CX_STRING::this" COLOR BLUE ] SetFormat 1 FillMode TRACE_EVENT: FillObox Refresh // display Trace output ] Statusbar { String(CX_FUNCTION_TRACE_MGR::this, 2, 1, 300) [ // display initial state of function trace manager INITIALIZE: traceMgr FillWindow(, this) ] Attach(this, RIGHT, STRETCH, 2) } Attach(trace, RIGHT, STRETCH, 3) Attach(trace, BOTTOM, STRETCH, 3) } Den Namen des Output-Files ändert man einfach mit: String(CX_FUNCTION_TRACE_MGR::FileName(), 80, 7, 200)