top 30 jms interview questions
Domande e risposte per l'intervista JMS più popolari per professionisti più freschi ed esperti:
JMS o Java Messaging Service è attualmente diventato uno dei modelli più dominanti per la consegna sicura, affidabile e scalabile di messaggi in tutto il mondo.
Questo modello è molto ben strutturato e supporta una serie di forme di tecniche e protocolli di messaggistica.
Immergiamoci ed esaminiamo alcune domande e risposte che vengono poste frequentemente su questo argomento in tutto il settore.
Domande di intervista JMS più popolari
Di seguito è riportato un elenco delle domande di intervista del Java Message Service più frequenti insieme a risposte dettagliate.
Q # 1) Cos'è JMS?
Risposta: Java Messaging Service è un'API Java, che consente ai sistemi di creare, leggere, inviare e ricevere messaggi.
La parte più importante dell'algoritmo è molto ben strutturata e consente a un'applicazione di inviare un messaggio a un'altra applicazione e abilita anche le funzionalità di trasmissione agli abbonati.
Q # 2) Quali sono i tipi di comunicazione forniti da JMS? Spiega in dettaglio.
Risposta: questa API fornisce due tipi di comunicazione:
- Asincrono: Il messaggio verrà consegnato al cliente, non è necessario che il cliente invii richieste per riceverlo. L'applicazione client lo riceverà una volta che l'applicazione mittente avrà trasmesso.
- Affidabile: Qui il messaggio viene inviato all'applicazione client una volta che il protocollo API garantisce la disponibilità dell'applicazione ricevente.
D # 3) Qual è il numero di modelli di messaggistica disponibili su JMS?
Risposta: Nello specifico, ci sono due tipi di modello forniti da JMS:
Punto a punto: Come suggerisce il nome stesso, si tratta di un meccanismo di messaggistica uno a uno, in cui il mittente invia un messaggio a un singolo destinatario. Il messaggio è disponibile per l'applicazione ricevente una volta che è pronto e fino a quel momento il messaggio viene memorizzato nella coda.
La parte più importante è che non ci sono dipendenze rispetto al tempo tra l'applicazione mittente e quella ricevente.
Pubblica e iscriviti: Questo meccanismo di messaggistica è progettato in modo univoco da JMS.
Per esempio , un lettore si iscrive a un blog in cui la persona è interessata. Ora potrebbero esserci diverse persone interessate a un determinato blog.
E si iscrivono / si registrano a quel blog. Ora, una volta che un nuovo post o argomento viene pubblicato sul blog, tutti i lettori registrati riceveranno un aggiornamento. Questo modello di messaggistica si chiama Pubblica e Sottoscrivi.
Q # 4) Che cos'è una coda?
Risposta: Nel meccanismo punto a punto di JMS, l'applicazione di origine invia un messaggio all'applicazione di destinazione, il messaggio viene consumato dall'applicazione di destinazione una volta che è disponibile, fino a quel momento l'unità di archiviazione del tempo stesso viene chiamata coda.
Q # 5) Che cos'è un argomento?
Risposta: Nel modello Pubblica / Sottoscrivi, l'applicazione client / editore genera un messaggio e quel messaggio è disponibile per tutti gli abbonati o le applicazioni di destinazione. Questo messaggio è chiamato Argomento.
Q # 6) Qual è la differenza principale tra il meccanismo di funzionamento di JMS e RPC?
Risposta: La differenza identificabile tra i due modelli risiede nel modo in cui il messaggio viene consegnato.
Nel caso di JMS, l'applicazione mittente invia il messaggio all'applicazione di destinazione e quindi attende di nuovo / o elabora un altro messaggio secondo i criteri di programmazione.
Mentre nel caso di RPC, il thread viene completato una volta che il messaggio raggiunge la destinazione e il controllo torna al metodo responsabile del trasporto del messaggio.
D # 7) Che cos'è il middleware orientato ai messaggi?
Risposta: Il middleware orientato ai messaggi è un software che funziona tra l'applicazione del mittente e l'applicazione di destinazione nel modello di lavoro JMS.
D # 8) In che modo il middleware orientato ai messaggi è responsabile dell'assenza di dipendenza temporale tra il componente mittente e destinatario rispetto al modello Point to Point su JMS?
Risposta: Poiché il middleware MOM opera tra il componente mittente e destinatario, si prende cura del messaggio e lo trasporta tramite meccanismo di accodamento. Quindi, fino a quando l'applicazione di destinazione / destinatario non diventa disponibile per ricevere / leggere il messaggio, il messaggio viene memorizzato in una coda.
La parte più importante è che il metodo responsabile dell'invio del messaggio non è occupato fino a quando l'applicazione ricevente non riceve il messaggio. Pertanto, sia l'applicazione mittente che quella ricevente funzionano in modo indipendente senza alcuna dipendenza temporale.
D # 9) Assegnare un nome ai tipi di messaggistica supportati da JMS.
Risposta: I tipi di messaggi supportati da JMS sono:
- Messaggi di testo
- Messaggi in streaming
- Messaggi sulla mappa
- Messaggi di byte
- Messaggi oggetto
Q # 10) Che cos'è un messaggio di byte?
Risposta: L'oggetto Bytes Message è effettivamente responsabile dell'invio del messaggio contenente un flusso di byte ininterrotti ed eredita dall'interfaccia del messaggio e aggiunge un corpo del messaggio di byte. Il destinatario del messaggio è responsabile dell'interpretazione del messaggio.
L'API JMS consente il trasporto di questo tipo di messaggi, ma secondo i documenti Oracle, in genere non vengono utilizzati poiché l'inclusione di proprietà può influire sul formato del messaggio.
D # 11) Che cos'è uno StreamMessage?
Risposta: Un oggetto StreamMessage viene utilizzato per inviare il flusso di tipi di dati primitivi nel linguaggio di programmazione Java. I dati vengono inseriti e letti in sequenza. Eredita dall'interfaccia del messaggio e aggiunge un corpo del messaggio di flusso.
java.io.DataInputStream e java.io.DataOutputStream sono API che supportano questi tipi di messaggistica.
D # 12) Che cos'è un messaggio di testo?
Risposta: Un messaggio di testo è quello gestito da java.lang.String ed eredita dall'interfaccia del messaggio e aggiunge un corpo del messaggio di testo. Viene utilizzato per trasportare i messaggi contenenti un testo.
D # 13) Cos'è un messaggio Object?
Risposta: Un messaggio oggetto generalmente contiene un oggetto Java serializzabile nel corpo del messaggio. In genere, l'applicazione ricevente riceve il messaggio Object in modalità di sola lettura.
D # 14) Cos'è un messaggio sulla mappa?
Risposta: Il corpo del messaggio dell'oggetto Map Message contiene una serie di coppie nome-valore, dove i nomi sono oggetti String e i valori sono primitive Java. È possibile accedere alle voci in modo sequenziale o casuale per nome. Map Message eredita effettivamente dall'interfaccia Message e aggiunge un corpo del messaggio che contiene una mappa.
Q # 15) Cos'è JNDI? In che modo è correlato a JMS?
Risposta: JNDI è l'interfaccia di denominazione e directory Java. Se un'applicazione è connessa a un database, consente allo sviluppatore dell'applicazione di dare un nome a quel database invece di preoccuparsi delle credenziali di connessione del database.
L'API JNDI accederà alla directory di denominazione e troverà l'associazione tra il nome e l'oggetto database e si connetterà di conseguenza. Possiamo utilizzare questo meccanismo mentre ci connettiamo a qualsiasi connectionFactory (coda o argomento) per l'invio di messaggi.
D # 16) In che modo un'applicazione mittente trasporta / invia un messaggio tramite JMS?
Risposta: Di seguito sono riportati alcuni modi in cui un messaggio viene inviato tramite JMS:
- Implementare JNDI per cercare le credenziali di connectionFactory.
- Creare un oggetto connectionFactory per l'implementazione.
- Identifica gli oggetti di destinazione (uno o più).
- Utilizzare l'oggetto connectionFactory per stabilire la connessione JMS.
- Crea una o più sessioni.
- Utilizzare una sessione e le destinazioni per creare i MessageProducers e i MessageConsumers necessari.
- Comunica usando il canale.
D # 17) Assegnare un nome ai componenti di JMS.
Risposta: i componenti di JMS includono:
- Provider JMS
- Client JMS
- Messaggi
- Oggetti amministrati
- Clienti nativi
D # 18) Cosa sono gli oggetti amministrati in JMS?
Risposta: L'oggetto amministrato JMS è in realtà quelle credenziali configurate dall'amministratore per connettersi con il client JMS e sono definite in JNDI. Questi oggetti vengono configurati prima di connettersi con il client JMS all'interno del server.
D # 19) Quali sono le funzionalità di un provider JMS?
Risposta: Il provider JMS si occupa fondamentalmente della sicurezza e dei dati.
È responsabile di garantire che il messaggio venga consegnato in modo sicuro, si occupa anche della crittografia dei dati e degli standard di codifica dei dati ed è responsabile del richiamo del messaggio per il client non JMS.
D # 20) Cos'è una sessione JMS?
Risposta: Una sessione JMS è uno stato che controlla il flusso totale dall'invio alla ricezione dei messaggi JMS.
D # 21) Possiamo usare JMS per l'invio di e-mail automatiche?
come aprire il file xml in Word
Risposta: JMS non ha API standard che supportano la funzione, tuttavia possiamo utilizzare JavaMail per inviare e-mail automatizzate.
D # 22) Qual è la funzionalità di un listener di messaggi nel contesto di JMS?
Risposta: Il listener di messaggi viene in genere utilizzato con il consumatore di messaggi in caso di consegna asincrona. Per la consegna asincrona è possibile registrare un oggetto di MessageListener con messageConsumer.
D # 23) Cos'è il client JMS?
Risposta: Il client JMS è fondamentalmente un componente scritto nel linguaggio di programmazione Java che è responsabile del richiamo e del consumo dei corpi dei messaggi.
Q # 24) Cos'è un messaggio?
Risposta: Un messaggio è un corpo, piuttosto un componente che comunica tra i client JMS.
D # 25) Qual è la funzionalità di un produttore di messaggi JMS?
Risposta: Un produttore di messaggi è fondamentalmente un componente creato da una sessione JMS per inviare un messaggio all'applicazione ricevente.
È possibile creare una sessione e implementare l'interfaccia MessageProducer per definire un oggetto di destinazione, un oggetto coda o un oggetto argomento. Si può dichiarare un produttore come non specificato assegnando null nel suo argomento invece di un oggetto. Successivamente possiamo utilizzare l'overload del metodo Java sul metodo send per specificare una destinazione, un messaggio come argomenti o parametri.
Q # 26) Qual è la funzionalità dei consumatori di messaggi JMS?
Risposta: Un consumatore di messaggi è fondamentalmente un componente creato da una sessione JMS per ricevere un messaggio dall'applicazione ricevente. È possibile creare una sessione e implementare un'interfaccia MessageConsumer per definire l'oggetto di destinazione, l'oggetto della coda o l'oggetto dell'argomento.
È possibile utilizzare createDurableSubscriber con l'oggetto sessione per creare un abbonato a un argomento durevole, ma è possibile utilizzarlo per creare un argomento per il modello di pubblicazione / sottoscrizione e non per la creazione di code.
Il consumatore diventa attivo una volta creato l'oggetto consumatore. Possiamo utilizzare l'oggetto per ricevere e inviare messaggi. Per disattivarlo, è possibile utilizzare un metodo di chiusura per un MessageConsumer.
D # 27) Qual è la funzionalità di un browser code JMS?
Risposta: Come abbiamo discusso in precedenza, il concetto di coda, dove il messaggio viene memorizzato fino a quando il destinatario non lo riceve. La funzionalità di sfogliare i messaggi nella coda e visualizzare i valori di intestazione è supportata dall'oggetto QueueBrowser.
Si può creare un oggetto QueueBrowser tramite. Sessione JMS.
D # 28) Qual è la funzionalità di un selettore di messaggi JMS?
Risposta: Il selettore messaggi JMS è fondamentalmente un'API responsabile del filtraggio dei messaggi che riceve per una particolare applicazione. I selettori dei messaggi assegnano effettivamente il lavoro al provider JMS, che è effettivamente responsabile del filtraggio dei messaggi.
Un selettore di messaggi prende effettivamente i valori di tipo stringa come input.
WatchType = 'Titan' OR WatchType = 'Rolex'
I metodi createConsumer e createDurableSubscriber consentono di specificare un selettore di messaggi come argomento quando si crea un consumatore di messaggi.
Q # 29) Come gestire l'eccezione causata da JMS?
Risposta: La classe principale responsabile della generazione delle eccezioni relative a JMS da parte dell'API JMS è JMSException.
L'acquisizione di JMSException fornisce un modo generico di gestire tutte le eccezioni relative all'API JMS.
La classe Eccezione JMS include le seguenti sottoclassi, descritte nella documentazione API:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
Q # 30) Come gestire le sessioni non trattate rispetto a JMS?
Risposta: In caso di sessioni non oggetto di transazione, i messaggi vengono riconosciuti sulla base dell'argomento passato durante la creazione di un oggetto sessione del metodo QueueSession o TopicSession.
Le opzioni seguenti vengono generalmente utilizzate in base ai requisiti aziendali:
- Sessione. AUTO_ACKNOWLEDGE: Se si passa questo argomento durante la creazione di un oggetto sessione, se si verifica JMSException, un consumatore affidabile attende alcuni secondi e quindi chiama il metodo MessageConsumer.receive per ricevere nuovamente i messaggi. A causa del failover, se un messaggio non viene recapitato, verrà riconsegnato.
- Sessione. CLIENT_ACKNOWLEDGE: Se si passa questo argomento durante la creazione di un oggetto sessione, se si verifica JMSException, il consumatore chiama Session.recover prima di chiamare Message.aknowledge o MessageConsumer.receive, poiché Session.recover è responsabile del recupero e della riconsegna dei messaggi non riconosciuti.
- Sessione. DUPS_OK_ACKNOWLEDGE: Se si passa questo argomento durante la creazione di un oggetto sessione, se si verifica JMSException, un consumatore affidabile attende alcuni secondi e quindi chiama il metodo MessageConsumer.receive per ricevere nuovamente i messaggi. Ma qui si possono ricevere messaggi duplicati o gli stessi messaggi riconsegnati come in questa modalità prima del failover, i messaggi riconosciuti possono essere riconsegnati.
Nota : Qui nel codice di esempio ho usato QueueSession, ma si può usare TopicSession per passare questi argomenti.
D # 31) Qual è la funzionalità del server Oracle Glassfish? Quale ulteriore vantaggio ha sul server Apache Tomcat?
Risposta: Il server Glassfish è in realtà un server delle applicazioni e può essere utilizzato anche come server web, il che significa che può gestire le richieste HTTP dai browser web.
Come server delle applicazioni, è stato sviluppato per gestire tutti i tipi di applicazioni Java Enterprise in termini di servlet / JSP e anche di componenti EJB.
Considerando che, il server Tomcat è in realtà un contenitore servlet che viene generalmente utilizzato per la gestione di componenti servlet o JSP.
D # 32) Come creare una sessione EJB per avviare una connessione JMS?
Risposta: Possiamo creare una sessione EJB per JMS come abbiamo scritto nel codice seguente.
D # 33) Descrivi il concetto di raggruppamento di fagioli basato sui messaggi.
Risposta: Se un'applicazione basata su componenti EJB viene distribuita su qualsiasi cluster di server delle applicazioni, può essere configurata per essere eseguita su qualsiasi server all'interno del cluster per fornire disponibilità e scalabilità per l'applicazione.
Se un bean è in forma di Message Driven Bean (MDB), può essere eseguito su qualsiasi server all'interno del cluster e può essere avviato parallelamente a un numero di server delle applicazioni nel cluster.
Conclusione
Spero che questo elenco delle principali domande dell'intervista JMS sarebbe stato davvero informativo e sono sicuro che puoi risolvere qualsiasi intervista con successo con una conoscenza approfondita di questo elenco.
Spero che questo ti avrebbe aiutato molto !! Buon apprendimento !!
Lettura consigliata
- Domande e risposte dell'intervista
- Alcune interessanti domande di intervista sul test del software
- Domande e risposte al colloquio di prova ETL
- Le 12 migliori domande per l'intervista Mockito (Intervista sul quadro beffardo)
- Principali domande per l'intervista su Oracle Forms and Reports
- Domande di intervista sul test manuale del software per professionisti esperti
- Distribuzione Java: creazione ed esecuzione di file JAR Java
- Principali domande di colloquio tecnico su Oracle Apps e Oracle SOA