[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2009
    Beiträge
    391

    QSMRTVBTC - Cache Battery Information API

    Hat jemand zufällig ein Beispielprogramm oder wenigstens die das fertige Procedure-Interface? In der QSYSINC hab ich nix dazu gefunden. Würde mir etwas Zeit sparen.

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    2.077

  3. #3
    Registriert seit
    Feb 2009
    Beiträge
    391
    Nope,
    die passende Datei finde ich nicht, Du vielleicht?
    der Artikel selbst ist auch nicht mehr online.

  4. #4
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Vielleicht versuchst Du mal den Carsten Flensburg zu erreichen.

  5. #5
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von Chris.jan Beitrag anzeigen
    Hat jemand zufällig ein Beispielprogramm oder wenigstens die das fertige Procedure-Interface? In der QSYSINC hab ich nix dazu gefunden. Würde mir etwas Zeit sparen.
    Vielleicht hilft Dir folgendes geschwätzige CL weiter, das ich mal vor Ewigkeiten gebastelt habe...

    -h

    PHP-Code:
    PGM
                 DCL        
    VAR(&RCVVARTYPE(*CHARLEN(1024VALUE(' ')
                 
    DCL        VAR(&RCVVARSIZTYPE(*INTLEN(4VALUE(1024)
                 
    DCL        VAR(&FMTNAMETYPE(*CHARLEN(8) +
                              
    VALUE('CBTT0100')
                 
    DCL        VAR(&TIMZONTYPE(*CHARLEN(10VALUE('*SYS')
                 
    DCL        VAR(&ERRCDETYPE(*CHARLEN(16/* ERRC0100 */

                 /* Wo in Datenstruktur wollen wir Daten holen? */
                 /* wird je Unterstruktur verschoben */
                 
    DCL        VAR(&POINTTYPE(*INTLEN(4VALUE(0)

                 
    /* Datenstruktur ERRC0100 */
                 
    DCL        VAR(&ERRIDTYPE(*CHARSTG(*DEFINEDLEN(7) +
                              
    DEFVAR(&ERRCDE 9)

                 
    /* Datenstruktur CBTT0100 */
                 
    DCL        VAR(&BYTRETTYPE(*INTSTG(*DEFINEDLEN(4) +
                              
    DEFVAR(&RCVVAR 1/* Bytes returned */
                 
    DCL        VAR(&BYTAVLTYPE(*INTSTG(*DEFINEDLEN(4) +
                              
    DEFVAR(&RCVVAR 5/* Bytes available */
                 
    DCL        VAR(&NUMENTTYPE(*INTSTG(*DEFINEDLEN(4) +
                              
    DEFVAR(&RCVVAR 9/* Number of entries */
                 
    DCL        VAR(&OFFENTTYPE(*INTSTG(*DEFINEDLEN(4) +
                              
    DEFVAR(&RCVVAR 13/* Offset to first +
                              entry */
                 
    DCL        VAR(&LPARNBRTYPE(*INTSTG(*DEFINED) +
                              
    LEN(2DEFVAR(&RCVVAR 73/* LPAR-Number */
                 
    DCL        VAR(&LPARNAMETYPE(*CHARSTG(*DEFINED) +
                              
    LEN(48DEFVAR(&RCVVAR 75/* Partition +
                              name */
                 /* Unterstruktur je IOA */
                 
    DCL        VAR(&IOAINFOTYPE(*CHARLEN(160)
                 
    DCL        VAR(&IOAENTLENTYPE(*INTSTG(*DEFINED) +
                              
    LEN(2DEFVAR(&IOAINFO 1)
                 
    DCL        VAR(&IOAENTNUMTYPE(*INTSTG(*DEFINED) +
                              
    LEN(2DEFVAR(&IOAINFO 3)
                 
    DCL        VAR(&IOATYPETYPE(*CHARSTG(*DEFINED) +
                              
    LEN(4DEFVAR(&IOAINFO 5)
                 
    DCL        VAR(&IOAMODELTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(4DEFVAR(&IOAINFO 9)
                 
    DCL        VAR(&IOASERIALTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(15DEFVAR(&IOAINFO 13)
                 
    DCL        VAR(&IOARSCNAMTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(10DEFVAR(&IOAINFO 28)
                 
    DCL        VAR(&IOAPHYLOCTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(79DEFVAR(&IOAINFO 38)
                 
    DCL        VAR(&IOAFRAMETYPE(*CHARSTG(*DEFINED) +
                              
    LEN(4DEFVAR(&IOAINFO 117)
                 
    DCL        VAR(&IOACRDPOSTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(3DEFVAR(&IOAINFO 121)
                 
    DCL        VAR(&IOAVERSIONTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(1DEFVAR(&IOAINFO 124)
                 
    DCL        VAR(&IOAERRORTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(1DEFVAR(&IOAINFO 125)
                 
    DCL        VAR(&IOABATSTATYPE(*CHARSTG(*DEFINED) +
                              
    LEN(1DEFVAR(&IOAINFO 126)
                 
    DCL        VAR(&IOAMAINTTYPE(*CHARSTG(*DEFINED) +
                              
    LEN(1DEFVAR(&IOAINFO 127)
                 
    DCL        VAR(&IOACDATATYPE(*CHARSTG(*DEFINED) +
                              
    LEN(1DEFVAR(&IOAINFO 128)
                 
    DCL        VAR(&IOADTWTYPE(*INTSTG(*DEFINEDLEN(2) +
                              
    DEFVAR(&IOAINFO 129)
                 
    DCL        VAR(&IOADTETYPE(*INTSTG(*DEFINEDLEN(2) +
                              
    DEFVAR(&IOAINFO 131)
                 
    DCL        VAR(&IOAPONTYPE(*INTSTG(*DEFINEDLEN(2) +
                              
    DEFVAR(&IOAINFO 133)
                 
    DCL        VAR(&IOAPONADJTYPE(*INTSTG(*DEFINED) +
                              
    LEN(2DEFVAR(&IOAINFO 135)

    /* allgemeines */
                 
    DCL        VAR(&MESSAGETYPE(*CHARLEN(50)
                 
    DCL        VAR(&MSGTYPE(*CHARLEN(30)
                 
    DCL        VAR(&COUNTDOWNTYPE(*INTLEN(4VALUE(0)
                 
    DCL        VAR(&HEX01TYPE(*CHARLEN(1VALUE(X'01')
                 
    DCL        VAR(&HEX02TYPE(*CHARLEN(1VALUE(X'02')


                 
    CALLSUBR   SUBR(GET)


    /* ========================================================= */
    /* ***** GET ***** */
                 
    SUBR       SUBR(GET)
                 
    CALL       PGM(QSMRTVBTCPARM(&RCVVAR &RCVVARSIZ +
                              &
    FMTNAME &TIMZON &ERRCDE)

                 
    CHGVAR     VAR(&MESSAGEVALUE('Error code = ' *TCAT +
                              &
    ERRID)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)

                 
    CHGVAR     VAR(&MSGVALUE(&NUMENT)
                 
    CHGVAR     VAR(&MESSAGEVALUE('Number of entries: ' +
                              *
    TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&COUNTDOWNVALUE(&NUMENT)

    /* OFFENT ist die dezimale Position auf den (ersten) Eintrag */
                 
    CHGVAR     VAR(&MESSAGEVALUE(&OFFENT)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)

                 
    CHGVAR     VAR(&POINTVALUE(&OFFENT)
                 
    CHGVAR     VAR(&POINTVALUE(&POINT 1)

                 
    DOFOR      VAR(&COUNTDOWNFROM(&NUMENTTO(1BY(-1)
    /* Anzeigen der IOA-Infos ab Byte "&point" */
                 
    CALLSUBR   SUBR(SHOWIOA)
                 
    CHGVAR     VAR(&POINTVALUE(&POINT + &IOAENTLEN)
                 
    ENDDO

                 ENDSUBR

    /* ***** SHOWIOA ***** */
                 
    SUBR       SUBR(SHOWIOA)
                 
    CHGVAR     VAR(&MSGVALUE(&POINT)
                 
    CHGVAR     VAR(&MESSAGEVALUE('Substruktur ab: ' +
                              *
    TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)

                 
    /* Unterstruktur in IOAINFO schieben */
                 
    CHGVAR     VAR(&IOAINFOVALUE(%SST(&RCVVAR &POINT 160))
                 
    CHGVAR     VAR(&MSGVALUE(&IOAENTLEN)
                 
    CHGVAR     VAR(&MESSAGEVALUE('L‰nge Substruktur: ' +
                              *
    TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    SNDMSG     MSG('Ausgabe der Unterstruktur:') +
                              
    TOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MESSAGEVALUE(%SST(&IOAINFO 1 50))
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MESSAGEVALUE(%SST(&IOAINFO 51 50))
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MESSAGEVALUE(%SST(&IOAINFO 101 50))
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)

                 
    /* auswerten */
                 
    CHGVAR     VAR(&MSGVALUE(&IOAENTLEN)
                 
    CHGVAR     VAR(&MESSAGEVALUE('EntryLen:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOAENTNUM)
                 
    CHGVAR     VAR(&MESSAGEVALUE('EntryNum:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOATYPE)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Type:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOAMODEL)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Model:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOASERIAL)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA SerNr:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOARSCNAM)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Rsc  :' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(%SST(&IOAPHYLOC 1 30))
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Loc  :' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOAFRAME)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Frame:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOACRDPOS)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA CPos :' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)

                 IF         
    COND(&IOAERROR *EQ &HEX01THEN(DO)
                 
    CHGVAR     VAR(&MESSAGEVALUE('WARNING!')
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    ENDDO
                 
    IF         COND(&IOAERROR *EQ &HEX02THEN(DO)
                 
    CHGVAR     VAR(&MESSAGEVALUE('ERROR!')
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    ENDDO

                 CHGVAR     
    VAR(&MSGVALUE(&IOADTW)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA DTW  :' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 IF         
    COND(&IOADTW *LT 40THEN(DO)
                 
    CHGVAR     VAR(&MESSAGEVALUE('Order new battery!')
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    ENDDO
                 CHGVAR     
    VAR(&MSGVALUE(&IOADTE)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA DTE  :' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOAPON)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Pon  :' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)
                 
    CHGVAR     VAR(&MSGVALUE(&IOAPONADJ)
                 
    CHGVAR     VAR(&MESSAGEVALUE('IOA Pon A:' *TCAT &MSG)
                 
    SNDMSG     MSG(&MESSAGETOUSR(*REQUESTER)

                 
    ENDSUBR
    /* ========================================================== */
    ENDPGM 
    www.RZKH.de
    IBM Champion 2022, 2023, 2024
    IBM i Community Advocate https://www.youracclaim.com/badges/6...c-7ad4ba147af6
    Common / CEAC
    http://pub400.com

  6. #6
    Registriert seit
    Feb 2009
    Beiträge
    391
    Danke!, teste ich mal.

Similar Threads

  1. Neue Cache Batterie plötzlich leer (2748)
    By schatte in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 08-08-18, 18:03
  2. SQL Cache Resultsets
    By Fuerchau in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 21-03-17, 08:39
  3. SQL Cache löschen
    By Fuerchau in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 05-08-14, 21:54
  4. Web-Server für Information Center
    By Der Gute in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-06-02, 15:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •