AIQUMにおけるメンテナンスウィンドウ初期化エラーの修正
環境
- Active IQ Unified Manager 9.18+(AIQUM)
問題
- AIQUMウェブアプリケーション(
dfm-app.war)は、WildFlyの再起動を試みるたびに起動に失敗します。 - 次の例外がWildFlyサーバーログに表示されます:
org.hibernate.LazyInitializationException: could not initialize proxy [MaintenanceWindow#1] - no Session - この問題は、
ID=1を含むメンテナンスウィンドウレコードがデータベースに存在する場合に発生します。
原因
dfm-app.warのMaintenanceWindowScheduler.init()メソッドは、アクティブなセッションの外部で Hibernate の遅延プロキシ(MaintenanceWindow#1)にアクセスします。- これは、バージョン 9.18P1 でのコード/マッピングの変更によって導入されました。
解決策
- データベース操作が必要です
- NetAppテクニカルサポートにお問い合わせいただくか 、NetApp Support Siteにログインして ケースを作成してください。さらにサポートが必要な場合は、この記事を参照してください
パートナーノート
追加情報
内部情報
- これはL2操作であり、AIQUMアプライアンス上のデータベースに直接アクセスする必要があります。
この問題について、 CAIQUM-8929を提出済みです。
- 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サーバーを再起動します。