Unfortunately, there is no straightforward way to set timeouts on JMX connections. Rumours are that this will be implemented in JMX 2.0 or Java 7, respectively.
This happens when the /etc/hosts file on your remote server contains something like
127.0.0.1 HOSTNAME, localhost
where HOSTNAME is the name of your server. You have to make sure that HOSTNAME isn't resolved as 127.0.0.1 so change your /etc/hosts as follows:
127.0.0.1 localhost IP_ADDRESS HOSTNAME
where IP_ADDRESS is the physical IP address of your remote server and HOSTNAME is its host name. These changes require that you restart your Java application.
Yes, just prefix your regex with the @ sign. This will trigger the threshold if the value matches the regex threshold.
Use threshold ranges as defined here: Threshold and Ranges
Contrary to some postings on the web, Syabru Nagios JMX plugin works perfectly with NRPE given that Java is installed on the remote host and that you got your NRPE setup right.
Check out Syabru Nagios Message Broker which acts as an intermediary between Nagios and JMX notifications.