修复 AIQUM 中的维护窗口初始化错误
适用于
- Active IQ Unified Manager 9.18+ (AIQUM)
问题
- 每次尝试 WildFly 重新启动时,AIQUM Web 应用程序(
dfm-app.war)都无法启动。 - 以下异常出现在 WildFly 服务器日志中:
org.hibernate.LazyInitializationException: could not initialize proxy [MaintenanceWindow#1] - no Session - 当数据库中存在
ID=1的维护窗口记录时,将触发此问题。
原因
MaintenanceWindowScheduler.init()方法在dfm-app.war中访问了一个 Hibernate 延迟代理(MaintenanceWindow#1),但此时没有处于活动状态的会话。- 这是在 9.18P1 版本的代码/映射更改中引入的。
解决方案
- 数据库操作
- 请联系 NetApp 技术支持 或登录 NetApp 支持站点以 创建案例。请参阅此文章以获得进一步帮助
合作伙伴备注
追加信息
内部参考
- 这是一个 L2 操作,需要在 AIQUM 设备上直接访问数据库。
- L2 过程—数据库清理:
- 连接到 AIQUM 设备上的 MySQL,然后选择
Ocum数据库。 - 选择 Ocum 数据库
USE OCUM; - 检查当前维护窗口状态:
SELECT mw.id, FROM_UNIXTIME(mw.startTime/1000) AS start_time, FROM_UNIXTIME(mw.endTime/1000) AS end_time, m.resourceType, m.resourceId
FROM maintenance_window mw
LEFT JOIN maintenance_window_object_mapping m ON m.maintenanceWindowId = mw.id; - 删除所有维护窗口记录(
ON DELETE CASCADE自动清理maintenance_window_object_mapping):DELETE FROM maintenance_window; - 验证两个表均为空:
SELECT COUNT(*) FROM maintenance_window;
SELECT COUNT(*) FROM maintenance_window_object_mapping; - 重新启动 AIQUM 服务器。