top 30 jms interview questions
Las preguntas y respuestas más populares de la entrevista de JMS para profesionales más frescos y experimentados:
JMS o Java Messaging Service se ha convertido actualmente en uno de los modelos más dominantes para la entrega de mensajes segura, confiable y escalable en todo el mundo.
Este modelo está muy bien estructurado y admite diversas formas de técnicas y protocolos de mensajería.
Analicemos algunas preguntas y respuestas que se hacen con frecuencia sobre este tema en toda la industria.
Most Popular JMS Interview Questions
A continuación se incluye una lista de las preguntas más frecuentes de las entrevistas de Java Message Service junto con respuestas detalladas.
P # 1) ¿Qué es JMS?
Responder: Java Messaging Service es una API de Java que permite a los sistemas crear, leer, enviar y recibir mensajes.
La parte más importante del algoritmo está muy bien estructurada y permite que una aplicación envíe un mensaje a otra aplicación y también habilita funciones de transmisión a los suscriptores.
P # 2) ¿Cuáles son los tipos de comunicación que proporciona JMS? Explicar detalladamente.
Respuesta: esta API proporciona dos tipos de comunicación:
- Asincrónico: El mensaje será entregado al cliente, no es necesario que el cliente envíe solicitudes para recibirlo. La aplicación cliente lo recibirá una vez que la aplicación remitente transmita.
- De confianza: Aquí, el mensaje se envía a la aplicación cliente una vez que el protocolo API asegura la disponibilidad de la aplicación receptora.
P # 3) ¿Cuál es la cantidad de modelos de mensajería disponibles en JMS?
Responder: Específicamente, hay dos tipos de modelos proporcionados por JMS:
Punto a punto: Como su propio nombre sugiere, es un mecanismo de mensajería uno a uno, en el que el remitente envía un mensaje a un único receptor. El mensaje está disponible para la aplicación receptora una vez que está listo y hasta entonces el mensaje se almacena en la cola.
La parte más importante es que no hay dependencias con respecto al tiempo entre la aplicación emisora y receptora.
Publicar y suscribirse: Este mecanismo de mensajería está diseñado exclusivamente por JMS.
Por ejemplo , un lector se suscribe a un blog en el que la persona está interesada. Ahora bien, puede haber varias personas interesadas en un blog en particular.
Y se suscriben / registran en ese blog. Ahora, una vez que se publique una nueva publicación o tema en el blog, todos los lectores registrados recibirán una actualización. Este modelo de mensajería se llama Publicar y Suscribir.
P # 4) ¿Qué es una cola?
Responder: En el mecanismo punto a punto de JMS, la aplicación de origen envía un mensaje a la aplicación de destino, el mensaje es consumido por la aplicación de destino una vez que está disponible, hasta ese momento la unidad de almacenamiento de ese momento se llama cola.
P # 5) ¿Qué es un tema?
Responder: En el modelo Publicar / Suscribir, la aplicación cliente / editor genera un mensaje y ese mensaje está disponible para todos los suscriptores o aplicaciones de destino. Este mensaje se llama Tema.
P # 6) ¿Cuál es la principal diferencia entre el mecanismo de trabajo de JMS y RPC?
Responder: La diferencia identificable entre los dos modelos radica en la forma en que se transmite el mensaje.
En el caso de JMS, la aplicación remitente envía el mensaje a la aplicación de destino y luego nuevamente espera / o procesa otro mensaje según los criterios de programación.
Mientras que en el caso de RPC, el hilo se completa una vez que el mensaje llega al destino y el control vuelve al método responsable del transporte del mensaje.
P # 7) ¿Qué es el middleware orientado a mensajes?
Responder: El Middleware orientado a mensajes es un software que funciona entre la aplicación del remitente y la aplicación de destino en el modelo de trabajo JMS.
P # 8) ¿Cómo es el middleware orientado a mensajes responsable de que no haya dependencia de tiempo entre el componente emisor y receptor con respecto al modelo punto a punto en JMS?
Responder: Dado que el middleware MOM opera entre el remitente y el componente receptor, se ocupa del mensaje y lo transporta mediante un mecanismo de cola. Por lo tanto, hasta que la aplicación de destino / receptor esté disponible para recibir / leer el mensaje, el mensaje se almacena en una cola.
La parte más importante es que el método responsable de enviar el mensaje no está ocupado hasta que la aplicación receptora recibe el mensaje. Por tanto, tanto la aplicación emisora como la receptora funcionan de forma independiente sin depender del tiempo.
P # 9) Nombre los tipos de mensajería admitidos por JMS.
Responder: Los tipos de mensajes que admite JMS son:
- Mensajes de texto
- Transmitir mensajes
- Mensajes de mapa
- Mensajes de bytes
- Mensajes de objeto
P # 10) ¿Qué es un mensaje de bytes?
Responder: El objeto Bytes Message es realmente responsable de enviar el mensaje que contiene una secuencia de bytes ininterrumpidos y hereda de la interfaz del mensaje y agrega un cuerpo de mensaje de bytes. El receptor del mensaje es responsable de la interpretación del mensaje.
La API JMS permite el transporte de este tipo de mensajes, pero según los documentos de Oracle, normalmente no se utilizan ya que la inclusión de propiedades puede afectar el formato del mensaje.
P # 11) ¿Qué es un StreamMessage?
Responder: Un objeto StreamMessage se utiliza para enviar el flujo de tipos de datos primitivos en el lenguaje de programación Java. Los datos se completan y leen secuencialmente. Hereda de la interfaz de mensajes y agrega un cuerpo de mensaje continuo.
java.io.DataInputStream y java.io.DataOutputStream son API que admiten estos tipos de mensajería.
P # 12) ¿Qué es un mensaje de texto?
Responder: Un mensaje de texto es el que se encarga de java.lang.String y hereda de la interfaz del mensaje y agrega un cuerpo de mensaje de texto. Se utiliza para transportar los mensajes que contienen un texto.
P # 13) ¿Qué es un mensaje de objeto?
Responder: Un mensaje de objeto generalmente contiene un objeto Java serializable en el cuerpo del mensaje. Generalmente, la aplicación receptora recibe el mensaje Objeto en modo de solo lectura.
P # 14) ¿Qué es un mensaje de mapa?
Responder: El cuerpo del mensaje del objeto Map Message contiene un conjunto de pares nombre-valor, donde los nombres son objetos String y los valores son primitivas Java. Se puede acceder a las entradas de forma secuencial o aleatoria por nombre. El mensaje de mapa en realidad hereda de la interfaz de mensajes y agrega un cuerpo de mensaje que contiene un mapa.
P # 15) ¿Qué es JNDI? ¿Cómo se relaciona con JMS?
Responder: JNDI es la interfaz de directorio y nombres de Java. Si una aplicación está conectada a una base de datos, le permite al desarrollador de la aplicación darle un nombre a esa base de datos en lugar de preocuparse por las credenciales de conexión de la base de datos.
La API JNDI accederá al directorio de nombres y encontrará el mapeo entre el nombre y el objeto de la base de datos y se conectará en consecuencia. Podemos usar este mecanismo mientras nos conectamos a cualquier connectionFactory (cola o tema) para enviar mensajes.
P # 16) ¿Cómo transporta / envía una aplicación de remitente un mensaje a través de JMS?
Responder: A continuación se muestran algunas formas en las que se envía un mensaje a través de JMS:
- Implemente JNDI para buscar las credenciales de connectionFactory.
- Cree un objeto connectionFactory para la implementación.
- Identificar los objetos de destino (uno o más).
- Utilice el objeto connectionFactory para establecer la conexión JMS.
- Crea una o más sesiones.
- Utilice una sesión y los destinos para crear los productores de mensajes y consumidores de mensajes necesarios.
- Comunicarse usando el canal.
P # 17) Nombra los componentes de JMS.
Respuesta: Los componentes de JMS incluyen:
- Proveedor JMS
- Cliente JMS
- Mensajes
- Objetos administrados
- Clientes nativos
P # 18) ¿Qué son los objetos administrados en JMS?
Responder: El objeto administrado de JMS son en realidad aquellas credenciales configuradas por el administrador para conectarse con el cliente JMS y están definidas en JNDI. Estos objetos se configuran antes de conectarse con el cliente JMS dentro del servidor.
P # 19) ¿Cuáles son las funcionalidades de un proveedor JMS?
Responder: JMS Provider básicamente se ocupa de la seguridad y los datos.
Es responsable de garantizar que el mensaje se entregue de manera segura, también se ocupa del cifrado de datos y los estándares de codificación de datos y es responsable de invocar el mensaje para el cliente que no es JMS.
P # 20) ¿Qué es una sesión JMS?
Responder: Una sesión JMS es un estado que controla el flujo total desde el envío hasta la recepción de los mensajes JMS.
P # 21) ¿Podemos usar JMS para enviar correos electrónicos automatizados?
versión completa del software gratuito de gestión de iglesias
Responder: JMS no tiene API estándar que admitan la función, sin embargo, podemos usar JavaMail para enviar correos electrónicos automatizados.
P # 22) ¿Cuál es la funcionalidad de un escucha de mensajes en el contexto de JMS?
Responder: Message Listener se utiliza normalmente con el consumidor de mensajes en el caso de la entrega asincrónica. Para la entrega asincrónica, se puede registrar un objeto de MessageListener con messageConsumer.
P # 23) ¿Qué es el cliente JMS?
Responder: El cliente JMS es básicamente un componente escrito en el lenguaje de programación Java que se encarga de invocar y consumir los cuerpos de los mensajes.
P # 24) ¿Qué es un mensaje?
Responder: Un mensaje es un cuerpo, más bien un componente que se comunica entre los clientes JMS.
P # 25) ¿Cuál es la funcionalidad de un productor de mensajes JMS?
Responder: Un productor de mensajes es básicamente un componente creado por una sesión JMS para enviar un mensaje a la aplicación receptora.
Se puede crear una sesión e implementar la interfaz de MessageProducer para definir un objeto de destino, un objeto de cola o un objeto de tema. Se puede declarar a un productor como no especificado asignando nulo en su argumento en lugar de un objeto. Más tarde podemos usar la sobrecarga del método Java en el método de envío para especificar un destino, mensaje como argumentos o parámetros.
P # 26) ¿Cuál es la funcionalidad de los consumidores de mensajes JMS?
Responder: Un consumidor de mensajes es básicamente un componente creado por una sesión JMS para recibir un mensaje de la aplicación receptora. Se puede crear una sesión e implementar una interfaz MessageConsumer para definir el objeto de destino, el objeto de cola o el objeto de tema.
Se puede usar createDurableSubscriber con el objeto de sesión para crear un suscriptor de tema duradero, pero se puede usar para crear un tema para el modelo Publicar / Suscribir y no para crear colas.
El consumidor se vuelve activo una vez que se crea el objeto de consumidor. Podemos usar el objeto para recibir y enviar mensajes. Para desactivar esto, se puede utilizar un método de cierre para un MessageConsumer.
P # 27) ¿Cuál es la funcionalidad de un navegador de cola JMS?
Responder: Como hemos comentado anteriormente el concepto de cola, donde se almacena el mensaje hasta que el receptor lo recibe. La funcionalidad de examinar los mensajes en la cola y mostrar los valores del encabezado es compatible con el objeto QueueBrowser.
Se puede crear un objeto QueueBrowser a través de. Sesión JMS.
P # 28) ¿Cuál es la funcionalidad de un selector de mensajes JMS?
Responder: El selector de mensajes JMS es básicamente una API que se encarga de filtrar los mensajes que recibe para cualquier aplicación en particular. Los selectores de mensajes realmente asignan el trabajo al proveedor JMS, que en realidad es responsable de filtrar los mensajes.
Un selector de mensajes en realidad toma valores de tipo de cadena como entrada.
WatchType = ’Titan’ OR WatchType = ’Rolex’
Los métodos createConsumer y createDurableSubscriber permiten especificar un selector de mensajes como argumento cuando se crea un consumidor de mensajes.
P # 29) ¿Cómo manejar la excepción causada por JMS?
Responder: La clase principal responsable de lanzar excepciones relacionadas con JMS mediante la API de JMS es JMSException.
La captura de JMSException proporciona una forma genérica de manejar todas las excepciones relacionadas con la API de JMS.
La clase de excepción JMS incluye las siguientes subclases, que se describen en la documentación de la API:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
P # 30) ¿Cómo manejar las sesiones sin transacciones con respecto a JMS?
Responder: En el caso de sesiones sin transacciones, los mensajes se reconocen sobre la base del argumento pasado al crear un objeto de sesión del método QueueSession o TopicSession.
Las siguientes opciones se utilizan generalmente de acuerdo con los requisitos comerciales:
- Sesión. AUTO_ACKNOWLEDGE: Si se pasa este argumento al crear un objeto de sesión, entonces, si se produce JMSException, un consumidor confiable espera unos segundos y luego llama al método MessageConsumer.receive para recibir los mensajes nuevamente. Debido a la conmutación por error, si algún mensaje no se envía, se volverá a enviar.
- Sesión. CLIENT_ACKNOWLEDGE: Si se pasa este argumento al crear un objeto de sesión, entonces, si se produce JMSException, el consumidor llama a Session.recover antes de llamar a Message.aknowledge o MessageConsumer.receive, porque Session.recover es responsable de recuperar y volver a enviar los mensajes no reconocidos.
- Sesión. DUPS_OK_ACKNOWLEDGE: Si se pasa este argumento al crear un objeto de sesión, entonces, si se produce JMSException, un consumidor confiable espera unos segundos y luego llama al método MessageConsumer.receive para recibir los mensajes nuevamente. Pero aquí uno puede recibir mensajes duplicados o los mismos mensajes entregados como en este modo antes de la conmutación por error, los mensajes reconocidos pueden volverse a entregar.
Nota : Aquí, en el código de ejemplo, he usado QueueSession, pero se puede usar TopicSession para pasar estos argumentos.
P # 31) ¿Cuál es la funcionalidad del servidor Oracle Glassfish? ¿Qué ventaja adicional tiene sobre el servidor Apache Tomcat?
Responder: El servidor Glassfish es en realidad un servidor de aplicaciones y también se puede usar como servidores web, lo que significa que puede manejar solicitudes HTTP desde los navegadores web.
Como servidor de aplicaciones, está desarrollado para manejar todo tipo de aplicaciones Java Enterprise en términos de servlets / JSP y también componentes EJB.
Considerando que, el servidor Tomcat es en realidad un contenedor de servlets que generalmente se usa para manejar componentes de servlet o JSP.
P # 32) ¿Cómo crear una sesión EJB para iniciar una conexión JMS?
Responder: Podemos crear una sesión EJB para JMS como hemos escrito en el siguiente código.
P # 33) Describa el concepto de agrupación de beans basada en mensajes.
Responder: Si se implementa una aplicación basada en componentes EJB en cualquier clúster de servidores de aplicaciones, entonces se puede configurar para que se ejecute en cualquier servidor dentro del clúster para proporcionar disponibilidad y escalabilidad para la aplicación.
Si un EJB tiene la forma de Message Driven Bean (MDB), puede ejecutarse en cualquier servidor dentro del clúster y puede iniciarse en paralelo a varios servidores de aplicaciones del clúster.
Conclusión
Espero que esta lista de las principales preguntas de la entrevista de JMS haya sido realmente informativa y estoy seguro de que puede resolver cualquier entrevista con éxito con un conocimiento profundo de esta lista.
¡¡Con suerte, esto te habría ayudado mucho !! ¡¡Feliz aprendizaje!!
Lectura recomendada
- Preguntas y respuestas de la entrevista
- Algunas preguntas interesantes de la entrevista sobre pruebas de software
- Preguntas y respuestas de la entrevista de prueba ETL
- Las 12 preguntas principales de la entrevista de Mockito (entrevista de marco de burla)
- Principales preguntas de la entrevista sobre formularios e informes de Oracle
- Preguntas de la entrevista de prueba manual de software para profesionales experimentados
- Implementación de Java: creación y ejecución de un archivo JAR de Java
- Principales preguntas de la entrevista técnica de Oracle Apps y Oracle SOA