top 30 jms interview questions
Nejoblíbenější otázky a odpovědi týkající se rozhovorů JMS pro čerstvější a zkušené profesionály:
Služba JMS nebo Java Messaging Service se v současné době stala jedním z nejdominantnějších modelů pro bezpečné, spolehlivé a škálovatelné doručování zpráv po celém světě.
Tento model je velmi dobře strukturovaný a podporuje řadu forem technik a protokolů zasílání zpráv.
Pojďme se ponořit a projít několik otázek a odpovědí, které se na toto téma v celém odvětví často kladou.
Nejoblíbenější dotazy k rozhovorům JMS
Níže je uveden seznam nejčastěji kladených otázek ohledně rozhovorů se službou Java Message Service spolu s podrobnými odpověďmi.
Otázka č. 1) Co je JMS?
Odpovědět: Java Messaging Service je rozhraní Java API, které umožňuje systémům vytvářet, číst, odesílat a přijímat zprávy.
Nejdůležitější část algoritmu je velmi dobře strukturovaná a umožňuje jedné aplikaci odeslat zprávu jiné aplikaci a také umožňuje předplatitelům funkce vysílání.
Otázka 2) Jaké jsou typy komunikace poskytované JMS? Vysvětlete podrobně.
Odpověď: Toto API poskytuje dva typy komunikace:
- Asynchronní: Zpráva bude doručena klientovi, není nutné, aby klient zasílal žádosti za účelem jejího přijetí. Klientská aplikace ji obdrží, jakmile odešle aplikaci odesílatele.
- Spolehlivý: Zde se zpráva odešle do klientské aplikace, jakmile protokol API zajistí dostupnost aplikace přijímače.
Otázka č. 3) Jaký je počet modelů zasílání zpráv dostupných v JMS?
Odpovědět: Konkrétně existují dva typy modelů poskytované JMS:
Point to Point: Jak název napovídá, jedná se o mechanismus zasílání zpráv jedna ku jedné, kdy odesílatel odešle zprávu jednomu příjemci. Zpráva je k dispozici aplikaci přijímače, jakmile je připravena, a do té doby je zpráva uložena ve frontě.
Nejdůležitější částí je, že existují nulové závislosti s ohledem na čas mezi aplikací odesílatele a příjemce.
Publikovat a přihlásit se k odběru: Tento mechanismus zasílání zpráv je velmi jedinečně navržen společností JMS.
Například , jeden čtenář se přihlásí k odběru jednoho blogu, kde má daná osoba zájem. Nyní může mít určitý blog zájem o několik lidí.
A přihlásí se k odběru / zaregistrují se k tomuto blogu. Jakmile je na blogu zveřejněn nový příspěvek nebo téma, všichni registrovaní čtenáři obdrží aktualizaci. Tento model zasílání zpráv se nazývá Publikovat a Přihlásit se k odběru.
Otázka č. 4) Co je to fronta?
Odpovědět: V mechanismu JMS typu point-to-point odesílá zdrojová aplikace zprávu cílové aplikaci, zpráva je cílovou aplikací spotřebována, jakmile je k dispozici, až do té doby se úložná jednotka toho času nazývá fronta.
Otázka č. 5) Co je téma?
Odpovědět: V modelu Publikovat / Přihlásit se k odběru aplikace klient / vydavatel vygeneruje jednu zprávu a tato zpráva je k dispozici všem odběratelům nebo cílovým aplikacím. Tato zpráva se nazývá Téma.
Otázka č. 6) Jaký je hlavní rozdíl mezi pracovním mechanismem JMS a RPC?
Odpovědět: Identifikovatelný rozdíl mezi těmito dvěma modely spočívá mezi způsobem, jakým je zpráva doručena.
V případě JMS odešle aplikace odesílatele zprávu cílové aplikaci a poté znovu čeká / nebo zpracovává další zprávu podle programovacích kritérií.
Zatímco v případě RPC je vlákno dokončeno, jakmile zpráva dosáhne cíle a ovládací prvek se vrátí zpět k metodě odpovědné za přenos zprávy.
Otázka č. 7) Co je to Middleware orientovaný na zprávy?
Odpovědět: Message Oriented Middleware je software, který pracuje mezi aplikací odesílatele a cílovou aplikací v pracovním modelu JMS.
Otázka č. 8) Jak je Message Oriented Middleware zodpovědný za žádnou časovou závislost mezi komponentou odesílatele a příjemce, pokud jde o model Point to Point na JMS?
Odpovědět: Vzhledem k tomu, že middleware MOM funguje mezi komponentou odesílatele a příjemce, stará se o zprávu a transportuje zprávu mechanismem řazení do fronty. Dokud nebude aplikace cílového / přijímače k dispozici pro příjem / čtení zprávy, zpráva se uloží do fronty.
Nejdůležitější částí je, že metoda odpovědná za odesílání zprávy není obsazena, dokud aplikace přijímače zprávu nepřijme. Aplikace odesílatele i příjemce tedy funguje nezávisle bez jakékoli časové závislosti.
Otázka č. 9) Pojmenujte typy zpráv podporované JMS.
Odpovědět: JMS podporuje tyto typy zpráv:
- Textové zprávy
- Streamujte zprávy
- Mapové zprávy
- Bajtové zprávy
- Zprávy o objektu
Otázka č. 10) Co je to zpráva o bajtech?
Odpovědět: Objekt Zpráva bajtů je ve skutečnosti zodpovědný za odesílání zprávy obsahující proud nepřerušených bajtů a dědí z rozhraní zprávy a přidává tělo zprávy bajtů. Příjemce zprávy je odpovědný za interpretaci zprávy.
Rozhraní JMS API umožňuje přenos tohoto typu zpráv, ale podle dokumentů Oracle se obvykle nepoužívají, protože zahrnutí vlastností může ovlivnit formát zprávy.
Otázka č. 11) Co je StreamMessage?
Odpovědět: Objekt StreamMessage se používá k odeslání proudu primitivních datových typů v programovacím jazyce Java. Data jsou postupně vyplňována a čtena. Dědí z rozhraní zprávy a přidává tělo zprávy streamu.
java.io.DataInputStream a java.io.DataOutputStream jsou rozhraní API podporující tyto typy zpráv.
Otázka č. 12) Co je textová zpráva?
Odpovědět: Textová zpráva je ta, o kterou se stará java.lang.String a dědí ji z rozhraní zprávy a přidává tělo textové zprávy. Slouží k přenosu zpráv obsahujících text.
Otázka č. 13) Co je zpráva o objektu?
Odpovědět: Zpráva o objektu obecně obsahuje v těle zprávy serializovatelný objekt Java. Obecně přijímací aplikace přijímá zprávu Object v režimu jen pro čtení.
Otázka č. 14) Co je zpráva na mapě?
Odpovědět: Tělo zprávy objektu Mapová zpráva obsahuje sadu párů název-hodnota, kde názvy jsou String objekty a hodnoty jsou primitiva Java. K položkám lze přistupovat postupně nebo náhodně podle jména. Mapová zpráva ve skutečnosti dědí z rozhraní zprávy a přidává tělo zprávy, které obsahuje mapu.
Otázka č. 15) Co je JNDI? Jak to souvisí s JMS?
Odpovědět: JNDI je rozhraní Java Naming and Directory Interface. Pokud je aplikace připojena k databázi, umožňuje vývojáři aplikace pojmenovat tuto databázi namísto obav o přihlašovací údaje k databázi.
Rozhraní JNDI API přistupuje k adresáři pojmenování, vyhledá mapování mezi názvem a databázovým objektem a podle toho se připojí. Tento mechanismus můžeme použít, když se připojujeme k libovolné connectionFactory (frontě nebo tématu) pro odesílání zpráv.
Otázka č. 16) Jak aplikace odesílatele přenáší / odesílá zprávu prostřednictvím JMS?
Odpovědět: Níže je uvedeno několik způsobů, jak se zpráva odesílá prostřednictvím JMS:
- Implementujte JNDI a vyhledejte pověření connectionFactory.
- Vytvořte objekt connectionFactory pro implementaci.
- Určete cílové objekty (jeden nebo více).
- Využijte objekt connectionFactory k navázání spojení JMS.
- Vytvořte jednu nebo více relací.
- Použijte relaci a cíle k vytvoření potřebných MessageProducers a MessageConsumers.
- Komunikujte pomocí kanálu.
Otázka č. 17) Pojmenujte komponenty JMS.
Odpověď: Součásti JMS zahrnují:
- Poskytovatel JMS
- Klient JMS
- Zprávy
- Spravované objekty
- Nativní klienti
Otázka č. 18) Co jsou spravované objekty v JMS?
Odpovědět: Objekt spravovaný službou JMS je ve skutečnosti pověření nakonfigurovaná správcem za účelem připojení ke klientovi JMS a jsou definována v rámci JNDI. Tyto objekty jsou nakonfigurovány před připojením k klientovi JMS uvnitř serveru.
Otázka č. 19) Jaké jsou funkce poskytovatele JMS?
Odpovědět: Poskytovatel JMS se v zásadě stará o bezpečnost a data.
Je odpovědný za zajištění bezpečného doručení zprávy, stará se také o standardy šifrování a kódování dat a je odpovědný za vyvolání zprávy pro klienta jiného než JMS.
Otázka č. 20) Co je relace JMS?
Odpovědět: Relace JMS je stav, který řídí celkový tok od odesílání po příjem zpráv JMS.
Otázka č. 21) Můžeme použít JMS k zasílání automatizovaných e-mailů?
jaké jsou různé typy testování
Odpovědět: JMS nemá žádné standardní API podporující tuto funkci, ale k odesílání automatických e-mailů můžeme použít JavaMail.
Otázka č. 22) Jaká je funkce posluchače zpráv v kontextu JMS?
Odpovědět: Posluchač zpráv se obvykle používá u příjemce zpráv v případě asynchronního doručení. U asynchronního doručování lze zaregistrovat objekt MessageListener pomocí messageConsumer.
Otázka č. 23) Co je klient JMS?
Odpovědět: Klient JMS je v zásadě komponenta napsaná v programovacím jazyce Java, která je zodpovědná za vyvolání a konzumaci těl zpráv.
Otázka č. 24) Co je to zpráva?
Odpovědět: Zpráva je tělo, spíše součást, která komunikuje mezi klienty JMS.
Otázka č. 25) Jaká je funkce producenta zpráv JMS?
Odpovědět: Producent zprávy je v zásadě komponenta, která je vytvořena relací JMS pro odeslání zprávy do aplikace příjemce.
Lze vytvořit relaci a implementovat rozhraní MessageProducer k definování cílového objektu, objektu fronty nebo objektu tématu. Jeden může deklarovat producenta jako nespecifikovaného přiřazením null v jeho argumentu namísto objektu. Později můžeme použít metodu Java přetížení metody odeslání k určení cíle, zprávy jako argumentů nebo parametrů.
Otázka č. 26) Jaká je funkce spotřebitelů zpráv JMS?
Odpovědět: Spotřebitel zprávy je v podstatě součást, která je vytvořena relací JMS pro příjem zprávy aplikací přijímače. Lze vytvořit relaci a implementovat rozhraní MessageConsumer k definování cílového objektu, objektu fronty nebo objektu tématu.
Jeden může použít createDurableSubscriber s objektem relace k vytvoření trvalého odběratele tématu, ale lze ho použít k vytvoření tématu pro model Publish / Subscribe a ne pro vytváření front.
Spotřebitel se stane aktivním, jakmile je vytvořen spotřebitelský objekt. Objekt můžeme použít k přijímání a odesílání zpráv. Chcete-li to deaktivovat, můžete použít metodu close pro MessageConsumer.
Otázka č. 27) Jaká je funkce prohlížeče front JMS?
Odpovědět: Jak jsme již dříve diskutovali o konceptu fronty, kde je zpráva uložena, dokud ji příjemce nepřijme. Funkci procházení zpráv ve frontě a zobrazování hodnot záhlaví podporuje QueueBrowser objekt.
Objekt QueueBrowser lze vytvořit pomocí. Relace JMS.
Otázka č. 28) Jaká je funkce nástroje pro výběr zpráv JMS?
Odpovědět: Selektor zpráv JMS je v podstatě API, které je zodpovědné za filtrování zpráv, které přijímá pro jakoukoli konkrétní aplikaci. Selektory zpráv ve skutečnosti přiřazují úlohu poskytovateli JMS, který je ve skutečnosti zodpovědný za filtrování zpráv.
Selektor zpráv ve skutečnosti přijímá hodnoty typu řetězce jako vstup.
WatchType = „Titan“ NEBO WatchType = „Rolex“
Metody createConsumer a createDurableSubscriber umožňují jednomu určit selektor zpráv jako argument při vytváření spotřebitele zprávy.
Otázka č. 29) Jak zacházet s výjimkou způsobenou JMS?
Odpovědět: Hlavní třídou odpovědnou za vyvolání výjimek souvisejících s JMS pomocí JMS API je JMSException.
Chytání JMSException poskytuje obecný způsob zpracování všech výjimek souvisejících s JMS API.
Třída JMS Exception zahrnuje následující podtřídy, které jsou popsány v dokumentaci API:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
Otázka č. 30) Jak zacházet s netransakčními relacemi s ohledem na JMS?
Odpovědět: V případě neprovedených relací jsou zprávy potvrzovány na základě předaného argumentu při vytváření objektu relace metody QueueSession nebo TopicSession.
Níže uvedené možnosti se obecně používají podle obchodních požadavků:
- Zasedání. AUTO_ACKNOWLEDGE: Pokud jeden předá tento argument při vytváření objektu relace, pak pokud dojde k JMSException, pak spolehlivý spotřebitel počká několik sekund a poté zavolá metodu MessageConsumer.receive, aby zprávy znovu přijal. Z důvodu převzetí služeb při selhání, pokud některá zpráva nebude doručena, bude znovu doručena.
- Zasedání. CLIENT_ACKNOWLEDGE: Pokud předáte tento argument při vytváření objektu relace, pak pokud dojde k JMSException, spotřebitel zavolá Session.recover před voláním Message.aknowledge nebo MessageConsumer.receive, protože Session.recover je zodpovědný za obnovení a opětovné doručení nepotvrzených zpráv.
- Zasedání. DUPS_OK_ACKNOWLEDGE: Pokud jeden předá tento argument při vytváření objektu relace, pak pokud dojde k JMSException, pak spolehlivý spotřebitel počká několik sekund a poté zavolá metodu MessageConsumer.receive, aby zprávy znovu přijal. Zde však lze přijímat duplicitní zprávy nebo stejné zprávy znovu doručené jako v tomto režimu před převzetím služeb při selhání, potvrzené zprávy mohou být znovu doručeny.
Poznámka : Zde v ukázkovém kódu jsem použil QueueSession, ale k předání těchto argumentů lze použít TopicSession.
Otázka č. 31) Jaká je funkce serveru Oracle Glassfish? Jaká další výhoda má na serveru Apache Tomcat?
Odpovědět: Server Glassfish je ve skutečnosti aplikační server a lze jej použít také jako webové servery, což znamená, že dokáže zpracovat požadavky HTTP z webových prohlížečů.
Jako aplikační server je vyvinut pro zpracování všech typů aplikací Java Enterprise z hlediska servletů / JSP a také komponent EJB.
Zatímco server Tomcat je ve skutečnosti kontejner servletu, který se obecně používá pro manipulaci s komponentami servletu nebo JSP.
Otázka č. 32) Jak vytvořit relaci EJB za účelem zahájení připojení JMS?
Odpovědět: Můžeme vytvořit relaci EJB pro JMS, jak jsme napsali v níže uvedeném kódu.
Otázka č. 33) Popište koncept Message Driven Bean Clustering.
Odpovědět: Pokud je aplikace založená na komponentách EJB nasazena na libovolném klastru aplikačního serveru, lze ji nakonfigurovat tak, aby běžela na jakémkoli serveru uvnitř klastru, aby byla zajištěna dostupnost a škálovatelnost aplikace.
Pokud je EJB ve formě Message Driven Bean (MDB), může běžet na libovolném serveru uvnitř klastru a může být spuštěn paralelně s řadou aplikačních serverů v klastru.
Závěr
Doufám, že tento seznam nejlepších otázek týkajících se rozhovorů s JMS by byl skutečně poučný a jsem si jist, že jakýkoli rozhovor můžete úspěšně prolomit s důkladnou znalostí tohoto seznamu.
Doufejme, že by vám to hodně pomohlo !! Šťastné učení !!
Doporučené čtení
- Dotazy a odpovědi na pohovor
- Některé zajímavé otázky týkající se testování softwaru
- ETL Testing Interview Otázky a odpovědi
- Top 12 Mockito Interview Questions (Mocking Framework Interview)
- Nejlepší dotazy a odpovědi na dotazníky společnosti Oracle Forms and Reports
- Softwarové manuální testování Dotaz na rozhovor pro zkušené profesionály
- Implementace Java: Vytvoření a spuštění souboru Java JAR
- Nejlepší technické dotazy k aplikacím Oracle a dotazům Oracle SOA Interview