Uma coletânea de questões frequentemente apresentadas em entrevistas para posições de administração do IBM WebSphere, abrangendo desde níveis iniciantes até os mais experientes.
Muitas vezes, recebo solicitações para compilar uma lista de perguntas de entrevistas relacionadas ao IBM WebSphere Application Server. Atendendo a esses pedidos, apresento este material.
O WebSphere é um servidor de aplicações, um produto de middleware da IBM, que lidera o mercado nesse segmento.
O WebSphere consiste em um conjunto de produtos, e este artigo aborda especificamente o WebSphere Application Server.
Para quem se pergunta quais produtos compõem o conjunto WebSphere, aqui está uma lista:
- 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
- E muitos outros…
Preparado para explorar as perguntas?
1. O que é Ripplestart?
Ripplestart refere-se ao reinício de um cluster do WAS. Este processo envolve a parada e, em seguida, a inicialização das JVMs de forma sequencial. Ao realizar um ripplestart, assegura-se que apenas uma JVM esteja inativa por vez, evitando interrupções no serviço dos aplicativos.
Exemplo: Em um cluster com 5 JVMs, o ripplestart irá primeiramente parar a JVM1 e reiniciá-la antes de prosseguir com a parada de outra JVM no mesmo cluster.
2. O que você faria se uma JVM estivesse consumindo 100% da CPU e memória em um servidor?
Inicialmente, identifique qual JVM está com alto consumo. Em seguida, gere um dump de thread dessa JVM para análise e, como solução imediata, reinicie a JVM para aliviar a pressão sobre a CPU/memória.
3. O que é a sincronização de nós?
No IBM WAS, as configurações são armazenadas em um repositório central denominado “Repositório Mestre”. Cada nó possui seu próprio repositório local.
Ao fazer alterações em um nó através do DMGR, é necessário sincronizar para que as configurações sejam transferidas para o servidor do respectivo nó.
A sincronização é sempre unidirecional, do repositório mestre para os repositórios locais.
4. O aplicativo continua funcionando se o DMGR estiver inativo?
Sim, um DMGR inativo não afeta os aplicativos que já estão em execução. Contudo, alterações ou novas implantações via DMGR não poderão ser realizadas.
5. Como implantar um aplicativo no WebSphere?
Existem três métodos principais para a implantação:
- Hot deployment: Copiar o arquivo do aplicativo para o diretório de aplicativos. Adequado para ambientes não produtivos, mas não recomendado para produção.
- DMGR: Implantação via DMGR, navegando em Aplicativos >> Novo Aplicativo.
- Scripts: Utilização de scripts wsadmin ou tarefas Ant para automatizar a implantação do aplicativo.
6. Por que uma JVM reinicia automaticamente mesmo após eu ter parado/finalizado o processo manualmente?
Isso pode ocorrer por dois motivos:
A reinicialização automática pode estar ativada nas configurações da JVM, acessível em JVM >> Política de Monitoramento, o que é o comportamento padrão.
Alternativamente, um script no cron pode estar monitorando o processo e reiniciando-o caso não o encontre em execução.
7. Quais tipos de arquivos podem ser implantados no WebSphere?
É possível implantar módulos WAR, EAR, JAR ou SAR através do console DMGR ou via scripts.
8. O que é um host virtual?
Um host virtual agrupa várias URLs (baseadas em IP ou FQDN) para um mesmo aplicativo. A configuração é feita pelo console administrativo do WAS.
Para que um aplicativo seja acessível em uma URL específica, essa URL deve estar configurada em um host virtual e associada a esse aplicativo.
9. Como lidar com reclamações de clientes sobre a lentidão dos aplicativos?
A lentidão pode ter diversas origens. É crucial identificar se o problema está no WebSphere ou em outro componente. Para isolar o problema, pode-se verificar o seguinte:
- A lentidão afeta todos os usuários?
- A lentidão ocorre em todo o aplicativo ou apenas em funcionalidades específicas?
- Acessar a URL da JVM diretamente (ignorando o servidor web) apresenta a mesma lentidão?
Se a lentidão for identificada na JVM, pode-se gerar um dump e analisar os logs para investigar a causa. Também é relevante verificar se a lentidão surgiu após alguma implementação recente.
10. Como fazer um backup da configuração do WAS sem interromper o DMGR?
Navegue até o perfil do DMGR e a pasta bin.
Execute o comando ./backupConfig.sh -nostop para realizar o backup.
11. Qual é a porta padrão do WAS?
A porta padrão para HTTP é 9080 e para HTTPS é 9443. Consulte a página de portas padrão para mais informações.
12. Quais são as edições do WebSphere disponíveis?
- WAS – Network Deployment
- WAS – Developers
- WAS – z/OS
- WAS – Hypervisor
- WAS – Express
- WAS – Base
- WAS – Liberty Core
13. Como gerar e propagar o plugin?
- Acesse o console administrativo do WAS.
- Navegue até Servidores >> Servidores Web.
- Selecione o servidor e clique em “Gerar” e depois em “Propagar”.
14. Quais problemas comuns você já enfrentou?
Seja honesto sobre sua experiência. Para lhe dar uma ideia:
- Host virtual não configurado
- Logs que não rotacionam
- Erros Internos do Servidor
- Exceções OutOfMemory
- Lentidão
- JVM que não inicializa
- Alto consumo de CPU/memória/disco
15. Como verificar a versão do WAS instalada?
- Acesse o perfil e a pasta bin.
- Execute o comando ./versionInfo.sh
16. Como verificar se uma JVM está ativa?
Existem várias maneiras de confirmar isso:
- Verifique ferramentas de monitoramento para alertas ou status atual.
- Acesse o servidor e execute um grep para a JVM (ex: ps -ef | grep jvmname).
- Tente acessar a URL da JVM.
- Tente um telnet na URL e porta da JVM.
- Verifique se a porta da JVM está em escuta no servidor.
- Utilize o comando serverStatus.sh –all para verificar os processos em execução.
Escolha a mais conveniente para você.
17. Quais arquivos de log o WebSphere gera?
- SystemOut.log
- SystemError.log
- native_stdout.log
- native_stderr.log
18. Como gerar um dump de thread?
Há três maneiras de gerar um dump de thread:
- Via console DMGR: Navegue até Troubleshooting >> Selecione a JVM e clique em Java core.
- Através do comando kill -3 PID da JVM.
- Usando o wsadmin.sh, conforme explicado aqui.
19. Qual a diferença entre cluster vertical e horizontal?
Em um cluster vertical, os membros estão no mesmo nó ou servidor, enquanto em um cluster horizontal, os membros estão em nós e servidores diferentes em uma célula.
20. O que é coleta de lixo?
Coleta de lixo é um processo de gerenciamento de memória que libera automaticamente objetos que não estão mais em uso pelo programa.
21. Como desativar a segurança no WebSphere?
A segurança pode ser desativada executando “securityoff” através do wsadmin.sh. É necessário reiniciar o DMGR após desativar a segurança.
22. Como ativar o log detalhado da coleta de lixo?
O Verbose GC não vem habilitado por padrão. Para ativá-lo:
- Navegue até Servidores >> Tipos de Servidor >> WebSphere Application Server.
- Selecione a definição da JVM >> Processo em “Gerenciamento de Java e Processos”.
- Clique em Java virtual machine em “propriedades adicionais” e selecione a caixa de seleção para “coleta de lixo detalhada”.
23. Como fazer o WebSphere iniciar automaticamente quando o servidor reiniciar?
O WebSphere gera automaticamente um script de inicialização em /etc/init.d que garante sua inicialização na reinicialização do servidor.
Se o script não existir por algum motivo, pode-se criar um e colocá-lo em /etc/init.d, habilitando-o conforme abaixo:
chkconfig --add WebSphere #nome do arquivo de script
chkconfig WebSphere on
Confira meu guia detalhado sobre como iniciar serviços automaticamente na inicialização.
24. Como aumentar o tamanho do heap da JVM?
- Acesse o console administrativo.
- Navegue até Servidores >> Tipos de Servidor >> Servidor de Aplicativos WebSphere.
- Selecione a JVM >> Definição do processo >> máquina virtual java.
Aqui você pode definir o tamanho inicial e máximo do heap.
25. É possível sincronizar um nó quando o nodeagent está inativo?
Não, o nodeagent deve estar ativo para que a sincronização funcione.
26. Quais são os comandos para parar e iniciar DMGR, Nodeagent e JVM?
Para parar:
- JVM – stopServer.sh JVMNAME
- Nodeagent – stopNode.sh
- DMGR – stopManager.sh
Para iniciar:
- JVM – startServer.sh JVMNAME
- Nodeagent – startNode.sh
- DMGR – startManager.sh
27. O que há de novo no WAS 8.5.5?
Em linhas gerais:
- Suporte a Java SE 7
- Registro HPEL
- Gerenciamento de saúde integrado
- Perfil Liberty
- Roteamento inteligente
- Agrupamento dinâmico
- Agrupamento JDBC 4.1
- Suporte a Web 2.0
Informações mais detalhadas podem ser encontradas aqui.
28. O que significa federação de nós?
Federação no WebSphere significa adicionar um nó à Célula. Isso é feito com o comando addNode.sh e pode levar alguns minutos, dependendo do tamanho do nó.
29. O que é FFDC?
FFDC (First Failure Data Capture) é a captura de dados de erros e eventos durante o tempo de execução do WebSphere. Os dados do FFDC podem ser úteis na análise de problemas e geralmente são solicitados pelo suporte da IBM em casos de contato por problemas.
30. É possível decodificar o keystore XOR do WebSphere?
Sim, é possível utilizando a ferramenta online: http://strelitzia.net/wasXORdecoder/wasXORdecoder.html
31. Qual linguagem de script é padrão no WebSphere? JACL ou Jython?
JACL é a linguagem de script padrão no WebSphere.
32. Como aplicar um fix pack no WebSphere 8.5.x?
O IBM IM pode ser usado para aplicar correções. Consulte o guia de aplicação de fix packs para obter instruções detalhadas.
33. Quais ambientes você suporta?
Seja honesto e explique os ambientes que você dá suporte. Alguns exemplos:
- Desenvolvimento
- CIT
- SIT
- UAT
- DEMO
- Pré-produção
- Produção
- Staging
- Qualidade
34. Onde seu servidor web está hospedado?
Novamente, explique sua arquitetura de aplicação. Em um ambiente de produção típico para aplicativos voltados para a internet, os servidores web estariam em uma DMZ e os servidores de aplicação em uma rede interna.
Isso significa que é necessário permitir as portas necessárias no firewall entre os servidores web e os servidores de aplicação.
35. O que é afinidade de sessão?
A afinidade de sessão, também conhecida como persistência de sessão, permite que uma requisição seja direcionada a uma única JVM. Isso significa que as requisições subsequentes serão sempre encaminhadas para a mesma JVM.
36. É possível implantar mais de um aplicativo em uma única JVM?
Sim, é possível implantar vários aplicativos em uma única JVM, contanto que a raiz de contexto de cada aplicativo seja única.
37. Qual banco de dados você usa com o WebSphere?
Mencione qual banco de dados você utiliza. Muitas organizações utilizam o Oracle, mas o WebSphere também suporta:
- DB2
- Banco de Dados Oracle
- Microsoft SQL Server
- Sybase
38. Como conectar o servidor web ao WAS?
Há duas maneiras de se conectar ao WAS:
- Usando o plugin: Método recomendado para instalar o plugin do WAS no servidor web.
- Usando o ProxyPass: Caso utilize o Apache e não queira usar o plugin, é possível se conectar ao WAS JVM usando a diretiva ProxyPass.
39. É necessário um servidor web na frente do WAS?
Recomenda-se utilizar um servidor web suportado na frente do WAS para melhor segurança, desempenho e manutenção.
40. O que é uma célula?
Uma célula é um agrupamento lógico de nós, que pode ter um ou mais nós, clusters, e tudo é gerenciado através de um único console administrativo.
41. Qual é o tempo limite de sessão padrão para o console administrativo?
30 minutos.
42. O que é um fix pack?
Um fix pack é uma coletânea de correções disponibilizada pela IBM, contendo correções de bugs, patches de segurança e melhorias de desempenho.
43. Quais são os registros ou repositórios suportados no WebSphere?
- Repositório federado
- Sistema operacional local
- Registro LDAP autônomo
- Registro personalizado autônomo
44. O que são bibliotecas compartilhadas?
É recomendado criar bibliotecas compartilhadas para evitar arquivos duplicados. Uma mesma biblioteca compartilhada pode ser usada por vários aplicativos em uma célula.
45. O que é a raiz de contexto?
A raiz de contexto de cada aplicativo deve ser única dentro da célula. Ela é definida no descritor de implantação e usada para acessar o aplicativo.
Exemplo: se o aplicativo A tiver uma raiz de contexto chamada “varejo”, o aplicativo será acessível através de http://servername:port/varejo
46. Qual é o nome do arquivo de configuração do plugin WAS?
O nome do arquivo de configuração do plugin do WebSphere é plugin-cfg.xml.
47. Como alterar o tamanho do pool de threads do WebContainer?
O pool de threads do WebContainer pode ser alterado navegando em JVM >> Thread pools >> WebContainer.
48. É possível alterar a raiz de contexto de um aplicativo implantado?
Sim, é possível. Para fazer a alteração através do console administrativo, navegue até o aplicativo e clique em “Raiz de contexto para módulos da web” para alterar a raiz de contexto.
É necessário reiniciar a JVM após a mudança.
49. Qual script usar para alterar o Java SDK utilizado pelo perfil?
O script managesdk.sh, localizado na pasta bin, auxilia na alteração do SDK.
50. O que é PMT?
PMT (Profile Management Tool) é uma interface gráfica para criação e gerenciamento de perfis do WebSphere.
Espero que estas informações auxiliem na sua busca por um cargo de administrador WebSphere. Caso necessite de ajuda com currículo ou entrevista, consulte este tutorial.