top 30 jms interview questions
Najpopularniejsze pytania i odpowiedzi do wywiadów JMS dla świeższych i doświadczonych profesjonalistów:
JMS lub Java Messaging Service stała się obecnie jednym z najbardziej dominujących modeli bezpiecznego, niezawodnego i skalowalnego dostarczania wiadomości na całym świecie.
Model ten jest bardzo dobrze skonstruowany i obsługuje wiele form technik i protokołów przesyłania wiadomości.
Zanurzmy się i przejdźmy przez kilka pytań i odpowiedzi, które są często zadawane na ten temat w całej branży.
Najpopularniejsze pytania do wywiadów JMS
Poniżej znajduje się lista najczęściej zadawanych pytań podczas rozmowy kwalifikacyjnej dotyczącej Java Message Service wraz ze szczegółowymi odpowiedziami.
Pytanie 1) Co to jest JMS?
Odpowiedź: Java Messaging Service to Java API, która umożliwia systemom tworzenie, odczytywanie, wysyłanie i odbieranie wiadomości.
Najważniejsza część algorytmu jest bardzo dobrze skonstruowana i pozwala jednej aplikacji na wysłanie wiadomości do innej aplikacji, a także umożliwia nadawanie funkcji abonentom.
P # 2) Jakie są typy komunikacji zapewniane przez JMS? Wyjaśnij szczegółowo.
Odpowiedź: Ten interfejs API zapewnia dwa rodzaje komunikacji:
- Asynchroniczny: Wiadomość zostanie dostarczona do klienta, nie jest wymagane, aby klient wysyłał żądania w celu jej odebrania. Aplikacja kliencka otrzyma go po przesłaniu aplikacji nadawcy.
- Niezawodny: Tutaj wiadomość jest wysyłana do aplikacji klienckiej, gdy protokół API zapewni dostępność aplikacji odbierającej.
P # 3) Jaka jest liczba modeli przesyłania wiadomości dostępnych w JMS?
Odpowiedź: W szczególności istnieją dwa typy modeli udostępnianych przez JMS:
Punkt do punktu: Jak sama nazwa wskazuje, jest to mechanizm przesyłania wiadomości jeden do jednego, w którym nadawca wysyła wiadomość do jednego odbiorcy. Wiadomość jest dostępna dla aplikacji odbierającej, gdy jest gotowa i do tego czasu jest przechowywana w kolejce.
Najważniejszą jego częścią jest to, że nie ma żadnych zależności czasowych między aplikacją nadawcy i odbiorcy.
Publikuj i subskrybuj: Ten mechanizm przesyłania wiadomości został zaprojektowany w wyjątkowy sposób przez JMS.
Na przykład , jeden czytelnik subskrybuje jeden blog, na którym jest zainteresowany. Teraz może być kilka osób zainteresowanych danym blogiem.
I subskrybują / rejestrują się na tym blogu. Teraz po opublikowaniu nowego posta lub tematu na blogu wszyscy zarejestrowani czytelnicy otrzymają aktualizację. Ten model przesyłania wiadomości nosi nazwę Publikuj i subskrybuj.
P # 4) Co to jest kolejka?
Odpowiedź: W mechanizmie JMS punkt-punkt aplikacja źródłowa wysyła komunikat do aplikacji docelowej, komunikat jest konsumowany przez aplikację docelową, gdy jest dostępny, do tego czasu jednostka pamięci tego czasu nazywana jest kolejką.
P # 5) Co to jest temat?
Odpowiedź: W modelu publikowania / subskrybowania aplikacja klienta / wydawcy generuje jedną wiadomość, która jest dostępna dla wszystkich subskrybentów lub aplikacji docelowych. Ta wiadomość nazywa się tematem.
P # 6) Jaka jest zasadnicza różnica między mechanizmem roboczym JMS i RPC?
Odpowiedź: Możliwa do zidentyfikowania różnica między tymi dwoma modelami polega na sposobie dostarczania wiadomości.
W przypadku JMS aplikacja nadawcy wysyła komunikat do aplikacji docelowej, a następnie ponownie oczekuje / lub przetwarza kolejny komunikat zgodnie z kryteriami programowania.
O ile w przypadku RPC wątek zostaje zakończony, gdy wiadomość dotrze do miejsca docelowego i sterowanie wróci do metody odpowiedzialnej za transport wiadomości.
P # 7) Co to jest oprogramowanie pośredniczące zorientowane na wiadomości?
Odpowiedź: Oprogramowanie pośredniczące zorientowane na komunikaty to oprogramowanie, które działa między aplikacją nadawcy a aplikacją docelową w modelu roboczym JMS.
P # 8) W jaki sposób oprogramowanie pośredniczące zorientowane na komunikaty odpowiada za brak zależności czasowej między komponentem nadawcy i odbiorcy w odniesieniu do modelu Point to Point w JMS?
Odpowiedź: Ponieważ oprogramowanie pośredniczące MOM działa między komponentem wysyłającym i odbierającym, dba o wiadomość i transportuje ją za pomocą mechanizmu kolejkowania. Tak więc, dopóki aplikacja odbiorcy / odbiorcy nie stanie się dostępna do odbierania / odczytywania wiadomości, wiadomość jest przechowywana w kolejce.
Najważniejsze jest to, że metoda odpowiedzialna za wysłanie wiadomości nie jest zajęta, dopóki aplikacja odbiorcy nie otrzyma wiadomości. W ten sposób zarówno aplikacja nadawcy, jak i odbiorcy działają niezależnie, bez żadnej zależności czasowej.
P # 9) Nazwij typy przesyłania wiadomości obsługiwane przez JMS.
Odpowiedź: Typy wiadomości obsługiwane przez JMS to:
- Wiadomości SMS
- Wiadomości strumieniowe
- Mapy wiadomości
- Wiadomości w bajtach
- Komunikaty o obiektach
P # 10) Co to jest komunikat w bajtach?
Odpowiedź: Obiekt Bytes Message jest w rzeczywistości odpowiedzialny za wysyłanie wiadomości zawierającej strumień nieprzerwanych bajtów i dziedziczy po interfejsie wiadomości i dodaje treść wiadomości w bajtach. Odbiorca wiadomości jest odpowiedzialny za interpretację wiadomości.
Interfejs API JMS umożliwia transport tego typu komunikatów, ale zgodnie z dokumentami Oracle zwykle nie są one używane, ponieważ dołączenie właściwości może wpłynąć na format wiadomości.
P # 11) Co to jest StreamMessage?
Odpowiedź: Obiekt StreamMessage służy do wysyłania strumienia pierwotnych typów danych w języku programowania Java. Dane są kolejno wypełniane i odczytywane. Dziedziczy z interfejsu Message i dodaje treść wiadomości strumienia.
java.io.DataInputStream i java.io.DataOutputStream to interfejsy API obsługujące tego typu wiadomości.
P # 12) Co to jest wiadomość tekstowa?
Odpowiedź: Wiadomość tekstowa jest obsługiwana przez java.lang.String i dziedziczy po interfejsie wiadomości i dodaje treść wiadomości tekstowej. Służy do przesyłania wiadomości zawierających tekst.
P # 13) Co to jest wiadomość dotycząca obiektu?
Odpowiedź: Komunikat obiektu zazwyczaj zawiera w treści komunikatu możliwy do serializacji obiekt Java. Zwykle aplikacja odbierająca odbiera komunikat obiektu w trybie tylko do odczytu.
P # 14) Co to jest wiadomość na mapie?
Odpowiedź: Treść komunikatu obiektu Map Message zawiera zestaw par nazwa-wartość, gdzie nazwy to obiekty typu String, a wartości to prymitywy Java. Dostęp do wpisów można uzyskać sekwencyjnie lub losowo według nazwy. Map Message faktycznie dziedziczy z interfejsu Message i dodaje treść wiadomości, która zawiera Map.
P # 15) Co to jest JNDI? Jak to się ma do JMS?
Odpowiedź: JNDI to Java Naming and Directory Interface. Jeśli aplikacja jest połączona z bazą danych, pozwala jej twórcy nadać nazwę tej bazie danych zamiast martwić się o poświadczenia połączenia z bazą danych.
Interfejs API JNDI uzyska dostęp do katalogu nazewnictwa, znajdzie mapowanie między nazwą a obiektem bazy danych i odpowiednio się połączy. Z tego mechanizmu możemy korzystać podczas łączenia się z dowolną fabryką połączeń (kolejką lub tematem) do wysyłania wiadomości.
P # 16) W jaki sposób aplikacja nadawcy transportuje / wysyła wiadomość za pośrednictwem JMS?
Odpowiedź: Poniżej podano kilka sposobów wysyłania wiadomości przez JMS:
- Zaimplementuj JNDI, aby wyszukać referencje fabryki połączeń.
- Utwórz obiekt connectionFactory do implementacji.
- Zidentyfikuj obiekty docelowe (jeden lub więcej).
- Użyj obiektu connectionFactory, aby nawiązać połączenie JMS.
- Utwórz jedną lub więcej sesji.
- Użyj sesji i miejsc docelowych, aby utworzyć potrzebnych MessageProducers i MessageConsumers.
- Komunikuj się za pomocą kanału.
Q # 17) Nazwij komponenty JMS.
Odpowiedź: Komponenty JMS obejmują:
- Dostawca JMS
- Klient JMS
- Wiadomości
- Obiekty administrowane
- Klienci rodzimi
P # 18) Co to są obiekty administrowane w JMS?
Odpowiedź: Obiekt administrowany przez JMS to w rzeczywistości referencje skonfigurowane przez administratora w celu łączenia się z klientem JMS i zdefiniowane w JNDI. Obiekty te są konfigurowane przed połączeniem się z klientem JMS na serwerze.
P # 19) Jakie są funkcje dostawcy JMS?
Odpowiedź: JMS Provider w zasadzie dba o bezpieczeństwo i dane.
Odpowiada za zapewnienie bezpiecznego dostarczenia wiadomości, dba również o standardy szyfrowania i kodowania danych oraz odpowiada za wywołanie wiadomości dla klienta Non-JMS.
P # 20) Co to jest sesja JMS?
Odpowiedź: Sesja JMS to stan kontrolujący całkowity przepływ od wysłania do odebrania komunikatów JMS.
P # 21) Czy możemy używać JMS do wysyłania automatycznych wiadomości e-mail?
aplikacja konwertera youtube na mp3 do pobrania za darmo
Odpowiedź: JMS nie ma standardowych interfejsów API obsługujących tę funkcję, jednak możemy użyć JavaMail do wysyłania automatycznych wiadomości e-mail.
P # 22) Jaka jest funkcjonalność Listenera komunikatów w kontekście JMS?
Odpowiedź: Odbiornik wiadomości jest zwykle używany z konsumentem wiadomości w przypadku dostarczania asynchronicznego. Dla dostarczania asynchronicznego można zarejestrować obiekt MessageListener z messageConsumer.
P # 23) Co to jest klient JMS?
Odpowiedź: Klient JMS jest zasadniczo komponentem napisanym w języku programowania Java, który jest odpowiedzialny za wywoływanie i używanie treści komunikatów.
P # 24) Co to jest wiadomość?
Odpowiedź: Komunikat jest treścią, a raczej komponentem, który komunikuje się między klientami JMS.
P # 25) Jaka jest funkcjonalność producenta komunikatów JMS?
Odpowiedź: Producent komunikatów to w zasadzie komponent, który jest tworzony przez sesję JMS w celu wysłania komunikatu do aplikacji odbierającej.
Można utworzyć sesję i zaimplementować interfejs MessageProducer, aby zdefiniować obiekt docelowy, obiekt kolejki lub obiekt tematu. Można zadeklarować producenta jako nieokreślonego, przypisując wartość null w jego argumencie zamiast obiektu. Później możemy użyć przeciążenia metody Java w metodzie send, aby określić miejsce docelowe, wiadomość jako argumenty lub parametry.
P # 26) Jaka jest funkcjonalność konsumentów komunikatów JMS?
Odpowiedź: Konsument komunikatów to w zasadzie komponent tworzony przez sesję JMS w celu odbierania komunikatu przez aplikację odbierającą. Można utworzyć sesję i zaimplementować interfejs MessageConsumer, aby zdefiniować obiekt docelowy, obiekt kolejki lub obiekt tematu.
Można użyć createDurableSubscriber z obiektem sesji, aby stworzyć trwałego subskrybenta tematu, ale można go użyć do utworzenia tematu dla modelu publikowania / subskrypcji, a nie do tworzenia kolejek.
Konsument staje się aktywny po utworzeniu obiektu konsumenta. Możemy używać obiektu do odbierania i wysyłania wiadomości. Aby to wyłączyć, można użyć metody zamknięcia dla MessageConsumer.
P # 27) Jaka jest funkcjonalność przeglądarki kolejki JMS?
Odpowiedź: Jak już wcześniej omówiliśmy koncepcję kolejki, w której wiadomość jest przechowywana do momentu otrzymania jej przez odbiorcę. Funkcjonalność przeglądania wiadomości w kolejce i wyświetlania wartości nagłówka jest obsługiwana przez obiekt QueueBrowser.
Obiekt QueueBrowser można utworzyć za pośrednictwem. Sesja JMS.
P # 28) Jaka jest funkcjonalność selektora wiadomości JMS?
Odpowiedź: Selektor komunikatów JMS to w zasadzie interfejs API, który jest odpowiedzialny za filtrowanie komunikatów, które otrzymuje dla określonej aplikacji. Selektory komunikatów w rzeczywistości przypisują zadanie dostawcy JMS, który jest faktycznie odpowiedzialny za filtrowanie komunikatów.
Selektor wiadomości w rzeczywistości przyjmuje wartości typu łańcuchowego jako dane wejściowe.
WatchType = „Titan” LUB WatchType = „Rolex”
Metody createConsumer i createDurableSubscriber umożliwiają określenie selektora wiadomości jako argumentu podczas tworzenia konsumenta wiadomości.
Q # 29) Jak obsłużyć wyjątek spowodowany przez JMS?
Odpowiedź: Główną klasą odpowiedzialną za zgłaszanie wyjątków związanych z JMS przez interfejs API JMS jest JMSException.
Przechwytywanie wyjątku JMSException zapewnia ogólny sposób obsługi wszystkich wyjątków związanych z interfejsem API JMS.
Klasa JMS Exception zawiera następujące podklasy, które są opisane w dokumentacji interfejsu API:
- IllegalStateException
- InvalidClientIDException
- InvalidDestinationException
- InvalidSelectorException
- JMSSecurityException
- MessageEOFException
- MessageFormatException
- MessageNotReadableException
- MessageNotWriteableException
- ResourceAllocationException
- TransactionInProgressException
- TransactionRolledBackException
Q # 30) Jak obsłużyć sesje nietransakcyjne w odniesieniu do JMS?
Odpowiedź: W przypadku sesji nietransakcyjnych komunikaty są potwierdzane na podstawie argumentu przekazanego podczas tworzenia obiektu sesji metody QueueSession lub TopicSession.
Poniższe opcje są zwykle używane zgodnie z wymaganiami biznesowymi:
- Sesja. AUTO_ACKNOWLEDGE: Jeśli przekaże się ten argument podczas tworzenia obiektu sesji, to jeśli wystąpi wyjątek JMS, wówczas niezawodny konsument czeka kilka sekund, a następnie wywołuje metodę MessageConsumer.receive w celu ponownego odebrania komunikatów. Ze względu na przełączanie awaryjne, jeśli jakakolwiek wiadomość nie zostanie dostarczona, zostanie ponownie dostarczona.
- Sesja. CLIENT_ACKNOWLEDGE: Jeśli przekaże się ten argument podczas tworzenia obiektu sesji, to jeśli wystąpi wyjątek JMS, konsument wywoła Session.recover przed wywołaniem Message.aknowledge lub MessageConsumer.receive, ponieważ Session.recover jest odpowiedzialny za odzyskiwanie i ponowne dostarczanie niepotwierdzonych komunikatów.
- Sesja. DUPS_OK_ACKNOWLEDGE: Jeśli przekaże się ten argument podczas tworzenia obiektu sesji, to jeśli wystąpi wyjątek JMS, wówczas niezawodny konsument czeka kilka sekund, a następnie wywołuje metodę MessageConsumer.receive w celu ponownego odebrania komunikatów. Ale tutaj można otrzymać zduplikowane wiadomości lub te same wiadomości dostarczone ponownie, jak w tym trybie przed przełączeniem awaryjnym, potwierdzone wiadomości mogą być ponownie dostarczone.
Uwaga : Tutaj w przykładowym kodzie użyłem QueueSession, ale do przekazania tych argumentów można użyć TopicSession.
P # 31) Jaka jest funkcjonalność serwera Oracle Glassfish? Jakie dodatkowe zalety ma nad serwerem Apache Tomcat?
Odpowiedź: Serwer Glassfish jest w rzeczywistości serwerem aplikacji i może być również używany jako serwery internetowe, co oznacza, że może obsługiwać żądania HTTP z przeglądarek internetowych.
Jako serwer aplikacji jest przeznaczony do obsługi wszystkich typów aplikacji Java Enterprise w zakresie serwletów / JSP, a także komponentów EJB.
Natomiast serwer Tomcat jest w rzeczywistości kontenerem serwletów, który jest zwykle używany do obsługi komponentów serwletów lub JSP.
Q # 32) Jak utworzyć sesję EJB, aby rozpocząć połączenie JMS?
Odpowiedź: Możemy utworzyć sesję EJB dla JMS tak, jak napisaliśmy w poniższym kodzie.
Q # 33) Opisz koncepcję klastra Message Driven Bean.
Odpowiedź: Jeśli aplikacja oparta na komponencie EJB jest wdrażana w dowolnym klastrze serwerów aplikacji, można ją skonfigurować do działania na dowolnym serwerze wewnątrz klastra, aby zapewnić dostępność i skalowalność aplikacji.
Jeśli komponent EJB ma postać komponentu Message Driven Bean (MDB), może działać na dowolnym serwerze wewnątrz klastra i może być inicjowany równolegle z wieloma serwerami aplikacji w klastrze.
Wniosek
Mam nadzieję, że ta lista najczęściej zadawanych pytań dotyczących JMS byłaby naprawdę pouczająca i jestem pewien, że z dogłębną znajomością tej listy możesz pomyślnie przejść każdą rozmowę kwalifikacyjną.
Miejmy nadzieję, że to by ci bardzo pomogło !! Miłej nauki !!
rekomendowane lektury
- Pytania i odpowiedzi do wywiadu
- Kilka interesujących pytań do rozmowy kwalifikacyjnej dotyczącej testowania oprogramowania
- ETL Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej testującej
- 12 najpopularniejszych pytań do wywiadu Mockito (wywiady z mocking Framework)
- Najczęstsze pytania do wywiadów z Oracle Forms and Reports
- Pytania do rozmowy kwalifikacyjnej dotyczące ręcznego testowania oprogramowania dla doświadczonych specjalistów
- Wdrażanie Java: tworzenie i wykonywanie pliku Java JAR
- Najczęstsze pytania do rozmów kwalifikacyjnych dotyczących aplikacji Oracle Apps i Oracle SOA