Cache DNS SRV lookups
When Openfire performs a lookup for a DNS SRV record, it will bypass any JVM internal caching, and perform a JNDI-based DNS lookup. This will cause a DNS lookup every time - potentially invoking network actions.
A cache should be used to reduce the amount of traffic somewhat. Ideally, the TTL of DNS records should be observed, but that seems not doable with JNDI lookups. As an alternative, use a low maximum duration for cached values.