Beispiel dafür, wie btrace Produktionsfehler lokalisiert
In diesem Artikel werden hauptsächlich Beispiele für die Methode zur Lokalisierung von Produktionsfehlern vorgestellt. Ich glaube, dass sie für jeden, der sie benötigt, einen gewissen Referenzwert hat.
Vorwort
Oft müssen wir mehr Details über die Ausführung des Programms wissen, aber es ist unmöglich, während der Entwicklung alle Ausführungsdetails im Programm auszudrucken . Normalerweise können Sie zu diesem Zeitpunkt den Code ändern, erneut bereitstellen und ihn dann erneut beobachten. Wenn Sie jedoch auf Code stoßen, ist dies nicht der Fall B. andere referenzierte externe Pakete usw. sind sehr problematisch. BTrace ist ein Tool, das Programmlaufdetails dynamisch anzeigen kann, ohne den Code zu ändern oder die Anwendung neu zu starten. Der folgende Artikel stellt die Methode von BTrace vor, um Produktionsfehler zu lokalisieren. Freunde in Not können darauf verweisen.
Phänomene
Einige Anfragen durchlaufen die Datenzugriffsschicht sehr langsam und führen dazu, dass der Verarbeitungsthread blockiert wird und die Ausnahme bei der Überwachung nicht erkannt werden kann.
Btrace-Skript schreiben
@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(); } } }
Beurteilen Sie die SQL- und Stack-Informationen, die länger als 10 Sekunden ausgeführt werden .
Kompilieren Sie das Skript DBProxyTrace.Java und bestätigen Sie, dass kein Problem mit dem Skript vorliegt.
./bin/btracec -cp build/ java/DBProxyTrace.java
Führen Sie das Skript DBProxyTrace.class aus
./bin/btrace -cp build/ 17342 DBProxyTrace.class
Nachricht
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)
Positionierung
ist beim Transaktions-Rollback blockiert.
Verwenden Sie jstack zur weiteren Positionierung.
JVM-Stack drucken
"$_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)
Fazit
Blockierung Bei der Rollback-Aktion des Oracle-Treibers liegt dies tatsächlich daran, dass der Oracle-Treiber auf der unteren Ebene eine Sperre hinzufügt, um die Antwort auf die serielle Anforderung sicherzustellen, und dieser Kanal durch langsame Anweisungen blockiert wird, sodass das Rollback blockiert wird.
Zusammenfassung
Das Obige ist der Inhalt des Beispiels der Btrace-Methode zur Lokalisierung von Produktionsfehlern. Weitere verwandte Inhalte finden Sie hier die chinesische PHP-Website (www.php.cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Verwendung von Karten- und Positionierungsfunktionen in uniapp 1. Einführung in den Hintergrund Mit der Popularität mobiler Anwendungen und der rasanten Entwicklung der Positionierungstechnologie sind Karten- und Positionierungsfunktionen zu einem unverzichtbaren Bestandteil moderner mobiler Anwendungen geworden. uniapp ist ein auf Vue.js basierendes plattformübergreifendes Anwendungsentwicklungs-Framework, mit dem Entwickler Code auf mehreren Plattformen teilen können. In diesem Artikel wird die Verwendung von Karten und Positionierungsfunktionen in Uniapp vorgestellt und spezifische Codebeispiele bereitgestellt. 2. Verwenden Sie die Komponente uniapp-amap, um die Kartenfunktion zu implementieren

So nutzen Sie WordPress-Plug-Ins, um eine sofortige Standortfunktion zu erreichen. Mit der Beliebtheit mobiler Geräte beginnen immer mehr Websites, geolokalisierungsbasierte Dienste anzubieten. Auf WordPress-Websites können wir Plug-ins verwenden, um Funktionen zur sofortigen Positionierung zu implementieren und Besuchern Dienste im Zusammenhang mit ihrem geografischen Standort anzubieten. 1. Wählen Sie das richtige Plug-in. In der WordPress-Plug-in-Bibliothek stehen viele Plug-ins zur Auswahl. Je nach Bedarf und Anforderungen ist die Auswahl des richtigen Plug-Ins der Schlüssel zur sofortigen Positionierungsfunktionalität. Hier sind einige

1. Zuerst öffnen wir die [Suchen]-App auf dem Mobiltelefon und wählen das Gerät in der Liste auf der Geräteoberfläche aus. 2. Anschließend können Sie den Standort überprüfen und auf die Route klicken, um dorthin zu navigieren.

Methoden zur Lösung des Problems der Speicherleckstelle bei der Go-Sprachentwicklung: Speicherlecks sind eines der häufigsten Probleme bei der Programmentwicklung. Bei der Entwicklung der Go-Sprache kann es aufgrund des automatischen Garbage-Collection-Mechanismus zu Speicherverlustproblemen kommen, die geringer sind als bei anderen Sprachen. Bei großen und komplexen Anwendungen kann es jedoch dennoch zu Speicherverlusten kommen. In diesem Artikel werden einige gängige Methoden zum Auffinden und Lösen von Speicherverlustproblemen bei der Go-Sprachentwicklung vorgestellt. Zuerst müssen wir verstehen, was ein Speicherverlust ist. Einfach ausgedrückt bezieht sich ein Speicherverlust auf die

1. Klicken Sie, um die Amap-Kartensoftware auf Ihrem Mobiltelefon aufzurufen. 2. Klicken Sie unten rechts auf „Mein“. 3. Klicken Sie, um die Familienkarte aufzurufen. 4. Klicken Sie auf „Meine Familienkarte erstellen“. 5. Nach erfolgreicher Erstellung erscheint ein Einladungscode, der mit einem anderen Mobiltelefon geteilt werden kann.

Wir alle wissen ganz genau, dass die Taku APP eine sehr zuverlässige Chat- und soziale Plattform ist. Jetzt ermöglicht es jedem, Freunde über den Standort zu finden Schließlich kann es Ihre aktuellen Standortinformationen automatisch für Sie lokalisieren und Sie besser mit einigen Freunden in derselben Stadt zusammenbringen, die sich in der Nähe befinden, sodass sich alle leichter unterhalten können und sich oft besonders glücklich fühlen Um mehr Freunde an anderen Orten kennenzulernen, kommt jeder auf die Idee, seine Adresse zu ändern, aber er weiß nicht, wie er seine Standortinformationen ändern kann, was sehr schwierig ist, so der Herausgeber dieser Website habe auch einige spezifische gesammelt

In der heutigen Gesellschaft sind Mobiltelefone zu einem unverzichtbaren Bestandteil unseres Lebens geworden. Als bekannte Smartphone-Marke erfreuen sich die Mobiltelefone von Huawei großer Beliebtheit bei den Nutzern. Mit der Beliebtheit von Mobiltelefonen und der zunehmenden Nutzungshäufigkeit gehen Mobiltelefone jedoch häufig verloren. Sobald unser Telefon verloren geht, neigen wir dazu, uns ängstlich und verwirrt zu fühlen. Wenn Sie also Ihr Huawei-Telefon leider verlieren, wie können Sie dann schnell seinen Standort finden? Schritt 1: Nutzen Sie die Mobiltelefon-Ortungsfunktion. Huawei-Mobiltelefone verfügen über integrierte leistungsstarke Positionierungsfunktionen. Benutzer können die Option „Sicherheit“ in den Mobiltelefoneinstellungen verwenden.

Kürzlich haben wir festgestellt, dass viele Benutzer im Internet sagen, dass das Gerät bei der Suche oder Kommentierung von Themen im Zusammenhang mit der „Entdeckung von Öl“ automatisch die Standortbestimmung einschaltet. Es besteht der Verdacht, dass Apple-Mobiltelefone den Standort erfassen und senden Informationen zur Überwachung von Benutzern. Löst die Eingabe von „Öl gefunden“ auf dem iPhone den Standort aus? Kann die Privatsphäre von Apple auf diese Weise gewährleistet werden? Offensichtlich ist das ein Missverständnis! Der Apple-Kundendienst gab an, dass die Positionierungsfunktion standardmäßig aktiviert ist und jeder Vorgang Statusaktualisierungen auslösen kann, anstatt sich auf das Senden bestimmter Texte zu beschränken. Diese Aussage erhebt jedoch keinen Anspruch auf Vollständigkeit. Im Allgemeinen löst das iPhone die Positionierungsfunktion nur selten aus, es sei denn, Sie suchen etwas oder die APP-Mechanismus-Einstellung hängt damit zusammen. Wenn der Benutzer bestimmte Zeichen eingibt, aktiviert die APP automatisch die Positionierungsfunktion der Hintergrund. Warum kann dieses Thema
