Tag: Getthreadinfo

  • Getthreadinfo vervangt Lsi_info

    Getthreadinfo vervangt Lsi_info

    Een van de dingen die ik mij zelf heb aangeleerd bij het maken van een applicatie is altijd gebruik te maken van een duidelijke foutafhandeling waarbij Lsi_info vaak werd gebruikt.

    Meestal zag die code er ongeveer uit als:

    Function doeDingen() As Boolean
    On Error Goto ErrorHandler
    ‘Hier komt de code ….

    Exit Function
    ErrorHandler:
    MsgBox Lsi_info(2) & ” : Error ” & Error & ” (” & Err & “) on line ” & Erl & “.”
    Exit Function
    Resume Next
    End Function

    Lsi_info

    Lsi_info was in de vroegere versies van Lotus Notes eigenlijk de enige methode om informatie te krijgen over de huidige thread.

    Een aantal regelmatig gebruikte gegevens waren:

    Lsi_info(1) ‘Huidige regel in de Lotusscript Source Code
    Lsi_info(2) ‘Huidige functie of sub
    Lsi_info(3) ‘Huidige module
    Lsi_info(6) ‘LotusScript versie
    Lsi_info(9) ‘ Taal code
    Lsi_info(11) ‘Totaal aantal code regels van de huidige module
    Lsi_info(12) ‘Naam van de aanroepende functie of sub
    Lsi_info(13) ‘Naam van de aanroepende module
    Lsi_info(14) ‘Lijst van alle modules die aangeroepen zijn tot dit moment
    Lsi_info(50) ‘ LotusScript Geheugen gealloceerd
    Lsi_info(51) ‘LotusScript Geheugen gealloceerd van het besturingssysteem
    Lsi_info(52) ‘LotusScript geheugen blokken in gebruik

    IBM beweerd echter dat Lsi_info niet gebruikt mag worden omdat dit alleen bedoeld is voor intern gebruik en mogelijk voor een instabiel systeem kan zorgen, met name op 64Bit systemen.
    Daarom heeft men in de meer recentere versies van Notes een nieuwe methode ter beschikking gesteld: GetThreadInfo.

    GetThreadInfo

    De aanbevolen schrijfwijze zou dan ook worden:

    Function doeDingen() As Boolean
    On Error GoTo ErrorLabel
    ‘En hier komt de code weer ….
    Dim i As integer
    i = Evaluate(“@Error”,Nothing)
    ExitLabel:
    Exit Function

    ErrorLabel:
    MsgBox GetThreadInfo(1) & ” : Error ” & Error & ” (” & Err & “) On Line ” & Erl & “.”, 16 , “Error”
    Resume ExitLabel
    End Function

    DOEDINGEN foutmelding met GetThreadInfo

    De aanroepen die ondersteund worden zijn:

    Getthreadinfo(0) ‘LSI_THREAD_LINE: Huidige regel in de Lotusscript Source Code
    Getthreadinfo(1) ‘LSI_THREAD_PROC: Huidige functie of sub
    Getthreadinfo(2) ‘LSI_THREAD_MODULE: Huidige module
    Getthreadinfo(3) ‘LSI_THREAD_VERSION: LotusScript versie
    Getthreadinfo(4) ‘LSI_THREAD_LANGUAGE: Taal code
    Getthreadinfo(5) ‘LSI_THREAD_COUNTRY: Regionale instelling
    Getthreadinfo(6) ‘LSI_THREAD_TICKS:Krijg actuele kloktikken
    Getthreadinfo(7) ‘LSI_THREAD_TICKS_PER_SEC: Krijg kloktikken per seconde (alleen ondersteund op platforms die parallelle verwerking van primitieven ondersteunen)
    Getthreadinfo(8) ‘LSI_THREAD_PROCESS_ID: Huidige proces-ID ophalen (alleen ondersteund op platforms die primitieven voor parallelle verwerking ondersteunen)
    Getthreadinfo(9) ‘LSI_THREAD_TASK_ID: Huidige taak-id ophalen (alleen ondersteund op platforms die primitieven voor parallelle verwerking ondersteunen)
    Getthreadinfo(10) ‘LSI_THREAD_CALLPROC: Naam van de aanroepende functie of sub
    Getthreadinfo(11) ‘LSI_THREAD_CALLMODULE: Naam van de aanroepende module

    Bronnen:

    Calling the unsupported LotusScript function LSI_Info may cause a server crash

    https://help.hcl-software.com/dom_designer/14.5.0/basic/LSAZ_GETTHREADINFO.html