50个常见的WebSphere面试问题和答案
一套IBM面试问题的集合,通常在面试中问到,适用于新手到有经验的人。
我经常收到一个请求,要求我列出IBM WebSphere Application Server的面试问题列表,所以我知道你们的要求。
WebSphere是IBM的应用服务器(中间件产品),在中间件市场份额中占据第一位。
WebSphere是一个产品套件,而本文仅涉及WebSphere Application Server。
如果你想知道WebSphere套件下有哪些产品。
- 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之前重新启动JVM1。
2. 如果服务器上的JVM占用100%的CPU和内存,你会怎么做?
首先,确定哪个JVM的利用率很高。为了进行调查,请记录标识的JVM,并重新启动该JVM以解决CPU/内存过热的问题。
3. 什么是节点同步?
IBM WAS将整个配置存储在一个称为“Master repository”的中央存储库中,每个节点都有一个本地存储库。
当你通过DMGR对节点进行任何更改时,必须同步它,以便将配置推送到相应的节点服务器。
同步始终从Master repository到本地存储库进行,因此是单向通信。
4. 如果DMGR宕机,应用程序能否正常运行?
是的,DMGR宕机不会影响现有的运行中应用程序。但是,如果你需要通过DMGR进行任何更改或部署,那么将受到影响。
5. 如何在WebSphere中部署应用程序?
有三种可能的部署方式。
- 热部署 – 将应用程序文件复制到应用程序目录中。这对于非生产环境是可行的,但不建议用于生产环境。
- DMGR – 你可以通过DMGR部署应用程序,方法是进入应用程序>>新建应用程序
- 脚本 – 你可以编写wsadmin脚本或ant任务来部署应用程序。
6. 即使我手动停止/杀死进程,为什么JVM会自动启动?
可能有两种情况。
启用了JVM的自动重启,这是默认设置,在JVM>>监视策略下可用。
如果不是上述情况,可能有一个cron脚本,它检查进程并重新启动。
7. 你可以部署哪些文件类型到WebSphere?
你可以通过DMGR控制台或脚本部署WAR、EAR、JAR或SAR模块。
8. 什么是虚拟主机?
Virtual host在单个应用程序上包含多个URL(基于IP或FQDN),并通过WAS管理控制台进行配置。
为了允许应用程序在特定的URL上访问,你必须在虚拟主机中拥有此URL,并将其与应用程序关联起来。
9. 如何处理来自客户端的应用程序运行缓慢的投诉?
应用程序运行缓慢可能是由于各种原因引起的,必须确定是WebSphere还是其他组件引起的。为了隔离问题,你可以检查以下内容。
- 所有用户都有这种缓慢吗?
- 整个应用程序是缓慢的还是只有特定功能是缓慢的?
- 直接访问JVM URL(绕过Web服务器)的情况如何?
如果在JVM中发现缓慢,则可以拍摄转储并检查日志以找出原因。检查是否有任何发布,缓慢就在发布后。
10. 如何在不停止DMGR的情况下备份WAS配置?
转到DMGR配置文件和bin文件夹
执行./backupConfig.sh -nostop进行备份
11. WAS的默认端口是多少?
HTTP的默认端口是9080,HTTPS的默认端口是9443。查看default port page了解更多信息。
12. 有哪些可用的WebSphere版本?
- WAS-网络部署
- WAS-开发者
- WAS-z/OS
- WAS-Hypervisor
- WAS-Express
- WAS-Base
- WAS-Liberty核心
13. 如何生成和传播插件?
- 登录WAS管理控制台
- 转到服务器>>Web服务器
- 选择服务器,然后点击“生成”和“传播”按钮。
14. 您遇到过哪些常见问题?
您应该始终诚实地了解自己的专业知识,但是,为了给您一个概念:
- 未定义虚拟主机
- 日志不移动
- 内部服务器错误
- OutOfMemory异常
- 缓慢
- JVM无法启动
- CPU/内存/磁盘利用率过高
15. 如何检查已安装的WAS版本?
- 转到配置文件和bin文件夹
- 执行./versionInfo.sh
16. 如何确定JVM是否启动?
有多种方法可以确认此事。
- 您是否有任何监控工具,如果有,请检查是否有警报或当前状态
- 登录服务器并通过ps -ef | grep jvmname查找JVM。
- 检查是否可以访问JVM URL
- 检查是否可以使用telnet访问JVM URL和端口
- 检查服务器上是否侦听JVM端口
- 使用serverStatus.sh -all命令查看正在运行的内容
选择对您来说最容易的方法。
17. 告诉我一些WebSphere生成的日志文件。
- SystemOut.log
- SystemError.log
- native_stdout.log
- native_stderr.log
18. 如何生成线程转储?
有三种可能的方法可以生成线程转储。
- 通过DMGR控制台:转到故障排除>>选择JVM,然后点击Java core
- Kill -3 JVM的PID
- 使用wsadmin.sh作为explained here
19. 垂直集群和水平集群有什么区别?
垂直集群的成员位于同一节点或服务器上,而水平集群横跨单元中的多个节点和服务器。
20. 什么是垃圾回收?
垃圾回收是一种内存管理过程,可以自动释放程序不再使用的对象。
21. 如何禁用WebSphere中的安全性?
您可以通过在wsadmin.sh中执行“securityoff”来进行关闭。关闭安全性后,必须重新启动DMGR。
22. 如何启用详细垃圾回收?
默认情况下,不启用详细垃圾回收,如果需要,可以进行以下操作:
- 服务器>>服务器类型>>WebSphere应用服务器
- 选择JVM>>“Java和进程管理”下的进程定义
- 在“附加属性”下的“Java虚拟机”中选中“verbose garbage collection”的复选框。
23. 如何在服务器重新启动时使WebSphere自动启动?
WebSphere会自动生成启动脚本放在/etc/init.d中,以确保在重新启动时启动。
然而,如果由于某种原因脚本不存在,则可以创建一个并放在/etc/init.d下,并按下面的方式启用它。
chkconfig -- add WebSphere #脚本文件名
chkconfig WebSphere on
详细指南请参考how to auto-start services on boot。
24. 如何增加JVM的堆大小?
- 登录管理控制台
- 进入服务器 >> 服务器类型 >> WebSphere应用服务器
- 选择JVM >> 进程定义 >> Java虚拟机
您可以在此处输入初始堆大小和最大堆大小。
25. 当nodeagent宕机时,您能够同步节点吗?
当然可以,同步需要停止nodeagent。
26. 停止和启动DMGR、Nodeagent和JVM的命令是什么?
停止:
- JVM – stopServer.sh JVM名称
- Nodeagent – stopNode.sh
- DMGR – stopManager.sh
启动:
- JVM – startServer.sh JVM名称
- Nodeagent – startNode.sh
- DMGR – startManager.sh
27. WAS 8.5.5有哪些新功能?
主要有以下几点:
- 支持Java SE 7
- HPEL日志记录
- 内置健康管理
- Liberty配置文件
- 智能路由
- 动态集群
- JDBC 4.1集群
- Web 2.0支持
您还可以参考detailed information here。
28. 节点联合(federation)是什么意思?
在WebSphere中,节点联合表示将节点添加到Cell中。这是通过addNode.sh命令完成的,根据节点的大小,可能需要几分钟的时间。
29. 什么是FFDC?
FFDC(首次故障数据捕获)可以捕获WebSphere运行时的事件和错误。FFDC数据有助于分析问题,如果我们向IBM支持部门寻求帮助,他们通常会要求我们提供这些数据。
30. 您能解码WebSphere的密钥库XOR吗?
是的,您可以使用在线工具进行解码:http://strelitzia.net/wasXORdecoder/wasXORdecoder.html
31. WebSphere的默认脚本语言是JACL还是Jython?
JACL是WebSphere的默认脚本语言。
32. 如何在WebSphere 8.5.x中应用修复包?
可以使用IBM IM来应用修复包。详细的说明请参考how to apply fix pack guide。
33. 您支持哪些环境?
诚实地解释您支持的环境。您可能支持以下环境:
- 开发
- CIT
- SIT
- UAT
- DEMO
- 预生产
- 生产
- 分期
- QA
34. 您的Web服务器托管在哪里?
再次解释您支持的应用程序架构。然而,在面向互联网的典型生产环境中,Web服务器将位于DMZ,应用程序服务器将位于核心网络中。
这意味着在Web服务器与应用程序服务器之间的防火墙上必须允许必要的端口。
35. 什么是会话亲和性?
会话亲和性是持久会话的另一个说法。具有会话亲和性意味着请求与单个JVM绑定。这意味着返回的请求将始终路由到同一个JVM。
36. 您可以在单个JVM中部署多个应用程序吗?
是的,只要每个应用程序的上下文根是唯一的,就可以在单个JVM上部署多个应用程序。
37. 您在Websphere中使用哪个数据库?
告诉他们您使用的数据库。大多数组织使用Oracle数据库,但WebSphere也支持以下数据库:
- DB2
- Oracle数据库
- Microsoft SQL Server
- Sybase
38. 如何将Web服务器连接到WAS?
有两种方法可以连接到WAS。
- 使用插件 – 这是在Web服务器上安装WAS插件的推荐方法。
- 使用ProxyPass – 如果您使用Apache并且不想使用插件,则可以通过ProxyPass指令连接到WAS JVM。
39. 在WAS前面是否需要Web服务器?
建议在WAS前面部署支持的Web服务器,以提供更好的安全性、性能和维护性。
40. 什么是细胞?
细胞是一个逻辑节点组的集合,可以有一个或多个节点;所有的集群都由单个管理控制台进行管理。
41. 管理控制台的默认会话超时时间是多久?
30分钟
42. 什么是修订包?
修订包是由IBM提供的一系列补丁。它可能包含错误修复、安全补丁和性能改进。
43. WebSphere支持哪些注册表或仓库?
- 联合仓库
- 本地操作系统
- 独立LDAP注册表
- 独立自定义注册表
44. 什么是共享库?
建议创建一个共享库以减少重复的库文件。单个共享库可以被细胞内的多个应用程序使用。
45. 什么是上下文根?
每个应用程序的上下文根在细胞内应是唯一的。它在部署描述符中定义,用于访问应用程序。
例如:如果应用程序A的上下文根称为“retail”,那么可以通过 http://servername:port/retail 访问该应用程序。
46. WAS插件配置文件的名称是什么?
WebSphere插件配置名称是 plugin-cfg.xml
47. 如何更改WebContainer线程池大小?
可以通过进入 JVM >> 线程池 >> WebContainer 来更改WebContainer线程池。
48. 是否可以更改已部署应用程序的上下文根?
是的,可以做到。通过管理控制台进行此操作,进入应用程序并点击“Web模块的上下文根”以更改上下文根。
更改后必须重新启动JVM。
49. 如何更改配置文件使用的Java SDK?
bin文件夹中有一个名为managesdk.sh的脚本,可以用于更改SDK。
50. 什么是PMT?
PMT(配置文件管理工具)是一个GUI工具,用于创建和管理WebSphere配置文件。
我希望以上内容能帮助您获得WebSphere管理员的工作。如果您需要简历和面试方面的帮助,请查看此 tutorial。