Setelah beberapa kali mencoba, saya menemukan bahwa itu adalah masalah dengan Penyeimbang Beban Azure.
Setelah 60-an tidak aktif, koneksi TCP yang tertunda akan diputuskan.
Setelah menggali lebih lanjut, saya menemukan posting FAQ diagnostik MongoDB ini, dan saya telah mengatur tcp keepalive ke 120s:
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>
dan saya juga telah menyetel socketKeepAlive dari MongoClient menjadi true:
MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());
Setelah perbaikan ini, masalahnya tampaknya hilang!