Datasnap Server bir süre sonra çalışmayı durduruyor?

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mussimsek »

Merhaba,

Datasnap server üzerinden, ufak bir mobil uygulama yaptım.

Server tarafı : Standalone .exe program, Datasnap, DBX ve SQL Server.
Android/iOS Client tarafında : TClientDataset ve FMX kullandım.

Önceden 40-50 civarında kullanıcı kullanıyordu ve sıkıntı yoktu. Ancak biraz büyüyünce, uygulamayı daha fazla kişi kullanmaya başladı. Ancak 400-500 client'e çıkınca, datasnap server bir süre sonra yanıt vermeyi durdurmaya başladı. Yanıt vermeyi durdurunca, server'ı kapatıp açıyorum. Kullanıcılar işlem yapabilmeye başlıyor. Bir gün kadar sonra yine tıkanıyor. Her gün restart etmek zorunda kalıyorum.

Server tarafında session'lar Sanıyorum açık kalıyor. Açık kalan bu bağlantıları nasıl yok edebilirim? + Yapabileceğim başka iyileştirmeler var mıdır?

Teşekkür ederim.
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen ertank »

Merhaba,

Şahsen her fırsatta Datasnap çözümünden uzak durun diyorum. Özellikle yük altına girdiğinde çok ciddi sorunlar ortaya çıkmaya başlıyor ve çözümü pek mümkün olmuyor. Halen devam ediyor mu bilmiyorum ancak hafıza kaçakları olduğu da biliniyor.

Ben şu ana kadar MARS-Curiosity'den çok memnunum. Yıllardır kullanan müşterilerim var. Henüz hiç şikayet almadım. Müşteri kullanıcı sayılarını takip etmiyorum ancak aynı anda dinleme yapacak thread sayısı INI parametresi olarak ayarlanabiliyor.
https://github.com/andrea-magni/MARS

MARS-Curiosity FMX bileşenleri de sunması adına yine sizin uygulama güncellemenizi ve sunucu geçişinizi daha rahat yapabileceğiniz bir çözüm diye düşünüyorum. Hatta, uygun koşullar altında hiç değişiklik yapmadan, sadece sunucu tarafını MARS kullanımına geçirmeniz mümkün olabilir. Bunun için kullanılan uç noktaları ve gelen parametreler/giden verileri incelemek ve sunucu kodunda uyarlamak gerekli.

Datasnap yük performansı ile ilgili aşağıdaki bağlantıyı incelemenizi tavsiye ederim. Datasnap ile ciddi bir süre detaylı ilgilenmişler.
https://robertocschneiders.wordpress.co ... ity-tests/

Alternatifler bağlantıda listeleniyor. mORMot bunlardan bir tanesi. mORMot2 sürümü yakın zaman önce stabil olarak yayınlandı. Kullanımı biraz daha pratikleştirilmiş olabilir ancak öğrenme süreci bana halen yavaş ve zorlu geliyor. Bunun yanında performansı çok iyi bir ORM kütüphanedir. mORMot2 testlerde saniyede 1milyon istek cevaplar hale getirilmiş durumda. Bu test bağlantılarını bulamadım.

Kısacası en kısa sürede sunucu tarafı çözümünüzü değiştirmenizi tavsiye ederim.
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen ertank »

Eklemeden geçmek istemedim. Bağlantısını verdiğim makalenin devamı var. Sonuna kadar okumayan birisi kaçırabilir.

https://robertocschneiders.wordpress.co ... ts-part-2/

İkinci bölümde Embarcadero'dan gelen bilgiler/güncellemeler ile testler tekrarlanıyor. Sonuç değişmiyor tabi. Dataspan için sadece küçük ölçekli kullanım tavsiye ediliyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mussimsek »

Merhaba,

Haklısınız. Ben de araştırmalarımda Mars ve Mormot'u gördüm ama ortada çalışan bir proje var. Client/server tarafı rest tabanlı olmadığı için, yeni bir öğrenme, test ve yayınlama süreci olacak, zaman alacak bir süreç. Tüm süreçleri tamamiyle test etmeden devreye alınamayacak.

500 client çok fazla bir rakam olmasa gerek. Birkaç iyileştirme ile önümüzdeki süreçte çok sıkıntı çıkartmadan geçiş düşünüyorum.

Windows tarafında, TCP/IP ile alakalı bir takım ayarlar vermişler. Akşam bir deneyeceğim.
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen ertank »

mussimsek yazdı: 11 Eyl 2023 03:23 500 client çok fazla bir rakam olmasa gerek.
Verdiğim bağlantılardan ilkinde 50 ve 100 simültane istemci testinde DataSnap hata verip çöküyor.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mkysoft »

Kisa yoldan su yapilabilir belki. nginx ya da haproxy ile bir proxy katmani ekleyin. uygulamanizi paralel olarak farkli portlardan birden fazla calistirin. clientler proxy portuyla baglansin. eger uygulamalardan biri cokerce proxy otomatik digerine yonlendirir, yuk dengeleme de yapar. belki bir gozcu uygulama yazip, islemci kullanmayan yada hata veren uygulama tekrar calisitirilabilir. gerci bu kisim icin windows servis olarak da yazilabilir.
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen ertank »

mussimsek yazdı: 11 Eyl 2023 11:38 Server tarafında session'lar Sanıyorum açık kalıyor. Açık kalan bu bağlantıları nasıl yok edebilirim?
Paylaştığım ikinci bağlantıda session açık kalması konusu ile ilgili aşağıdaki kod örneği paylaşılmış. Sizin için çözüm olur mu bilmiyorum. Ancak çözüm olsa dahi halen daha yüksek kullanıcı sayısına ulaşılırsa başka sorunlar yaşamamak adına REST tabanlı bir platform geçişi yapmayı planlamanızda fayda olduğuna inanıyorum.

Kod: Tümünü seç

uses
  System.StrUtils,
  DataSnap.DSSession,
  Data.DBXPlatform;

function TServerMethods1.HelloWorld: String;
begin
  Result := 'Hello World';
  GetInvocationMetaData.CloseSession := True;
end;
Kod örneğindeki son satır session kapanmasına ve kullandığı hafızayı boşaltmaya yaradığı bildirilmiş. Buna rağmen Datasnap içindeki hafıza kaçaklası sebebiyle hafıza tüketimi zaman içinde artıyor olduğu da bildirilmiş. Farklı bir ifade ile "sadece kaçınılmaz sonu geciktirecektir"
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mussimsek »

Kullanıcıları 2 datasnap servera dağıtarak sıkıntıyı geçici olarak çözdüm. Sonrasına bakacağız...

Yardımlarınız için teşekkür ederim.

Kolay gelsin.
mkucuktepe
Üye
Mesajlar: 13
Kayıt: 30 Oca 2021 10:55

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mkucuktepe »

Bende yeni bir sataşmak projesine başlayacaktım. Hiç başalamayayım o zaman
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mussimsek »

DataSnap değil ama rest tabanlı bir mimari ile yapılabilir. Mobil projeler, büyük esneklik sağlıyor.

Yukarıda arkadaşların önerdiği sistemlerden birini kullanabilirsiniz. Tavsiyelerini dikkate alarak başlayabilirsin.

Kolay gelsin.
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen Commandx »

mussimsek yazdı: 16 Eki 2023 08:43 DataSnap değil ama rest tabanlı bir mimari ile yapılabilir. Mobil projeler, büyük esneklik sağlıyor.

Yukarıda arkadaşların önerdiği sistemlerden birini kullanabilirsiniz. Tavsiyelerini dikkate alarak başlayabilirsin.

Kolay gelsin.
Hocam Merak ettiğim bir konu, UniDac Client Dataset bileşenleri kullanılarak, Firebird İle yapılmış VT serverine kaç tane Client Bağlanabilir.
Sütun Sayıları ortalama 120 adet dersek... Server İşlemci intel-İ5 SSD HD
Yaptığım uygulamada 45-60 kullanıcıda sorun yaşamadım, bunda da kullanıcı artarsa sorun yaşama ihtimali çıkar mı?
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
alexm3919
Üye
Mesajlar: 1
Kayıt: 22 Ara 2023 04:36

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen alexm3919 »

Sorun hala devam ediyor mu? A spreadsheet is a digital tool used for organizing, analyzing, and storing data in a tabular format. It consists of cells arranged in rows and columns, creating a grid where users can input and manipulate data. Each cell in the spreadsheet can contain data in various forms, such as text, numbers, dates, and formulas.An appeal letter is a formal document that is written when an individual or organization wants to request a reconsideration of a decision that was made about a specific issue.
En son alexm3919 tarafından 22 Ara 2023 09:12 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: Datasnap Server bir süre sonra çalışmayı durduruyor?

Mesaj gönderen mussimsek »

alexm3919 yazdı: 22 Ara 2023 04:41 Sorun hala devam ediyor mu?
Burada 2 tip kullanıcı vardı, buradaki kullanıcıları 2 ayrı servera bölerek sıkıntıyı çözdük. Ancak geçici bir çözüm.

Kolay gelsin.
Cevapla