[comment]: # ({00e36b2a-00e36b2a})
# 5 Java gateway

[comment]: # ({/00e36b2a-00e36b2a})

[comment]: # ({79079175-02637e76})
#### Przegląd

Zabbix Java gateway można zainstalować z [kodu źródłowego](/manual/installation/install#installing-java-gateway) lub [pakietów](/manual/installation/install_from_packages).

Natywna obsługa monitorowania aplikacji JMX jest dostępna w postaci demona Zabbix o nazwie "Zabbix Java gateway".
Zabbix Java gateway to demon napisany w języku Java.
Aby odczytać wartość określonego licznika JMX na host, serwer Zabbix wysyła zapytanie do Zabbix Java gateway, który używa [JMX management API](http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/) do zdalnego odpytywania interesującej aplikacji.
Aplikacja nie wymaga instalacji dodatkowego oprogramowania, musi jedynie zostać uruchomiona z opcją `-Dcom.sun.management.jmxremote` w wierszu poleceń.

Java gateway akceptuje połączenia przychodzące z serwer Zabbix lub proxy i może być używany wyłącznie jako "passive proxy".
W przeciwieństwie do Zabbix proxy, może być również używany z poziomu Zabbix proxy (proxy Zabbix nie mogą być łączone w łańcuch).
Dostęp do każdego Java gateway jest konfigurowany bezpośrednio w pliku konfiguracyjnym serwer Zabbix lub proxy, dlatego dla serwer Zabbix lub proxy Zabbix można skonfigurować tylko jeden Java gateway.
Jeśli host będzie miał pozycje typu *JMX agent* oraz pozycje innego typu, tylko pozycje *JMX agent* zostaną przekazane do Java gateway w celu pobrania.

[comment]: # ({/79079175-02637e76})

[comment]: # ({8421b0c9-05197937})
Gdy pozycja musi zostać zaktualizowana za pośrednictwem Java gateway, serwer Zabbix lub proxy połączy się z Java gateway i zażąda wartości, którą Java gateway następnie pobiera i przekazuje z powrotem do serwera lub proxy.
W związku z tym Java gateway nie buforuje żadnych wartości.

Serwer Zabbix lub proxy ma określony typ procesów, które łączą się z Java gateway, kontrolowany przez opcję `StartJavaPollers`.
Wewnętrznie Java gateway uruchamia wiele wątków, kontrolowanych przez opcję `START_POLLERS` [option](/manual/appendix/config/zabbix_java).
Po stronie serwera, jeśli połączenie trwa dłużej niż "Timeout" sekund, zostanie zakończone, ale Java gateway może nadal być zajęty pobieraniem wartości z licznika JMX.
Aby to rozwiązać, w Java gateway dostępna jest opcja `TIMEOUT`, która umożliwia ustawienie limitu czasu dla operacji sieciowych JMX.

[comment]: # ({/8421b0c9-05197937})

[comment]: # ({2f10b469-475ef799})
Serwer Zabbix lub proxy będzie próbował możliwie najbardziej grupować żądania do pojedynczego celu JMX (zależnie od interwałów pozycji) i wysyłać je do Java gateway w jednym połączeniu, aby uzyskać lepszą wydajność.

Zaleca się, aby `StartJavaPollers` było mniejsze lub równe `START_POLLERS`; w przeciwnym razie mogą wystąpić sytuacje, w których w Java gateway nie będzie dostępnych żadnych wątków do obsługi przychodzących żądań.
W takich przypadkach Java gateway używa `ThreadPoolExecutor.CallerRunsPolicy`, co oznacza, że główny wątek obsłuży przychodzące żądanie i tymczasowo nie będzie przyjmował żadnych nowych żądań.

Jeśli próbujesz monitorować aplikacje Java oparte na Wildfly za pomocą Zabbix Java gateway, zainstaluj najnowszy plik `jboss-client.jar` dostępny na [stronie pobierania Wildfly](https://www.wildfly.org/downloads/).

[comment]: # ({/2f10b469-475ef799})
