top 30 jms interview questions
Daha Taze ve Deneyimli profesyoneller için En Popüler JMS Mülakat Soruları ve Cevapları:
JMS veya Java Mesajlaşma Hizmeti, günümüzde mesajların tüm dünyada güvenli, güvenilir ve ölçeklenebilir bir şekilde teslim edilmesi için en baskın modellerden biri haline gelmiştir.
Bu model çok iyi yapılandırılmıştır ve çeşitli mesajlaşma teknikleri ve protokollerini destekler.
Şimdi dalalım ve sektör genelinde bu konu hakkında sıkça sorulan bazı soru ve cevapların üzerinden geçelim.
En Popüler JMS Mülakat Soruları
Aşağıda, ayrıntılı cevaplarla birlikte en sık sorulan Java Mesaj Servisi mülakat sorularının bir listesi verilmiştir.
S # 1) JMS nedir?
Cevap: Java Mesajlaşma Hizmeti, sistemlerin mesaj oluşturmasını, okumasını, göndermesini ve almasını sağlayan bir Java API'sidir.
Algoritmanın en önemli kısmı çok iyi yapılandırılmış ve bir uygulamanın başka bir uygulamaya mesaj göndermesine izin verdiği gibi abonelere yayın özellikleri de sağlıyor.
S # 2) JMS tarafından sağlanan iletişim türleri nelerdir? Detayları açıklamak.
Yanıt: Bu API iki tür iletişim sağlar:
- Eşzamansız: Mesaj müşteriye teslim edilecektir, istemcinin onu alabilmesi için talep göndermesi gerekmez. Gönderen uygulama iletildikten sonra istemci uygulaması bunu alacaktır.
- Dürüst: API protokolü alıcı uygulamasının kullanılabilirliğini sağladığında burada mesaj istemci uygulamasına gönderilir.
S # 3) JMS'de bulunan mesajlaşma modellerinin sayısı nedir?
Cevap: Spesifik olarak, JMS tarafından sağlanan iki tür model vardır:
Noktadan Noktaya: Adından da anlaşılacağı gibi, gönderenin tek bir alıcıya bir mesaj gönderdiği bire bir mesajlaşma mekanizmasıdır. Mesaj, hazır olduğunda alıcı uygulama tarafından kullanılabilir ve o zamana kadar mesaj kuyrukta saklanır.
Bunun en önemli kısmı, hem gönderen hem de alıcı uygulama arasında zaman açısından sıfır bağımlılık olmasıdır.
Yayınla ve Abone Ol: Bu mesajlaşma mekanizması, JMS tarafından oldukça benzersiz bir şekilde tasarlanmıştır.
Örneğin bir okuyucu, kişinin ilgilendiği bir bloga abone olur. Şimdi, belirli bir blog ile ilgilenen birkaç kişi olabilir.
Ve o bloga abone olurlar / kayıt olurlar. Artık blogda yeni bir gönderi veya konu yayınlandığında, tüm kayıtlı okuyucular bir güncelleme alacak. Bu mesajlaşma modelinin adı Yayınla ve Abone Ol.
S # 4) Kuyruk nedir?
Cevap: JMS'nin noktadan noktaya mekanizmasında, kaynak uygulama hedef uygulamaya bir mesaj gönderir, mesaj kullanılabilir olduğunda hedef uygulama tarafından tüketilir, o zamana kadar o zamanın depolama birimi bir kuyruk olarak adlandırılır.
S # 5) Konu nedir?
Cevap: Yayınlama / Abone Olma modelinde, müşteri / yayıncı uygulaması bir mesaj oluşturur ve bu mesaj tüm aboneler veya hedef uygulamalar tarafından kullanılabilir. Bu mesaja Konu denir.
S # 6) JMS ve RPC'nin çalışma mekanizması arasındaki temel fark nedir?
Cevap: İki model arasındaki tanımlanabilir fark, mesajın teslim edilme şekli arasındadır.
JMS durumunda, gönderen uygulama mesajı hedef uygulamaya gönderir ve daha sonra programlama kriterlerine göre tekrar bekler / veya başka bir mesajı işler.
RPC söz konusu olduğunda, ileti hedefe ulaştığında iş parçacığı tamamlanır ve kontrol, ileti aktarımından sorumlu yönteme geri döner.
S # 7) Mesaj Odaklı Ara Yazılım Nedir?
Cevap: Message Oriented Middleware, JMS çalışma modelinde gönderen uygulama ile hedef uygulama arasında çalışan bir yazılımdır.
S # 8) JMS'deki Noktadan Noktaya modeline göre gönderen ve alıcı bileşen arasında hiçbir zaman bağımlılığından Mesaj Odaklı Ara Yazılım nasıl sorumludur?
Cevap: MOM ara yazılımı, gönderen ve alıcı bileşen arasında çalıştığından, mesajla ilgilenir ve mesajı kuyruk mekanizmasıyla taşır. Bu nedenle, hedef / alıcı uygulama mesajı almak / okumak için uygun hale gelene kadar, mesaj bir kuyrukta saklanır.
En önemli kısım, mesajın gönderilmesinden sorumlu yöntemin, alıcı uygulama mesajı alana kadar meşgul olmamasıdır. Böylelikle hem gönderen hem de alıcı uygulama zaman bağımlılığı olmadan bağımsız olarak çalışır.
S # 9) JMS tarafından desteklenen mesajlaşma türlerini adlandırın.
Cevap: JMS tarafından desteklenen mesaj türleri şunlardır:
- Metin mesajları
- Akış Mesajları
- Harita Mesajları
- Bayt Mesajları
- Nesne Mesajları
S # 10) Bayt Mesajı nedir?
Cevap: Bayt Mesaj nesnesi aslında kesintisiz bayt akışını içeren mesajı göndermekten sorumludur ve mesaj arayüzünden miras alır ve bir bayt mesaj gövdesi ekler. Mesajın yorumlanmasından mesaj alıcısı sorumludur.
JMS API, bu tür mesajların taşınmasına izin verir, ancak oracle belgelerine göre, özelliklerin dahil edilmesi mesaj biçimini etkileyebileceğinden bunlar genellikle kullanılmaz.
S # 11) StreamMessage nedir?
Cevap: Java programlama dilinde ilkel veri türleri akışını göndermek için bir StreamMessage nesnesi kullanılır. Veriler sırayla doldurulur ve okunur. Mesaj arayüzünden miras alır ve bir akış mesajı gövdesi ekler.
java.io.DataInputStream ve java.io.DataOutputStream, bu tür mesajlaşmayı destekleyen API'lerdir.
S # 12) Metin Mesajı nedir?
Cevap: Bir Metin mesajı, java.lang.String tarafından bakılan mesajdır ve mesaj arayüzünden miras alır ve bir metin mesajı gövdesi ekler. Bu, metin içeren mesajları taşımak için kullanılır.
S # 13) Nesne mesajı nedir?
Cevap: Bir nesne mesajı genellikle mesaj gövdesinde serileştirilebilir bir Java nesnesi içerir. Genel olarak, alıcı uygulama Object mesajını salt okunur bir modda alır.
S # 14) Harita mesajı nedir?
Cevap: Map Message nesnesinin mesaj gövdesi, adların String nesneleri ve değerlerin Java ilkelleri olduğu bir dizi ad-değer çifti içerir. Girişlere isme göre sıralı veya rasgele erişilebilir. Harita Mesajı aslında Mesaj arayüzünden miras alır ve bir Harita içeren bir mesaj gövdesi ekler.
S # 15) JNDI nedir? JMS ile nasıl ilişkilidir?
Cevap: JNDI, Java Adlandırma ve Dizin Arayüzüdür. Bir uygulama bir veritabanına bağlıysa, uygulama geliştiricisinin veritabanı bağlantı kimlik bilgileri hakkında endişelenmek yerine bu veritabanına bir ad vermesine olanak tanır.
JNDI API, adlandırma dizinine erişecek ve ad ile veritabanı nesnesi arasındaki eşlemeyi bulacak ve buna göre bağlanacaktır. Mesaj göndermek için herhangi bir connectionFactory'ye (kuyruk veya konu) bağlanırken bu mekanizmayı kullanabiliriz.
S # 16) Gönderen uygulama, JMS aracılığıyla bir mesajı nasıl taşır / gönderir?
Cevap: Aşağıda, bir mesajın JMS aracılığıyla gönderilmesinin birkaç yolu verilmiştir:
- ConnectionFactory'nin kimlik bilgilerini aramak için JNDI uygulayın.
- Uygulama için bir connectionFactory nesnesi oluşturun.
- Hedef nesneleri (bir veya daha fazla) tanımlayın.
- JMS bağlantısını kurmak için connectionFactory nesnesini kullanın.
- Bir veya daha fazla oturum oluşturun.
- Gereken MessageProducers ve MessageConsumers'ı oluşturmak için bir Oturum ve Hedefleri kullanın.
- Kanalı kullanarak iletişim kurun.
S # 17) JMS'nin bileşenlerini adlandırın.
Cevap: JMS'nin bileşenleri şunları içerir:
- JMS Sağlayıcısı
- JMS İstemcisi
- Mesajlar
- Yönetilen Nesneler
- Yerel Müşteriler
S # 18) JMS'de Yönetilen Nesneler nedir?
Cevap: JMS tarafından yönetilen nesne, JMS istemcisiyle bağlantı kurmak için yönetici tarafından yapılandırılan ve JNDI altında tanımlanan kimlik bilgileridir. Bu nesneler, sunucu içindeki JMS istemcisine bağlanmadan önce yapılandırılır.
S # 19) Bir JMS Sağlayıcısının işlevleri nelerdir?
Cevap: JMS Sağlayıcısı temel olarak güvenlik ve verilerle ilgilenir.
Mesajın güvenli bir şekilde teslim edilmesini sağlamaktan, aynı zamanda veri şifreleme ve veri kodlama standartlarından sorumludur ve mesajı JMS olmayan istemci için çağırmaktan sorumludur.
S # 20) JMS oturumu nedir?
Cevap: Bir JMS oturumu, JMS mesajlarının gönderilmesinden alınmasına kadar olan toplam akışı kontrol eden bir durumdur.
S # 21) Otomatik e-posta göndermek için JMS kullanabilir miyiz?
Windows 10'da bin dosyaları nasıl açılır
Cevap: JMS, bu özelliği destekleyen standart bir API'ye sahip değildir, ancak otomatik e-postalar göndermek için JavaMail'i kullanabiliriz.
S # 22) JMS bağlamında bir mesaj dinleyicinin işlevselliği nedir?
Cevap: Mesaj Dinleyici tipik olarak eşzamansız teslimat durumunda mesaj tüketicisiyle kullanılır. Eşzamansız teslimat için, messageConsumer ile bir MessageListener nesnesi kaydedilebilir.
S # 23) JMS İstemcisi nedir?
Cevap: JMS istemcisi temelde mesaj gövdelerini çağırmak ve tüketmekten sorumlu olan Java programlama dilinde yazılmış bir bileşendir.
S # 24) Mesaj nedir?
Cevap: Bir mesaj bir gövdedir, daha çok JMS istemcileri arasında iletişim kuran bir bileşendir.
S # 25) Bir JMS Mesaj Üreticisinin işlevselliği nedir?
Cevap: Bir mesaj üreticisi, temel olarak, alıcı uygulamaya bir mesaj göndermek için bir JMS oturumu tarafından oluşturulan bir bileşendir.
Bir hedef nesneyi, kuyruk nesnesini veya konu nesnesini tanımlamak için bir oturum oluşturabilir ve MessageProducer arabirimini uygulayabilirsiniz. Bir üretici, bir nesne yerine argümanında null atayarak bir üreticiyi belirtilmemiş olarak ilan edebilir. Daha sonra, bir hedefi, mesajı argümanlar veya parametreler olarak belirtmek için gönderme yönteminde Java yöntemi aşırı yüklemesini kullanabiliriz.
S # 26) JMS Message Consumers'ın işlevselliği nedir?
Cevap: Bir mesaj tüketicisi, temelde, alıcı uygulama tarafından bir mesaj almak için bir JMS oturumu tarafından oluşturulan bir bileşendir. Hedef nesneyi, kuyruk nesnesini veya konu nesnesini tanımlamak için bir oturum oluşturabilir ve bir MessageConsumer arabirimi uygulayabilirsiniz.
Bir dayanıklı konu abonesi oluşturmak için oturum nesnesiyle createDurableSubscriber'ı kullanabilirsiniz, ancak bunu kuyruklar oluşturmak için değil Yayınlama / Abone Olma modeli için bir konu oluşturmak için kullanabilir.
Tüketici nesnesi oluşturulduktan sonra tüketici aktif hale gelir. Nesneyi mesaj almak ve göndermek için kullanabiliriz. Bunu devre dışı bırakmak için, bir MessageConsumer için bir kapatma yöntemi kullanılabilir.
S # 27) JMS Kuyruk Tarayıcısının işlevselliği nedir?
Cevap: Daha önce, alıcı onu alana kadar mesajın saklandığı kuyruk kavramını tartıştığımız gibi. Kuyruktaki mesajlara göz atma ve başlık değerlerini görüntüleme işlevi, QueueBrowser nesnesi tarafından desteklenir.
Bir QueueBrowser nesnesi aracılığıyla oluşturulabilir. JMS oturumu.
S # 28) JMS Mesaj Seçicinin işlevselliği nedir?
Cevap: JMS Mesaj seçici temelde herhangi bir özel uygulama için aldığı mesajları filtrelemekten sorumlu olan bir API'dir. Mesaj Seçiciler, işi aslında mesajları filtrelemekten sorumlu olan JMS Sağlayıcısına atar.
Bir ileti seçici aslında girdi olarak dizi türü değerlerini alır.
WatchType = 'Titan' VEYA WatchType = 'Rolex'
CreateConsumer ve createDurableSubscriber yöntemleri, bir mesaj tüketicisi oluşturduğunda bir mesaj seçicinin argüman olarak belirtilmesine izin verir.
S # 29) JMS'nin neden olduğu istisna ile nasıl başa çıkılır?
Cevap: JMS API tarafından JMS ile ilgili istisnaların atılmasından sorumlu ana sınıf JMSException'dır.
JMSException'ı yakalamak, JMS API ile ilgili tüm istisnaları ele almak için genel bir yol sağlar.
JMS Exception sınıfı, API belgelerinde açıklanan aşağıdaki alt sınıfları içerir:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
S # 30) JMS'ye göre işlem görmemiş oturumlar nasıl işlenir?
Cevap: İşlem yapılmayan oturumlar durumunda, mesajlar, QueueSession veya TopicSession yönteminin bir oturum nesnesi oluşturulurken iletilen argüman temelinde onaylanır.
Aşağıdaki seçenekler genellikle iş gereksinimlerine göre kullanılır:
- Oturum, toplantı, celse. AUTO_ACKNOWLEDGE: Bir oturum nesnesi oluştururken bu bağımsız değişkeni geçerse, o zaman JMSException oluşursa, güvenilir bir tüketici birkaç saniye bekler ve ardından mesajları tekrar almak için MessageConsumer.receive yöntemini çağırır. Yük devretme nedeniyle herhangi bir mesaj teslim edilmezse, o zaman yeniden teslim edilecektir.
- Oturum, toplantı, celse. CLIENT_ACKNOWLEDGE: Bir oturum nesnesi oluşturulurken bu bağımsız değişken geçilirse, JMSException meydana gelirse, tüketici Message.aknowledge veya MessageConsumer.receive'ı çağırmadan önce Session.recover'ı çağırır, çünkü Session.recover onaylanmamış mesajların kurtarılması ve yeniden iletilmesinden sorumludur.
- Oturum, toplantı, celse. DUPS_OK_ACKNOWLEDGE: Bir oturum nesnesi oluştururken bu bağımsız değişkeni geçerse, o zaman JMSException oluşursa, güvenilir bir tüketici birkaç saniye bekler ve ardından mesajları tekrar almak için MessageConsumer.receive yöntemini çağırır. Ancak burada yinelenen mesajlar alınabilir veya yük devretmeden önce bu modda olduğu gibi aynı mesajlar yeniden teslim edilebilir, onaylanan mesajlar yeniden gönderilebilir.
Not : Buradaki örnek kodda QueueSession'ı kullandım, ancak bu argümanları geçmek için TopicSession kullanılabilir.
S # 31) Oracle Glassfish sunucusunun işlevselliği nedir? Apache Tomcat sunucusuna ek olarak ne gibi avantajlar sağladı?
Cevap: Glassfish sunucusu aslında bir uygulama sunucusudur ve web sunucusu olarak da kullanılabilir, bu da web tarayıcılarından gelen HTTP isteklerini işleyebileceği anlamına gelir.
Bir uygulama sunucusu olarak, servletler / JSP ve ayrıca EJB bileşenleri açısından her tür Java Enterprise uygulamasını işlemek için geliştirilmiştir.
Oysa Tomcat sunucusu aslında genellikle sunucu uygulaması veya JSP bileşenlerini işlemek için kullanılan bir sunucu uygulaması kapsayıcısıdır.
S # 32) Bir JMS bağlantısı başlatmak için bir EJB oturumu nasıl oluşturulur?
Cevap: Aşağıdaki kodda yazdığımız gibi JMS için bir EJB oturumu oluşturabiliriz.
S # 33) Mesaj Güdümlü Bean Kümeleme kavramını açıklayın.
Cevap: EJB bileşeni tabanlı bir uygulama herhangi bir uygulama sunucusu kümesinde konuşlandırılırsa, uygulama için kullanılabilirlik ve ölçeklenebilirlik sağlamak için küme içindeki herhangi bir sunucuda çalışacak şekilde yapılandırılabilir.
EJB, Message Driven Bean (MDB) biçimindeyse, küme içindeki herhangi bir sunucuda çalışabilir ve kümedeki bir dizi uygulama sunucusuna paralel olarak başlatılabilir.
Sonuç
Umarım bu en iyi JMS mülakat soruları listesi gerçekten bilgilendirici olabilirdi ve eminim ki bu listeyle ilgili kapsamlı bir bilgiyle her röportajı başarılı bir şekilde çözebilirsiniz.
Umarım bu size çok yardımcı olur !! Mutlu Öğrenme !!
Önerilen Kaynaklar
- Mülakat Soruları ve Cevapları
- Bazı İlginç Yazılım Testi Görüşme Soruları
- ETL Test Mülakat Soruları ve Cevapları
- En İyi 12 Sahte Görüşme Sorusu (Alaycı Çerçeve Görüşmesi)
- En Popüler Oracle Formları ve Raporları Mülakat Soruları
- Deneyimli Profesyoneller İçin Yazılım El Kitabı Test Mülakat Soruları
- Java Dağıtımı: Java JAR Dosyasının Oluşturulması ve Yürütülmesi
- En İyi Oracle Apps Teknik ve Oracle SOA Mülakat Soruları