アセットのアップロード時に、ワークフローが数百回繰り返される | AEM
この問題を解決するには、ユーザーのアセットフォルダーに delete 権限を追加するか、のプロパティを変更します/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload。
説明 description
問題
ドラッグ&ドロップで Assets コンソールに mp4 ファイルをアップロードすると、各 mp4 ファイルのワークフローが何時間も数百回繰り返されました。
例えば、1 つの mp4 に対する DAM アセットの更新 のワークフローは 890 回繰り返されました。 ワークフローインスタンスが終了し、新しいワークフローインスタンスが開始してから、5 秒ごとに実行されます。
この問題により、次のようなエラーメッセージが生成されました。
15.01.2018 10:40:06.628 *ERROR* [ XX.XXX.XX.XX [ 1586753090032] POST /content/dam/path/to/file.createasset.html HTTP/1.1] com.day.XX.XXX.core.impl.servlet.CreateAssetServlet Error while creating new asset: Unable to commit changes to session.
org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
...
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied
...
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakAccess0000: Access denied
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.checkPermissions(PermissionValidator.java:212)
at org.apache.jackrabbit.oak.security.authorization.permission.PermissionValidator.childNodeDeleted(PermissionValidator.java:168)
報告されたもう 1 つの症状は、アセットのアップロード中に画面が赤く点滅することです。
環境
Adobe Experience Manager 6.1 SP1 (AEM 6.1 SP1)
原因
アセットをアップロードしようとすると、ユーザーはフォルダーに対する delete 権限を持っていません。
その結果、ユーザーが大きなファイル(5 MB 以上)をアップロードすると、AEMはファイルを複数のチャンクに分割してアップロードし、アセットノードに保存されます。
すべてのチャンクがアップロードされると、AEMはチャンクを元のファイルとして統合し、DAM アセットの更新ワークフローを開始し、チャンクをクリアします。
ただし、ユーザーが delete 権限を持っていない場合、チャンクのクリアに失敗し、その結果、ファイルのアップロードが再開されます。
指定メッセージ
ERROR * POST /content/XXX/*.createasset.html HTTP/1.1] com.XXX.XX.XXX.core.impl.servlet.CreateAssetServlet Error while creating new asset: Unable to commit changes to session.
org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied
解決策 resolution
解決策
この問題を解決する方法は 2 つあります。
解決方法 1
ユーザーのアセットフォルダーに delete 権限を追加します。
解決方法 2
次のプロパティを変更します。/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload
チャンクのアップロードの最小バイト数を増やすには、chunkUploadMinFileSize を増やします。
チャンクのアップロードを無効にするには、false を chunkUploadSupported に設定してください。