top 30 jms interview questions
Meest populaire JMS-interviewvragen en antwoorden voor frissere en ervaren professionals:
JMS of Java Messaging Service is momenteel een van de meest dominante modellen geworden voor veilige, betrouwbare en schaalbare bezorging van berichten over de hele wereld.
Dit model is zeer goed gestructureerd en ondersteunt een aantal vormen van berichtgevingstechnieken en -protocollen.
Laten we eens kijken naar enkele vragen en antwoorden die in de hele branche vaak over dit onderwerp worden gesteld.
Meest populaire JMS-sollicitatievragen
Hieronder vindt u een lijst met de meest gestelde interviewvragen voor Java Message Service, samen met gedetailleerde antwoorden.
V # 1) Wat is JMS?
Antwoord: Java Messaging Service is een Java API waarmee de systemen berichten kunnen maken, lezen, verzenden en ontvangen.
Het belangrijkste deel van het algoritme is zeer goed gestructureerd en stelt de ene applicatie in staat een bericht naar een andere applicatie te sturen en maakt ook uitzendfuncties naar de abonnees mogelijk.
V # 2) Wat zijn de soorten communicatie die door JMS worden aangeboden? Leg uit in detail.
Antwoord: Deze API biedt twee soorten communicatie:
- Asynchroon: Het bericht wordt afgeleverd bij de klant, de klant hoeft geen verzoeken te verzenden om het te ontvangen. De clienttoepassing ontvangt het zodra de afzendertoepassing verzendt.
- Betrouwbaar: Hier wordt het bericht naar de clienttoepassing gestuurd zodra het API-protocol de beschikbaarheid van de ontvangertoepassing garandeert.
V # 3) Wat is het aantal messaging-modellen dat beschikbaar is op JMS?
Antwoord: Concreet zijn er twee soorten modellen die door JMS worden geleverd:
Punt naar punt: Zoals de naam al doet vermoeden, is het een één-op-één berichtensysteem, waarbij de afzender een bericht naar een enkele ontvanger stuurt. Het bericht is beschikbaar voor de ontvangertoepassing zodra het gereed is en tot die tijd wordt het bericht in de wachtrij opgeslagen.
Het belangrijkste hiervan is dat er geen afhankelijkheden zijn met betrekking tot de tijd tussen zowel de afzender- als de ontvangertoepassing.
Publiceren en abonneren: Dit berichtmechanisme is zeer uniek ontworpen door JMS.
Bijvoorbeeld , één lezer abonneert zich op één blog waarin de persoon geïnteresseerd is. Nu kunnen er meerdere mensen geïnteresseerd zijn in een bepaalde blog.
En ze abonneren / registreren zich op die blog. Zodra een nieuw bericht of onderwerp op de blog is gepubliceerd, krijgen alle geregistreerde lezers een update. Dit berichtenmodel heet Publiceren en abonneren.
V # 4) Wat is een wachtrij?
Antwoord: In het point-to-point-mechanisme van JMS stuurt de brontoepassing een bericht naar de bestemmingstoepassing, het bericht wordt door de doeltoepassing verbruikt zodra het beschikbaar is, tot die tijd wordt de opslageenheid van die tijd een wachtrij genoemd.
V # 5) Wat is een onderwerp?
Antwoord: In het model publiceren / abonneren genereert de client / publisher-applicatie één bericht en dat bericht is beschikbaar voor alle abonnees of bestemmingstoepassingen. Dit bericht wordt een onderwerp genoemd.
V # 6) Wat is het belangrijkste verschil tussen het werkingsmechanisme van JMS en RPC?
Antwoord: Het herkenbare verschil tussen de twee modellen ligt in de manier waarop de boodschap wordt afgeleverd.
In het geval van JMS stuurt de afzendertoepassing het bericht naar de bestemmingstoepassing en wacht deze opnieuw / of verwerkt een ander bericht volgens de programmeercriteria.
Terwijl in het geval van RPC de thread wordt voltooid zodra het bericht de bestemming bereikt en de besturing terugkeert naar de methode die verantwoordelijk is voor het transport van berichten.
V # 7) Wat is berichtgeoriënteerde middleware?
Antwoord: Message Oriented Middleware is een software die werkt tussen de afzendertoepassing en de bestemmingstoepassing in het JMS-werkmodel.
V # 8) Hoe is Message Oriented Middleware verantwoordelijk voor geen tijdafhankelijkheid tussen de zender- en ontvangercomponent met betrekking tot het Point-to-Point-model op JMS?
Antwoord: Aangezien de MOM-middleware werkt tussen de zender- en ontvangercomponent, zorgt het voor het bericht en transporteert het het bericht door middel van een wachtrijmechanisme. Dus totdat de bestemming / ontvanger-applicatie beschikbaar komt om het bericht te ontvangen / lezen, wordt het bericht opgeslagen in een wachtrij.
Het belangrijkste is dat de methode die verantwoordelijk is voor het verzenden van het bericht pas bezet is als de ontvangertoepassing het bericht ontvangt. Zo werken zowel de afzender- als de ontvangertoepassing onafhankelijk zonder enige tijdafhankelijkheid.
V # 9) Geef een naam aan de berichttypen die door JMS worden ondersteund.
Antwoord: De soorten berichten die worden ondersteund door JMS zijn:
- Tekstberichten
- Stream berichten
- Kaartberichten
- Bytes berichten
- Object Berichten
V # 10) Wat is een Bytes-bericht?
Antwoord: Het Bytes Message-object is in feite verantwoordelijk voor het verzenden van het bericht dat een stroom ononderbroken bytes bevat en het erft van de berichtinterface en voegt een bytes-berichttekst toe. De berichtontvanger is verantwoordelijk voor de interpretatie van het bericht.
JMS API maakt het transport van dit type berichten mogelijk, maar volgens oracle docs worden ze doorgaans niet gebruikt omdat het opnemen van eigenschappen het berichtformaat kan beïnvloeden.
V # 11) Wat is een StreamMessage?
Antwoord: Een StreamMessage-object wordt gebruikt om de stroom primitieve gegevenstypen in de programmeertaal Java te verzenden. De gegevens worden opeenvolgend gevuld en gelezen. Het erft van de berichtinterface en voegt een berichttekst toe.
java.io.DataInputStream en java.io.DataOutputStream zijn API's die dit soort berichten ondersteunen.
V # 12) Wat is een tekstbericht?
Antwoord: Een tekstbericht is het bericht dat wordt afgehandeld door java.lang.String en het erft van de berichtinterface en voegt een tekstbericht toe. Dit wordt gebruikt om de berichten met een tekst te transporteren.
V # 13) Wat is een objectbericht?
Antwoord: Een objectbericht bevat doorgaans een serialiseerbaar Java-object in de berichttekst. Over het algemeen ontvangt de ontvangertoepassing het Object-bericht in een alleen-lezenmodus.
V # 14) Wat is een kaartbericht?
Antwoord: De berichttekst van het Map Message-object bevat een set naam-waarde-paren, waarbij de namen String-objecten zijn en waarden Java-primitieven. De vermeldingen kunnen opeenvolgend of willekeurig op naam worden geopend. Map Message erft feitelijk van de berichtinterface en voegt een berichttekst toe die een map bevat.
V # 15) Wat is JNDI? Hoe is het gerelateerd aan JMS?
Antwoord: JNDI is de Java-interface voor naamgeving en adresboek. Als een applicatie is verbonden met een database, kan de applicatieontwikkelaar een naam geven aan die database in plaats van zich zorgen te maken over de databaseverbindingsreferenties.
De JNDI API heeft toegang tot de naamgevingsdirectory en vindt de toewijzing tussen de naam en het databaseobject en maakt dienovereenkomstig verbinding. We kunnen dit mechanisme gebruiken terwijl we verbinding maken met een connectionFactory (wachtrij of onderwerp) voor het verzenden van berichten.
V # 16) Hoe transporteert / verzendt een afzendertoepassing een bericht via JMS?
Antwoord: Hieronder worden een paar manieren gegeven waarop een bericht via JMS wordt verzonden:
- Implementeer JNDI om de referenties van de connectionFactory op te zoeken.
- Maak een connectionFactory-object voor implementatie.
- Identificeer de bestemmingsobjecten (een of meer).
- Gebruik het connectionFactory-object om de JMS-verbinding tot stand te brengen.
- Maak een of meer sessies.
- Gebruik een sessie en de bestemmingen om de benodigde MessageProducers en MessageConsumers te creëren.
- Communiceer via het kanaal.
Q # 17) Noem de componenten van JMS.
Antwoord: De componenten van JMS zijn onder meer:
- JMS-provider
- JMS-client
- Berichten
- Beheerde objecten
- Native clients
V # 18) Wat zijn beheerde objecten in JMS?
Antwoord: Het door JMS beheerde object zijn in feite de referenties die door de beheerder zijn geconfigureerd om verbinding te maken met de JMS-client en zijn gedefinieerd onder JNDI. Deze objecten worden geconfigureerd voordat verbinding wordt gemaakt met de JMS-client op de server.
V # 19) Wat zijn de functionaliteiten van een JMS-provider?
Antwoord: JMS Provider zorgt in principe voor beveiliging en gegevens.
Het is ervoor verantwoordelijk dat het bericht op een veilige manier wordt afgeleverd, het zorgt ook voor gegevensversleuteling en gegevenscoderingsstandaarden en is verantwoordelijk voor het aanroepen van het bericht voor de niet-JMS-client.
V # 20) Wat is een JMS-sessie?
Antwoord: Een JMS-sessie is een toestand die de totale stroom van verzending tot ontvangst van de JMS-berichten regelt.
V # 21) Kunnen we JMS gebruiken voor het verzenden van geautomatiseerde e-mails?
bubble sort c ++ algoritme
Antwoord: JMS heeft geen standaard API's die de functie ondersteunen, maar we kunnen JavaMail gebruiken om geautomatiseerde e-mails te verzenden.
V # 22) Wat is de functionaliteit van een berichtenluisteraar in de context van JMS?
Antwoord: Message Listener wordt meestal gebruikt met Message Consumer in het geval van asynchrone bezorging. Voor asynchrone bezorging kan men een object van MessageListener registreren bij messageConsumer.
V # 23) Wat is de JMS-client?
Antwoord: De JMS-client is in feite een component die is geschreven in de programmeertaal Java en die verantwoordelijk is voor het oproepen en consumeren van berichttekst.
V # 24) Wat is een bericht?
Antwoord: Een bericht is een body, eerder een component die communiceert tussen de JMS-clients.
V # 25) Wat is de functionaliteit van een JMS-berichtproducent?
Antwoord: Een berichtproducent is in feite een component die wordt gemaakt door een JMS-sessie voor het verzenden van een bericht naar de ontvangertoepassing.
Men kan een sessie creëren en de MessageProducer-interface implementeren om een bestemmingsobject, wachtrijobject of onderwerpobject te definiëren. Men kan een producent als niet-gespecificeerd declareren door null toe te kennen in zijn argument in plaats van een object. Later kunnen we overbelasting van de Java-methode op de verzendmethode gebruiken om een bestemming, bericht als argumenten of parameters op te geven.
V # 26) Wat is de functionaliteit van JMS-berichtgebruikers?
Antwoord: Een berichtconsument is in feite een component die wordt gemaakt door een JMS-sessie voor het ontvangen van een bericht door de ontvangertoepassing. Men kan een sessie maken en een MessageConsumer-interface implementeren om een bestemmingsobject, wachtrijobject of onderwerpobject te definiëren.
Men kan createDurableSubscriber gebruiken met het sessie-object om een duurzame onderwerp-abonnee te creëren, maar men kan het gebruiken om een onderwerp te creëren voor het Publiceer / Abonneer-model en niet om wachtrijen te creëren.
De consument wordt actief zodra het consumentenobject is gemaakt. We kunnen het object gebruiken om berichten te ontvangen en te verzenden. Om dit te deactiveren, kan men een close-methode gebruiken voor een MessageConsumer.
V # 27) Wat is de functionaliteit van een JMS Queue Browser?
Antwoord: Zoals we eerder hebben besproken, is het concept van de wachtrij, waar het bericht wordt opgeslagen totdat de ontvanger het ontvangt. De functionaliteit van het bladeren door de berichten in de wachtrij en het weergeven van de koptekstwaarden wordt ondersteund door het QueueBrowser-object.
Men kan een QueueBrowser-object maken via. JMS-sessie.
V # 28) Wat is de functionaliteit van een JMS Message Selector?
Antwoord: De JMS-berichtselector is in feite een API die verantwoordelijk is voor het filteren van de berichten die het ontvangt voor een bepaalde toepassing. Message Selectors wijzen de taak feitelijk toe aan JMS Provider, die feitelijk verantwoordelijk is voor het filteren van berichten.
Een berichtselector neemt feitelijk stringtypewaarden als invoer.
WatchType = ’Titan’ OR WatchType = ’Rolex’
Met de methoden createConsumer en createDurableSubscriber kan een berichtselector als argument worden gespecificeerd wanneer men een berichtconsument maakt.
V # 29) Hoe om te gaan met de uitzondering veroorzaakt door JMS?
Antwoord: De belangrijkste klasse die verantwoordelijk is voor het genereren van JMS-gerelateerde uitzonderingen door JMS API is JMSException.
Het vangen van JMSException biedt een algemene manier om alle uitzonderingen met betrekking tot de JMS API af te handelen.
De JMS Exception-klasse bevat de volgende subklassen, die worden beschreven in de API-documentatie:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
V # 30) Hoe om te gaan met niet-verhandelde sessies met betrekking tot JMS?
Antwoord: In het geval van niet-afgehandelde sessies, worden berichten bevestigd op basis van het doorgegeven argument tijdens het maken van een sessieobject van de QueueSession- of TopicSession-methode.
De onderstaande opties worden over het algemeen gebruikt in overeenstemming met de zakelijke vereisten:
- Sessie. AUTO_ACKNOWLEDGE: Als men dit argument doorgeeft tijdens het aanmaken van een sessieobject, dan, als JMSException optreedt, wacht een betrouwbare consument een paar seconden en roept dan de methode MessageConsumer.receive aan om de berichten opnieuw te ontvangen. Als een bericht vanwege een failover niet wordt afgeleverd, wordt het opnieuw afgeleverd.
- Sessie. CLIENT_ACKNOWLEDGE: Als iemand dit argument doorgeeft tijdens het maken van een sessieobject, roept de consument, als JMSException optreedt, Session.recover aan voordat Message.aknowledge of MessageConsumer.receive wordt aangeroepen, omdat Session.recover verantwoordelijk is voor het herstellen en opnieuw bezorgen van niet-bevestigde berichten.
- Sessie. DUPS_OK_ACKNOWLEDGE: Als men dit argument doorgeeft tijdens het aanmaken van een sessieobject, dan, als JMSException optreedt, wacht een betrouwbare consument een paar seconden en roept dan de methode MessageConsumer.receive aan om de berichten opnieuw te ontvangen. Maar hier kan men dubbele berichten ontvangen of dezelfde berichten die opnieuw worden afgeleverd als in deze modus vóór een failover, bevestigde berichten kunnen opnieuw worden afgeleverd.
Notitie : Hier in de voorbeeldcode heb ik QueueSession gebruikt, maar men kan TopicSession gebruiken om deze argumenten door te geven.
V # 31) Wat is de functionaliteit van de Oracle Glassfish-server? Welk extra voordeel heeft het bovenop de Apache Tomcat-server?
Antwoord: Glassfish-server is eigenlijk een applicatieserver en kan ook worden gebruikt als webservers, wat betekent dat het HTTP-verzoeken van de webbrowsers kan verwerken.
Als applicatieserver is het ontwikkeld om alle soorten Java Enterprise-applicaties te behandelen in termen van servlets / JSP en ook EJB-componenten.
Terwijl de Tomcat-server eigenlijk een servlet-container is die over het algemeen wordt gebruikt voor het verwerken van servlet- of JSP-componenten.
V # 32) Hoe maak je een EJB-sessie aan om een JMS-verbinding te starten?
Antwoord: We kunnen een EJB-sessie voor JMS maken zoals we in de onderstaande code hebben geschreven.
V # 33) Beschrijf het concept van Message Driven Bean Clustering.
Antwoord: Als een op een EJB-component gebaseerde toepassing wordt geïmplementeerd op een toepassingsservercluster, kan deze worden geconfigureerd om op elke server binnen het cluster te worden uitgevoerd om beschikbaarheid en schaalbaarheid voor de toepassing te bieden.
Als een EJB de vorm heeft van Message Driven Bean (MDB), kan deze op elke server binnen het cluster worden uitgevoerd en parallel aan een aantal applicatieservers in het cluster worden gestart.
Gevolgtrekking
Ik hoop dat deze lijst met de beste JMS-interviewvragen echt informatief zou zijn geweest en ik weet zeker dat je elk interview met succes kunt kraken met een grondige kennis van deze lijst.
Hopelijk zou dit je veel hebben geholpen !! Veel plezier met leren !!
Aanbevolen literatuur
- Interview vragen en antwoorden
- Enkele interessante sollicitatievragen voor het testen van software
- Vragen en antwoorden over ETL-tests
- Top 12 Mockito-interviewvragen (Mocking Framework-interview)
- Top Oracle Forms and Reports Interviewvragen
- Software Manual Testing Interviewvragen voor ervaren professionals
- Java-implementatie: creatie en uitvoering van Java JAR-bestand
- Top Oracle Apps technische en Oracle SOA sollicitatievragen