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

JDBC Java Discussion :

Temps de réponse ponctuellement très élevé sur un RAC


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Homme Profil pro
    responsable technique
    Inscrit en
    Novembre 2002
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 100
    Points : 89
    Points
    89
    Par défaut Temps de réponse ponctuellement très élevé sur un RAC
    Bonjour,

    J'ai un web service Java qui offrent diverses méthodes de remplissage d'une base données. Chaque requête d'insertion en base est très simple (un insert d'une ligne dans une table ou 2).
    Je réalise des tests de perf avec JMeter, dans lesquels je fais 100.000 appels web services en 8 heures. Ces tests se passent très bien sur une base Oracle 11.2.0.2.0 mono instance.
    Par contre, lorsque je fais les mêmes tests sur une base Oracle RAC 2 noeuds (même version 11.2.0.2.0), sur les 100.000 appels, j'en ai toujours une dizaine dont le temps de réponse est de plus de 15 minutes.
    Quand je dis 15 minutes, c'est vraiment 15 minutes et quelques secondes (comme si il y avait un blocage pendant 900 secondes).

    La connexion vers la base est faite en JDBC THIN, et avec un pool de connexions géré avec Apache DBCP.
    Suite à des recherches sur le net, une première idée a été de passer en JDBC OCI.
    Mais cela n'a pas résolu le problème, il y a toujours un petit nombre de requêtes qui prennent 15 minutes et qq secondes.

    Auriez-vous une idée de l'origine du problème ?

    Merci d'avance
    Le marlou

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    a vue de pifomètre, un problème dans la config de oracle. Il vaudrait mieux investiguer ça avec ton DBA. Si t'as du oracle avec RAC a disposition, tu dois avoir quelques DBA sous le coude capable de te sortir les sessions bloquées et de te dire sur quoi elles sont verrouillées. Je gage qu'elles attendent un verrou sur la table, qu'elles peuvent pas l'avoir (concurrence) et que, pour des raisons obscures, elle fait passer les autres transactions en priorité (option 1)

    autre possibilité (option 2), si tu utilise un pool de connexion, la solution de pooling choisie gère mal dans certains cas les demande et relègue certains thread pendant 15 minutes en fin de queue d'attente.

    solution barbare:
    une watchdog qui surveille coté serveur tous tes thread http, quand il en trouve un qui "tourne" depuis plus de 5 minutes, il affiche le nom du thread dans le fichier de log avec un message d'erreur et envoie au process java le signal 3 (lancer un thread dump). Tu aura alors le nom du thread bloqué et dans le dump tu pourra retrouver sa stack trace. Bien faire attention à ne le lancer le kill qu'une fois par thread découvert. Sinon tu va te retrouver avec un log de 500G demain matin

  3. #3
    Membre régulier
    Homme Profil pro
    responsable technique
    Inscrit en
    Novembre 2002
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    merci pour ta réponse.
    Il y a bien un DBA, mais il est en congés 4 semaines, et on doit livrer avant fin Aout... (oui, je sais, c'est naze... )
    Je vais regarder du coté du pool de connexion pour voir s'il n'y a pas des options à modifier (j'ai quasiment tout laissé par défaut, à part le nb de connexions)

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et si il y a un problème avec le DB vous vous tournez les pouces 4 semaines?

  5. #5
    Membre régulier
    Homme Profil pro
    responsable technique
    Inscrit en
    Novembre 2002
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Et si il y a un problème avec le DB vous vous tournez les pouces 4 semaines?
    en effet, d'où mon désarroi...
    Il y a qq personnes qui connaissent à peu pres oracle mais pas du tout le RAC...

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pas besoin de connaitre oracle pour savoir inspeter v$session ou les vues de lock et de transaction d'oracle. Perso j'en suis incapable mais un DBA (ou un développeur motivé avec les bons droits) doit pouvoir trouver.

    Sinon tu peux comme j'ai expliqué essayer de tracer les blocage de ton coté pour commencer

Discussions similaires

  1. [10g] Switch Log ponctuellement très élevé
    Par olivier] dans le forum Administration
    Réponses: 11
    Dernier message: 17/06/2015, 14h17
  2. Réponses: 2
    Dernier message: 30/01/2015, 17h20
  3. Réponses: 1
    Dernier message: 12/08/2014, 18h16
  4. Impact du temps de réponse d'un site sur la navigation.
    Par maXrez dans le forum Hébergement
    Réponses: 1
    Dernier message: 22/05/2008, 12h52
  5. Temps de réponses localhost très longs
    Par abir84 dans le forum Réseau
    Réponses: 4
    Dernier message: 15/01/2008, 14h19

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