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

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

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

Zabbix Java gateway può essere installato dal [codice sorgente](/manual/installation/install#installing-java-gateway) o dai [pacchetti](/manual/installation/install_from_packages).

Il supporto nativo per il monitoraggio delle applicazioni JMX esiste sotto forma di un daemon Zabbix chiamato "Zabbix Java gateway".
Zabbix Java gateway è un daemon scritto in Java.
Per trovare il valore di un particolare contatore JMX su un host, il server Zabbix interroga Zabbix Java gateway, che utilizza la [JMX management API](http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/) per interrogare da remoto l'applicazione di interesse.
L'applicazione non necessita di alcun software aggiuntivo installato; deve solo essere avviata con l'opzione `-Dcom.sun.management.jmxremote` sulla riga di comando.

Java gateway accetta connessioni in ingresso dal server Zabbix o dal proxy e può essere utilizzato solo come "passive proxy".
A differenza del proxy Zabbix, può essere utilizzato anche dal proxy Zabbix (i proxy Zabbix non possono essere concatenati).
L'accesso a ciascun Java gateway è configurato direttamente nel file di configurazione del server Zabbix o del proxy, quindi può essere configurato un solo Java gateway per ciascun server Zabbix o proxy Zabbix.
Se un host avrà item di tipo *JMX agent* e item di altro tipo, solo gli item *JMX agent* verranno passati a Java gateway per il recupero.

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

[comment]: # ({8421b0c9-05197937})
Quando un item deve essere aggiornato tramite Java gateway, il server Zabbix o il proxy si connetterà al Java gateway e richiederà il valore, che a sua volta Java gateway recupera e restituisce al server o al proxy.
Di conseguenza, Java gateway non memorizza nella cache alcun valore.

Il server Zabbix o il proxy dispone di un tipo specifico di processi che si connettono al Java gateway, controllati dall'opzione `StartJavaPollers`.
Internamente, Java gateway avvia più thread, controllati dall'opzione `START_POLLERS` [option](/manual/appendix/config/zabbix_java).
Sul lato server, se una connessione richiede più di "Timeout" secondi, verrà terminata, ma Java gateway potrebbe essere ancora occupato a recuperare il valore dal contatore JMX.
Per risolvere questo problema, esiste l'opzione `TIMEOUT` in Java gateway che consente di impostare il timeout per le operazioni di rete JMX.

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

[comment]: # ({2f10b469-475ef799})
Zabbix server o proxy cercherà di raggruppare il più possibile le richieste verso un singolo target JMX (influenzato dagli intervalli degli item) e di inviarle al Java gateway in un'unica connessione per ottenere prestazioni migliori.

Si consiglia di impostare `StartJavaPollers` su un valore minore o uguale a `START_POLLERS`; in caso contrario, potrebbero verificarsi situazioni in cui non sono disponibili thread nel Java gateway per gestire le richieste in arrivo.
In tali casi, il Java gateway utilizza `ThreadPoolExecutor.CallerRunsPolicy`, il che significa che il thread principale gestirà la richiesta in arrivo e temporaneamente non accetterà nuove richieste.

Se si sta cercando di monitorare applicazioni Java basate su Wildfly con Zabbix Java gateway, installare la versione più recente di `jboss-client.jar` disponibile nella [pagina di download di Wildfly](https://www.wildfly.org/downloads/).

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