and TTL set to 900 seconds.
Quoteand TTL set to 900 seconds.you mean "TTL for Host Cache entries"? it's not RR cacheif you need to force a long TTL then "Minimum TTL for RRsets and messages" should be used imho
you can dump unbound cache to a file to be sure cache works and see current TTLs for the records
Do not set "minimum ttl" to high. Some server require the requesting the "new" response.Better set "Serve Expired Responses", so the latency is still very low, but the cache is more accurate.