Exchange Server 2019 Event id: 1040 MsExchangeActiveSync Uyarısı
The average of the most recent heartbeat intervals [207] for request [Ping] used by clients is less than or equal to [540]. Make sure that your firewall configuration is set to work correctly with Exchange ActiveSync and direct push technology. Specifically, make sure that your firewall is configured so that requests to Exchange ActiveSync do not expire before they have the opportunity to be processed.   For more information about how to configure firewall settings when using Exchange ActiveSync, see Microsoft Knowledge Base article 905013, “Enterprise Firewall Configuration for Exchange ActiveSync Direct Push Technology” (http://go.microsoft.com/fwlink/?linkid=3052&kbid=905013).  

Aslında bu uyarı, Exchange Server’de bir sorun değildir, Ancak Bu uyarı istemciye hizmet veren Network Load Balancer’da yapılandırılan bir uyumsuzluk değeridir doğru yapılandırılmamış olmasından kaynaklanmaktadır.

Active Sync e-postaları Exchange Server’dan almak için Direct push teknolojisini kullanır. ActiveSync Client ve Exchange Server arasında doğrudan bir push iletişimi başlatmak için kalp atışı (heartbeat) aralığı değerlerini kullanılır. Direct Push Teknolojisinin çalışması için, ActiveSync Mobile’dan (istemci) bir istek ve Exchange Sunucusundan gelen yanıt olmak üzere iki işlem içerir. Active Sync İstemcisi, kullanıcının posta kutusundaki herhangi bir değişikliği bildirdiğinde, değişiklikler kalıcı HTTP veya HTTPS bağlantısı üzerinden doğrudan push yoluyla iletilir.

Bir kullanıcıdan Exchange Server’a ActiveSync isteği aşağıdaki süreçlerle iletilir;

  • Active Sync istemcisi, Exchange Server’a, belirtilen zamanda kullanıcı posta kutusunda meydana gelen herhangi bir değişikliği isteyen bir HTTP isteği gönderir. Temel olarak bu gelen kutusunu (inbox), kişileri (contacts), takvimi (calender) vb sorgulanır.
  • Exchange Server gelen bu isteği aldıktan sonra belirli posta kutusunu arar ve belirtilen süre sona erene kadar klasörlerdeki değişiklikleri görür. Zaman aşımı süresi aşıldıktan sonra istemcilere bir HTTP 200 OK yanıtı verir. Daha sonra Active Sync istemciye klasörler hakkındaki tüm güncellemeleri içeren bir yanıt isteği verir.
  • Active Sync Client daha sonra Exchange Server’dan gelen yanıtı alır ve gelen bu yanıtta aşağıdakilerden herhangi biri olabilir:
    • HTTP 200 OK – No change on Folder: Bu durumda, active sync client ping isteğini bir sonraki sinyal aralığı değerinde yeniden yayınlayacaktır. Bu durum kullanıcı mailbox’daki kontrol edeceği dizinlerde herhangi bir değişikliğin olmadığı anlamına gelir.
    • HTTP 200 OK – Change in folder: Kullanıcı mailbox’ında her dizindeki ilgili güncellemeleri alacaktır. Senkronizasyon tamamlandıktan sonra Active Sync isteği bir sonraki aralıkta yeniden yayınlayacaktır.
    • No Response: Ping isteğindeki zaman aralığını düşürür ve ardından güncellemeyi almak için minimum sinyal aralığı değerinde Active Sync isteği yeniden başlatılır.

Dolayısıyla, temel olarak bu HearBeatInterval değerleri, Network Load Balancer’lar ve Exchange Server’larda ayarlanan değerler arasında eşleşmelidir. Exchange Server 2019’da HearBeatInterval değerleri; Exchange Server kurulum dizininde (C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Sync) konumda bulunan web.config dosyasında görülebilir.

Bu konfigürasyon dosyası önemli olan 4 değer vardır;

MinHeartBeatInternal: Active Sync istemcinin sunucuya kalp atışı komutları vermesi arasında beklediği minimum saniye sayısıdır. Exchange 2019’da varsayılan değer 60 saniyedir. Bu değer çok küçük olması durumunda; istemci HTTP isteğini çok sık gönderecek ve aygıtın gücünü tüketecektir.

MaxHeartBeatInternal: Bir Active Sync istemcinin sinyal verme komutları arasında beklediği maksimum saniye sayısı. Varsayılan değer, Exchange 2019 Server’da 3540 saniyedir.

HeartBeatSampleSize: Bu değer sunucunun Active Sync istemcilerinden aldığı tüm son sinyal aralıklarını topladığı bir gruptur. İstemcilerin activesync HTTP isteğini sunucuya nasıl gönderdiklerini görmek için bu değeri tutar ve belirtilen değerlerle eşleşmelerini sağlar. Exchange Server 2019’da varsayılan değer, 200 kalp atışı aralığı beklemesidir.

HeartBeatAlertThreshold: Toplanan HBsamplesize değeri, belirtilen bu zaman aralığında, yapılandırılmış kalp atışı maksimum veya minimum değerinden fazlaysa veya karşılamıyorsa, uygulama günlüğüne bir olay kaydeder. Exchange Serve 2019’da yapılandırılan varsayılan değer 9 dakikadır.

HTTP(S) bağlantıları zaman aşımı değeri güvenlik duvarında 59 dakikadan uzun olarak yapılandırılmamışsa ve değeri Exchange Server değerden düşükse, bir ActiveSync HTTP isteği Firewall üzerinde zaman aşımına uğradığında ActiveSync Mobile istemcisi, bağlantının aşırı yüklenmesine neden olabilecek başka bir HTTP isteği gönderecektir. Bunu önlemek için Exchange sunucusu bir uyarı tetikleyecek ve işletim sistemi event loğunda Event id : 1040 değeri ile bir olayı bilgisi verecektir.

Kısa bir time-out değeri, mobil cihazdan yeni HTTP isteklerini daha sık başlatacaktır. Bu aynı zamanda cihazdan daha fazla HTTP isteği başlatıldığı için mobil cihazların pilini çok hızlı bir şekilde tüketecektir.

Bu işlem için best practice; kullanıcılara daha iyi bir deneyim sağlamak için Exchange Server Active Sync Sanal Dizinine yapılan HTTP istekleri için güvenlik duvarı Zaman Aşımı Değerlerini  (time-out) artırmaktır. Güvenlik duvarındaki zaman aşımı değeri, Exchange 2019 sunucularında belirtilen değerlere eşit veya daha büyük olabilir.