WAS缓存问题
问题场景:在was上第一次部署增量包文件中包含了.rar格式的文件/models/customerPayee.rar,第二次部署增量包(即使是空的包)的时候会报错。
WAS管理台上错误描述如下:
Updating...
Check the SystemOut.log on the deployment manager or server where the application is deployed for specific information about the EJB deployment process as it occurs.
Update of corporbank has started.
ADMA5058I: Application and module versions are validated with versions of deployment targets.
ADMA5009I: Extracting application archive to /usr/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/wstemp/app_15986481d23/ext.
ADMA5065E: Exception in FileMergeTask org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ReopenException: IWAE0016E IOException occurred while reopening models/customerPayee.rar.
ADMA0185W: An update application operation failed and the configuration session could not be restored to its state before the operation was initiated. The configuration session is in an inconsistent state, and changes made in the session should be discarded.
ADMA5011I: The cleanup of the temp directory for application corporbank is complete.
Update of corporbank has ended.
打开/usr/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/dmgr/SystemErr.log日志,日志内容如下:
[1/10/17 18:17:54:172 CST] 000000a0 SystemErr R org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ReopenException: IWAE0016E IOException occurred while
reopening models/customerPayee.rar
Stack trace of nested exception:
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:137)
at java.util.zip.ZipFile.<init>(ZipFile.java:154)
at org.eclipse.jst.j2ee.commonarchivecore.internal.strategy.ZipFileLoadStrategyImpl.<init>(ZipFileLoadStrategyImpl.java:163)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl.createLoadStrategy(CommonarchiveFactoryImpl.java:523)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.CommonarchiveFactoryImpl.createChildLoadStrategy(CommonarchiveFactoryImpl.java:439)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl.createLoadStrategyForReopen(ArchiveImpl.java:775)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl.reopen(ArchiveImpl.java:2527)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl.reopen(ArchiveImpl.java:2564)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl.reopen(ArchiveImpl.java:2506)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl.extract(ArchiveImpl.java:960)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ArchiveImpl.extract(ArchiveImpl.java:952)
at com.ibm.ws.management.application.AppUpdate.createDirsInPath(AppUpdate.java:206)
at com.ibm.ws.management.application.AppUpdate.mergeFiles(AppUpdate.java:128)
at com.ibm.ws.management.application.task.FileMergeTask.updatePartialEar(FileMergeTask.java:375)
at com.ibm.ws.management.application.task.FileMergeTask.update(FileMergeTask.java:300)
at com.ibm.ws.management.application.task.FileMergeTask.performTask(FileMergeTask.java:147)
at com.ibm.ws.management.application.SchedulerImpl.run(SchedulerImpl.java:294)
at java.lang.Thread.run(Thread.java:736)
后面我把/ebank/corporbank/models/customerPayee.rar的文件删掉后重启服务还是不行,初步分析应该是WAS将每次部署的包都缓存起来了,
每次部署增量包时,FileMergeTask合并文件时会先读取这个缓存文件,然后根据SystemErr.log日志分析是WAS不支持读取.rar文件,因此而报错。
然后我就分析去删除这个缓存应用的文件,找到的是目录如下:
/usr/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/IBSUWAS1Cell01/applications/corporbank.ear,我将这个corporbank.ear
删除掉或者移走的话,重启企业服务后,再部署任何增量包都是OK的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你好,小明子,我遇到was和你一样的问题,方便解答下吗?我的QQ:280977278
/usr/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/IBSUWAS1Cell01/applications/corporbank.ear 这个目录应该是程序运行必须的目录不是缓存目录吧,我发现吧这个文件目录删了之后,应用都没有了