Abrufen von Empfehlungen zur Statuskorrektur über eine Clientanwendung

Empfehlungen können über die API db2GetRecommendations in einer C- oder C++-Anwendung abgefragt werden.

Vorbereitende Schritte

Es muss eine Zuordnung zu einer Instanz hergestellt sein, damit eine Diagnosemomentaufnahme erfasst werden kann. Liegt keine Instanzzuordnung vor, wird eine Standardinstanzzuordnung hergestellt. Wenn Sie Empfehlungen zu einer fernen Instanz abfragen möchten, müssen Sie zunächst eine Zuordnung zu der betreffenden Instanz herstellen.

Informationen zu dieser Task

Wenn Sie die API db2GetRecommendations verwenden, werden die Empfehlungen in einem XML-Dokument zurückgegeben, für das Folgendes gilt:
  • Das Dokument wurde gemäß dem XML-Schema für Empfehlungen zur Statuskorrektur DB2RecommendationSchema.xsd erstellt. Dieses Schema befindet sich im Verzeichnis SQLLIB im Unterverzeichnis MISC.
  • Das Dokument ist in UTF-8 codiert und enthält Text in der Clientsprache.
  • Das Dokument ist wie eine Sammlung von zu Gruppen zusammengefassten Empfehlungen aufgebaut, wobei jede einzelne Empfehlung ein zu behebendes Problem (einen Diagnoseanzeiger) beschreibt und mindestens eine Empfehlung zum Beheben der Bedingung, die der Diagnoseanzeiger angibt, bereitstellt. Nähere Details zu den Informationen, die Sie dem Dokument entnehmen können, können Sie der Schemadefinition entnehmen.
Alle über den Befehlszeilenprozessor verfügbaren Informationen sind auch in dem zurückgegebenen XML-Dokument mit den Empfehlungen enthalten.

Gehen Sie zum Abrufen von Empfehlungen zur Statuskorrektur mit einer Clientanwendung wie folgt vor:

Prozedur

  1. Fügen Sie die Kopfdatendateien 'sqlmon.h' und 'db2ApiDf.h' ein. Diese befinden sich im Verzeichnis sqllib\include .
    #include <db2ApiDf.h>
    #include <sqlmon.h>
    
  2. Deklarieren Sie 'sqlca' und die Struktur 'db2GetRecommendationsData'.
    struct sqlca sqlca ;
    db2GetRecommendationsData recData ; 
    
    memset( &sqlca, '\0', sizeof( struct sqlca ) ) ;
    memset( &recData, '\0', sizeof( db2GetRecommendationsData ) ) ;
    
  3. Füllen Sie die Struktur 'db2GetRecommendationsData' mit Informationen zu dem Alert, zu dem Sie Empfehlungen abrufen möchten. Im folgenden Codeauszug werden Empfehlungen für den Diagnoseanzeiger db2.db_heap_util in der Beispieldatenbank abgefragt.
    recData.iSchemaVersion = DB2HEALTH_RECSCHEMA_VERSION8_2 ;
    recData.iNodeNumber = SQLM_CURRENT_NODE ;
    recData.iIndicatorID = SQLM_HI_DATABASE_HEAP_UTILIZATION  ; 
    recData.iObjType = DB2HEALTH_OBJTYPE_DATABASE ; 
    recData.piDbName = "SAMPLE" ;
    
  4. Rufen Sie die API db2GetRecommendations auf, um Empfehlungen für einen Alert zu diesem Diagnoseanzeiger für die angegebene Datenbank abzurufen.
    db2GetRecommendations(  db2Version820, &recData, &sqlca ) ; 
    
  5. Prüfen Sie den SQLCODE-Wert in 'sqlca' auf aufgetretene Fehler. War der API-Aufruf erfolgreich, können Sie das XML-Empfehlungsdokument, das im Feld 'poRecommendation' der Struktur 'db2GetRecommendationsData' zurückgegebenen wird, verarbeiten. Extrahieren Sie mit einem XML-Parser Ihrer Wahl die erforderlichen Elemente und Attribute. Weitere Informationen zu den Informationen, die aus dem XML-Dokument abgerufen werden können, finden Sie im XML-Schema DB2RecommendationSchema.xsd im Verzeichnis sqllib\misc .
  6. Geben Sie über die API 'db2GetRecommendations' zugeordneten Speicher frei. Dadurch wird das im Feld 'poRecommendation' der Struktur 'db2GetRecommendationsData' zurückgegebene Empfehlungsdokument freigegeben.
    db2GetRecommendationsFree( db2Version820, &recData, &sqlca ); 
    

Ergebnisse

Der zuvor angegebene Code wird meistens mit einem Aufruf an die Momentaufnahmen-APIs kombiniert, um eine Diagnosemomentaufnahme zu erstellen, da Empfehlungen im Allgemeinen abgefragt werden, wenn man feststellt, dass ein Diagnoseanzeiger einen Alertstatus eingenommen hat.