Maison Java javaDidacticiel Exemple de la façon dont btrace localise les défauts de production

Exemple de la façon dont btrace localise les défauts de production

Mar 06, 2017 am 10:21 AM

Cet article présente principalement des exemples de la méthode btrace de localisation des défauts de production. L'article le présente en détail à travers l'exemple de code. Je pense qu'il a une certaine valeur de référence pour tous les amis qui en ont besoin peuvent y jeter un œil ci-dessous.

Avant-propos

Souvent, nous avons besoin de connaître plus de détails sur le fonctionnement du programme, mais il est impossible d'imprimer tous les détails de fonctionnement du programme pendant le développement Accédez au journal. Habituellement, ce que vous pouvez faire à ce stade est de modifier le code, de le redéployer, puis de l'observer à nouveau. Cependant, cette méthode n'est pas très adaptée aux applications en ligne. difficile à modifier, comme d'autres packages externes référencés, etc. sont très gênants. BTrace est un outil qui peut afficher dynamiquement les détails de l'exécution du programme sans modifier le code ni redémarrer l'application. L'article suivant présente la méthode btrace pour localiser les défauts de production. , les amis dans le besoin peuvent s'y référer.

Phénomènes

Certaines requêtes sont très lentes à travers la couche d'accès aux données et provoquent le blocage du thread de traitement, et l'exception ne peut pas être détectée à partir de la surveillance.

Écrire le script btrace

@BTrace
public class DBProxyTrace {

 @OnMethod(clazz = "xxx.xxx.QueryHandler", method = "query",
  location = @Location(Kind.RETURN))
 public static void trace2(String sql, @Duration long duration) {
 if (duration/1000000 > 10 * 1000) {
  com.sun.btrace.BTraceUtils.println(duration/1000000 + "ms");
  com.sun.btrace.BTraceUtils.println("this task executes more than 10s. the sql is : "
   + sql);
  com.sun.btrace.BTraceUtils.println("jstack is : ");
  com.sun.btrace.BTraceUtils.jstack();
 }
 }
}
Copier après la connexion

Juger le SQL et les informations de pile exécutées pendant plus de 10 secondes .

Compilez le script DBProxyTrace.Java et confirmez qu'il n'y a aucun problème avec le script.

./bin/btracec -cp build/ java/DBProxyTrace.java
Copier après la connexion

Exécuter le script DBProxyTrace.class

./bin/btrace -cp build/ 17342 DBProxyTrace.class
Copier après la connexion

Message

10468ms
this task executes more than 10s. the sql is : rollback
jstack is :
xxx.QueryHandler.query(QueryHandler.java:106)
xxx.net.AbstractConnection.onReadData(AbstractConnection.java:245)
xxx.net.NIOReactor$RW.run(NIOReactor.java:77)
java.lang.Thread.run(Thread.java:745)
Copier après la connexion

Le positionnement

est bloqué lors de l'annulation de la transaction.

Utilisez jstack pour un positionnement ultérieur.

Imprimer la pile JVM

"$_NIOREACTOR-7-RW" prio=10 tid=0x00007f069856f000 nid=0xde1 waiting for monitor entry [0x00007f0677011000]
 java.lang.Thread.State: BLOCKED (on object monitor)
 at Oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1167)
 - waiting to lock <0x000000068086fbc0> (a oracle.jdbc.driver.T4CConnection)
Copier après la connexion

Conclusion

Blocage Dans l'action de restauration du pilote Oracle, cela est en fait dû au fait que le pilote Oracle ajoute un verrou au niveau de la couche inférieure pour garantir la réponse à la demande série, et ce canal est bloqué par des instructions lentes, donc la restauration est bloquée.

Résumé

Ce qui précède est le contenu de l'exemple de la méthode btrace de localisation des défauts de production. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois (www.php .cn) !


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les fonctions de carte et de localisation dans Uniapp Comment utiliser les fonctions de carte et de localisation dans Uniapp Oct 16, 2023 am 08:01 AM

Comment utiliser les fonctions de carte et de positionnement dans uniapp 1. Introduction générale Avec la popularité des applications mobiles et le développement rapide de la technologie de positionnement, les fonctions de carte et de positionnement sont devenues un élément indispensable des applications mobiles modernes. uniapp est un framework de développement d'applications multiplateforme développé sur la base de Vue.js, qui peut permettre aux développeurs de partager du code sur plusieurs plateformes. Cet article expliquera comment utiliser les cartes et les fonctions de positionnement dans uniapp et fournira des exemples de code spécifiques. 2. Utilisez le composant uniapp-amap pour implémenter la fonction map

Comment localiser les écouteurs sans fil Apple s'ils sont perdus_Comment localiser les écouteurs sans fil Apple Comment localiser les écouteurs sans fil Apple s'ils sont perdus_Comment localiser les écouteurs sans fil Apple Mar 23, 2024 am 08:21 AM

1. Tout d'abord, nous ouvrons l'application [Recherche] sur le téléphone mobile et sélectionnons l'appareil dans la liste sur l'interface de l'appareil. 2. Ensuite, vous pouvez vérifier l'emplacement et cliquer sur l'itinéraire pour y naviguer.

Comment utiliser un plugin WordPress pour implémenter la fonctionnalité de localisation instantanée Comment utiliser un plugin WordPress pour implémenter la fonctionnalité de localisation instantanée Sep 05, 2023 pm 04:51 PM

Comment utiliser les plugins WordPress pour implémenter la fonction de localisation instantanée Avec la popularité des appareils mobiles, de plus en plus de sites Web commencent à fournir des services basés sur la géolocalisation. Dans les sites WordPress, nous pouvons utiliser des plug-ins pour mettre en œuvre des fonctions de positionnement instantané et fournir aux visiteurs des services liés à leur situation géographique. 1. Choisissez le bon plug-in Il existe de nombreux plug-ins proposant des services de géolocalisation dans la bibliothèque de plug-ins WordPress. En fonction des besoins et des exigences, choisir le bon plug-in est la clé pour obtenir une fonctionnalité de positionnement instantané. En voici quelques-uns

Méthodes pour résoudre le problème de l'emplacement des fuites de mémoire dans le développement du langage Go Méthodes pour résoudre le problème de l'emplacement des fuites de mémoire dans le développement du langage Go Jul 01, 2023 pm 12:33 PM

Méthodes pour résoudre le problème de l'emplacement des fuites de mémoire dans le développement du langage Go : Les fuites de mémoire sont l'un des problèmes courants dans le développement de programmes. Dans le développement du langage Go, en raison de l'existence de son mécanisme automatique de récupération de place, les problèmes de fuite de mémoire peuvent être moindres que dans d'autres langages. Cependant, lorsque nous sommes confrontés à des applications volumineuses et complexes, des fuites de mémoire peuvent toujours se produire. Cet article présentera quelques méthodes courantes pour localiser et résoudre les problèmes de fuite de mémoire dans le développement du langage Go. Tout d’abord, nous devons comprendre ce qu’est une fuite de mémoire. En termes simples, une fuite de mémoire fait référence au

Comment localiser l'emplacement du téléphone portable de l'autre partie sur Amap - Comment localiser l'emplacement du téléphone portable de l'autre partie sur Amap Comment localiser l'emplacement du téléphone portable de l'autre partie sur Amap - Comment localiser l'emplacement du téléphone portable de l'autre partie sur Amap Apr 01, 2024 pm 02:11 PM

1. Cliquez pour accéder au logiciel de cartographie Amap sur votre téléphone mobile. 2. Cliquez sur Mon dans le coin inférieur droit. 3. Cliquez pour accéder à la carte familiale. 4. Cliquez sur Créer ma carte familiale. 5. Une fois la création réussie, un code d'invitation apparaîtra et pourra être partagé avec un autre téléphone mobile.

Comment changer les informations de localisation et comment modifier l'adresse Comment changer les informations de localisation et comment modifier l'adresse Mar 12, 2024 pm 09:52 PM

Nous savons tous très clairement que Taku APP est une plateforme de chat et sociale très fiable. Elle permet désormais à tout le monde de se faire des amis en ligne. Certaines des formes de se faire des amis ici permettent principalement aux gens de se faire des amis par emplacement. Après tout, il peut localiser automatiquement vos informations de localisation actuelles et mieux vous mettre en contact avec des amis proches les uns des autres dans la même ville, afin que tout le monde puisse discuter plus facilement et se sentir spécial, plusieurs fois. Afin de faire connaissance avec plus d'amis ailleurs, chacun a l'idée de modifier son adresse, mais il ne sait pas comment modifier ses informations de localisation, ce qui est très difficile, donc l'éditeur de ce site. a également collecté des informations spécifiques

Comment retrouver rapidement l'emplacement d'un téléphone Huawei après sa perte ? Comment retrouver rapidement l'emplacement d'un téléphone Huawei après sa perte ? Mar 24, 2024 am 08:48 AM

Dans la société actuelle, les téléphones portables sont devenus un élément indispensable de nos vies. En tant que marque de smartphones bien connue, les téléphones mobiles Huawei sont profondément appréciés des utilisateurs. Cependant, avec la popularité des téléphones mobiles et l’augmentation de la fréquence d’utilisation, les téléphones portables sont souvent perdus. Une fois notre téléphone perdu, nous avons tendance à nous sentir anxieux et confus. Alors, si malheureusement vous perdez votre téléphone Huawei, comment retrouver rapidement son emplacement ? Étape 1 : Utilisez la fonction de positionnement du téléphone mobile. Les téléphones mobiles Huawei disposent de puissantes fonctions de positionnement intégrées. Les utilisateurs peuvent utiliser l'option « Sécurité » dans les paramètres du téléphone mobile.

La saisie sur iPhone de « Huile trouvée » déclenche la localisation ? La confidentialité peut-elle encore être garantie ? La saisie sur iPhone de « Huile trouvée » déclenche la localisation ? La confidentialité peut-elle encore être garantie ? Apr 26, 2024 pm 01:28 PM

Récemment, nous avons constaté que de nombreux utilisateurs sur Internet ont déclaré que lorsqu'ils utilisaient des téléphones mobiles Apple pour rechercher ou commenter des sujets liés à la « découverte du pétrole », l'appareil activerait automatiquement le positionnement. On soupçonne que les téléphones mobiles Apple collectent et envoient des informations de localisation. informations pour surveiller les utilisateurs. Est-ce que taper « Huile trouvée » sur l'iPhone déclenchera l'emplacement ? La confidentialité d'Apple peut-elle être garantie de cette manière ? Évidemment, c'est un malentendu ! Le service client Apple a déclaré que la fonction de positionnement est activée par défaut et que toute opération peut déclencher des mises à jour de statut, plutôt que de se limiter à l'envoi de texte spécifique. Mais cette déclaration n'est pas entièrement exhaustive. De manière générale, l'iPhone déclenche rarement la fonction de positionnement, à moins que vous ne recherchiez quelque chose ou que le paramètre du mécanisme de l'APP soit lié. Lorsque l'utilisateur saisit certains caractères, l'APP activera automatiquement la fonction de positionnement. l'arrière-plan. Pourquoi ce sujet peut-il

See all articles