2016-06-15 19 views
0

Gibt es eine Möglichkeit, die Datenbankverbindungspoolgröße zu bestimmen. Ich möchte herausfinden, min Poolgröße, max Poolgröße.Wie wird die Größe des Verbindungspools programmgesteuert in JBoss abgerufen?

Der Grund hierfür ist wie folgt:

  1. Meine Anwendung auf Wildfly-9.0.1.Final läuft.
  2. Ich habe Datenquelle in-ds.xml-Datei konfigurieren.
  3. Ich habe so viele Clients und für jeden gibt es -ds.xml-Datei.
  4. In jeder Datei habe ich angegeben max-pool-size = 30.

Aber für einige Kunden diese Größe (30) klein sein geschieht, da immer mehr Benutzer versucht, gleichzeitig Verbindung vom Pool zu bekommen. In diesem Fall muss ich die maximale Poolgröße auf eine höhere Zahl erhöhen. Ich möchte etwas wie das wird mir helfen, diese Parameter zu holen und dann basierend darauf werde ich einige Logik durchführen. Wenn die Poolgröße 25/30 erreicht hat, wird E-Mail als Warnung ausgelöst, sodass der Entwickler seine Poolgröße erhöhen kann. Auf diese Weise wird es hilfreich sein, Probleme zu vermeiden, die der Client erleidet, wenn er keine Verbindung herstellen kann, wenn alle erlernt werden.

Gibt es eine Möglichkeit, auf diese Parameter des Verbindungspools programmatisch zuzugreifen?

Antwort

0

Nun, es gibt mehrere Möglichkeiten. Wenn Ihre Datenquelle in der standalone.xml konfiguriert werden würde könnte man leicht Ihr Ziel

über den CLI-Befehl (werfen Sie einen Blick here, wenn Sie mit der CLI nicht vertraut sind) erreicht

/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(include-runtime=true) 

durch JMX durch die folgende MBean Lesen

jboss.as:subsystem=datasources,data-source=ExampleDS,statistics=pool 

Vorsicht: In beiden Fällen ExampleDS ersetzt mit Ihrem Akt werden muss Name der Datenquelle.

aktualisieren

Wenn Sie direkt einen -ds.xml in den Implementierungen Verzeichnis ablegen können Sie die Statistik wie folgt lesen:

/deployment=my-ds.xml/subsystem=datasources/data-source=java\:jboss\/my\/jndiName\/for\/DeployedDS/statistics=pool:read-resource(include-runtime=true) 

oder

jboss.as:deployment=my-ds.xml,subsystem=datasources,data-source="java:jboss/my/jndiName/for/DeployedDS",statistics=pool 

Beachten Sie, dass in In jedem Fall müssen Sie diese Statistiken zuerst aktivieren, bevor Sie mit den oben gezeigten Methoden auf nützliche Informationen zugreifen können. Diese Statistiken können ein Leistungsnachteil sein. Sie können diese Statistiken zum Beispiel über CLI aktivieren:

/deployment=my-ds.xml/subsystem=datasources/data-source=java\:jboss\/my\/jndiName\/for\/DeployedDS/statistics=pool:write-attribute(name=statistics-enabled, value=true) 

Wenn mit Wildfly arbeiten würde ich empfehlen generell Datenquellen in der standalone.xml zu konfigurieren - es ist viel besser unterstützt.

+0

Vielen Dank für Ihre Antwort. Ich hätte Datenquelle in standalone.xml konfiguriert, aber es gibt keine einzelne Datenquelle. Ich habe es mit fast mehr als 200 Datenquellen zu tun. Ich denke, das Konfigurieren der Datenquelle in -ds.xml im/deployment-Ordner wäre eine gute Option. Ein weiterer Vorteil einer Datenquelle in der Datei -ds.xml besteht darin, dass ich den Server nicht jedes Mal neu starten muss, wenn ich eine neue Datenquelle hinzufüge. Aber im Fall von standalone.xml muss ich den Server neu starten, wenn ich eine neue Datenquelle hinzufüge. –

+0

Schauen Sie sich mein Update an. Sie können den JMX MBean in Verbindung mit jolokia verwenden und ihn auf einem geeigneten Überwachungssystem überwachen. – DaImmi

0

Bitte versuchen Sie dies mit Jboss-cli:

[standalone @ localhost: 9999 /] /Subsystem = Datenquellen/data-source = ExampleDS/Statistik = Pool: Lese-Ressource (include- Laufzeit = true)