top 30 jms interview questions
De mest populära JMS-intervjufrågorna och svaren för fräschare och erfarna yrkesverksamma:
JMS eller Java Messaging Service har för närvarande blivit en av de mest dominerande modellerna för säker, pålitlig och skalbar leverans av meddelanden över hela världen.
Denna modell är mycket välstrukturerad och stöder ett antal former av meddelandetekniker och protokoll.
Låt oss dyka in och gå igenom några frågor och svar som ofta ställs om detta ämne i branschen.
Mest populära JMS-intervjufrågor
Nedan finns en lista med de vanligaste frågorna om Java Message Service-intervjuer tillsammans med detaljerade svar.
F # 1) Vad är JMS?
Svar: Java Messaging Service är ett Java API som gör det möjligt för systemen att skapa, läsa, skicka och ta emot meddelanden.
Den viktigaste delen av algoritmen är mycket strukturerad och gör att en applikation kan skicka ett meddelande till en annan applikation och möjliggör även sändningsfunktioner till prenumeranterna.
F # 2) Vilka typer av kommunikation tillhandahålls av JMS? Förklara i detalj.
Svar: Detta API ger två typer av kommunikation:
- Asynkron: Meddelandet kommer att levereras till klienten, det krävs inte för klienten att skicka förfrågningar för att få det. Klientapplikationen kommer att ta emot den när avsändarprogrammet sänder.
- Pålitlig: Här skickas meddelandet till klientapplikationen när API-protokollet säkerställer att mottagarapplikationen är tillgänglig.
F # 3) Hur många är meddelandemodellerna tillgängliga på JMS?
Svar: Specifikt finns det två typer av modeller som tillhandahålls av JMS:
Punkt till punkt: Som namnet själv antyder är det en en-till-meddelandemekanism, där avsändaren skickar ett meddelande till en enda mottagare. Meddelandet är tillgängligt för mottagarprogrammet när det är klart och tills dess lagras meddelandet i kön.
Den viktigaste delen av det är att det finns noll beroenden med avseende på tid mellan både avsändaren och mottagarprogrammet.
Publicera och prenumerera: Denna meddelandemekanism är mycket unikt utformad av JMS.
Till exempel , en läsare prenumererar på en blogg där personen är intresserad. Nu kan det finnas flera personer som är intresserade av en viss blogg.
Och de prenumererar / registrerar sig på den bloggen. Nu när ett nytt inlägg eller ämne har publicerats på bloggen får alla registrerade läsare en uppdatering. Denna meddelandemodell heter Publicera och prenumerera.
F # 4) Vad är en kö?
Svar: I punkt-till-punkt-mekanismen för JMS skickar källapplikationen ett meddelande till destinationsapplikationen, meddelandet konsumeras av destinationsapplikationen när det är tillgängligt, tills dess att lagringsenheten vid den tiden kallas en kö.

F # 5) Vad är ett ämne?
Svar: I modellen Publicera / Prenumerera genererar klienten / utgivarprogrammet ett meddelande och det meddelandet är tillgängligt för alla prenumeranter eller destinationsapplikationer. Detta meddelande kallas ett ämne.

F # 6) Vad är principskillnaden mellan arbetsmekanismen för JMS och RPC?
Svar: Den identifierbara skillnaden mellan de två modellerna ligger mellan det sätt på vilket meddelandet levereras.
När det gäller JMS skickar avsändarapplikationen meddelandet till destinationsapplikationen och sedan väntar / behandlar det igen ett annat meddelande enligt programmeringskriterierna.
När det gäller RPC är tråden slutförd när meddelandet når målet och kontrollen återgår till metoden som är ansvarig för meddelandetransporten.
F # 7) Vad är Message Oriented Middleware?
Svar: Message Oriented Middleware är en programvara som fungerar mellan avsändarprogrammet och destinationsapplikationen i JMS-arbetsmodellen.
F # 8) Hur är Message Oriented Middleware ansvarigt för inget tidsberoende mellan avsändaren och mottagarkomponenten med avseende på punkt till punkt-modellen på JMS?
Svar: Eftersom MOM-mellanvaran fungerar mellan avsändar- och mottagarkomponenten tar den hand om meddelandet och transporterar meddelandet genom kömekanism. Så tills destinations- / mottagarapplikationen blir tillgänglig för att ta emot / läsa meddelandet lagras meddelandet i en kö.
Den viktigaste delen är att metoden som ansvarar för att skicka meddelandet inte är upptagen förrän mottagarapplikationen tar emot meddelandet. Således fungerar både avsändar- och mottagarapplikationen oberoende utan tidsberoende.
F # 9) Namnge de meddelandetyper som stöds av JMS.
Svar: Den typ av meddelanden som stöds av JMS är:
- Textmeddelanden
- Streama meddelanden
- Kartmeddelanden
- Bytes-meddelanden
- Objektmeddelanden
F # 10) Vad är ett bytemeddelande?
Svar: Bytes Message-objektet är faktiskt ansvarigt för att skicka meddelandet som innehåller en ström av oavbrutna byte och det ärver från meddelandegränssnittet och lägger till en byte-meddelandekropp. Meddelandemottagaren ansvarar för tolkningen av meddelandet.
JMS API tillåter transport av denna typ av meddelanden, men enligt oracle-dokument används de vanligtvis inte eftersom inkludering av egenskaper kan påverka meddelandeformatet.
F # 11) Vad är en StreamMessage?
Svar: Ett StreamMessage-objekt används för att skicka strömmen av primitiva datatyper i Java-programmeringsspråket. Uppgifterna fylls i sekvens och läses. Den ärver från meddelandegränssnittet och lägger till en strömmeddelandekropp.
java.io.DataInputStream och java.io.DataOutputStream är API: er som stöder dessa typer av meddelanden.
F # 12) Vad är ett textmeddelande?
Svar: Ett textmeddelande är det som tas om hand av java.lang.String och det ärver från meddelandegränssnittet och lägger till en textmeddelandetext. Detta används för att transportera meddelanden som innehåller en text.
F # 13) Vad är ett objektmeddelande?
Svar: Ett objektmeddelande innehåller vanligtvis ett seriöst Java-objekt i meddelandetexten. Generellt mottar mottagarapplikationen objektmeddelandet i ett skrivskyddat läge.
F # 14) Vad är ett kartmeddelande?
Svar: Meddelandetexten för Map Message-objektet innehåller en uppsättning namn-värdepar, där namnen är strängobjekt och värden är Java-primitiver. Posterna kan nås sekventiellt eller slumpmässigt med namn. Kartmeddelande ärver faktiskt från meddelandegränssnittet och lägger till en meddelandetext som innehåller en karta.
F # 15) Vad är JNDI? Hur är det relaterat till JMS?
Svar: JNDI är Java Naming and Directory Interface. Om en applikation är ansluten till en databas kan applikationsutvecklaren ge namnet på databasen istället för att oroa sig för databasanslutningsuppgifterna.
JNDI API kommer åt namngivningskatalogen och hittar kartläggningen mellan namnet och databasobjektet och ansluter därefter. Vi kan använda den här mekanismen när vi ansluter till någon connectionFactory (kö eller ämne) för att skicka meddelanden.

F # 16) Hur transporterar / skickar en avsändarapplikation ett meddelande via JMS?
Svar: Nedan följer några sätt på vilka ett meddelande skickas via JMS:
- Implementera JNDI för att leta upp referenserna för connectionFactory.
- Skapa ett connectionFactory-objekt för implementering.
- Identifiera målobjekten (ett eller flera).
- Använd connectionFactory-objektet för att upprätta JMS-anslutningen.
- Skapa en eller flera sessioner.
- Använd en session och destinationerna för att skapa de MessageProducers och MessageConsumers som behövs.
- Kommunicera med kanalen.
F # 17) Namnge komponenterna i JMS.
Svar: Komponenterna i JMS inkluderar:
- JMS-leverantör
- JMS-klient
- Meddelanden
- Administrerade objekt
- Infödda klienter
F # 18) Vad är administrerade objekt i JMS?
Svar: JMS-administrerat objekt är faktiskt de referenser som konfigurerats av administratören för att ansluta till JMS-klienten och definieras under JNDI. Dessa objekt konfigureras innan de ansluts till JMS-klienten på servern.
F # 19) Vilka funktioner har en JMS-leverantör?
Svar: JMS-leverantör tar i princip hand om säkerhet och data.
Det ansvarar för att meddelandet levereras på ett säkert sätt, det tar också hand om datakryptering och datakodningsstandarder och ansvarar för att anropa meddelandet för icke-JMS-klienten.
F # 20) Vad är en JMS-session?
Svar: En JMS-session är ett tillstånd som styr det totala flödet från sändning till mottagning av JMS-meddelanden.
F # 21) Kan vi använda JMS för att skicka automatiserade e-postmeddelanden?
insättningssorteringskod c ++
Svar: JMS har inga standard-API: er som stöder funktionen, men vi kan använda JavaMail för att skicka automatiserade e-postmeddelanden.
F # 22) Vilken funktionalitet har ett meddelandeavlyssnare i samband med JMS?
Svar: Message Listener används vanligtvis med meddelandekonsumenten vid asynkron leverans. För asynkron leverans kan man registrera ett objekt av MessageListener med messageConsumer.

F # 23) Vad är JMS-klienten?
Svar: JMS-klienten är i grunden en komponent skriven på Java-programmeringsspråket som är ansvarig för att anropa och konsumera meddelandekroppar.
F # 24) Vad är ett meddelande?
Svar: Ett meddelande är en kropp, snarare en komponent som kommunicerar mellan JMS-klienterna.
F # 25) Vilken funktionalitet har ett JMS-meddelandeproducent?
Svar: En meddelandeproducent är i grunden en komponent som skapas av en JMS-session för att skicka ett meddelande till mottagarapplikationen.
Man kan skapa en session och implementera MessageProducer-gränssnittet för att definiera ett destinationsobjekt, köobjekt eller ämneobjekt. Man kan förklara en producent som ospecificerad genom att tilldela null i sitt argument istället för ett objekt. Senare kan vi använda Java-metodöverbelastning på sändningsmetoden för att ange en destination, ett meddelande som argument eller parametrar.
F # 26) Vilken funktion har JMS-meddelandekonsumenter?
Svar: En meddelandekonsument är i grunden en komponent som skapas av en JMS-session för att ta emot ett meddelande av mottagarprogrammet. Man kan skapa en session och implementera ett MessageConsumer-gränssnitt för att definiera destinationsobjekt, köobjekt eller ämneobjekt.
Man kan använda createDurableSubscriber med sessionobjektet för att skapa en hållbar ämnesprenumerant, men man kan använda den för att skapa ett ämne för Publish / Subscribe-modellen och inte för att skapa köer.

Konsumenten blir aktiv när konsumentobjektet har skapats. Vi kan använda objektet för att ta emot och skicka meddelanden. För att inaktivera detta kan man använda en nära metod för en MessageConsumer.

F # 27) Vilken funktionalitet har en JMS-köbläsare?
Svar: Som vi tidigare har diskuterat begreppet kön, där meddelandet lagras tills mottagaren tar emot det. Funktionen för att bläddra bland meddelanden i kön och visa rubrikvärdena stöds av QueueBrowser-objektet.
Man kan skapa ett QueueBrowser-objekt via. JMS-session.

F # 28) Vilken funktion har en JMS-meddelandeväljare?
Svar: JMS-meddelandeväljaren är i grunden ett API som ansvarar för att filtrera de meddelanden som den tar emot för en viss applikation. Meddelandeväljare tilldelar faktiskt jobbet till JMS-leverantören, som faktiskt ansvarar för att filtrera meddelanden.
En meddelandeväljare tar faktiskt strängtypens värden som inmatning.
WatchType = 'Titan' ELLER WatchType = 'Rolex'
Metoderna createConsumer och createDurableSubscriber gör det möjligt att ange en meddelandeväljare som ett argument när man skapar en meddelandekonsument.
F # 29) Hur hanterar jag undantaget orsakat av JMS?
Svar: Huvudklassen som ansvarar för att kasta JMS-relaterade undantag från JMS API är JMSException.
Att fånga JMSException ger ett generiskt sätt att hantera alla undantag relaterade till JMS API.
JMS Exception-klassen innehåller följande underklasser som beskrivs i API-dokumentationen:
- IllegalStateException
- Ogiltigt klientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
F # 30) Hur hanterar jag icke-transaktioner med avseende på JMS?
Svar: I händelse av sessioner som inte genomförs bekräftas meddelanden på grundval av argumentet som skickats medan ett sessionobjekt skapas för QueueSession eller TopicSession-metoden.
Följande alternativ används vanligtvis enligt affärskraven:
- Session. AUTO_ACKNOWLEDGE: Om man skickar detta argument medan man skapar ett sessionobjekt, om JMSException inträffar, väntar en pålitlig konsument några sekunder och ringer sedan metoden MessageConsumer.receive för att ta emot meddelandena igen. På grund av failover, om något meddelande inte levereras, kommer det att levereras om.

- Session. CLIENT_ACKNOWLEDGE: Om man passerar detta argument när man skapar ett sessionobjekt, om JMSException inträffar, ringer konsumenten Session.recover innan han ringer Message.aknowledge eller MessageConsumer.receive, eftersom Session.recover är ansvarig för att återställa och leverera omedvetna meddelanden.

- Session. DUPS_OK_ACKNOWLEDGE: Om man skickar detta argument medan man skapar ett sessionobjekt, om JMSException inträffar, väntar en pålitlig konsument några sekunder och ringer sedan metoden MessageConsumer.receive för att ta emot meddelandena igen. Men här kan man ta emot dubbla meddelanden eller samma meddelanden som levereras om som i detta läge före failover, bekräftade meddelanden kan levereras om.

Notera : Här i exempelkoden har jag använt QueueSession, men man kan använda TopicSession för att skicka dessa argument.
F # 31) Vilken funktion har Oracle Glassfish-servern? Vilken extra fördel har den ovanpå Apache Tomcat-servern?
Svar: Glassfish-servern är faktiskt en applikationsserver och kan också användas som webbservrar vilket innebär att den kan hantera HTTP-förfrågningar från webbläsarna.
Som applikationsserver är den utvecklad för att hantera alla typer av Java Enterprise-applikationer när det gäller servlets / JSP och även EJB-komponenter.
Tomcat-servern är faktiskt en servletbehållare som vanligtvis används för hantering av servlet- eller JSP-komponenter.
F # 32) Hur skapar jag en EJB-session för att starta en JMS-anslutning?
Svar: Vi kan skapa en EJB-session för JMS som vi har skrivit i koden nedan.

F # 33) Beskriv begreppet Message Driven Bean Clustering.
Svar: Om en EJB-komponentbaserad applikation distribueras på något applikationsserverkluster kan den konfigureras för att köras på vilken server som helst i klustret för att ge tillgänglighet och skalbarhet för applikationen.
Om en EJB är i form av Message Driven Bean (MDB) kan den köras på vilken server som helst i klustret och kan initieras parallellt med ett antal applikationsservrar i klustret.
Slutsats
Jag hoppas att den här listan över de viktigaste JMS-intervjufrågorna verkligen hade varit informativ och jag är säker på att du kan knäcka alla intervjuer framgångsrikt med en grundlig kunskap om den här listan.
Förhoppningsvis skulle detta ha hjälpt dig mycket !! Happy Learning !!
Rekommenderad läsning
- Intervjufrågor och svar
- Några intressanta frågor om mjukvarutestning
- ETL Testing Intervju Frågor och svar
- Topp 12 Mockito-intervjufrågor (Mocking Framework Interview)
- Top Oracle Forms and Reports Interview Frågor
- Programvaruhandbok Testning av intervjufrågor för erfarna yrkesverksamma
- Java-distribution: Skapande och utförande av Java JAR-fil
- Topp Oracle Apps tekniska frågor och Oracle SOA intervjufrågor