50 поширених запитань і відповідей на інтерв’ю WebSphere

Питання для співбесіди в IBM WebSphere

Перелік питань, які часто задають на співбесідах в IBM, як для початківців, так і для досвідчених фахівців.

Мене часто просять надати список питань для інтерв’ю, пов’язаних з IBM WebSphere Application Server, тож я вирішив відгукнутися на ці запити.

WebSphere – це сервер застосунків, продукт проміжного програмного забезпечення від IBM, і ця компанія є лідером на ринку проміжного програмного забезпечення.

WebSphere – це цілий набір продуктів, але ця стаття зосереджена саме на WebSphere Application Server.

Якщо вам цікаво, які продукти входять до цього пакету, ось деякі з них:

  • WebSphere Portal
  • WebSphere DataPower
  • WebSphere Cast Iron
  • WebSphere eXtreme
  • WebSphere Front Office
  • WebSphere Message Broker
  • WebSphere MQ
  • WebSphere Real Time
  • WebSphere Remote Server
  • WebSphere Virtual Enterprise
  • WebSphere Community
  • І багато інших…

Готові випробувати свої знання?

1. Що таке Ripplestart?

Ripplestart – це метод перезапуску кластера WAS. Він полягає в послідовній зупинці та запуску JVM. Застосовуючи Ripplestart, ви гарантуєте, що в будь-який момент часу працює лише одна JVM, мінімізуючи перерви у роботі додатків.

Наприклад: якщо у кластері є 5 JVM, при застосуванні Ripplestart спочатку зупиниться JVM1, потім запуститься, і тільки після цього процедура перейде до наступної JVM.

2. Як би ви діяли, якщо JVM споживає 100% процесора та пам’яті на сервері?

В першу чергу, необхідно визначити, яка саме JVM має високий рівень завантаження. Потім потрібно створити дамп потоків цієї JVM для подальшого аналізу. Тимчасово, для зменшення навантаження, можна перезапустити JVM.

3. Що таке синхронізація вузла?

IBM WAS зберігає основну конфігурацію в центральному репозиторії, який називається “Головний репозиторій”. Кожен вузол має власне локальне сховище.

Коли ви вносите зміни до вузла через DMGR, необхідно виконати синхронізацію, щоб оновлена конфігурація була передана на сервер відповідного вузла.

Синхронізація відбувається лише в одному напрямку, від головного репозиторія до локальних сховищ.

4. Чи може додаток працювати, якщо DMGR неактивний?

Так, відключення DMGR не впливає на вже запущені додатки. Проте, якщо вам потрібно внести зміни або розгорнути щось нове через DMGR, це буде неможливо.

5. Як розгорнути додаток у WebSphere?

Існує три основних способи розгортання:

  • Гаряче розгортання: копіювання файлу програми до каталогу розгортання. Цей метод підходить для середовищ розробки, але не рекомендується для продакшену.
  • Розгортання через DMGR: через адміністративну консоль, в розділі “Програми” -> “Нова програма”.
  • Розгортання за допомогою сценаріїв: використовуючи wsadmin або завдання ant для автоматизованого розгортання.

6. Чому JVM запускається автоматично, навіть якщо я її зупиняю вручну?

Можливі дві причини:

Автоматичний перезапуск JVM увімкнено в налаштуваннях за замовчуванням, в розділі “Політика JVM” -> “Моніторинг”.

Або, існує сценарій cron, який періодично перевіряє стан процесу і перезапускає його, якщо він неактивний.

7. Які типи файлів можна розгорнути в WebSphere?

Через консоль DMGR або за допомогою сценаріїв, ви можете розгорнути файли WAR, EAR, JAR або SAR.

8. Що таке віртуальний хост?

Віртуальний хост дозволяє використовувати декілька URL-адрес (на основі IP або FQDN) для одного додатку. Конфігурація віртуального хосту виконується через адміністративну консоль WAS.

Для того, щоб додаток був доступний за певною URL-адресою, ця URL-адреса має бути налаштована у віртуальному хості та зв’язана з відповідним додатком.

9. Як би ви реагували на скарги клієнтів про повільну роботу програми?

Повільність може мати багато причин, і важливо визначити, чи проблема пов’язана саме з WebSphere, чи з іншими компонентами. Для діагностики необхідно перевірити:

  • Чи сповільнення спостерігається у всіх користувачів?
  • Чи сповільнення стосується всієї програми, чи тільки окремих функцій?
  • Як працює прямий доступ до JVM URL (в обхід веб-сервера)?

Якщо сповільнення виявлено на рівні JVM, потрібно взяти дамп потоків і проаналізувати журнали. Також варто перевірити, чи не з’явилася проблема після нещодавніх змін чи розгортань.

10. Як зробити резервну копію конфігурації WAS без зупинки DMGR?

Перейдіть до профілю DMGR, в папку bin.

Запустіть команду ./backupConfig.sh -nostop для створення резервної копії.

11. Який порт WAS за замовчуванням?

Порт за замовчуванням для HTTP – 9080, а для HTTPS – 9443. Детальніше можна дізнатися в документації.

12. Які редакції WebSphere існують?

  • WAS – Network Deployment
  • WAS – Developers
  • WAS – z/OS
  • WAS – Hypervisor
  • WAS – Express
  • WAS – Base
  • WAS – Liberty Core

13. Як створити та поширити плагін?

  • Увійдіть в адміністративну консоль WAS.
  • Перейдіть до розділу “Сервери” -> “Веб-сервери”.
  • Виберіть потрібний сервер і натисніть кнопки “Створити” та “Поширити”.

14. З якими типовими проблемами ви стикалися?

Будьте чесними, описуючи свій досвід, але для розуміння, ось деякі типові проблеми:

  • Невизначений віртуальний хост.
  • Проблеми з ротацією логів.
  • Внутрішні помилки сервера.
  • Виняток OutOfMemory.
  • Сповільнення.
  • Проблеми із запуском JVM.
  • Високе використання процесора, пам’яті або дискового простору.

15. Як перевірити встановлену версію WAS?

  • Перейдіть до профілю, в папку bin.
  • Запустіть команду ./versionInfo.sh.

16. Як дізнатися, чи працює ваша JVM?

Є декілька способів перевірити це:

  • Якщо у вас є інструмент моніторингу, перевірте його сповіщення та поточний статус.
  • Підключіться до сервера і скористайтесь командою `ps -ef | grep jvmname` для пошуку процесу JVM.
  • Перевірте доступність JVM URL.
  • Перевірте доступність JVM URL та порту за допомогою Telnet.
  • Перевірте, чи прослуховує порт JVM на сервері.
  • Використайте команду `serverStatus.sh –all` для перегляду запущених процесів.

Виберіть той метод, який вам найзручніший.

17. Розкажіть про файли журналів, які створює WebSphere?

  • SystemOut.log
  • SystemError.log
  • native_stdout.log
  • native_stderr.log

18. Як створити дамп потоків?

Є три способи зробити це:

  • Через консоль DMGR: перейдіть до розділу “Усунення несправностей”, виберіть JVM і натисніть “Ядро Java”.
  • За допомогою команди kill -3 з ідентифікатором процесу JVM.
  • Використовуючи wsadmin.sh, як описано в документації.

19. Яка різниця між вертикальним і горизонтальним кластером?

Вертикальний кластер має всіх своїх членів на одному вузлі або сервері. Горизонтальний кластер розподілений між кількома вузлами та серверами в комірці.

20. Що таке збирання сміття (garbage collection)?

Збирання сміття – це процес автоматичного управління пам’яттю, який звільняє об’єкти, що більше не використовуються програмою.

21. Як відключити безпеку у WebSphere?

Безпеку можна відключити, виконавши команду “securityoff” через wsadmin.sh. Після цього необхідно перезапустити DMGR.

22. Як увімкнути докладне збирання сміття (verbose garbage collection)?

Verbose GC за замовчуванням вимкнено. Щоб його увімкнути, потрібно:

  • Перейти в розділ “Сервери” -> “Типи серверів” -> “WebSphere Application Server”.
  • Вибрати потрібну JVM, перейти до “Визначення процесу” в розділі “Java та керування процесами”.
  • Натиснути “Віртуальна машина Java” в розділі “Додаткові властивості” та встановити прапорець біля опції “докладне збирання сміття”.

23. Як зробити так, щоб WebSphere автоматично запускався після перезавантаження сервера?

WebSphere автоматично створює сценарій запуску в директорії /etc/init.d, що забезпечує його автоматичний запуск після перезавантаження.

Якщо з якихось причин цей сценарій відсутній, його можна створити вручну, розмістити в /etc/init.d та активувати, використовуючи наведені нижче команди:

chkconfig --add WebSphere  #ім'я файлу сценарію
chkconfig WebSphere on

24. Як збільшити розмір купи JVM?

  • Увійдіть в адміністративну консоль.
  • Перейдіть до розділу “Сервери” -> “Типи серверів” -> “WebSphere Application Server”.
  • Виберіть потрібну JVM, перейдіть до “Визначення процесу” -> “Віртуальна машина Java”.

Тут можна задати початковий та максимальний розміри купи.

25. Чи можна синхронізувати вузол, якщо nodeagent не працює?

Ні, для коректної синхронізації nodeagent має бути запущений.

26. Які команди для зупинки та запуску DMGR, Nodeagent і JVM?

Зупинка:

  • JVM – stopServer.sh JVMNAME
  • Nodeagent – stopNode.sh
  • DMGR – stopManager.sh

Запуск:

  • JVM – startServer.sh JVMNAME
  • Nodeagent – startNode.sh
  • DMGR – startManager.sh

27. Що нового в WAS 8.5.5?

Основні нововведення:

  • Підтримка Java SE 7.
  • Журнал HPEL.
  • Вбудоване управління станом.
  • Профіль Liberty.
  • Інтелектуальна маршрутизація.
  • Динамічна кластеризація.
  • Кластеризація JDBC 4.1.
  • Підтримка Web 2.0.

28. Що означає об’єднання вузлів?

Федерація в WebSphere – це процес додавання вузла до комірки. Це виконується за допомогою команди addNode.sh і може зайняти певний час, залежно від розміру вузла.

29. Що таке FFDC?

FFDC (First Failure Data Capture) – це механізм збору даних про помилки та події, що виникають під час роботи WebSphere. Дані FFDC корисні для аналізу проблем, і їх часто запитує підтримка IBM.

30. Чи можна декодувати сховище ключів WebSphere XOR?

Так, це можна зробити за допомогою онлайн-інструменту: http://strelitzia.net/wasXORdecoder/wasXORdecoder.html

31. Яка мова сценаріїв використовується в WebSphere за замовчуванням: JACL чи Jython?

JACL є мовою сценаріїв за замовчуванням у WebSphere.

32. Як застосувати пакет виправлень у WebSphere 8.5.x?

IBM Installation Manager (IM) можна використовувати для встановлення виправлень. Детальні інструкції можна знайти в посібнику з застосування пакетів виправлень.

33. Які середовища ви підтримуєте?

Опишіть чесно середовища, з якими ви працювали, наприклад:

  • Розробка (Development)
  • Тестування інтеграції (CIT)
  • Системне тестування (SIT)
  • Приймальне тестування (UAT)
  • Демо
  • Попередній продакшн (Pre-Production)
  • Продакшн (Production)
  • Постановка (Staging)
  • Контроль якості (QA)

34. Де розміщено ваш веб-сервер?

Опишіть підтримувану архітектуру програми. Зазвичай, для додатків, доступних з Інтернету, веб-сервери розташовані в DMZ, а сервер додатків – у внутрішній мережі. Це означає, що необхідні порти мають бути відкриті між веб-сервером і сервером додатків.

35. Що таке спорідненість сесії (session affinity)?

Спорідненість сесії, або персистенція сесії, забезпечує, що запит завжди направляється до однієї і тієї ж JVM. Це означає, що всі запити користувача в рамках однієї сесії обробляються одним і тим же процесом.

36. Чи можна розгорнути декілька програм в одній JVM?

Так, можна, якщо кожна програма має унікальний кореневий контекст.

37. Яку базу даних ви використовуєте з WebSphere?

Розкажіть про бази даних, які ви використовуєте. Більшість компаній використовують Oracle, але WebSphere також підтримує:

  • DB2
  • Oracle
  • Microsoft SQL Server
  • Sybase

38. Як підключити веб-сервер до WAS?

Є два основних способи підключення до WAS:

  • За допомогою плагіна: встановлення плагіна WAS на веб-сервері – це рекомендований спосіб.
  • Використання ProxyPass: якщо використовується Apache і плагін не бажаний, можна підключитися до WAS JVM за допомогою директиви ProxyPass.

39. Чи потрібен веб-сервер перед WAS?

Рекомендовано використовувати веб-сервер перед WAS для покращення безпеки, продуктивності та можливості обслуговування.

40. Що таке комірка (cell)?

Комірка – це логічна група вузлів, яка може містити один або декілька вузлів та кластерів. Усі вузли та кластери в комірці адмініструються з однієї адміністративної консолі.

41. Який час очікування сесії за замовчуванням для адміністративної консолі?

30 хвилин.

42. Що таке пакет виправлень (fix pack)?

Пакет виправлень – це набір виправлень, що надається IBM. Він може включати виправлення помилок, патчі безпеки та покращення продуктивності.

43. Який реєстр або репозиторій підтримується в WebSphere?

  • Об’єднане сховище (Federated repository)
  • Локальна операційна система (Local OS)
  • Автономний реєстр LDAP (Standalone LDAP registry)
  • Автономний спеціальний реєстр (Standalone custom registry)

44. Що таке спільні бібліотеки?

Спільні бібліотеки створюються для зменшення кількості дублюючих бібліотечних файлів. Одна спільна бібліотека може використовуватися декількома програмами в межах однієї комірки.

45. Що таке кореневий контекст?

Кореневий контекст для кожної програми має бути унікальним в межах комірки. Він визначається у дескрипторі розгортання та використовується для доступу до програми.

Наприклад: якщо програма “A” має кореневий контекст “retail”, вона буде доступна за адресою: http://servername:port/retail

46. Як називається файл конфігурації плагіна WAS?

Файл конфігурації плагіна WebSphere – plugin-cfg.xml

47. Як змінити розмір пулу потоків WebContainer?

Розмір пулу потоків WebContainer можна змінити, перейшовши в розділ “JVM” -> “Пули потоків” -> “WebContainer”.

48. Чи можна змінити кореневий контекст розгорнутого додатку?

Так, це можливо. Для цього через адміністративну консоль потрібно перейти до налаштувань програми та змінити значення “Кореневий контекст для веб-модулів”.

Після внесення змін необхідно перезапустити JVM.

49. Який скрипт використовується для зміни Java SDK, що використовується профілем?

Скрипт managesdk.sh знаходиться в папці bin і дозволяє змінити SDK.

50. Що таке PMT?

PMT (Profile Management Tool) – це графічний інтерфейс для створення та керування профілями WebSphere.

Сподіваюсь, ця інформація допоможе вам успішно пройти співбесіду на позицію адміністратора WebSphere. Якщо вам потрібна допомога з підготовкою резюме або співбесідою, ви можете скористатися цим навчальним матеріалом.