linux - WAS缓存问题
PHPz
PHPz 2017-04-17 16:31:00
0
0
942

问题场景:在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的。
PHPz
PHPz

学习是最好的投资!

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!