top 30 jms interview questions
Questions et réponses d'entrevue JMS les plus populaires pour les professionnels plus frais et expérimentés:
JMS ou Java Messaging Service est actuellement devenu l'un des modèles les plus dominants pour la livraison sécurisée, fiable et évolutive de messages à travers le monde.
Ce modèle est très bien structuré et prend en charge un certain nombre de formes de techniques et de protocoles de messagerie.
Allons-y et passons en revue quelques questions et réponses fréquemment posées sur ce sujet dans l’industrie.
Questions d'entrevue JMS les plus populaires
Vous trouverez ci-dessous une liste des questions d'entretien Java Message Service les plus fréquemment posées ainsi que des réponses détaillées.
Q # 1) Qu'est-ce que JMS?
Répondre: Java Messaging Service est une API Java, qui permet aux systèmes de créer, lire, envoyer et recevoir des messages.
La partie la plus importante de l'algorithme est très bien structurée et permet à une application d'envoyer un message à une autre application et permet également de diffuser des fonctionnalités aux abonnés.
Q # 2) Quels sont les types de communication fournis par JMS? Expliquer en détail.
Réponse: Cette API propose deux types de communication:
- Asynchrone: Le message sera remis au client, il n'est pas nécessaire que le client envoie des demandes pour le recevoir. L'application cliente le recevra une fois que l'application émettrice aura transmis.
- Fiable: Ici, le message est envoyé à l'application cliente une fois que le protocole API garantit la disponibilité de l'application réceptrice.
Q # 3) Quel est le nombre de modèles de messagerie disponibles sur JMS?
Répondre: Plus précisément, il existe deux types de modèles fournis par JMS:
Point à point: Comme son nom l'indique, il s'agit d'un mécanisme de messagerie un à un, dans lequel l'expéditeur envoie un message à un seul destinataire. Le message est disponible pour l'application destinataire une fois qu'il est prêt et jusque-là, le message est stocké dans la file d'attente.
La partie la plus importante de celui-ci est qu'il n'y a aucune dépendance en ce qui concerne le temps entre l'expéditeur et l'application destinataire.
Publiez et abonnez-vous: Ce mécanisme de messagerie est conçu de manière très unique par JMS.
Par exemple , un lecteur s'abonne à un blog où la personne est intéressée. Maintenant, il peut y avoir plusieurs personnes intéressées par un blog en particulier.
Et ils s'abonnent / s'inscrivent à ce blog. Désormais, une fois qu'un nouveau message ou sujet est publié sur le blog, tous les lecteurs inscrits recevront une mise à jour. Ce modèle de messagerie s'appelle Publier et s'abonner.
Q # 4) Qu'est-ce qu'une file d'attente?
Répondre: Dans le mécanisme point à point de JMS, l'application source envoie un message à l'application de destination, le message est consommé par l'application de destination une fois qu'il est disponible, jusqu'à ce que l'unité de stockage du moment même soit appelée une file d'attente.
Q # 5) Qu'est-ce qu'un sujet?
Répondre: Dans le modèle Publier / Souscrire, l'application client / éditeur génère un message et ce message est disponible pour tous les abonnés ou applications de destination. Ce message s'appelle un sujet.
Q # 6) Quelle est la principale différence entre le mécanisme de fonctionnement de JMS et RPC?
Répondre: La différence identifiable entre les deux modèles réside dans la manière dont le message est délivré.
Dans le cas de JMS, l'application émettrice envoie le message à l'application de destination, puis elle attend à nouveau / ou traite un autre message selon les critères de programmation.
Alors que dans le cas de RPC, le thread est terminé une fois que le message atteint la destination et le contrôle revient à la méthode responsable du transport de message.
Q # 7) Qu'est-ce qu'un middleware orienté message?
Répondre: Message Oriented Middleware est un logiciel qui fonctionne entre l'application émettrice et l'application de destination dans le modèle de travail JMS.
Q # 8) Comment le middleware orienté message est-il responsable de l'absence de dépendance temporelle entre l'expéditeur et le récepteur par rapport au modèle point à point sur JMS?
Répondre: Étant donné que le middleware MOM fonctionne entre l'expéditeur et le récepteur, il prend en charge le message et transporte le message par un mécanisme de mise en file d'attente. Ainsi, jusqu'à ce que l'application de destination / destinataire devienne disponible pour recevoir / lire le message, le message est stocké dans une file d'attente.
La partie la plus importante est que la méthode responsable de l'envoi du message n'est pas occupée tant que l'application destinataire n'a pas reçu le message. Ainsi, les applications émettrice et réceptrice fonctionnent indépendamment sans aucune dépendance temporelle.
Q # 9) Nommez les types de messagerie pris en charge par JMS.
Répondre: Les types de messages pris en charge par JMS sont:
- Des messages texte
- Messages en continu
- Messages de la carte
- Messages d'octets
- Messages d'objets
Q # 10) Qu'est-ce qu'un message Bytes?
Répondre: L'objet Bytes Message est en fait responsable de l'envoi du message contenant un flux d'octets ininterrompus et il hérite de l'interface de message et ajoute un corps de message d'octets. Le destinataire du message est responsable de l'interprétation du message.
L'API JMS permet le transport de ce type de messages, mais selon la documentation d'Oracle, ils ne sont généralement pas utilisés car l'inclusion de propriétés peut affecter le format du message.
Q # 11) Qu'est-ce qu'un StreamMessage?
Répondre: Un objet StreamMessage est utilisé pour envoyer le flux de types de données primitifs dans le langage de programmation Java. Les données sont remplies et lues séquentiellement. Il hérite de l'interface Message et ajoute un corps de message de flux.
java.io.DataInputStream et java.io.DataOutputStream sont des API prenant en charge ces types de messagerie.
Q # 12) Qu'est-ce qu'un message texte?
Répondre: Un message texte est celui qui est pris en charge par java.lang.String et il hérite de l'interface du message et ajoute un corps de message texte. Ceci est utilisé pour transporter les messages contenant un texte.
Q # 13) Qu'est-ce qu'un message objet?
Répondre: Un message objet contient généralement un objet Java sérialisable dans son corps de message. En général, l'application destinataire reçoit le message Object en mode lecture seule.
Q # 14) Qu'est-ce qu'un message Map?
Répondre: Le corps du message de l'objet Map Message contient un ensemble de paires nom-valeur, où les noms sont des objets String et les valeurs sont des primitives Java. Les entrées sont accessibles de manière séquentielle ou aléatoire par nom. Map Message hérite en fait de l'interface Message et ajoute un corps de message contenant une Map.
Q # 15) Qu'est-ce que JNDI? Quel est le lien avec JMS?
Répondre: JNDI est l'interface de nommage et d'annuaire Java. Si une application est connectée à une base de données, cela permet au développeur de l'application de donner un nom à cette base de données au lieu de se soucier des informations d'identification de connexion à la base de données.
L'API JNDI accédera au répertoire de dénomination et trouvera le mappage entre le nom et l'objet de base de données et se connectera en conséquence. Nous pouvons utiliser ce mécanisme pendant que nous nous connectons à n'importe quelle connectionFactory (file d'attente ou rubrique) pour l'envoi de messages.
Q # 16) Comment une application émettrice transporte-t-elle / envoie-t-elle un message via JMS?
Répondre: Vous trouverez ci-dessous quelques façons d'envoyer un message via JMS:
- Implémentez JNDI pour rechercher les informations d'identification de connectionFactory.
- Créez un objet connectionFactory pour l'implémentation.
- Identifiez les objets de destination (un ou plusieurs).
- Utilisez l'objet connectionFactory pour établir la connexion JMS.
- Créez une ou plusieurs sessions.
- Utilisez une session et les destinations pour créer les MessageProducers et MessageConsumers nécessaires.
- Communiquez en utilisant le canal.
Q # 17) Nommez les composants de JMS.
Réponse: Les composants de JMS comprennent:
- Fournisseur JMS
- JMS Client
- messages
- Objets administrés
- Clients natifs
Q # 18) Qu'est-ce que les objets administrés dans JMS?
Répondre: L'objet administré par JMS est en fait les informations d'identification configurées par l'administrateur afin de se connecter au client JMS et sont définies sous JNDI. Ces objets sont configurés avant la connexion avec le client JMS à l'intérieur du serveur.
Q # 19) Quelles sont les fonctionnalités d'un fournisseur JMS?
Répondre: JMS Provider s'occupe essentiellement de la sécurité et des données.
Il est chargé de s'assurer que le message est livré de manière sécurisée, il prend également en charge le cryptage des données et les normes de codage des données et est responsable de l'appel du message pour le client Non-JMS.
Q # 20) Qu'est-ce qu'une session JMS?
Répondre: Une session JMS est un état contrôlant le flux total de l'envoi à la réception des messages JMS.
Q # 21) Pouvons-nous utiliser JMS pour envoyer des e-mails automatisés?
qu'est-ce qu'une clé de sécurité réseau pour le wifi
Répondre: JMS n'a pas d'API standard prenant en charge cette fonctionnalité, mais nous pouvons utiliser JavaMail pour envoyer des e-mails automatisés.
Q # 22) Quelle est la fonctionnalité d'un écouteur de message dans le contexte de JMS?
Répondre: L'écouteur de messages est généralement utilisé avec le consommateur de messages dans le cas d'une remise asynchrone. Pour une livraison asynchrone, on peut enregistrer un objet de MessageListener avec messageConsumer.
Q # 23) Qu'est-ce que le client JMS?
Répondre: Le client JMS est essentiellement un composant écrit dans le langage de programmation Java qui est responsable de l'appel et de la consommation des corps de message.
Q # 24) Qu'est-ce qu'un message?
Répondre: Un message est un corps, plutôt un composant qui communique entre les clients JMS.
Q # 25) Quelle est la fonctionnalité d'un producteur de message JMS?
Répondre: Un générateur de message est essentiellement un composant créé par une session JMS pour envoyer un message à l'application réceptrice.
On peut créer une session et implémenter l'interface MessageProducer pour définir un objet de destination, un objet de file d'attente ou un objet de rubrique. On peut déclarer un producteur comme non spécifié en attribuant null dans son argument au lieu d'un objet. Plus tard, nous pouvons utiliser la surcharge de méthode Java sur la méthode d'envoi pour spécifier une destination, un message en tant qu'arguments ou paramètres.
Q # 26) Quelle est la fonctionnalité des consommateurs de messages JMS?
Répondre: Un consommateur de message est essentiellement un composant qui est créé par une session JMS pour recevoir un message par l'application réceptrice. On peut créer une session et implémenter une interface MessageConsumer pour définir l'objet de destination, l'objet de file d'attente ou l'objet de rubrique.
On peut utiliser createDurableSubscriber avec l'objet de session pour créer un abonné de rubrique durable, mais on peut l'utiliser pour créer une rubrique pour le modèle Publish / Subscribe et non pour créer des files d'attente.
Le consommateur devient actif une fois l'objet consommateur créé. Nous pouvons utiliser l'objet pour recevoir et envoyer des messages. Afin de désactiver cela, on peut utiliser une méthode close pour un MessageConsumer.
Q # 27) Quelle est la fonctionnalité d'un navigateur de file d'attente JMS?
Répondre: Comme nous l'avons vu précédemment, le concept de file d'attente, où le message est stocké jusqu'à ce que le récepteur le reçoive. La fonctionnalité de navigation dans les messages dans la file d'attente et d'affichage des valeurs d'en-tête est prise en charge par l'objet QueueBrowser.
On peut créer un objet QueueBrowser via. Session JMS.
Q # 28) Quelle est la fonctionnalité d'un sélecteur de message JMS?
Répondre: Le sélecteur de message JMS est essentiellement une API qui est responsable du filtrage des messages qu'il reçoit pour une application particulière. Les sélecteurs de messages attribuent en fait le travail au fournisseur JMS, qui est en fait responsable du filtrage des messages.
Un sélecteur de message prend en fait des valeurs de type chaîne en entrée.
WatchType = 'Titan' OU WatchType = 'Rolex'
Les méthodes createConsumer et createDurableSubscriber permettent de spécifier un sélecteur de message comme argument lorsque l'on crée un consommateur de message.
Q # 29) Comment gérer l'exception provoquée par JMS?
Répondre: La classe principale responsable de la levée des exceptions liées à JMS par l'API JMS est JMSException.
Catching JMSException fournit un moyen générique de gérer toutes les exceptions liées à l'API JMS.
La classe Exception JMS comprend les sous-classes suivantes, décrites dans la documentation de l'API:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
Q # 30) Comment gérer les sessions non traitées par rapport à JMS?
Répondre: Dans le cas de sessions non traitées, les messages sont acquittés sur la base de l'argument passé lors de la création d'un objet session de la méthode QueueSession ou TopicSession.
Les options ci-dessous sont généralement utilisées en fonction des besoins de l'entreprise:
- Session. AUTO_ACKNOWLEDGE: Si l'on passe cet argument lors de la création d'un objet de session, si JMSException se produit, un consommateur fiable attend quelques secondes puis appelle la méthode MessageConsumer.receive pour recevoir à nouveau les messages. En raison du basculement, si un message n'est pas remis, il sera renvoyé.
- Session. CLIENT_ACKNOWLEDGE: Si l'on passe cet argument lors de la création d'un objet de session, si JMSException se produit, le consommateur appelle Session.recover avant d'appeler Message.aknowledge ou MessageConsumer.receive, car Session.recover est responsable de la récupération et de la redistribution des messages non acquittés.
- Session. DUPS_OK_ACKNOWLEDGE: Si l'on passe cet argument lors de la création d'un objet de session, si JMSException se produit, un consommateur fiable attend quelques secondes puis appelle la méthode MessageConsumer.receive pour recevoir à nouveau les messages. Mais ici, on peut recevoir des messages en double ou les mêmes messages redistribués que dans ce mode avant le basculement, les messages acquittés peuvent être redistribués.
Remarque : Ici, dans l'exemple de code, j'ai utilisé QueueSession, mais on peut utiliser TopicSession pour passer ces arguments.
Q # 31) Quelle est la fonctionnalité du serveur Oracle Glassfish? Quel avantage supplémentaire a-t-il sur le serveur Apache Tomcat?
Répondre: Le serveur Glassfish est en fait un serveur d'applications et peut également être utilisé comme serveur Web, ce qui signifie qu'il peut gérer les requêtes HTTP des navigateurs Web.
En tant que serveur d'applications, il est développé pour gérer tous les types d'applications Java Enterprise en termes de servlets / JSP et également de composants EJB.
Alors que le serveur Tomcat est en fait un conteneur de servlet généralement utilisé pour gérer les composants de servlet ou JSP.
Q # 32) Comment créer une session EJB afin de démarrer une connexion JMS?
Répondre: Nous pouvons créer une session EJB pour JMS comme nous l'avons écrit dans le code ci-dessous.
Q # 33) Décrivez le concept de clustering de haricots pilotés par message.
Répondre: Si une application basée sur des composants EJB est déployée sur un cluster de serveurs d'applications, elle peut être configurée pour s'exécuter sur n'importe quel serveur à l'intérieur du cluster afin de fournir la disponibilité et l'évolutivité de l'application.
Si un EJB se présente sous la forme de Message Driven Bean (MDB), il peut alors s'exécuter sur n'importe quel serveur à l'intérieur du cluster et peut être lancé parallèlement à un certain nombre de serveurs d'applications du cluster.
Conclusion
J'espère que cette liste des principales questions d'entrevue JMS aurait été vraiment informative et je suis sûr que vous pouvez réussir n'importe quelle interview avec une connaissance approfondie de cette liste.
J'espère que cela vous aurait beaucoup aidé !! Bon apprentissage!!
lecture recommandée
- Questions et réponses d'entrevue
- Quelques questions d'entretien intéressantes sur les tests de logiciels
- Questions et réponses d'entrevue de test ETL
- Top 12 des questions d'entrevue Mockito (entretien Mocking Framework)
- Questions d'entretien les plus fréquentes sur Oracle Forms and Reports
- Questions d'entrevue de test manuel du logiciel pour les professionnels expérimentés
- Déploiement Java: création et exécution d'un fichier JAR Java
- Questions d'entretien les plus fréquentes sur Oracle Apps et Oracle SOA