Un set de întrebări frecvente la interviurile IBM, adresate atât candidaților la început de carieră, cât și celor cu experiență.
Am primit adesea solicitări pentru a compila o listă cu întrebările adresate la interviurile pentru poziții legate de IBM WebSphere Application Server, așadar, iată răspunsul.
WebSphere este un server de aplicații (un produs middleware) dezvoltat de IBM, iar IBM deține prima poziție în cota de piață a produselor middleware.
WebSphere reprezintă o suită de produse, iar acest articol se concentrează exclusiv pe WebSphere Application Server.
În cazul în care sunteți curios ce produse includ suita WebSphere, iată câteva exemple:
- WebSphere Portal
- WebSphere DataPower
- WebSphere Cast Iron
- WebSphere eXtreme Scale
- WebSphere Front Office
- WebSphere Message Broker
- WebSphere MQ
- WebSphere Real Time
- WebSphere Remote Server
- WebSphere Virtual Enterprise
- WebSphere Community Edition
- Și multe altele…
Sunteți pregătit să parcurgem întrebările?
1. Ce este Ripplestart?
Ripplestart este o metodă de a reporni un cluster WAS. Aceasta presupune oprirea și repornirea JVM-urilor, una câte una. Astfel, ripplestart asigură că doar o singură JVM este oprită la un moment dat, evitându-se timpii de nefuncționare ai aplicațiilor.
De exemplu, dacă aveți 5 JVM-uri într-un cluster, ripplestart va opri JVM1 și o va reporni înainte de a trece la oprirea altui JVM din cluster.
2. Ce ați face în cazul în care un JVM consumă 100% din CPU și memoria unui server?
În primul rând, este necesar să identificați JVM-ul care prezintă un consum ridicat. Apoi, generați un thread dump pentru JVM-ul respectiv, în scopul investigației. Ca soluție temporară, reporniți JVM-ul pentru a reduce consumul de CPU și memorie.
3. Ce este sincronizarea nodurilor?
IBM WAS stochează întreaga configurație într-un depozit central, denumit „Master repository”. Fiecare nod are, de asemenea, propriul depozit local.
Atunci când faceți modificări la nivel de nod prin DMGR, trebuie să sincronizați nodul, astfel încât configurația să fie transferată către serverul respectiv. Sincronizarea are loc întotdeauna de la depozitul master la cel local, fiind o comunicare unidirecțională.
4. Poate rula aplicația fără probleme dacă DMGR este inactiv?
Da, inactivitatea DMGR nu afectează aplicațiile care rulează deja. Cu toate acestea, dacă doriți să faceți modificări sau implementări prin intermediul DMGR, acestea vor fi afectate.
5. Cum se implementează o aplicație în WebSphere?
Există trei metode de implementare:
- Implementare „la cald”: presupune copierea fișierului aplicației în directorul corespunzător. Această metodă este adecvată pentru medii non-producție, dar nu este recomandată pentru mediile de producție.
- Utilizarea DMGR: Puteți implementa o aplicație prin intermediul DMGR, navigând la secțiunea Aplicații >> Aplicație nouă.
- Utilizarea scripturilor: Puteți dezvolta scripturi wsadmin sau sarcini Ant pentru a automatiza procesul de implementare.
6. De ce un JVM pornește automat, chiar dacă îl opresc manual?
Pot exista două cauze posibile:
Repornirea automată este activată pentru JVM, fiind o setare implicită configurabilă în secțiunea JVM >> Politica de monitorizare.
Alternativ, este posibil să existe un script programat în cron, care verifică starea procesului și îl pornește dacă nu este activ.
7. Ce tipuri de fișiere puteți implementa în WebSphere?
Puteți implementa module WAR, EAR, JAR sau SAR prin intermediul consolei DMGR sau prin scripturi.
8. Ce este o gazdă virtuală?
O gazdă virtuală asociază mai multe adrese URL (bazate pe IP sau FQDN) unei singure aplicații. Configurarea gazdelor virtuale se realizează prin consola administrativă WAS.
Pentru ca o aplicație să fie accesibilă la o anumită adresă URL, aceasta trebuie să fie definită într-o gazdă virtuală și asociată cu aplicația.
9. Cum ați aborda plângerile utilizatorilor privind o aplicație lentă?
Lentoarea poate fi cauzată de diverse motive. Este esențial să determinați dacă problema provine din WebSphere sau din alte componente. Pentru a izola problema, verificați următoarele:
- Lentoarea afectează toți utilizatorii?
- Este lentă întreaga aplicație sau doar anumite funcționalități?
- Ce se întâmplă când accesați direct adresa URL a JVM (ocolind serverul web)?
Dacă lentoarea se localizează în JVM, generați un thread dump și analizați jurnalele pentru a determina cauza. De asemenea, este util să verificați dacă lentoarea a apărut imediat după o actualizare sau modificare.
10. Cum se realizează backup-ul configurației WAS fără a opri DMGR?
Navigați la profilul DMGR și apoi la directorul bin.
Executați comanda: ./backupConfig.sh -nostop pentru a crea backup-ul.
11. Care este portul implicit WAS?
Portul implicit pentru HTTP este 9080, iar pentru HTTPS este 9443. Verificați pagina de porturi implicite pentru mai multe detalii.
12. Care sunt edițiile WebSphere disponibile?
- WAS – Network Deployment
- WAS – Developers
- WAS – z/OS
- WAS – Hypervisor
- WAS – Express
- WAS – Base
- WAS – Liberty Core
13. Cum se generează și se propagă pluginul?
- Conectați-vă la consola administrativă WAS.
- Navigați la Servere >> Servere web.
- Selectați serverul dorit și faceți clic pe butoanele „Generare” și „Propagare”.
14. Care sunt cele mai frecvente probleme pe care le-ați întâmpinat?
Este important să fiți întotdeauna sincer cu privire la expertiza dumneavoastră. Câteva exemple de probleme frecvente sunt:
- Gazda virtuală nu este definită.
- Jurnalele nu se actualizează.
- Eroare internă de server.
- Excepție de tip OutOfMemory.
- Lentoare.
- JVM nu pornește.
- Utilizare ridicată a CPU/memorie/disc.
15. Cum se verifică versiunea WAS instalată?
- Navigați la profil și la directorul bin.
- Executați comanda ./versionInfo.sh
16. Cum se determină dacă un JVM este activ sau nu?
Există mai multe modalități de a confirma acest lucru:
- Verificați dacă aveți un instrument de monitorizare. Dacă da, verificați starea curentă sau dacă există vreo alertă.
- Conectați-vă la server și utilizați comanda ps -ef | grep jvmname pentru a căuta JVM-ul dorit.
- Verificați dacă puteți accesa URL-ul JVM.
- Verificați dacă puteți realiza telnet pe URL-ul și portul JVM.
- Verificați dacă portul JVM ascultă pe server.
- Utilizați comanda serverStatus.sh –all pentru a vizualiza procesele active.
Alegeți metoda care vi se potrivește cel mai bine.
17. Enumerați câteva fișiere jurnal generate de WebSphere.
- SystemOut.log
- SystemError.log
- native_stdout.log
- native_stderr.log
18. Cum se generează un thread dump?
Există trei metode principale:
- Prin consola DMGR: Navigați la secțiunea Depanare >> Selectați JVM-ul și faceți clic pe Java core.
- Utilizați comanda kill -3 PID_JVM.
- Folosiți wsadmin.sh, conform instrucțiunilor din documentație.
19. Care este diferența dintre un cluster vertical și unul orizontal?
Într-un cluster vertical, membrii sunt pe același nod sau server, în timp ce într-un cluster orizontal, membrii sunt distribuiți pe mai multe noduri și servere din cadrul unei celule.
20. Ce este colectarea gunoiului (garbage collection)?
Colectarea gunoiului este un proces automat de gestionare a memoriei, prin care se eliberează spațiul ocupat de obiectele care nu mai sunt utilizate de program.
21. Cum se dezactivează securitatea în WebSphere?
Securitatea poate fi dezactivată utilizând comanda „securityoff” prin wsadmin.sh. Este necesară repornirea DMGR după dezactivarea securității.
22. Cum se activează colectarea gunoiului verbose?
Colectarea gunoiului verbose nu este activată implicit. Pentru a o activa:
- Navigați la Servere >> Tip server >> WebSphere Application Server.
- Selectați JVM >> Definiția procesului din „Java și managementul proceselor”.
- În secțiunea „Proprietăți suplimentare”, faceți clic pe Mașina virtuală Java și bifați opțiunea „colectare deșeurilor detaliate”.
23. Cum se configurează WebSphere pentru a porni automat la repornirea serverului?
WebSphere generează automat scriptul de pornire în directorul /etc/init.d, asigurând pornirea la repornirea serverului.
Dacă scriptul nu există din anumite motive, puteți crea unul și să îl plasați în /etc/init.d, activându-l astfel:
chkconfig --add WebSphere #numele fișierului script chkconfig WebSphere on
Consultați ghidul meu detaliat despre pornirea automată a serviciilor la boot.
24. Cum se mărește dimensiunea heap-ului JVM?
- Conectați-vă la Consola administrativă.
- Navigați la Servere >> Tipuri de server >> Server de aplicații WebSphere.
- Selectați JVM >> Definiție proces >> Mașina virtuală Java.
Aici, puteți modifica dimensiunea inițială și maximă a heap-ului.
25. Puteți sincroniza un nod când nodeagent este oprit?
Da, nodeagent trebuie să fie oprit pentru ca sincronizarea să funcționeze.
26. Care este comanda pentru oprirea și pornirea DMGR, Nodeagent și JVM?
Pentru a opri:
- JVM: stopServer.sh JVMNAME
- Nodeagent: stopNode.sh
- DMGR: stopManager.sh
Pentru a porni:
- JVM: startServer.sh JVMNAME
- Nodeagent: startNode.sh
- DMGR: startManager.sh
27. Ce este nou în WAS 8.5.5?
Principalele noutăți includ:
- Suport pentru Java SE 7
- Jurnalizare HPEL
- Management integrat al sănătății
- Profil Liberty
- Rutare inteligentă
- Grupare dinamică
- Clustering JDBC 4.1
- Suport Web 2.0
De asemenea, puteți consulta informații detaliate aici.
28. Ce înseamnă federarea nodurilor?
Federarea în WebSphere înseamnă adăugarea unui nod la celulă. Acest lucru se face prin comanda addNode.sh și poate dura câteva minute, în funcție de dimensiunea nodului.
29. Ce este FFDC?
FFDC (First Failure Data Capture) este un mecanism de captare a evenimentelor și erorilor care apar în timpul rulării WebSphere. Datele FFDC pot fi utile pentru a analiza problema, fiind adesea cerute de suportul IBM în cazul unei solicitări.
30. Puteți decoda un fișier keystore WebSphere criptat cu XOR?
Da, puteți utiliza un instrument online disponibil la adresa: http://strelitzia.net/wasXORdecoder/wasXORdecoder.html
31. Care este limbajul de scripting implicit în WebSphere? JACL sau Jython?
JACL este limbajul de scripting implicit în WebSphere.
32. Cum aplicați un pachet de corecții în WebSphere 8.5.x?
Se poate utiliza IBM Installation Manager (IBM IM) pentru a aplica corecțiile. Consultați ghidul de aplicare a pachetului de corecții pentru instrucțiuni detaliate.
33. Care sunt mediile pe care le suportați?
Fiți sincer și explicați mediile pe care le gestionați. Acestea pot include, de exemplu:
- Dezvoltare
- CIT
- STA
- UAT
- DEMO
- Pre-producție
- Producție
- Pregătire
- QA
34. Unde este găzduit serverul web?
Explicați arhitectura aplicației suportate. Într-un mediu de producție tipic pentru aplicațiile orientate spre Internet, serverele web ar fi plasate într-o DMZ, iar serverul de aplicații într-o rețea internă.
Acest lucru implică deschiderea porturilor necesare în firewall-ul dintre serverele web și serverul de aplicații.
35. Ce este afinitatea sesiunii?
Afinitatea sesiunii, cunoscută și sub numele de persistența sesiunii, permite unei cereri să fie direcționată către un singur JVM. Aceasta înseamnă că cererea de retur va fi întotdeauna dirijată către același JVM.
36. Puteți implementa mai multe aplicații într-un singur JVM?
Da, este posibil să implementați mai multe aplicații într-un singur JVM, cu condiția ca rădăcina de context a fiecărei aplicații să fie unică.
37. Ce bază de date utilizați cu WebSphere?
Precizați baza de date pe care o utilizați. Deși multe organizații preferă baza de date Oracle, WebSphere acceptă și următoarele baze de date:
- DB2
- Oracle Database
- Microsoft SQL Server
- Sybase
38. Cum conectați un server web la WAS?
Există două modalități:
- Prin utilizarea unui plugin: Metoda recomandată presupune instalarea pluginului WAS pe serverul web.
- Prin ProxyPass: Dacă utilizați Apache și nu doriți să folosiți pluginul, vă puteți conecta la JVM-ul WAS prin directiva ProxyPass.
39. Este necesar un server web în fața WAS?
Este recomandat să aveți un server web compatibil în fața WAS pentru a asigura un nivel ridicat de securitate, performanță și ușurință în întreținere.
40. Ce este o Celulă?
O celulă este un grup logic de noduri, care poate conține unul sau mai multe noduri. Clusterele și toate resursele sunt gestionate dintr-o singură consolă administrativă.
41. Care este timpul implicit de expirare a sesiunii pentru o consolă administrativă?
30 de minute.
42. Ce este un pachet de corecții?
Un pachet de corecții este o colecție de corecții furnizate de IBM. Acesta poate conține remedieri de erori, patch-uri de securitate și îmbunătățiri de performanță.
43. Care este registrul sau depozitul suportat de WebSphere?
- Depozit federat
- Sistem de operare local
- Registrul LDAP autonom
- Registrul personalizat autonom
44. Ce sunt bibliotecile partajate?
Crearea unei biblioteci partajate este o practică recomandată pentru a reduce duplicarea fișierelor bibliotecă. O singură bibliotecă partajată poate fi folosită de mai multe aplicații într-o celulă.
45. Ce este rădăcina contextului?
Rădăcina de context a fiecărei aplicații trebuie să fie unică în celulă. Aceasta este definită în descriptorul de implementare și este utilizată pentru a accesa aplicația.
De exemplu, dacă aplicația A are rădăcina de context „retail”, atunci aplicația va fi accesibilă la adresa: http://nume_server:port/retail
46. Care este numele fișierului de configurare al pluginului WAS?
Numele fișierului de configurare al pluginului WebSphere este plugin-cfg.xml
47. Cum se modifică dimensiunea pool-ului de thread-uri WebContainer?
Dimensiunea pool-ului de thread-uri WebContainer poate fi modificată accesând secțiunea JVM >> Pool-uri de thread-uri >> WebContainer.
48. Puteți schimba rădăcina contextului pentru o aplicație implementată?
Da, este posibil. Pentru a face acest lucru prin consola administrativă, navigați la secțiunea aplicației respective și faceți clic pe „Rădăcina contextului pentru modulele web”, unde puteți schimba rădăcina contextului.
Este necesară repornirea JVM-ului după efectuarea modificării.
49. Ce script se utilizează pentru a modifica Java SDK-ul utilizat de un profil?
Scriptul managesdk.sh, disponibil în folderul bin, ajută la modificarea SDK-ului.
50. Ce este PMT?
PMT (Profile Management Tool) este o interfață grafică (GUI) pentru crearea și gestionarea profilurilor WebSphere.
Sper ca acest ghid să vă ajute să obțineți un post de administrator WebSphere. Dacă aveți nevoie de asistență cu CV-ul și pregătirea pentru interviu, consultați acest tutorial.