IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Problème accès au données DB2


Sujet :

DB2

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Problème accès au données DB2
    Bonjour à toutes et à tous,
    je vais vous expliquer un peu mon contexte de travail, puis les différents problèmes que j'ai pu rencontrer.

    Ma base de données est une base IBM DB2 sur un AS/400. ([base_x])
    J'utilise d'une part Oracle i-reporting, connecté à ma base de données [base_x], par le biais d'un fichier OCE (auquel je n'ai aucun accès).
    Tout fonctionne correctement, les requêtes s'effectuent plutôt rapidement malgré leur complexité ainsi que la taille de la base de données.
    Jusqu'ici tout va bien donc ...

    J'utilise aussi dans un second temps l'ETL Pentaho. Je veux extraire les données de plusieurs tables de [base_x] et les insérer dans une nouvelle table [base_y].
    Je paramètre donc ma connexion dans Pentaho, IBM DB2 par le biais d'un connecteur JDBC.
    Je lance le test de connexion -> Connexion OK

    C'est alors que débutent mes problèmes.

    Lorsque je lance une requête :
    SELECT * FROM [table_x];
    Aucun résultat n'est retourné, même au bout de 24h.
    La même requête avec une clause en plus :
    SELECT * FROM [table_x] WHERE [id_x]='x';
    Cette requête me retourne les résultats en une fraction de seconde.

    Ma véritable requête est bien plus complexe, avec plusieurs jointures, beaucoup de filtres. Le résultat est exactement le même.
    Elle ne retourne rien (ni erreur, ni résultat) même au bout de plusieurs jours.
    Si je rajoute la clause WHERE [id_x]='x', le résultat arrive très rapidement, en respectant toutes les différentes clauses de la requête.
    Cette même requête (Sans la clause Where ci-dessus) lancée par Oracle I-reporting fonctionne, en une fraction de seconde.

    Mes différentes questions :
    Est-ce un problème de connecteur (JDBC) ? Faut-il utiliser ODBC, -> pourquoi j'arrive à retourner des résultats ?
    Un problème de SQL (DB2) ? -> Aucune erreur SQL, et j'arrive à un résultat en rajoutant une clause WHERE ...
    Un paramétrage Pentaho ?
    Je pensais au index de la BDD, cependant la requête devrait être bien plus longue sur Oracle IR, si c'était le cas.

    Voilà j'espère avoir été assez claire, j'ai trouvé sur ce forum un sujet qui traite d'un sujet assez similaire, cependant les différentes solutions que j'ai pu trouver n'ont pas étés concluantes. Je pense qu'un membre de votre forum a déjà effectué exactement la même procédure que moi s'il voit mon post. (Vil'Coyote)

    Je vous remercie tous d'avance, pour l'aide que vous pourriez m'apporter.

    Cordialement.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Vous pouvez d'emblée éliminer l'erreur SQL puisque l'ajout d'un filtre résout votre problème

    Il serait intéressant de voir comment se comporte votre requête avec un filtre moins étroit, par exemple, plutôt que de mettre where id=valeur, essayez avec where id between une plage assez large de valeurs.

    En effet, je suppose un problème de taille du paquet de réponse, si trop de réponses, votre configuration ne le supporte pas, il existe probablement des paramètres à configurer (peut etre coté ETL)

    Essayez avec différentes plages plus ou moins larges d'identifiants (100 id puis 10000, 100000 etc...) jusqu'à cerner la limite

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Bonjour escartefigue,

    Pour le problème SQL je l'avais quasiment éliminé.
    J'avais déjà fais la requête avec un Between, et effectivement selon l'écart, j'ai un résultat ou non.
    A partir de là j'avais quand même un doute, une requête déjà paramétrée sur l'ETL, sur une autre base (cependant IBM DB2) fonctionne et retourne plus d'un million de lignes.
    Ma requête à moi doit me retourner environ 35 000 lignes.
    Est-il possible qu'une requête fonctionne par le biais d'un connecteur (ODBC, JDBC, ...) et pas un autre ?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Ce n'est pas un problème de connecteur, puisque, si j'ai bien compris, avec le même connecteur, mais en ajoutant simplement un filtre, le fonctionnement change.

    Votre table qui contient 35000 lignes a peut être beaucoup de colonnes et/ou des colonnes très larges (genre LONGVARCHAR ou pire BLOB)

  5. #5
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    par exp (ce n'est pas moi qui ait résolu les problèmes jdbc)

    db2 est très sensible à la version du JDBC, voir http://www-01.ibm.com/support/docvie...id=swg21363866

    une fois la requête lancée, il faut vérifier l'activité sur le db2 pour être certain que le client est connecté et que la requête est en train de s'exécuter,

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Re Escartefigue, Bonjour bernard59139

    Je ne pense pas que cela vienne de la base de données, j'ai pu voir des traitements actifs sur une autre base DB2 (avec beaucoup de colonnes...) et tout est fonctionnel.
    De plus ma requête fonctionne par le biais d'Oracle IR.

    Je suis plutôt du côté du connecteur (oracle connecté différemment ? je n'ai pas accès au fichier OCE mais c'est mon avis.)
    Je vais donc vérifier ma version DB2, prendre le connecteur correspondant et renouveler mes tests.

    Je vous tiens au courant de l'avancée de mes travaux.

    Merci

  7. #7
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Essayer autant que faire se peut d'utiliser les pilotes ODBC livrés avec l'utilitaire d'accès à l'AS/400 : Client Access, iSeries Access ou i Access avec la version adéquate.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Bonjour.

    Essayer autant que faire se peut d'utiliser les pilotes ODBC livrés avec l'utilitaire d'accès à l'AS/400 : Client Access, iSeries Access ou i Access avec la version adéquate.
    Bonjour Hédhili,

    Je voulais utiliser ODBC, cependant lorsque j'essai de créer le connecteur (avec ODBC Administrator), je n'y arrive pas, j'ai même le message d'erreur
    "System name can not be verified"
    Je suis donc un peu dans le néant

  9. #9
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Je pense que tu t'es bien assuré du nom du host (AS/400), de l'ID et PW User, des droits et du démarrage du serveur *DATABASE sur l'AS/400. Ton problème semble assez curieux.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    D'autant plus que je n'ai aucun droit sur l'AS/400, je vais ouvrir un ticket ...

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Tous les paramètres semblent bons...

    J'ai toutefois une piste. J'ai installé IBM Data studio, pour lancer directement mes requêtes sur la BDD. J'utilise une connexion JDBC, la même que pour Pentaho.
    J'ai pu constaté une erreur (Pas assez de place réservée en mémoire pour créer la table de résultat temporaire).
    Une fois la taille allouée modifiée, j'ai eu une réponse à ma requête.

    Je vais donc faire de même pour Pentaho, reste à voir si je fais ce qu'il faut

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    J'ai trouvé la solution à mon problème, je vais quand même en faire profiter la communauté.

    Le problème provenait bien de la version du connecteur JDBC utilisée (très stricte pour DB2).
    J'ai donc trouvé la version de DB2 utilisée et le connecteur correspondant.
    http://www-01.ibm.com/support/docvie...id=swg21363866

    Tout est fonctionnel, merci à vous tous

  13. #13
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par batoux Voir le message
    J'ai trouvé la solution à mon problème, je vais quand même en faire profiter la communauté.

    Le problème provenait bien de la version du connecteur JDBC utilisée (très stricte pour DB2).
    J'ai donc trouvé la version de DB2 utilisée et le connecteur correspondant.
    http://www-01.ibm.com/support/docvie...id=swg21363866

    Tout est fonctionnel, merci à vous tous
    Merci à toi du retour et bonne continuation.

  14. #14
    Membre à l'essai
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2015
    Messages : 9
    Points : 16
    Points
    16
    Par défaut Problème accès au données DB2
    Citation Envoyé par batoux Voir le message
    Bonjour escartefigue,

    Pour le problème SQL je l'avais quasiment éliminé.
    J'avais déjà fais la requête avec un Between, et effectivement selon l'écart, j'ai un résultat ou non.
    A partir de là j'avais quand même un doute, une requête déjà paramétrée sur l'ETL, sur une autre base (cependant IBM DB2) fonctionne et retourne plus d'un million de lignes.
    Ma requête à moi doit me retourner environ 35 000 lignes.
    Est-il possible qu'une requête fonctionne par le biais d'un connecteur (ODBC, JDBC, ...) et pas un autre ?
    Cette solution fonctionne pour moi. Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème accès base de données
    Par jokenjo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/12/2006, 09h33
  2. [Tcl/Tk] Problème accès données
    Par Sébastien Hamel dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 11/07/2006, 11h39
  3. Problème accès base de données
    Par alainconnu dans le forum Outils
    Réponses: 3
    Dernier message: 27/04/2006, 09h31
  4. problème d'accès aux données sur serveur par poste client
    Par rahan_dave dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2006, 09h13
  5. Problème de concurence d'accès aux données
    Par ruman dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2006, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo