Jump to content

İbrahim TELCİ

uniGUI Subscriber
  • Posts

    35
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by İbrahim TELCİ

  1. Ahmet bey Merhaba; aynı konu ile alakalı bende sıkıntılar yaşıyorum. Bende CSS kullanmaya çalıştım ama bir sonuç elde edemedim. Nasıl çözdünüz paylaşırsanız sevinirim. İyui çlışmalar dilerim.
  2. Ben sunucuya göndermek istiyorum. Sunucu gelen pakete göre clientlara gönderme yapacak.
  3. Merhabalar. Yeni sürümlerde çıkan web soketi kullanma üzerine çalışıyorum. Dışarıdan bir uygulama ile oluşturulan web sokete bağlanıp veri göndermek istiyorum. Bunu nasıl yapabilirim.
  4. Merhabalar; Sürekli kullandığım Tuniwebsocket kompenenti aşağıdaki hatayı veriyor. Unit dosyasını bulamıyor. FMSoft_uniGUI_Professional_1.90.0.1565.exe paketini yeniden kurdum hala aynı. çözemedim. Dosyayıda bulamadım bilgisayarda. Güncelleme yapacaktım projem askıda kaldı. Acil çözüm bekliyorum arkadaşlar. Şimdiden teşekkürler. iyi çalışmalar. [dcc32 Fatal Error] Main.pas(21): F2613 Unit 'UniWebSocket' not found.
  5. Merhabalar. Hayır sorunu çözemedim. Normal stanalone olarak çalıştırdım. Üzerine fazla düşemedim. Şimdilik böyle devam ediyorum. Keşke yardımcı olabilseydim. Kullanıcı sayım 200 ü geçmediği için problemim yok. Ama daha üst sayılarda muhakkak çözüm bulmam gerekecek.
  6. İyi günler arkadaşlar. Hyper serverdan standalone bir uygulama yayınlıyorum. Kendi bilgisayarımda testlerde hiçbir sıkıntı yok. Lakin uzak bir sanal makineye yüklediğimde http://***:8090/server sayfası açılıyor. Ama http://***:8090 asıl sayfa açılmıyor. Hatada vermiyor. Herhengibir logda yazmıyor. Açılmıyor. hbyperserver değilde Uygulamanın sadece kendisini çalıştırıyorum o zaman çalışıyor... Antivirüs firewall kapalı. runtime paket kurulu 1 gündür uğraşıyorum. Çözüm bulamadım. Yardımcı olursanız sevinirim.
  7. Servera Clientdataset koydum. Dediğinizi denedim. Ama oturumlar aynı anda erişmeye çalıştığında ilk açılışta çakışma oluyor. Bu problemi nasıl çözebilirim aynı anda yazıp silebilecek paralel bir yapıya ihtiyacım var gibi duruyor.
  8. Merhabalar; Yazdığım projede aktif olan tüm oturumların listesini "UniServerModule.SessionManager.Sessions" ile alıyorum. Oturumları her seferinde tarayıp ilgili olan oturumlarda bir değişkene değer gönderiyorum. Yalnız bu listeyi sürekli taramak zorunda kalıyorum (2 saniyede bir). Sürekli olarak session.locK ve session.unlock yapmış oluyorum. Bu pek tavsiye edilen bir yöntem değil. Ortalama aktif 300 oturumum var. Bunu daha farklı nasıl yapabilirim. Bir tablo yada array içinde oturum bağlandığında kendisini eklese yok olduğunda kendisini silse gibi birşey. Tavsiyeleriniz nedir?
  9. Merhabalar; MainModule üzerindeki onSessionTimeout olayı tetiklendiğinde kullanıcı hiç bir işlem yapmadan sayfanın yeniden yüklenmesini istiyorum. Ama bir etkileşim olmadan bunu yapamadım. Servermodule üzerinde RestartSessionTimeout açık. Timeout olduğunda mevcut oturumun sonlandırılıp yeni bir oturumla sayfanın yeniden yüklenmesini istiyorum. Kullanıcı herhangibir işlem yapmadan bu otomatik gerçekleşecek.
  10. Teşekkür ederim. İstediğim tam olarak buydu. İyi çalışmalar dilerim.
  11. Yanıtınız için teşekkür ederim. Zaten söylediğiniz demo uygulama üzerinden çalışıyorum. Terminate ettiğim zaman sayfa sonlanıyor. Ben sayfayı yeniden başlatmak istiyorum. Bu konu ile alakalı bir çözüm öneriniz var mı?
  12. TUniServerModule.UniGUIServerModuleException olayında bir hata yakalanır ise hata olan oturumun sayfasını yenilemek istiyorum. Uniapplication.Restart komutu bu işe yarıyor yalnız bunu ServerModule üzerinden kullanamadım. Nasıl yaparım. Bilgi verir iseniz sevinirim.
  13. Merhabalar. SgcWebscoket ile mqtt protokolünü kullanmak istiyorum. Tam bir örnek bulamadım. VCL komponentlerini forma ekleyerek çalıştırabildim. Bağlanıyorum subscrible dinleyip publish mesajlarını alabiliyorum. Yalnız bu seferde kapatırken memory leak hatası veriyor. Basit bir şekilde connect ,Suscrible ve publish adımlarını ufak bir örnekle anlatabilecek yardım talep ediyorum. Sgcwebsocket haricinde de mqtt kullanım tavsiyelerine açığım. Şimdiden teşekkür ediyorum.
  14. Hayır ChainMode seçmedim. Bu özellik ne işe yarıyor.
  15. Başka bir önerisi olan yokmu acaba? Ben birşey bulamadım henüz.
  16. Yeni çağrıyı yakaladığında o çağrı ile ilgili oturuma senin çağrın var diye mesaj gönderiyor. Mesaj giden oturum çağrıyı gösteriyor ve o kaydı kapatıyor. Tekrar sorguyu çalıştırana kadar oturum o çağrıyı sonlandırmış oluyor zaten. Dönüşünüz için teşekkürler.
  17. Merhabalar; Aşağıda özellikleri yazılı bir server sunucuda IIS üzerinden hazırladığım uygulamayı yayınlıyorum. Uygulamada Server Module üzerinde çalışan bir ThreadTimer ve Main Form üzerinde çalışan bir Timer nesnem var. Server module üzerinde çalışan ThreadTimer veritabanını kontrol ediyor ve MainModule içerisindeki Boolean bir değişkeni tetikliyor. Mainform üzerindeki Timer bu değişkeni kontrol ediyor ve eğer true gelirse sayfa üzerindeki bilgileri yenileyip değişkeni tekrar False konumuna çekiyor. Sürekli çalışan bir kod yok. Sadece kontrol ediyor. Ama aşağıda verdiğim ekran görüntülerinde 181 sayfa açık ve işlemci kullanımı %50 lerin üzerinde. Bir türlü düşüremedim. Nedeni ne olabilir acaba. Sunucu Özellikleri Windows server 2016 IIS 10.0 8 Çekirdek (Xenon E5-2650 2.3 ghz) işlemci 8 gb ram ServerModule üzerinde çalışan ThreadTimer içerisindeki kod (interval =2000) // TÜM WEB EKRANLARA AİT YENİ ÇAĞRI VARILARI KONTROL ET Q_Yeni_Cagri.Close; Q_Yeni_Cagri.SQL.Clear; Q_Yeni_Cagri.SQL.Add('SELECT * FROM CAGRI_VIEW_WEB WHERE (ISLEM_DURUMU=0) AND (EKRAN_TURU=''WEB'') ' +' AND (CONVERT(datetime,KAYIT_ZAMANI,121)>=CONVERT(datetime,dateadd(SS,-'+CAGRI_KONTROL_SURESI+',getdate()),121))' +' ORDER BY KAYIT_ZAMANI ASC'); Q_Yeni_Cagri.Open; Bilgi:='9'; // YENİ ÇAĞRILAR VAR İSE if Q_Yeni_Cagri.RecordCount>0 then Begin S := UniServerModule.SessionManager.Sessions; // YENİ ÇAĞRI LİSTESİNİ DÖNGÜYE SOK while not Q_Yeni_Cagri.Eof do Begin //UniServerModule.Logger.AddLog('YENİ ÇAĞRI VAR ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '); // eğer yeni çağrı bulunur ise aktif sessionların listesini al Bilgi:='10'; S.Lock; try Bilgi:='11'; //Aktif_Sessions.Filtered:=false; //Aktif_Sessions.EmptyDataSet; // SESSİON SAYISI KADAR DÖN çağrının ait olduğu sessiona çağrıyı gönder for I := 0 to S.SessionList.Count - 1 do begin Bilgi:='12'; U := S.SessionList[I]; if U.UniMainModule <> nil then if ((U.UniMainModule as TM_Module).EKRAN_ID<>'Close') AND ((U.UniMainModule as TM_Module).EKRAN_ID=Q_Yeni_Cagri.FieldByName('EKRAN_ID').AsString) then Begin Bilgi:='13'; (U.UniMainModule as TM_Module).CAGRI_ID:=Q_Yeni_Cagri.FieldByName('CAGRI_ID').AsInteger ; End ; end; finally Bilgi:='14'+Bilgi; S.Unlock; // ... and finally don't forget to release lock! //UniServerModule.Logger.AddLog('1-Oturum listesi alındı.' ); end; Q_Yeni_Cagri.next; Bilgi:='15'; End; End MainForm üzerinde Çalışan Timer içerisindeki kod (interval=1000) if frm_ana.Height<> UniApplication.ScreenHeight then Begin frm_ana.Height:=UniApplication.ScreenHeight; frm_ana.Width:= UniApplication.ScreenWidth; End; if M_Module.UniCon_Cagri.Connected then begin ImgDB_Var.Visible:=true; ImgDB_Yok.Visible:=false; end else begin ImgDB_Var.Visible:=false; ImgDB_Yok.Visible:=true; end; if TMR_Cagri_Kontrol.Enabled=True then begin Img_Kontrol_Var.Visible:=true; Img_Kontrol_Yok.Visible:=false; end else begin Img_Kontrol_Var.Visible:=false; Img_Kontrol_Yok.Visible:=true; end; // eğer server tarafından gönderilen ÇAĞRI ID EN SON GERÇEKLEŞTİRİLEN ÇAĞRI ID DEN BÜYÜK İSE // YENİ ÇAĞRI VAR DEMEKTİR. YENİ ÇAĞRIYI GERÇEKLEŞTİR. // eğer yan son tru ise bir çağrı gerçekleştiriliyordur. çağrı bitene kadar yeni çağrı yapma if (M_Module.CAGRI_ID> EN_SON_CAGRI_ID) and (Yan_Son=false) then Begin Btn_Veri_AktarClick(self); End;
  18. uni-1.90.0.1535 sürümünü kullanıyorum.
  19. Log dosyasında aşağıdaki hatayı alıyorum nedeni nedir? Normalde belirtilen klasörde dillere göre yerel tarih saat biçimleri var anladığım kadarıyla. Tr yi bulması gerek ama bulamıyor. Windows server 2016 ingilizce işletim sisteminde IIS üzerinden yayınlıyorum. Yalnız tüm dile ve bölgesel ayarlar Türkçe olarak ayarlandı. ,File not found: C:\Program Files (x86)\FMSoft\Framework\unigui\ext-7.0.0\build\classic\locale\locale-.js
  20. Merhabalar. projemi 64 bit dll olarak build edip. IIS te yayınlamak istiyorum. Denemelerim başarısız oldu. Formum açılıyor ama veritabanı bağlantısı kuramıyorum. Form üzerindeki nesneler gelmiyor. Geliştirici klavuzundaki yönergelere göre yaptım. 64 bit için farklı bir ayar var mı?
  21. Çok garip bir durum ServerModule üzerinde çalışan bir Threadtimer içinde oturumların listesini alıp veritabanında değişiklik olan oturumlara güncelle diye bir değişkeni tetikliyorum. S := UniServerModule.SessionManager.Sessions; // YENİ ÇAĞRI LİSTESİNİ DÖNGÜYE SOK while not Q_Yeni_Cagri.Eof do Begin //UniServerModule.Logger.AddLog('YENİ ÇAĞRI VAR ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '); // eğer yeni çağrı bulunur ise aktif sessionların listesini al //S.Lock; try //Aktif_Sessions.Filtered:=false; //Aktif_Sessions.EmptyDataSet; // SESSİON SAYISI KADAR DÖN TÜM SESSİONLARI DATA SETE AT for I := 0 to S.SessionList.Count - 1 do begin U := S.SessionList[I]; if ((U.UniMainModule as TM_Module).EKRAN_ID<>'Close') AND ((U.UniMainModule as TM_Module).EKRAN_ID=Q_Yeni_Cagri.FieldByName('EKRAN_ID').AsString) then Begin (U.UniMainModule as TM_Module).CAGRI_ID:=Q_Yeni_Cagri.FieldByName('CAGRI_ID').AsInteger ; End ; end; finally //S.Unlock; // ... and finally don't forget to release lock! //UniServerModule.Logger.AddLog('1-Oturum listesi alındı.' ); end; Q_Yeni_Cagri.next; End; Bu şekilde timeouta düşen oturumlar kapanıyor. Ama yukarıdaki gibi oturumdaki değişkeni U:=UniServerModule.GetSession(Aktif_Sessions.FieldByName('SESSION_ID').AsString); (U.UniMainModule as TM_Module).CAGRI_ID:=Q_Yeni_Cagri.FieldByName('CAGRI_ID').AsInteger; bu şekilde aktarınca. Oturumu "Uniapplication.terminate" yapsam bile sürekli açık kalıyor. Şimdilik böyle çözdüm. İşin aslınıda çözemedim.
  22. ThreadTimer nesnesi kullanıyorum. Aynısı geçerlimi. "Unisession.terminate" oturumu tamamen kapatır mı?
×
×
  • Create New...