2009-03-11 32 views
1

Hey! Hem Java EE hem de Stackowerflow için göreceli olarak yeniyim, lütfen nazik olun :-)Ejb 3, mesaj odaklı fasulye durumsal bir oturum fasulyesiyle işbirliği yapıyor mu?

Herhangi bir durum değişikliğinde gönderilmek üzere Java mesajlarını tetikleyen bir grup aygıtım var. Bu cihazlar tipik olarak yaklaşık 30-90 dakikalık aralıklar için aktiftir. Her olay mesajı, etkinlik ayrıntılarına ek olarak bir cihaz kimliği içerir.

Uygulamamdaki merkezi, bu olaylara abone olan mesaj odaklı bir fasülyedir. Her olayda, cihaz hakkında bazı bilgileri aramak için veritabanına basmam gerekiyor.

Her aktif aygıtla durum bilgisi olan bir oturum fasulyesini ilişkilendirebilsem kesinlikle müthiş olurdu! Eğer bu bir web uygulaması olmuş olsaydı, http-oturumunu bir durum ya da durum bilgisi içeren besiyere saklamak için kullanırdım (Ben haklı mıyım?). Bunu mesaj fasulyemden arşivleyebilmemin bir yolu var mı?

+0

Bu aygıt verileri değiştirilebilir mi? Bir cihaz değiştirildiğinde, ne yapıyorsunuz? Ardından iş mantığında tuttuğunuz varlığın durumu veritabanındaki temsilcisinden farklıdır. Benim düşünceme göre veriler sadece bir yerde tutulmalıdır. – Timo

cevap

2

Güzel olurdu, çünkü açıkladığınız gibi yapılamaz. MDB'ler (ve SLSB'ler) tanım gereği vatansızdır, bu nedenle sadece konuşma sırasında bir sohbeti sürdürmek güvenlidir.

Sonuçta teknik özellikleri bozabilir ve statik bir öznitelik oluşturabilirdiniz (belki MDB'nin kendisinde), ancak bu kesinlikle taşınabilir değil, ölçeklenebilir.

Benim önerim, JPA düzeyinde önbelleğe almayı etkinleştirmektir (ayrıntılar için tercih etme sağlayıcınıza bakın), böylece çok hızlı (gerçekten hızlı) ihtiyacınız olan her türlü bilgiyi arayabilirsiniz. Bu taşınabilir ve küme dostu. Projelerimde bunu yapmak için kullanıyorum ve bundan çok memnunum.

Yardım edin.

0

Belirli ürünleri önermekle bu kadar rahat değilim, ancak Terracotta sunucu adresleme ihtiyaçları böyle değil mi?