WebSphere Application Server执行syncNode后EAR变更未生效问题咨询
解决WebSphere节点同步后未加载新EAR的问题
我之前也碰到过类似的场景:为了测试回滚旧代码,手动替换了节点本地的EAR,恢复自动同步后却死活拉取不到部署管理器上的新代码。结合我的经验,给你几个关键的排查和修复步骤:
1. 用强制同步参数重新执行syncNode
默认的syncNode会跳过它认为“已经同步”的文件,但你手动替换过本地EAR,WebSphere的同步校验逻辑可能被打乱了。一定要加上-force参数强制覆盖:
syncNode <你的dmgr主机名> <dmgr的SOAP端口> -force
执行完后去节点的SystemOut.log里找Successfully synced with Deployment Manager的日志,确认同步完成。
2. 清理节点的缓存和临时文件
WebSphere的节点会把已部署的应用缓存到temp和wstemp目录里,就算同步了新EAR,缓存没清的话还是会加载旧文件:
- 先把节点上的所有应用服务器停掉
- 删掉这几个目录里的所有内容(别删目录本身):
profiles/<你的节点profile>/temp/profiles/<你的节点profile>/wstemp/- 可以把
profiles/<你的节点profile>/installedApps/<cell名>/整个备份后删掉,让同步重新从dmgr拉取完整的EAR
- 重启节点服务器,等自动同步触发,或者再跑一次带
-force的syncNode
3. 确认DMGR上的应用配置没问题
虽然你说DMGR上已有更新代码,但还是要核对下:
- 登录DMGR控制台,去
Applications > Application Types > WebSphere enterprise applications里找到目标应用,看它的最后修改时间或者版本是不是你要的新代码 - 检查应用的目标节点是不是你要同步的那个,部署状态是不是“已部署”
4. 检查自动同步的开关和触发状态
有时候自动同步的配置可能没真正生效:
- 登录DMGR控制台,到
System administration > Nodes选中你的节点,看Synchronization标签页:- 确保
Automatic synchronization是勾选状态,同步间隔设短一点(比如5分钟) - 手动点一下
Synchronize按钮触发一次同步,然后去节点日志里看同步过程有没有报错
- 确保
5. 极端情况:卸载后重新部署
如果前面的方法都没用,可能是手动替换EAR导致节点和DMGR的配置元数据不匹配了:
- 先在DMGR控制台把目标应用卸载掉
- 重新部署DMGR上的新EAR包,部署时选好目标节点
- 部署完成后执行
syncNode -force,再启动应用服务器
要是还不行,就去节点和DMGR的SystemOut.log、trace.log里搜sync或者application相关的关键词,比如文件权限不足、文件被锁定这类错误,日志里一般会有明确的提示。
内容的提问来源于stack exchange,提问作者user3694593
相关产品推荐
相关产品推荐

