DB2* Query Patroller* - Remarques sur le produit


Table des matières

Prérequis pour l'installation de Query Patroller, Version 8

Définition de DYN_QUERY_MGMT pour l'installation et l'utilisation de Query Patroller

Remarques supplémentaires sur la migration à partir de Query Patroller, version 7

Restriction concernant la génération de données historiques avec des instructions UPDATE ou DELETE sur une position

Suppression des prérequis concernant le démarrage de Query Patroller (AIX)

Utilisation de DB2 Governor avec Query Patroller

  • Effets des actions de DB2 Governor sur les processus Query Patroller
  • Exécution de Query Patroller et DB2 Governor sur les mêmes applications émettrices
  • Correction apportée à l'aide concernant la ligne de commande Query Patroller

    Reprise sur incident de requêtes Query Patroller

    Installation du serveur Query Patroller

    Utilisation de Query Patroller avec le concentrateur de connexions DB2

    Objets DBCLOB non disponibles dans la boîte de dialogue Affichage des résultats

    Nécessité d'exécuter la commande qpsetup sur chaque base de données

    Différenciation des majuscules et des minuscules dans les ID profil de Query Patroller

    Aucun profil opérateur nécessaire pour les utilisateurs ayant les droits DBADM

    Application de filtres pour l'affichage d'un nombre important de requêtes

    Modification de la description de la commande LIST QUERIES

    Modification de la description des commandes qpstart et qpsetup

    Recommandations pour la génération de données historisées

    Arrêt du générateur de données historisées

    Les requêtes exécutées en arrière-plan une commande LOAD

    Erreurs d'insuffisance de mémoire avec Query Controller ou le Centre Query Patroller

    Remarques

  • Marques

  • Prérequis pour l'installation de Query Patroller, Version 8

    Si vous installez Query Patroller, Version 8 sur DB2 Universal Database Enterprise Server Edition, Version 8.1.2, vous devez également avoir installé le FixPak 2+. Cela signifie que vous devez avoir installé DB2 Version 8.1.2 (aussi appelé FixPak 2) et le FixPak 2+ avant de procéder à l'installation de Query Patroller.

    Si vous disposez d'une version ultérieure de DB2 Enterprise Server Edition, vous n'avez pas besoin de ce FixPak supplémentaire.

    DB2 Version 8.1.2 (Fixpak 2) et FixPak 2+ sont tous deux disponibles sur la page de téléchargement du support technique DB2, à l'adresse suivante : http://www-3.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/download.d2w/report

    Si vous tentez d'installer Query Patroller, Version 8 sur DB2 Enterprise Server Edition, Version 8.1.2 sans avoir installé FixPak 2+, vous recevrez des messages d'erreur indiquant que vous ne disposez pas du niveau correct de DB2 Universal Database pour pouvoir installer le produit.


    Définition de DYN_QUERY_MGMT pour l'installation et l'utilisation de Query Patroller

    Afin que Query Patroller puisse intercepter et gérer des requêtes, le paramètre DYN_QUERY_MGMT doit être défini sur ENABLE. Cependant, ce paramètre doit être défini sur DISABLE avant l'installation de Query Patroller pour éviter l'interception de toute requête interne exécutée par le programme d'installation.

    Par défaut, ce paramètre est défini sur DISABLE.


    Remarques supplémentaires sur la migration à partir de Query Patroller, version 7

    Lors de la migration d'un profil administrateur de la version 7 de Query Patroller vers la version 8, un profil opérateur est créé. Ce profil bénéficie automatiquement du niveau d'autorisation maximal sur tous les privilèges Query Patroller. Cependant, le profil migré n'obtient pas automatiquement les droits DBADM sur la base de données Query Patroller. Ainsi, le profil administrateur migré ne dispose pas des privilèges nécessaires pour la génération de données historiques ou pour la création, la mise à jour ou la suppression de profils opérateur. Si les utilisateurs ayant ce profil migré ont besoin d'effectuer ces opérations, il vous faut leur accorder manuellement les droits DBADM après la migration.


    Restriction concernant la génération de données historiques avec des instructions UPDATE ou DELETE sur une position

    Il est impossible de générer des données historiques pour des requêtes contenant des instructions UPDATE ou DELETE sur une position.


    Suppression des prérequis concernant le démarrage de Query Patroller (AIX)

    La documentation de Query Patroller contient les prérequis suivants concernant le démarrage de Query Patroller sur les systèmes d'exploitation AIX :

    Cette dépendance a été supprimée et les éléments ci-dessus ne sont plus des prérequis au démarrage de Query Patroller sur les systèmes d'exploitation AIX.


    Utilisation de DB2 Governor avec Query Patroller

    La fonction principale de Query Patroller est d'aider les administrateurs de base de données à gérer les requêtes lancées sur une base de données. La fonction principale de DB2 governor est d'aider les administrateurs à gérer les applications lancées sur une base de données.

    DB2 governor vous permet de définir des limites sur les ressources, telles que le nombre de verrous, la durée d'inactivité et la quantité d'UC utilisée par une application. DB2 governor peut être utilisé avec Query Patroller et fournir ainsi de nombreux contrôles administratifs. Afin de les utiliser correctement, il est primordial de comprendre comment ils agissent ensemble.

    Query Patroller est un système d'applications collaboratives s'exécutant sur une base de données. Data governor pouvant agir sur ces applications de la même manière que sur d'autres applications, il est nécessaire de suivre certaines instructions lors de la spécification de règles dans le fichier de configuration de Data Governor.

    Il est notamment important d'éviter d'y inclure les processus utilisés par Query Patroller. Query Patroller utilise javaw.exe, java.exe, db2fmp.exe et qp.exe sous Windows et java, db2fmp et qp sous UNIX pour effectuer ses opérations. Afin d'éviter que Data governor soit en conflit avec Query Patroller, n'insérez pas ces processus dans son fichier de configuration. Vérifiez également qu'il n'existe pas de règle générale interceptant toutes les applications par défaut. Insérez explicitement la liste d'applications que DB2 Governor doit intercepter.

    Remarque :
    En plus des règles agissant sur les processus de Query Patroller, il peut exister d'autres règles dans le fichier de configuration de Data Governor qui pourraient causer l'interception de Query Patroller.

    Si les processus utilisés par Query Patroller ne peuvent être exclus de l'interception par DB2 Governor, veuillez suivre les instructions ci-dessous lors de l'écriture des règles du fichier de configuration de Data Governor.


    Effets des actions de DB2 Governor sur les processus Query Patroller

    Si les actions prioritaires ou planifiées s'appliquent sur les processus Query Patroller, Query Patroller continuera à s'exécuter avec des ressources système réduites. Cependant, si une action forcée s'applique à un processus Query Patroller, ce dernier risque de se terminer. L'action forcée peut terminer un processus Query Patroller de façon normale, renvoyant un code retour SQL1224N, ou il peut provoquer une erreur d'application ou une fin anormale du processus DARI (SQL1131N) si le processus db2fmp est démarré avant que l'interruption ne soit provoquée. Query Patroller ne peut arrêter le processus db2fmp quand celui-ci est démarré. Le processus db2fmp essaiera de terminer l'exécution même après que Query Patroller ait fermé la connexion à la base de données dont le processus db2fmp a besoin pour s'exécuter correctement.

    Pour plus d'informations concernant le processus db2fmp, consultez Application Development Guide: Programming Client Applications.


    Exécution de Query Patroller et DB2 Governor sur les mêmes applications émettrices

    Query Patroller et DB2 Governor peuvent être utilisés tous les deux sur les mêmes applications émettrices de requêtes. Par exemple, une application émettrice telle que DB2 CLP (db2bp.exe sous Windows et db2bp sous UNIX) peut être considérée comme une application interceptée par Query Patroller et comprise dans le fichier de configuration de Data Governor.

    Query Patroller intercepte les requêtes au moment de l'émission, tandis que DB2 Governor intercepte les applications au moment de l'exécution des requêtes. L'émission des requêtes intervenant avant leur exécution, Query Patroller interceptera toujours les requêtes avant DB2 Governor. Ainsi, si Query Patroller met une requête en suspens ou en file d'attente, DB2 Governor doit attendre que la requête soit exécutée avant d'intercepter l'application qui a émis la requête.

    Une requête interceptée par Query Patroller peut être exécutée soit par l'application émettrice ou par une autre application appelée qprunquery.exe sous Windows et qprunquery sous UNIX. Si les préférences d'émission de l'émetteur spécifient que l'application émettrice doit attendre que les résultats de la requête soit renvoyés avant de libérer l'application, c'est l'application émettrice qui exécutera la requête. Si l'application émettrice est listée dans le fichier de configuration de DB2 governor, ce dernier l'interceptera en exécutant la requête.

    Si les préférences d'émission de l'émetteur spécifient que l'application émettrice doit être libérée et que les résultats de la requête doivent être envoyés dans une table de résultats, la requête sera exécutée par qprunquery. Dans ce cas, DB2 governor interceptera l'application seulement si qprunquery. est inclus dans le fichier de configuration de DB2 governor.


    Correction apportée à l'aide concernant la ligne de commande Query Patroller

    La documentation de Query Patroller indique qu'il est possible d'obtenir une liste des commandes Query Patroller à partir de la ligne de commande, en entrant "qp ?". Ceci est incorrect. Pour afficher une liste des commandes Query Patroller, vous devez entrer un nom de base de données de la façon suivante :

    qp -d nom_bdd ?
    

    ou

    qp -d nom_bdd help
    
    Remarque :
    Si le client exécutant la commande Query Patroller est un client éloigné, il est également nécessaire d'entrer les options d'utilisateur et mot de passe, comme suit :
    qp -d nom_bdd -u id_utilisateur -p motdepasse ?
    

    ou

    qp -d nom_bdd -u id_utilisateur -p motdepasse help
    

    Reprise sur incident de requêtes Query Patroller

    Dans certains cas, lorsque le statut d'une requête mise en file d'attente ou en cours de fonctionnement est modifié, il peut arriver que Query Patroller soit incapable d'enregistrer immédiatement le nouveau statut. Ceci arrive généralement dans une des situations d'arrêt anormal ci-dessous :

    Le serveur Query Patroller effectue une reprise sur incident automatique au démarrage et à intervalles réguliers. Il repère les requêtes mises en file d'attente ou en cours de fonctionnement et vérifie que ce statut est toujours correct. Si c'est le cas, la requête est gérée normalement, et si le serveur Query Patroller a été arrêté puis redémarré, la structure interne de données du serveur Query Patroller est restaurée. Cependant, s'il apparaît qu'une requête ayant le statut mise en file d'attente ou en cours de fonctionnement n'existe plus dans DB2 car le serveur DB2 a été arrêté puis redémarré, ou Query Patroller a été arrêté et n'a pu mettre à jour le statut de la requête, alors la reprise sur incident sera effectuée sur la requête. L'action de reprise varie selon que la requête envoie les résultats à une application cliente ou à une table de résultats DB2 :


    Installation du serveur Query Patroller

    Lorsque vous installez le serveur Query Patroller, veuillez prendre en compte les informations suivantes :


    Utilisation de Query Patroller avec le concentrateur de connexions DB2

    Quand Query Patroller place une requête dans la file d'attente, cette requête bloque l'application pendant toute la période où elle est dans la file jusqu'à son exécution.

    Lorsque le concentrateur de connexions DB2 n'est pas activé, chaque application dispose de son propre agent pour gérer la connexion à la base de données jusqu'à la déconnexion de l'application. Lorsque le concentrateur est activé, toutes les applications partagent le même pool d'agents qui passent d'une application à l'autre sur des limites de transactions. Ainsi, si le concentrateur est activé et que Query Patroller met les requêtes en file d'attente, il immobilise ces agents jusqu'à l'exécution de ces requêtes. Par conséquent, le pool d'agents disponibles serait réduit et les performances de DB2 affectées puisque les applications ne pourraient pas se connecter à une requête ou l'exécuter comme elles ne peuvent pas obtenir les services d'un agent. Ainsi, lorsque le concentrateur de connexions est activé, Query Patroller ne mettra pas les requêtes en file d'attente ; en revanche, il rejettera, par défaut, les requêtes supposées être mises en file d'attente avec un code sqlcode 29009, code anomalie 6.

    Pour éviter le rejet des requêtes destinées à être mises en file d'attente, vous pouvez autoriser Query Patroller à exécuter les requêtes au lieu de les rejeter lorsque le concentrateur est activé, en configurant l'option BLOCK_OPTION au niveau du système, à l'aide de la commande UPDATE QP_SYSTEM, ou au niveau de l'utilisateur, à l'aide de la commande UPDATE SUBMITTER_PROFILE. Par défaut, BLOCK_OPTION est positionnée sur 'reject' ('R'), signifiant ainsi que les requêtes seront rejetées et ne seront pas mises en file d'attente lorsque le concentrateur est activé. Pour spécifier à Query Patroller d'exécuter les requêtes plutôt que de les rejeter lorsque le concentrateur est activé, positionnez BLOCK_OPTION sur 'proceed' ('P').

    Par exemple, pour autoriser Query Patroller à exécuter les requêtes sur la base de données "sample" plutôt que de les rejeter lorsque le concentrateur est activé, positionnez l'option BLOCK_OPTION sur 'P' comme suit :

    qp -d sample -u idutil -p motdepasse "UPDATE QP_SYSTEM USING BLOCK_OPTION 'P'"
    

    Pour permettre à Query Patroller d'exécuter les requêtes émises sous le profil "STEVED" au lieu de les rejeter lorsque le concentrateur est activé, positionnez l'option BLOCK_OPTION pour ce profil sur 'P' comme suit :

    qp -d sample -u idutil -p motdepasse "UPDATE SUBMITTER_PROFILE FOR USER'STEVED' USING BLOCK_OPTION 'P'" 
    

    Les valeurs attribuées à BLOCK_OPTION sont stockées dans les tables QP_SYSTEM et SUBMITTER_PROFILE pour la base de données.

    Le paramètre BLOCK_OPTION pour QP_SYSTEM n'accepte pas les valeurs NULL ; le paramètre BLOCK_OPTION pour SUBMITTER_PROFILE accepte les valeurs NULL. Si BLOCK_OPTION est défini pour QP_SYSTEM et pour le profil émetteur d'un utilisateur, la valeur pour le profil émetteur est prioritaire pour cet utilisateur. Pour les autres utilisateurs, le paramètre BLOCK_OPTION pour QP_SYSTEM s'appliquera. Pour être sûr que le paramètre BLOCK_OPTION pour QP_SYSTEM s'applique à un utilisateur spécifique, positionnez BLOCK_OPTION pour le profil émetteur de cet utilisateur sur NULL.


    Objets DBCLOB non disponibles dans la boîte de dialogue Affichage des résultats

    En raison d'une limitation de JDBC, les objets DBCLOB ne peuvent être affichés dans la boîte de dialogue Affichage des résultats de Query Patroller. Une chaîne vide est affichée à la place des objets DBCLOB. Cette limitation s'applique seulement au Centre Query Patroller, et non à la ligne de commande Query Patroller.


    Nécessité d'exécuter la commande qpsetup sur chaque base de données

    Pour chaque base de données avec laquelle vous souhaitez utiliser Query Patroller, vous devez exécuter la commande qpsetup. Celle-ci permettra de créer, pour chaque base de données, un ensemble d'objets de base de données de contrôle Query Patroller, tels que les tables de contrôle, les vues et les déclencheurs associés aux tables, ainsi que les fonctions utilisateur et les procédures nécessaires à l'exécution de QP. Les tables de contrôle contiennent des informations telles que les paramètres de configuration, les profils utilisateur et les données de requêtes historiques. Pour plus d'informations, consultez le Guide Query Patroller : Installation, administration et utilisation ou les informations sur Query Patroller contenues dans le Centre d'aide et d'information DB2.


    Différenciation des majuscules et des minuscules dans les ID profil de Query Patroller

    Il est important de garder à l'esprit que les majuscules et les minuscules sont différenciées dans les ID profil opérateur et émetteur de Query Patroller. Ces ID profil doivent également exister en tant qu'ID autorisation DB2. Ainsi, si vous créez un profil émetteur pour un utilisateur identifié en tant que"TESTUSER", il doit également exister un ID autorisation DB2 appelé "TESTUSER". Si vous créez un profil émetteur pour un utilisateur identifié comme "testuser," ce profil ne sera pas associé à l'ID autorisation DB2 "TESTUSER" et ne sera pas utilisé par Query Patroller. A la place, toutes les requêtes émises sous l'ID "TESTUSER" seront associées au profil émetteur PUBLIC par défaut.


    Aucun profil opérateur nécessaire pour les utilisateurs ayant les droits DBADM

    Il n'est pas nécessaire de créer de profil opérateur pour les utilisateurs ayant les droits DBADM sur la base de données. Ces utilisateurs possèdent déjà le niveau maximal de privilèges opérateur ; il est donc superflu de leur rajouter des profils opérateur. De plus, ces utilisateurs peuvent automatiquement effectuer toutes les tâches Query Patroller en dépit des restrictions éventuelles sur les privilèges opérateur associés à ce profil.


    Application de filtres pour l'affichage d'un nombre important de requêtes

    Le temps de réponse du Centre Query Patroller peut être considérablement ralenti si vous visionnez plusieurs centaines de requêtes gérées ou historiques. Pour minimiser ce problème, il est recommandé d'appliquer un filtre sur les vues et de réduire ainsi le nombre de requêtes affichées. Pour obtenir des informations sur l'application de filtres dans le Centre Query Patroller, consultez le Guide Query Patroller : Installation, administration et utilisation ou les informations sur Query Patroller contenues dans le Centre d'aide et d'information.


    Modification de la description de la commande LIST QUERIES

    La documentation de Query Patroller, Version 8 décrit de manière incorrecte les valeurs du paramètre WITH STATUS de la commande LIST QUERIES. Elle indique, en effet, qu'une valeur de "R" renverra toutes les requêtes rejetées, alors qu'en réalité, cette valeur spécifie le renvoi d'une liste de toutes les requêtes en cours d'exécution.

    Il y a également une erreur dans la description du comportement par défaut de la commande LIST QUERIES. La documentation stipule que l'émission de la commande LIST QUERIES sans spécification de paramètres renverra les 100 dernières requêtes. Ceci est incorrect. La commande LIST QUERIES émise sans paramètres renverra une liste de toutes les requêtes gérées appartenant à l'utilisateur en cours. Pour afficher toutes les requêtes gérées, il faut spécifier "FOR USER ALL" .


    Modification de la description des commandes qpstart et qpsetup

    La documentation de Query Patroller, Version 8 stipule qu'un utilisateur avec les droits DBADM peut exécuter la commande qpstart. Ceci est incorrect. Pour émettre la commande qpstart, vous devez être le propriétaire de l'instance contenant la base de données sur laquelle vous voulez exécuter Query Patroller.

    La documentation stipule également que vous pouvez exécuter le commande qpsetup si vous disposez des droits DBADM. Ceci est incorrect. Vous devez disposer des droits SYSADM pour exécuter la commande qpsetup sur une base de données.


    Recommandations pour la génération de données historisées

    Il est vivement recommandé d'exécuter le générateur de données historisées (à l'aide de la commande GENERATE HISTORICAL_DATA) pendant les périodes d'utilisation minimale de la base de données. L'exécution de cette commande pendant les heures creuses permet de minimiser les les risques d'un impact sur les performances sur la base de données.

    Par ailleurs, il est recommandé d'exécuter la commande GENERATE HISTORICAL_DATA régulièrement afin de réduire le nombre de requêtes pour lesquelles des données sont collectées simultanément.


    Arrêt du générateur de données historisées

    Pour arrêter la génération de données historisées pendant que le générateur est en cours de fonctionnement, exécutez la commande suivante :

    generate historical_data stop
    

    Cette commande permet de définir un indicateur qui est vérifié toutes les 20 requêtes pendant l'exécution du générateur de données historisées. Si cet indicateur est défini, le générateur de données historisées s'arrêtera. Les données de requête qui ont été générées jusqu'à ce moment seront conservées et ne seront pas régénérées à la prochaine exécution du générateur de données historisées. Cependant, la valeur indiquant l'heure de la dernière collecte de données historisées (TIME_HIST_GENERATOR_LAST_RUN dans la table de contrôle QP_SYSTEM) ne sera pas mise à jour.


    Les requêtes exécutées en arrière-plan une commande LOAD

    Lorsqu'une requête est exécutée en arrière-plan, ses résultats sont stockés dans une table de résultats. Toute requête générant une table de résultats est exécutée par un processus appelé qprunquery. Ce processus crée une table de résultats et émet une commande LOAD à partir d'un curseur pour remplir la table avec les résultats de la requête. Ceci signifie que les requêtes qui génèrent des tables de résultats sont soumises aux mêmes restrictions que toute autre commande LOAD à partir d'un curseur. Pour une description complète de ces restrictions, reportez-vous à la documentation de la commande LOAD dans le manuel DB2 Command Reference.

    Lors de chaque opération LOAD exécutée par qprunquery, les entrées sont placées dans le fichier db2diag.log. Sous les systèmes d'exploitation UNIX, un ou plusieurs messages seront créés dans un sous-répertoire du répertoire INSTANCE/db2dump, où INSTANCE est le répertoire d'installation de DB2. Sous Windows, un ou plusieurs messages seront créés dans un sous-répertoire du répertoire spécifié dans le paramètre de configuration de base de données diagpath. Le nom du sous-répertoire du fichier de messages est généré en fonction des détails de l'opération de chargement. Voici, par exemple, le nom d'un sous-répertoire de fichier de messages :

    qpTbLoad_SAMPLE_349_2003-05-21-16.51.32
     
    

    où :

    Le nom du fichier de messages contenu dans ce sous-répertoire sera le suivant.

    qpTbLoad_SAMPLE_349_2003-05-21-16.51.32.MSG.*
    

    .

    Remarque :
    Pour des bases de données multipartitionnées, la commande LOAD va créer plusieurs fichiers de messages et ajouter différentes extensions à chaque nom de fichier.

    Les fichiers de messages sont supprimés une fois que le chargement a abouti. Pour aider à identifier les incidents, les fichiers de messages ne sont pas supprimés si le chargement échoue.

    Une limite est établie pour le nombre de chargements simultanés pouvant être lancés en parallèle. Si cette limite est dépassée, la requête en cours sera abandonnée et une erreur SQL6555 sera enregistrée dans le fichier qpdiag.log. Si vous êtes confronté à cette erreur, vous pouvez y remédier en modifiant l'intervalle spécifié par la variable de registre DB2ATLD_PORTS qui détermine le nombre de chargements parallèles autorisés simultanément. Pour calculer le nombre approximatif de ports requis dans votre système, choisissez le nombre maximal de chargements devant être exécutés simultanément, en incluant ceux émis par qprunquery ainsi que d'autres opérations de chargement. Multipliez ce nombre par le nombre de partitions logiques par partition physique dans votre environnement. Ajoutez 25 % à ce résultat.

    Pour définir la variable de registre DB2ATLD_PORTS, émettez la commande suivante :

    db2set DB2ATLD_PORTS=num1:num2
    

    où num1< num2

    Query Patroller utilise par défaut 6000 ports dans l'intervalle 50000-56000 ; la définition de DB2ATLD_PORTS remplacera cette valeur.


    Erreurs d'insuffisance de mémoire avec Query Controller ou le Centre Query Patroller

    Lorsque Query Patroller gère un grand nombre de requêtes et que Query Controller ou le Centre Query Patroller est en cours de fonctionnent, vous pouvez recevoir une erreur d'insuffisance de mémoire même s'il y a suffisamment de mémoire disponible sur la machine. Afin de pouvoir utiliser plus de mémoire disponible, vous pouvez augmenter les paramètres de variables d'environnement de la mémoire dynamique à partir de leurs niveaux par défaut.

    Les variables d'environnement à mettre à jour sont QP_INIT_JAVA_HEAP_SIZE et QP_MAX_JAVA_HEAP_SIZE. Si ces variables ne sont pas définies, les valeurs par défaut sont respectivement 32 Mo et 512 Mo.


    Remarques

    Le présent document peut contenir des informations ou des références concernant certains produits, logiciels ou services IBM non annoncés dans ce pays. Pour plus de détails, référez-vous aux documents d'annonce disponibles dans votre pays, ou adressez-vous à votre partenaire commercial IBM. Toute référence à un produit, logiciel ou service IBM n'implique pas que seul ce produit, logiciel ou service puisse être utilisé. Tout autre élément fonctionnellement équivalent peut être utilisé, s'il n'enfreint aucun droit d'IBM. Il est de la responsabilité de l'utilisateur d'évaluer et de vérifier lui-même les installations et applications réalisées avec des produits, logiciels ou services non expressément référencés par IBM.

    IBM peut détenir des brevets ou des demandes de brevets couvrant les produits mentionnés dans le présent document. La remise de ce document ne vous donne aucun droit de licence sur ces brevets ou demandes de brevet. Si vous désirez recevoir des informations concernant l'acquisition de licences, veuillez en faire la demande par écrit à l'adresse suivante :

    IBM EMEA Director of Licensing
    IBM Europe Middle-East Africa
    Tour Descartes
    La Défense 5
    2, avenue Gambetta
    92066 - Paris-La Défense CEDEX
    France

    Pour le Canada, veuillez adresser votre courrier à :

    IBM Director of Commercial Relations
    IBM Canada Ltd.
    3600 Steeles Avenue East
    Markham, Ontario
    L3R 9Z7
    Canada

    Les informations sur les licences concernant les produits utilisant un jeu de caractères à deux octets (DBCS) peuvent être obtenues par écrit à l'adresse suivante :

    IBM World Trade Asia Corporation
    Licensing
    2-31 Roppongi 3-chome, Minato-ku
    Tokyo 106, Japon

    Le paragraphe suivant ne s'applique ni au Royaume-Uni ni dans aucun autre pays dans lequel il serait contraire aux lois locales. LE PRESENT DOCUMENT EST LIVRE "EN L'ETAT". IBM DECLINE TOUTE RESPONSABILITE, EXPRESSE OU IMPLICITE, RELATIVE AUX INFORMATIONS QUI Y SONT CONTENUES, Y COMPRIS EN CE QUI CONCERNE LES GARANTIES DE QUALITE MARCHANDE OU D'ADAPTATION A VOS BESOINS. Certaines juridictions n'autorisent pas l'exclusion des garanties implicites, auquel cas l'exclusion ci-dessus ne vous sera pas applicable.

    Le présent document peut contenir des inexactitudes ou des coquilles. Il est mis à jour périodiquement. Chaque nouvelle édition inclut les mises à jour. IBM peut modifier sans préavis les produits et logiciels décrits dans ce document.

    Les références à des sites Web non IBM sont fournies à titre d'information uniquement et n'impliquent en aucun cas une adhésion aux données qu'ils contiennent. Les informations contenues dans ces sites Web ne sont pas associées à ce produit IBM, et l'utilisation de ces sites se fait à vos propres risques et périls.

    IBM pourra utiliser ou diffuser, de toute manière qu'elle jugera appropriée et sans aucune obligation de sa part, tout ou partie des informations qui lui seront fournies.

    Les licenciés souhaitant obtenir des informations permettant : (i) l'échange des données entre des logiciels créés de façon indépendante et d'autres logiciels (dont celui-ci), et (ii) l'utilisation mutuelle des données ainsi échangées, doivent adresser leur demande à :

    IBM Canada Limited
    Office of the Lab Director
    8200 Warden Avenue
    Markham, Ontario
    L6G 1C7
    CANADA

    Ces informations peuvent être soumises à des conditions particulières prévoyant notamment le paiement d'une redevance.

    Le logiciel sous licence décrit dans ce document et tous les éléments sous licence disponibles s'y rapportant sont fournis par IBM conformément aux dispositions de l'ICA, des Conditions internationales d'utilisation des logiciels IBM ou de tout autre accord équivalent.

    Les données de performance indiquées dans ce document ont été déterminées dans un environnement contrôlé. Par conséquent, les résultats peuvent varier de manière significative selon l'environnement d'exploitation utilisé. Certaines mesures évaluées sur des systèmes en cours de développement ne sont pas garanties sur tous les systèmes disponibles. En outre, elles peuvent résulter d'extrapolations. Les résultats peuvent donc varier. Il incombe aux utilisateurs de ce document de vérifier si ces données sont applicables à leur environnement d'exploitation.

    Les informations concernant des produits non IBM ont été obtenues auprès des fournisseurs de ces produits, par l'intermédiaire d'annonces publiques ou via d'autres sources disponibles. IBM n'a pas testé ces produits et ne peut confirmer l'exactitude de leurs performances ni leur compatibilité. Toute question concernant les performances de produits non IBM doit être adressée aux fournisseurs de ces produits.

    Toute instruction relative aux intentions d'IBM pour ses opérations à venir est susceptible d'être modifiée ou annulée sans préavis, et doit être considérée uniquement comme un objectif.

    Ce document peut contenir des exemples de données et des rapports utilisés couramment dans l'environnement professionnel. Ces exemples mentionnent des noms fictifs de personnes, de sociétés, de marques ou de produits à des fins illustratives ou explicatives uniquement. Toute ressemblance avec des noms de personnes, de sociétés ou des données réelles serait purement fortuite.

    LICENCE DE COPYRIGHT :

    Le présent logiciel peut contenir des exemples de programmes d'application en langage source destinés à illustrer les techniques de programmation sur différentes plateformes d'exploitation. Vous avez le droit de copier, de modifier et de distribuer ces exemples de programmes sous quelque forme que ce soit et sans paiement d'aucune redevance à IBM, à des fins de développement, d'utilisation, de vente ou de distribution de programmes d'application conformes aux interfaces de programmation des plateformes pour lesquelles ils ont été écrits ou aux interfaces de programmation IBM. Ces exemples de programmes n'ont pas été rigoureusement testés dans toutes les conditions. Par conséquent, IBM ne peut garantir expressément ou implicitement la fiabilité, la maintenabilité ou le fonctionnement de ces programmes.

    Toute copie totale ou partielle de ces programmes exemples et des oeuvres qui en sont dérivées doit comprendre une notice de copyright, libellée comme suit :

    (C) (nom de votre société) (année). Des segments de code sont dérivés des Programmes exemples d'IBM Corp. (C) Copyright IBM Corp. _indiquez l'année ou les années_. All rights reserved.


    Marques

    Les termes qui suivent sont des marques d'International Business Machines Corporation aux Etats-Unis et/ou dans certains autres pays et ont été utilisées dans au moins un des documents de la bibliothèque DB2 UDB.

    ACF/VTAM
    AISPO
    AIX
    AIXwindows
    AnyNet
    APPN
    AS/400
    BookManager
    C Set++
    C/370
    CICS
    Database 2
    DataHub
    DataJoiner
    DataPropagator
    DataRefresher
    DB2
    DB2 Connect
    DB2 Extenders
    DB2 OLAP Server
    DB2 Query Patroller
    DB2 Universal Database
    Distributed Relational
    Database Architecture
    DRDA
    eServer
    Extended Services
    FFST
    First Failure Support Technology
    IBM
    IMS
    IMS/ESA
    iSeries
    LAN Distance
    MVS
    MVS/ESA
    MVS/XA
    Net.Data
    NetView
    OS/390
    OS/400
    PowerPC
    pSeries
    QBIC
    QMF
    RACF
    RISC System/6000
    RS/6000
    S/370
    SP
    SQL/400
    SQL/DS
    System/370
    System/390
    SystemView
    Tivoli
    VisualAge
    VM/ESA
    VSE/ESA
    VTAM
    WebExplorer
    WebSphere
    WIN-OS/2
    z/OS
    zSeries

    Les termes qui suivent sont des marques d'autres sociétés et ont été utilisés dans au moins un des documents de la bibliothèque DB2 UDB :

    Microsoft, Windows, Windows NT et le logo Windows sont des marques de Microsoft Corporation aux Etats-Unis et/ou dans certains autres pays.

    Intel et Pentium sont des marques de Intel Corporation aux Etats-Unis et/ou dans certains autres pays.

    Java, ou toutes les marques et logos incluant Java, sont des marques de Sun Microsystems, Inc. aux Etats-Unis et/ou dans certains autres pays.

    UNIX est une marque enregistrée de The Open Group aux Etats-Unis et/ou dans certains autres pays.

    D'autres sociétés sont propriétaires des autres marques, noms de produits ou logos qui pourraient apparaître dans ce document.