top 30 jms interview questions
Die beliebtesten Fragen und Antworten zu JMS-Interviews für frischere und erfahrene Fachleute:
JMS oder Java Messaging Service ist derzeit eines der dominantesten Modelle für die sichere, zuverlässige und skalierbare Zustellung von Nachrichten auf der ganzen Welt.
Dieses Modell ist sehr gut strukturiert und unterstützt eine Reihe von Messaging-Techniken und -Protokollen.
Lassen Sie uns einige Fragen und Antworten durchgehen, die branchenweit häufig zu diesem Thema gestellt werden.
Die beliebtesten Fragen zum JMS-Interview
Im Folgenden finden Sie eine Liste der am häufigsten gestellten Fragen zum Java Message Service-Interview sowie detaillierte Antworten.
F # 1) Was ist JMS?
Antworten: Java Messaging Service ist eine Java-API, mit der die Systeme Nachrichten erstellen, lesen, senden und empfangen können.
Der wichtigste Teil des Algorithmus ist sehr gut strukturiert und ermöglicht es einer Anwendung, eine Nachricht an eine andere Anwendung zu senden, und ermöglicht auch die Übertragung von Funktionen an die Teilnehmer.
F # 2) Welche Kommunikationsarten bietet JMS? Erkläre im Detail.
Antwort: Diese API bietet zwei Arten der Kommunikation:
- Asynchron: Die Nachricht wird an den Client übermittelt. Der Client muss keine Anforderungen senden, um sie zu empfangen. Die Client-Anwendung erhält sie, sobald die Absender-Anwendung sendet.
- Zuverlässig: Hier wird die Nachricht an die Clientanwendung gesendet, sobald das API-Protokoll die Verfügbarkeit der Empfängeranwendung sicherstellt.
F # 3) Wie viele Messaging-Modelle sind in JMS verfügbar?
Antworten: Insbesondere gibt es zwei Arten von Modellen, die von JMS bereitgestellt werden:
Punkt zu Punkt: Wie der Name selbst schon sagt, handelt es sich um einen Eins-zu-Eins-Nachrichtenmechanismus, bei dem der Absender eine Nachricht an einen einzelnen Empfänger sendet. Die Nachricht steht der Empfängeranwendung zur Verfügung, sobald sie bereit ist. Bis dahin wird die Nachricht in der Warteschlange gespeichert.
Der wichtigste Teil davon ist, dass zwischen der Sender- und der Empfängeranwendung keine zeitlichen Abhängigkeiten bestehen.
Veröffentlichen und abonnieren: Dieser Messaging-Mechanismus wurde von JMS sehr einzigartig entwickelt.
Zum Beispiel Ein Leser abonniert einen Blog, an dem die Person interessiert ist. Jetzt sind möglicherweise mehrere Personen an einem bestimmten Blog interessiert.
Und sie abonnieren / registrieren diesen Blog. Sobald ein neuer Beitrag oder ein neues Thema im Blog veröffentlicht wurde, erhalten alle registrierten Leser ein Update. Dieses Messaging-Modell heißt Publish and Subscribe.
F # 4) Was ist eine Warteschlange?
Antworten: Beim Punkt-zu-Punkt-Mechanismus von JMS sendet die Quellanwendung eine Nachricht an die Zielanwendung. Die Nachricht wird von der Zielanwendung verwendet, sobald sie verfügbar ist. Bis zu diesem Zeitpunkt wird die Speichereinheit der jeweiligen Zeit als Warteschlange bezeichnet.
F # 5) Was ist ein Thema?
Antworten: Im Publish / Subscribe-Modell generiert die Client / Publisher-Anwendung eine Nachricht, die allen Abonnenten oder Zielanwendungen zur Verfügung steht. Diese Nachricht wird als Thema bezeichnet.
F # 6) Was ist der Hauptunterschied zwischen dem Arbeitsmechanismus von JMS und RPC?
Antworten: Der erkennbare Unterschied zwischen den beiden Modellen liegt in der Art und Weise, wie die Nachricht zugestellt wird.
Im Fall von JMS sendet die Absenderanwendung die Nachricht an die Zielanwendung und wartet / oder verarbeitet dann erneut eine andere Nachricht gemäß den Programmierkriterien.
Während im Fall von RPC der Thread abgeschlossen ist, sobald die Nachricht das Ziel erreicht und die Steuerung zu der für den Nachrichtentransport verantwortlichen Methode zurückkehrt.
F # 7) Was ist nachrichtenorientierte Middleware?
Antworten: Message Oriented Middleware ist eine Software, die zwischen der Absenderanwendung und der Zielanwendung im JMS-Arbeitsmodell arbeitet.
F # 8) Wie ist die nachrichtenorientierte Middleware dafür verantwortlich, dass keine Zeitabhängigkeit zwischen Sender- und Empfängerkomponente in Bezug auf das Punkt-zu-Punkt-Modell in JMS besteht?
Antworten: Da die MOM-Middleware zwischen der Sender- und der Empfängerkomponente arbeitet, kümmert sie sich um die Nachricht und transportiert die Nachricht per Warteschlangenmechanismus. Bis die Ziel- / Empfängeranwendung zum Empfangen / Lesen der Nachricht verfügbar wird, wird die Nachricht in einer Warteschlange gespeichert.
Der wichtigste Teil ist, dass die für das Senden der Nachricht verantwortliche Methode erst belegt wird, wenn die Empfängeranwendung die Nachricht empfängt. Somit arbeiten sowohl die Sender- als auch die Empfängeranwendung unabhängig und ohne Zeitabhängigkeit.
F # 9) Nennen Sie die von JMS unterstützten Nachrichtentypen.
Antworten: Die von JMS unterstützten Nachrichtentypen sind:
- Textnachrichten
- Nachrichten streamen
- Kartennachrichten
- Bytes Nachrichten
- Objektnachrichten
F # 10) Was ist eine Byte-Nachricht?
Antworten: Das Bytes Message-Objekt ist tatsächlich für das Senden der Nachricht verantwortlich, die einen Strom von ununterbrochenen Bytes enthält. Es erbt von der Nachrichtenschnittstelle und fügt einen Byte-Nachrichtentext hinzu. Der Nachrichtenempfänger ist für die Interpretation der Nachricht verantwortlich.
Die JMS-API ermöglicht den Transport dieser Art von Nachrichten. Gemäß Oracle-Dokumenten werden sie jedoch normalerweise nicht verwendet, da die Einbeziehung von Eigenschaften das Nachrichtenformat beeinflussen kann.
F # 11) Was ist eine StreamMessage?
Antworten: Ein StreamMessage-Objekt wird verwendet, um den Stream primitiver Datentypen in der Programmiersprache Java zu senden. Die Daten werden nacheinander gefüllt und gelesen. Es erbt von der Nachrichtenschnittstelle und fügt einen Stream-Nachrichtentext hinzu.
java.io.DataInputStream und java.io.DataOutputStream sind APIs, die diese Arten von Nachrichten unterstützen.
F # 12) Was ist eine Textnachricht?
Antworten: Eine Textnachricht wird von java.lang.String bearbeitet, erbt von der Nachrichtenschnittstelle und fügt einen Textnachrichtentext hinzu. Dies wird verwendet, um die Nachrichten zu transportieren, die einen Text enthalten.
F # 13) Was ist eine Objektnachricht?
Antworten: Eine Objektnachricht enthält im Allgemeinen ein serialisierbares Java-Objekt in ihrem Nachrichtentext. Im Allgemeinen empfängt die Empfängeranwendung die Objektnachricht in einem schreibgeschützten Modus.
F # 14) Was ist eine Kartennachricht?
Antworten: Der Nachrichtentext des Map Message-Objekts enthält eine Reihe von Name-Wert-Paaren, wobei die Namen String-Objekte und die Werte Java-Grundelemente sind. Auf die Einträge kann nacheinander oder zufällig nach Namen zugegriffen werden. Map Message erbt tatsächlich von der Nachrichtenschnittstelle und fügt einen Nachrichtentext hinzu, der eine Map enthält.
F # 15) Was ist JNDI? Wie hängt es mit JMS zusammen?
Antworten: JNDI ist die Java-Namens- und Verzeichnisschnittstelle. Wenn eine Anwendung mit einer Datenbank verbunden ist, kann der Anwendungsentwickler dieser Datenbank einen Namen geben, anstatt sich um die Anmeldeinformationen für die Datenbankverbindung zu kümmern.
Die JNDI-API greift auf das Namensverzeichnis zu, findet die Zuordnung zwischen dem Namen und dem Datenbankobjekt und stellt eine entsprechende Verbindung her. Wir können diesen Mechanismus verwenden, während wir eine Verbindung zu einer beliebigen connectionFactory (Warteschlange oder Thema) zum Senden von Nachrichten herstellen.
F # 16) Wie transportiert / sendet eine Absenderanwendung eine Nachricht über JMS?
Antworten: Im Folgenden sind einige Möglichkeiten aufgeführt, wie eine Nachricht über JMS gesendet wird:
- Implementieren Sie JNDI, um die Anmeldeinformationen der connectionFactory nachzuschlagen.
- Erstellen Sie ein connectionFactory-Objekt für die Implementierung.
- Identifizieren Sie die Zielobjekte (eines oder mehrere).
- Verwenden Sie das connectionFactory-Objekt, um die JMS-Verbindung herzustellen.
- Erstellen Sie eine oder mehrere Sitzungen.
- Verwenden Sie eine Sitzung und die Ziele, um die benötigten MessageProducers und MessageConsumers zu erstellen.
- Kommunizieren Sie über den Kanal.
F # 17) Benennen Sie die Komponenten von JMS.
Antwort: Die Komponenten von JMS umfassen:
- JMS-Anbieter
- JMS-Client
- Mitteilungen
- Verwaltete Objekte
- Native Clients
F # 18) Was sind verwaltete Objekte in JMS?
Antworten: Das von JMS verwaltete Objekt sind die Anmeldeinformationen, die vom Administrator für die Verbindung mit dem JMS-Client konfiguriert wurden und unter JNDI definiert sind. Diese Objekte werden konfiguriert, bevor eine Verbindung mit dem JMS-Client innerhalb des Servers hergestellt wird.
F # 19) Was sind die Funktionen eines JMS-Anbieters?
Antworten: JMS Provider kümmert sich grundsätzlich um Sicherheit und Daten.
Es ist dafür verantwortlich, dass die Nachricht auf sichere Weise zugestellt wird, es kümmert sich auch um Datenverschlüsselungs- und Datencodierungsstandards und ist dafür verantwortlich, die Nachricht für den Nicht-JMS-Client aufzurufen.
F # 20) Was ist eine JMS-Sitzung?
Antworten: Eine JMS-Sitzung ist ein Status, der den Gesamtfluss vom Senden bis zum Empfangen der JMS-Nachrichten steuert.
F # 21) Können wir JMS zum Versenden automatisierter E-Mails verwenden?
So erstellen Sie ein Array von Zeichenfolgen in Java
Antworten: JMS hat keine Standard-APIs, die diese Funktion unterstützen. Wir können jedoch JavaMail verwenden, um automatisierte E-Mails zu senden.
F # 22) Was ist die Funktionalität eines Nachrichten-Listeners im Kontext von JMS?
Antworten: Der Nachrichten-Listener wird normalerweise mit dem Nachrichtenkonsumenten bei asynchroner Zustellung verwendet. Für die asynchrone Zustellung kann ein Objekt von MessageListener bei messageConsumer registriert werden.
F # 23) Was ist der JMS-Client?
Antworten: Der JMS-Client ist im Grunde eine in der Programmiersprache Java geschriebene Komponente, die für das Aufrufen und Konsumieren von Nachrichtentexten verantwortlich ist.
F # 24) Was ist eine Nachricht?
Antworten: Eine Nachricht ist ein Textkörper, eher eine Komponente, die zwischen den JMS-Clients kommuniziert.
F # 25) Was ist die Funktionalität eines JMS-Nachrichtenproduzenten?
Antworten: Ein Nachrichtenproduzent ist im Grunde eine Komponente, die von einer JMS-Sitzung zum Senden einer Nachricht an die Empfängeranwendung erstellt wird.
Sie können eine Sitzung erstellen und die MessageProducer-Schnittstelle implementieren, um ein Zielobjekt, ein Warteschlangenobjekt oder ein Themenobjekt zu definieren. Man kann einen Produzenten als nicht spezifiziert deklarieren, indem man in seinem Argument anstelle eines Objekts null zuweist. Später können wir die Java-Methodenüberladung für die send-Methode verwenden, um ein Ziel, eine Nachricht als Argumente oder Parameter anzugeben.
F # 26) Was ist die Funktionalität von JMS-Nachrichtenkonsumenten?
Antworten: Ein Nachrichtenkonsument ist im Grunde eine Komponente, die von einer JMS-Sitzung zum Empfangen einer Nachricht durch die Empfängeranwendung erstellt wird. Sie können eine Sitzung erstellen und eine MessageConsumer-Schnittstelle implementieren, um das Zielobjekt, das Warteschlangenobjekt oder das Themenobjekt zu definieren.
Sie können createDurableSubscriber mit dem Sitzungsobjekt verwenden, um einen dauerhaften Themenabonnenten zu erstellen, aber Sie können damit ein Thema für das Publish / Subscribe-Modell erstellen und nicht zum Erstellen von Warteschlangen.
Der Verbraucher wird aktiv, sobald das Verbraucherobjekt erstellt wurde. Wir können das Objekt verwenden, um Nachrichten zu empfangen und zu senden. Um dies zu deaktivieren, kann man eine close-Methode für einen MessageConsumer verwenden.
F # 27) Was ist die Funktionalität eines JMS-Warteschlangenbrowsers?
Antworten: Wie wir zuvor das Konzept der Warteschlange besprochen haben, wird die Nachricht gespeichert, bis der Empfänger sie empfängt. Die Funktionalität zum Durchsuchen der Nachrichten in der Warteschlange und zum Anzeigen der Headerwerte wird vom QueueBrowser-Objekt unterstützt.
Man kann ein QueueBrowser-Objekt über erstellen. JMS-Sitzung.
F # 28) Was ist die Funktionalität eines JMS Message Selector?
Antworten: Der JMS-Nachrichtenselektor ist im Grunde eine API, die für das Filtern der Nachrichten verantwortlich ist, die er für eine bestimmte Anwendung empfängt. Nachrichtenselektoren weisen den Job tatsächlich dem JMS-Anbieter zu, der tatsächlich für das Filtern von Nachrichten verantwortlich ist.
Ein Nachrichtenselektor verwendet tatsächlich Zeichenfolgentypwerte als Eingabe.
WatchType = 'Titan' ODER WatchType = 'Rolex'
Mit den Methoden createConsumer und createDurableSubscriber kann ein Nachrichtenselektor als Argument angegeben werden, wenn ein Nachrichtenkonsument erstellt wird.
F # 29) Wie gehe ich mit der durch JMS verursachten Ausnahme um?
Antworten: Die Hauptklasse, die für das Auslösen von JMS-bezogenen Ausnahmen durch die JMS-API verantwortlich ist, ist JMSException.
Das Abfangen von JMSException bietet eine allgemeine Möglichkeit, alle Ausnahmen im Zusammenhang mit der JMS-API zu behandeln.
Die JMS-Ausnahmeklasse enthält die folgenden Unterklassen, die in der API-Dokumentation beschrieben werden:
- Illegale staatliche Ausnahme
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
F # 30) Wie gehe ich mit nicht abgewickelten Sitzungen in Bezug auf JMS um?
Antworten: Bei nicht abgewickelten Sitzungen werden Nachrichten auf der Grundlage des beim Erstellen eines Sitzungsobjekts der QueueSession- oder TopicSession-Methode übergebenen Arguments bestätigt.
Die folgenden Optionen werden im Allgemeinen gemäß den Geschäftsanforderungen verwendet:
- Session. AUTO_ACKNOWLEDGE: Wenn man dieses Argument beim Erstellen eines Sitzungsobjekts übergibt, wartet ein zuverlässiger Consumer einige Sekunden, wenn eine JMSException auftritt, und ruft dann die Methode MessageConsumer.receive auf, um die Nachrichten erneut zu empfangen. Wenn aufgrund eines Failovers keine Nachricht zugestellt wird, wird sie erneut zugestellt.
- Session. CLIENT_ACKNOWLEDGE: Wenn dieses Argument beim Erstellen eines Sitzungsobjekts übergeben wird, ruft der Consumer bei Auftreten einer JMSException Session.recover auf, bevor er Message.aknowledge oder MessageConsumer.receive aufruft, da Session.recover für die Wiederherstellung und erneute Zustellung nicht bestätigter Nachrichten verantwortlich ist.
- Session. DUPS_OK_ACKNOWLEDGE: Wenn man dieses Argument beim Erstellen eines Sitzungsobjekts übergibt, wartet ein zuverlässiger Consumer einige Sekunden, wenn eine JMSException auftritt, und ruft dann die Methode MessageConsumer.receive auf, um die Nachrichten erneut zu empfangen. Hier können jedoch doppelte Nachrichten oder dieselben Nachrichten empfangen werden, die wie in diesem Modus vor dem Failover erneut zugestellt wurden. Bestätigte Nachrichten können erneut zugestellt werden.
Hinweis : Hier im Beispielcode habe ich QueueSession verwendet, aber man kann TopicSession verwenden, um diese Argumente zu übergeben.
F # 31) Was ist die Funktionalität des Oracle Glassfish-Servers? Welchen zusätzlichen Vorteil hat es gegenüber dem Apache Tomcat-Server?
Antworten: Glassfish Server ist eigentlich ein Anwendungsserver und kann auch als Webserver verwendet werden, was bedeutet, dass er HTTP-Anforderungen von den Webbrowsern verarbeiten kann.
Als Anwendungsserver wurde es entwickelt, um alle Arten von Java Enterprise-Anwendungen in Bezug auf Servlets / JSP und auch EJB-Komponenten zu verarbeiten.
Während der Tomcat-Server tatsächlich ein Servlet-Container ist, der im Allgemeinen für die Verarbeitung von Servlet- oder JSP-Komponenten verwendet wird.
F # 32) Wie erstelle ich eine EJB-Sitzung, um eine JMS-Verbindung herzustellen?
Antworten: Wir können eine EJB-Sitzung für JMS erstellen, wie wir im folgenden Code geschrieben haben.
F # 33) Beschreiben Sie das Konzept des Message Driven Bean Clustering.
Antworten: Wenn eine komponentenbasierte EJB-Anwendung auf einem Anwendungsservercluster bereitgestellt wird, kann sie so konfiguriert werden, dass sie auf einem beliebigen Server innerhalb des Clusters ausgeführt wird, um Verfügbarkeit und Skalierbarkeit für die Anwendung bereitzustellen.
Wenn eine EJB in Form einer Message Driven Bean (MDB) vorliegt, kann sie auf jedem Server im Cluster ausgeführt und parallel zu einer Reihe von Anwendungsservern im Cluster initiiert werden.
Fazit
Ich hoffe, dass diese Liste der wichtigsten Fragen zu JMS-Interviews wirklich informativ gewesen wäre, und ich bin sicher, dass Sie jedes Interview mit gründlicher Kenntnis dieser Liste erfolgreich knacken können.
Hoffentlich hätte dir das sehr geholfen !! Viel Spaß beim Lernen !!
Literatur-Empfehlungen
- Interview Fragen und Antworten
- Einige interessante Fragen zu Softwaretests
- Fragen und Antworten zum ETL-Testinterview
- Top 12 Fragen zum Mockito-Interview (Mocking Framework-Interview)
- Die wichtigsten Fragen zum Vorstellungsgespräch für Oracle Forms and Reports
- Fragen zum Vorstellungsgespräch im Softwarehandbuch zum Testen für erfahrene Fachleute
- Java-Bereitstellung: Erstellung und Ausführung einer Java-JAR-Datei
- Die wichtigsten technischen Fragen zu Oracle Apps und zum Oracle SOA-Interview