SORU
29 Mart 2011, Salı


Neden AKSARAY sunucuda UI bileşenleri durumunu kaydeder?

  1. Zaman sunucu tarafında UI bileşenleri durumunu kurtarıyor OLUMSUZLUK ve tam olarak ne zaman ne kadar UI bileşen durumu bilgileri kaldırıldısunucudan bellek? Bir giriş sayfaları rağmen uygulama gider üzerinde kullanıcısı olarak, bileşenlerin durumu sunucusu birikmeye devam edecek?

  2. AnlamıyorumUI bileşenleri tutmak yararı server durum nedir !?Doğrudan geçen doğrulanmış yönetilen fasulye yeterince dönüştürülmüş veri/değil mi? Veya bunu önlemek için denemeli miyim?

  3. O tüketmek değilçok fazlaeğer eşzamanlı kullanıcı oturumu binlerce varsa sunucu tarafında bellek? Kullanıcıların belirli konular hakkında bloglar yayınlayabilecekleri bir uygulama var. Bu bloglar boyutu oldukça büyük. Bloglar görüntüleme için geri gönderin veya talep olacakBu sayfa büyük veri bileşenleri durumunu bir parçası olarak kaydedilir?Bu çok fazla bellek yiyip bitirir. Bu bir endişe değil mi ?


Güncelleme 1:

Şimdi, artık OLUMSUZLUK kullanırken durumunu kaydetmek için gereklidir. Vatansız AKSARAY uygulama yüksek performanslı bir kullanım için kullanılabilir. Bu konuyla ilgili ayrıntılı bilgi için blog & this question & tartışma bakın. Ayrıca, AKSARAY gözlük, AKSARAY için vatansız modu sağlamak için bir seçenek eklemek issue bir açık var. (P. S. eğer bu sizin için faydalı bir özellik ise 15* & this *sorunlar için oylama Düşünün.)

Güncelleme 2 (24-02-2013):

Harika bir haber buMojarra bağlamda 2.1.19dışarı ilevatansız modu!

Buraya bakın:

http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255

http://java.net/jira/browse/JAVASERVERFACES-2731

http://balusc.blogspot.de/2013/02/stateless-jsf.html

CEVAP
29 Mart 2011, Salı


Neden AKSARAY sunucu tarafında UI bileşenleri durumunu kaydetmek gerekiyor mu ?

Çünkü HTTP vatansız ve OLUMSUZLUK durum. AKSARAY bileşen ağacı (programlı) dinamik değişiklikler yaşanır. AKSARAY sadece bilmen gereken birşey var tam devlet olarak ne zaman form vardı görüntülenen son kullanıcıya, yani, çünkü bu süreci başarıyla tüm AKSARAY yaşam döngüsü temel bilgiler ile orijinal OLUMSUZLUK bileşen ağacı ne zaman form has been submitted geri server. Bileşen ağacı isteği hakkında bilgi vermektedir parametre adları, katılmak/gerekli dönüştürücüler, bean özellikleri ve eylem yöntemleri bağlı başardı.


Ne zaman kadar OLUMSUZLUK ve tam UI bileşen durumu bilgileri server bellek kaldırılır zaman sunucu tarafında UI bileşenleri durumunu kurtarıyor?

Bu iki soru aynı mesele gibi görünüyor. Her neyse, bu uygulama özel ve devlet sunucu veya istemci üzerinde kayıtlı olup olmamasına da bağlıdır. Bit iyi bir uygulama süresi olduğu veya sıra dolu olduğunda çıkarın. Örneğin mojarra bağlamda devlet tasarrufu oturum olarak ayarlandığında 15 mantıksal görünümlerini varsayılan bir sınır. Bu web.xml aşağıdaki bağlam param ile configureable

<context-param>
    <param-name>com.sun.faces.numberOfLogicalViews</param-name>
    <param-value>15</param-value>
</context-param>

Ayrıca mojarra bağlamda özgü diğer parametreler ve bu ilgili cevap com.sun.faces.numberOfViewsInSession vs com.sun.faces.numberOfLogicalViews Mojarra FAQ bkz


Bir giriş sayfaları rağmen uygulama gider üzerinde kullanıcısı olarak, bileşenlerin durumu sunucusu birikmeye devam edecek?

Teknik olarak uygulamasına bağlıdır. Eğer sayfa sayfa gezinme (sadece GET istekleri) bahsediyorsan o zaman mojarra bağlamda oturumda hiçbir şey kurtaramaz. Ancak POST istekleri (commandlinks ile formlar/düğmeleri), mojarra bağlamda maksimum limit kadar oturumunda her form durumu kurtaracak. Bu son kullanıcıya aynı oturumda farklı bir tarayıcı sekmelerde birden fazla form açmak için sağlar.

Ya da, devlet tasarruf istemci olarak ayarlandığında, daha sonra AKSARAY oturumda bir şey saklamak olmaz. web.xml aşağıdaki bağlam param yapabilirsiniz:

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>

O zaman adı form javax.faces.ViewState ile gizli bir giriş alanı içinde şifreli bir dize seri hale getirilmiş olacak.


Ben sunucu tarafında UI bileşeni devlet tutmanın yararı ne olduğunu anlamak. Doğrudan geçen doğrulanmış yönetilen fasulye yeterince dönüştürülmüş veri/değil mi? /Bunu önlemek için denemeli miyim?

Bu OLUMSUZLUK bütünlüğünü ve sağlamlığını güvence altına almak için yeterli değil. AKSARAY kontrol tek bir giriş noktası dinamik bir yapıdır. Olmayan bir devlet yönetimi, bir mümkün olacaktır parodi/hack HTTP istekleri belirli bir şekilde (örneğin işleme disabled, readonly rendered öznitelikleri), izin OLUMSUZLUK yapmak farklı ve potansiyel olarak hazardful - şeyler. Hatta CSRF saldırıları eğilimli ve Kimlik Avı olur.


Ve eğer eşzamanlı kullanıcı oturumu binlerce varsa, sunucu tarafında çok fazla bellek tüketiyor, değil mi? Kullanıcıların belirli konular hakkında bloglar yayınlayabilecekleri bir uygulama var. Bu bloglar boyutu oldukça büyük. Bloglar görüntüleme için geri gönderin veya talep olacak, büyük bloglar bileşenlerin durumunu bir parçası olarak kaydedilir. Bu çok fazla bellek tüketir. Bu bir endişe değil mi?

Bellek özellikle ucuz. Sadece appserver yeterli bellek ver. Ya da eğer ağ bant genişliği için daha ucuz ise, sadece istemci tarafı durumuna geçiş. En iyi eşleşmeyi bulmak için, sadece stresstest eşzamanlı kullanıcı beklenen en büyük miktarda web profili ve appserver maksimum ölçülen bellek 125% ~ 150% ver o zaman.

AKSARAY 2.0 devlet yönetiminde çok gelişmiş olduğunu unutmayın. Olası kısmi devlet (ör . kaydetmek içinsadece<h:form> yerine sonuna kadar <html> tüm yol tüm şeyler) kaydedilir. Örneğin mojarra bağlamda yok. 10 giriş alanları ile ortalama bir form (etiket ve bir mesaj ile her biri) ve 2 düğmeleri artık 1 kb'den sürer. Oturum 15 manzaralı, seans başına 15KB fazla olmalıdır. ~1000 eşzamanlı kullanıcı oturumu ile, en fazla 15 MB olmalıdır.

İlginiz gerçek nesneler (fasulye ve/veya DB varlıkları bile yönetilen) oturum veya uygulama kapsamında daha dikkat edilmelidir. Gördüm çok kodları ve projeleri olan gereksiz çiftleri tüm veritabanı tablo içine Java hafızasında lezzet bir oturum kapsamı bean nerede Java kullanılmamış yerine SQL için filtre/grup/düzenlemek kayıtları. ~1000 kayıt ile, kolayca 10MB geçer diyekullanıcı oturum başına.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kourtneyannmakeup

    kourtneyannm

    19 ŞUBAT 2012
  • pucksz

    pucksz

    24 Mart 2006
  • Techmoan

    Techmoan

    31 Mayıs 2009