Image, Audio und Video Extender Verwaltung und Programmierung


Datenbanken aktivieren

Verwenden Sie die API DBxEnableDatabase (wobei x den Wert a für Audio, i für Abbild (Image) oder v für Video hat) oder den Befehl ENABLE DATABASE, um eine Datenbank für einen DB2 Extender zu aktivieren.

Wenn Sie eine Datenbank aktivieren, führt der Extender folgende Aktionen aus:

Beim Aktivieren einer Datenbank müssen Sie außerdem Tabellenbereiche angeben, die die Tabellen zur Verwaltungsunterstützung (und deren Indizes) für die Datenbank halten sollen. Für einen oder mehrere der Tabellenbereiche kann ein Nullwert angegeben werden. In diesem Fall wird ein Standardtabellenbereich verwendet.

Zum Aktivieren einer Datenbank benötigen Sie DBA-Berechtigung.

Nur EEE: Beim Aktivieren einer Datenbank für einen Extender in einer partitionierten Umgebung sollte der angegebene Tabellenbereich in einer Knotengruppe definiert sein, die alle Knoten im partitionierten Datenbanksystem umfaßt. Außerdem sollte sich der Tabellenbereich in derselben Knotengruppe befinden wie die Benutzertabelle.

Beispiele

In den folgenden Beispielen wird eine Datenbank zum Halten von Abbilddaten aktiviert, wobei der Standardtabellenbereich verwendet wird.

Verwendung der API: Der Code in der folgenden Abbildung stellt eine Verbindung zu einer bestehenden Datenbank her, bevor sie aktiviert wird. Dieses Beispiel ist unter Verwendung der DB2 Call Level Interface geschrieben. Es enthält unter anderem Definitions- und Fehlerprüfcode. Das vollständige Beispielprogramm befindet sich in der Datei ENABLE.C im Unterverzeichnis SAMPLES.

Abbildung 10. Beispielcode, mit dem eine Datenbank aktiviert wird

 
/*---- Set-up -------------------------------------------------*/
#include <stdio.h>
#include <stlib.h>
#include <string.h>
#include "dmbimage.h"       /* image extender function prototypes (DBi) */
#include "utility.h"        /* utility functions */
 
#define MMDB_ERROR_MSG_TEXT_LEN         1000
#define SERVER_IS_DB2390  (strcmp(dbms, "DB2")==0 || strcmp(dmbs, "DSN06010")==0)
 
int
main(int argc, char *argv[])
{
        SQLHENV henv = SQL_NULL_HENV;
        SQLHDBC hdbc = SQL_NULL_HDBC;
        SQLHSTMT hstmt = SQL_NULL_HSTMT;
        SQLCHAR uid[18+1];
        SQLCHAR pwd[30+1];
        SQLCHAR dbname[SQL_MAX_DSN_LENGTH+1];
        SQLCHAR buffer[500];
        SQL SMALLINT dbms_sz = 0;
        char    dbms[20];
 
        SQLRETURN rc = SQL_SUCCESS;
        SQLINTEGER sqlcode = 0;
        char errorMsgText[MMDB_ERROR_MSG_TEXT_LEN+1];
        char *program = "enable;
        char *step;
         
 
/*---- Prompt for database name, userid, and password ----*/
        if (argc > 5) ||  (argc >=2 && strcmp(argv[1],"?")== 0))
          {
            printf("Syntax for enable - enabling a DB2 UDB database: \n"
                   "   enable database_name userid password\n");
      exit(0);
          }
 
        if (argc == 4) {
          strcpy((char *)dbname, argv[1]);
          strcpy((char *)uid   , argv[2]);
          strcpy((char *)pwd   , argv[3]);
          }
        else {
          printf("Enter database name:\n");
          gets((char *) dbName);
          printf("Enter userid:\n");
          gets((char *) uid);
          printf("Enter password:\n");
          gets((char *) pwd);
          }
/*----- connect to the database -----------------------------------------------*/
         rc = cliInitialize(&henv, &hdbc, dbname, uid, pwd);
         cliCheckError(henv, hdbc, SQL_NULL_HSTMT, rc);
         if (rc < 0) goto SERROR;
 
/*----- find out if application is connected to DB2/UDB or DB2/390?------------*/
         rc = SQLGetInfo(hdbc, SQL_DBMS_NAME, (SQLPOINTER) &dbms,
                         sizeof(dbms), &dbms_sz);
         cliCheckError(henv, hdbc, SQL_NULL_HSTMT, rc);
         if (rc < 0) goto SERROR;
  
/****** enable server for image extender ****************************************/
     if (!SERVER_IS_DB2390)
           {
            printf("%s: Enabling database......\n", program);
           }
         printf("%s: This may take a few minutes, please wait......\n", program);
 
     if (!SERVER_IS_DB2390)
           {
            step="DBiEnableDatabase with NULL tablespace"
            rc=DBiEnableDatabase(NULL);
           }
     if (rc < 0) {
                printf("%s: %s failed!\n", program, step);
            printMsg(rc);
            DBiGetError(&sqlcode, errorMsgText);
           if (sqlcode)
              printf("sqlcode=%i, ",sqlcode);
         }else if (rc > 0) {
            printf("%s: %s, warning detected.\n", program, step);
            printMsg(rc);
            DBiGetError(&sqlcode, errorMsgText);
            printf("warning MsgText=%s\n", errorMsgText);
         } else
            printf("%s: %s OK\n", program, step);
/****** end of enable server *************************************************/
 

Verwendung der db2ext-Befehlszeile: In diesem Beispiel besteht bereits eine Verbindung zur Datenbank.

enable database for db2image


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]