En sammanställning av typiska intervjufrågor för IBM WebSphere, lämpliga för både nybörjare och erfarna kandidater.
Jag har fått många förfrågningar om att skapa en lista med vanliga intervjufrågor gällande IBM WebSphere Application Server, så här kommer den.
WebSphere är en applikationsserver (en mellanprogramprodukt) från IBM, som har en ledande position på marknaden för mellanprogram.
WebSphere är en samling produkter, men den här artikeln fokuserar enbart på WebSphere Application Server.
Om du undrar vilka produkter som ingår i WebSphere-sviten, här är några exempel:
- 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
- Och många fler…
Är du redo att gå igenom frågorna?
1. Vad innebär en ”Ripplestart”?
En Ripplestart används för att starta om ett WAS-kluster. Denna process stoppar först en JVM (Java Virtual Machine) och startar den sedan igen. Genom att använda ripplestart säkerställs att endast en JVM är nere i taget, vilket minimerar driftstopp för applikationerna.
Till exempel: Om du har 5 JVM:er i ett kluster, kommer en ripplestart att stoppa JVM1 och starta den igen innan den fortsätter med att stoppa nästa JVM i klustret.
2. Vad gör du om en JVM använder 100 % av CPU och minne på en server?
Först och främst, identifiera vilken specifik JVM som har högt resursutnyttjande. Ta en tråddump av den identifierade JVM:n för att undersöka orsakerna, och starta om JVM:en som en tillfällig lösning för att minska CPU/minnesanvändningen.
3. Vad är nodsynkronisering?
IBM WAS lagrar all konfiguration i ett centralt arkiv, det så kallade ”Master repository”. Varje nod har också ett lokalt arkiv.
När du gör ändringar på noden via DMGR (Deployment Manager), behöver du synkronisera noden så att konfigurationen skickas till motsvarande servers lokala arkiv.
Synkroniseringen sker alltid från det centrala arkivet till de lokala arkiven, vilket innebär enkelriktad kommunikation.
4. Kan applikationen fungera normalt om DMGR är nere?
Ja, ett avbrott i DMGR påverkar inte befintliga applikationer som redan körs. Däremot kommer du inte att kunna genomföra ändringar eller distributioner via DMGR medan den är nere.
5. Hur distribuerar man en applikation i WebSphere?
Det finns tre vanliga sätt att distribuera en applikation:
- Hot deployment: Kopiera applikationsfilen direkt till applikationskatalogen. Detta är lämpligt för utvecklingsmiljöer, men rekommenderas inte i produktionsmiljöer.
- DMGR: Du kan distribuera applikationer via DMGR-konsolen under Applikationer >> Ny applikation.
- Skript: Du kan använda wsadmin-skript eller Ant-uppgifter för att automatisera applikationsdistributionen.
6. Varför startar JVM:en automatiskt igen trots att jag manuellt har stoppat/avslutat processen?
Det kan finnas två anledningar till detta:
Automatisk omstart kan vara aktiverat för JVM:en, vilket är standardinställningen under JVM >> Övervakningspolicy.
Alternativt kan det finnas ett cron-jobb som regelbundet kontrollerar JVM-processen och automatiskt startar om den om den inte hittas.
7. Vilka filtyper kan du distribuera i WebSphere?
Du kan distribuera WAR-, EAR-, JAR- eller SAR-moduler via DMGR-konsolen eller genom skript.
8. Vad är en virtuell värd?
En virtuell värd samlar flera URL:er (IP- eller FQDN-baserade) under en och samma applikation. Konfigurationen görs via WAS administrationskonsol.
För att en applikation ska vara tillgänglig via en specifik URL, behöver du lägga till denna URL i en virtuell värd och koppla den till applikationen.
9. Hur hanterar du klagomål från kunder om långsamma applikationer?
Långsamhet kan bero på många faktorer, och det är viktigt att avgöra om problemet ligger i WebSphere eller i andra delar. För att isolera orsaken kan du undersöka följande:
- Drabbas alla användare av långsamhet?
- Är hela applikationen långsam eller endast specifika funktioner?
- Hur fungerar det om man går direkt till JVM-URL:en, förbi webbservern?
Om långsamheten är lokaliserad till JVM:en, kan du ta en tråddump och granska loggarna för att hitta orsaken. Det kan också vara värt att undersöka om det nyligen gjorts en uppdatering eller förändring som sammanfaller med problemet.
10. Hur gör man en säkerhetskopia av WAS-konfigurationen utan att stoppa DMGR?
Navigera till DMGR-profilens bin-mapp.
Kör kommandot `./backupConfig.sh -nostop` för att skapa en säkerhetskopia.
11. Vilken är standardporten för WAS?
Standardporten för HTTP är 9080 och för HTTPS är den 9443. Mer information finns på sidan för standardportar.
12. Vilka WebSphere-utgåvor finns tillgängliga?
- WAS – Network Deployment
- WAS – Developer
- WAS – z/OS
- WAS – Hypervisor
- WAS – Express
- WAS – Base
- WAS – Liberty core
13. Hur genererar och sprider man plugin-moduler?
- Logga in i WAS administrationskonsol.
- Navigera till Servrar >> Webbserverar.
- Välj aktuell server och klicka på knapparna ”Generera” & ”Propagera”.
14. Vilka är de vanligaste problemen du har stött på?
Var alltid ärlig om din erfarenhet. Här är några exempel:
- Virtuell värd är inte definierad.
- Loggfiler flyttas inte.
- Internt serverfel.
- OutOfMemory-undantag.
- Långsamhet.
- JVM startar inte.
- Hög CPU/minnes/diskanvändning.
15. Hur kontrollerar man vilken WAS-version som är installerad?
- Navigera till profilens bin-mapp.
- Kör kommandot `./versionInfo.sh`
16. Hur vet du om din JVM är igång eller inte?
Det finns flera sätt att bekräfta detta:
- Använd ett övervakningsverktyg om du har det, för att kontrollera statusen.
- Logga in på servern och använd kommandot `ps -ef | grep jvmname` för att söka efter JVM:en.
- Kontrollera om du kan komma åt JVM-URL:en.
- Kontrollera om du kan telnet:a JVM-URL:en och porten.
- Kontrollera om JVM-porten lyssnar på servern.
- Använd kommandot `serverStatus.sh –all` för att se vilka processer som kör.
Välj den metod som är enklast för dig.
17. Ange några av de loggfiler som genereras av WebSphere.
- SystemOut.log
- SystemError.log
- native_stdout.log
- native_stderr.log
18. Hur genererar man en tråddump?
Det finns tre sätt att generera en tråddump:
- Via DMGR-konsolen: Navigera till Felsökning >> Välj JVM och klicka på Java Core.
- Använd kommandot `kill -3 PID` för JVM:en.
- Använd `wsadmin.sh` som beskrivs i dokumentationen.
19. Vad är skillnaden mellan vertikala och horisontella kluster?
I ett vertikalt kluster finns medlemmarna på samma nod eller server, medan de i ett horisontellt kluster är utspridda på flera noder och servrar i en cell.
20. Vad är sophantering (garbage collection)?
Sophantering är en minneshanteringsprocess som automatiskt frigör minne som inte längre används av programmet.
21. Hur stänger du av säkerheten i WebSphere?
Du kan inaktivera säkerheten genom att köra kommandot `securityoff` via `wsadmin.sh`. DMGR måste startas om efter att säkerheten har stängts av.
22. Hur aktiverar man detaljerad sophantering?
Detaljerad sophantering (verbose GC) är inte aktiverat som standard. För att aktivera den:
- Navigera till Servrar >> Servertyper >> WebSphere Application Server
- Välj JVM >> Processdefinition under ”Java och processhantering”
- Klicka på Java Virtual Machine under ”Ytterligare egenskaper” och markera kryssrutan ”Omfattande sophantering”.
23. Hur får man WebSphere att starta automatiskt när servern startar om?
WebSphere skapar automatiskt startskript i `/etc/init.d` som ser till att det startar vid omstart.
Om skriptet av någon anledning inte finns, kan du skapa ett och placera det under `/etc/init.d` och sedan aktivera det:
chkconfig --add WebSphere #skriptfilens namn chkconfig WebSphere on
Det finns guider som beskriver hur man automatiskt startar tjänster vid omstart.
24. Hur ökar man JVM:s maximala storlek?
- Logga in i administrationskonsolen.
- Navigera till Servrar >> Servertyper >> WebSphere Application Server.
- Välj JVM >> Processdefinition >> Java Virtual Machine.
Här kan du ange initial och maximal storlek på JVM:s heap.
25. Kan du synkronisera en nod när nodagenten är nere?
Absolut, nodagenten måste vara avstängd för att synkroniseringen ska fungera.
26. Vilka kommandon använder man för att stoppa och starta DMGR, nodagent och JVM?
För att stoppa:
- JVM – `stopServer.sh JVMNAME`
- Nodagent – `stopNode.sh`
- DMGR – `stopManager.sh`
För att starta:
- JVM – `startServer.sh JVMNAME`
- Nodagent – `startNode.sh`
- DMGR – `startManager.sh`
27. Vad är nytt i WAS 8.5.5?
Övergripande:
- Stöd för Java SE 7.
- HPEL-loggning (High Performance Extensible Logging).
- Inbyggd hälsohantering.
- Liberty profile.
- Intelligent routing.
- Dynamisk klustring.
- JDBC 4.1-klustring.
- Web 2.0-stöd.
Det finns också detaljerad information att tillgå.
28. Vad menas med nodfederation?
I WebSphere innebär federation att man lägger till en nod till en cell. Detta görs med kommandot `addNode.sh` och kan ta några minuter beroende på nodens storlek.
29. Vad är FFDC?
FFDC (First Failure Data Capture) är data som genereras vid fel i WebSphere. FFDC-data är användbara för att analysera problem, och IBM:s support brukar efterfråga detta om man kontaktar dem med ett problem.
30. Kan du avkoda WebSphere keystore XOR?
Ja, det kan du göra med ett onlineverktyg: http://strelitzia.net/wasXORdecoder/wasXORdecoder.html
31. Vilket skriptspråk är standard i WebSphere? JACL eller Jython?
JACL är standardspråket för skript i WebSphere.
32. Hur applicerar man ett fixpack i WebSphere 8.5.x?
IBM IM (Installation Manager) används för att installera fixpacks. Det finns guider som beskriver hur du applicerar fixpack steg för steg.
33. Vilka miljöer stöder du?
Var ärlig och berätta om de miljöer du har erfarenhet av. Du kanske stöder följande:
- Utveckling
- CIT (Continuous Integration Testing)
- SIT (System Integration Testing)
- UAT (User Acceptance Testing)
- DEMO
- Förproduktion
- Produktion
- Staging
- QA (Quality Assurance)
34. Var är din webbserver hostad?
Förklara hur din applikationsarkitektur ser ut. I en typisk produktionsmiljö för applikationer som är tillgängliga via internet, placeras webbservrar ofta i DMZ (Demilitarized Zone), och applikationsservrar i ett internt nätverk.
Det innebär att rätt portar måste vara öppna i brandväggen mellan webbservrarna och applikationsservern.
35. Vad är sessionsaffinitet?
Sessionsaffinitet, även kallat persisterande session, innebär att en användares begäranden knyts till en specifik JVM. Det betyder att alla efterföljande begäranden från samma användare alltid dirigeras till samma JVM.
36. Kan man distribuera mer än en applikation på en enskild JVM?
Ja, det är möjligt att distribuera flera applikationer på samma JVM, så länge som varje applikation har en unik kontextrot.
37. Vilken databas använder du med WebSphere?
Berätta vilken databas du använder. De flesta organisationer använder Oracle, men WebSphere stöder också följande databaser:
- DB2
- Oracle Database
- Microsoft SQL Server
- Sybase
38. Hur ansluter du en webbserver till WAS?
Det finns två huvudsakliga sätt att ansluta en webbserver till WAS:
- Med hjälp av ett plugin: Detta är det rekommenderade sättet och innebär att WAS-plugin installeras på webbservern.
- Med hjälp av ProxyPass: Om du använder Apache och inte vill använda plugin, kan du ansluta till WAS JVM:er via ProxyPass-direktivet.
39. Behöver man en webbserver framför WAS?
Det rekommenderas att ha en webbserver framför WAS för att förbättra säkerheten, prestandan och underhållet.
40. Vad är en cell?
En cell är en logisk grupp av noder. En cell kan bestå av en eller flera noder, kluster och den administreras från en central administrationskonsol.
41. Vilken är standardtimeouten för en administrationskonsol?
30 minuter.
42. Vad är ett fixpack?
Ett fixpack är en samling patchar som IBM tillhandahåller. Det kan innehålla buggfixar, säkerhetsuppdateringar och prestandaförbättringar.
43. Vilka typer av register eller arkiv stöds i WebSphere?
- Federerat arkiv
- Lokalt operativsystem
- Fristående LDAP-register
- Fristående anpassat register
44. Vad är delade bibliotek?
Genom att skapa delade bibliotek minskar du antalet kopior av biblioteksfiler. Ett enda delat bibliotek kan användas av flera applikationer i en cell.
45. Vad är en kontextrot?
Varje applikation i en cell måste ha en unik kontextrot. Den definieras i distributionsbeskrivningen och används för att komma åt applikationen.
Till exempel: Om applikation A har kontextroten ”retail”, kommer den att vara tillgänglig via `http://servernamn:port/retail`.
46. Vad heter WebSphere plugin-konfigurationsfilen?
WebSphere plugin-konfigurationsfilen heter `plugin-cfg.xml`.
47. Hur ändrar jag storleken på WebContainer-trådpoolen?
Storleken på WebContainer-trådpoolen kan ändras under JVM >> Trådpooler >> WebContainer.
48. Kan man ändra kontextroten för en distribuerad applikation?
Ja, det är möjligt. I administrationskonsolen navigerar du till applikationen och klickar på ”Kontextrot för webbmoduler” för att göra ändringen.
JVM måste startas om efter ändringen.
49. Vilket skript används för att ändra Java SDK som profilen använder?
Skriptet `managesdk.sh` finns i bin-mappen och används för att byta SDK.
50. Vad är PMT?
PMT (Profile Management Tool) är ett GUI-verktyg för att skapa och hantera WebSphere-profiler.
Jag hoppas att ovanstående hjälper dig att få ett WebSphere-administratörsjobb. Om du behöver hjälp med ditt CV och intervjuer, kan du kolla in den här utbildningen.