アセットのアップロード時にワークフローが数百回繰り返されます | AEM
説明 description
問題
での mp4 ファイルのアップロード Assets コンソールをドラッグ&ドロップすると、各 mp4 ファイルのワークフローが数時間に数百回繰り返されます。
例えば、 DAM アセットの更新 というのも、mp4 が 890 回繰り返したのに対して。 ワークフローインスタンスが終了してから 5 秒ごとに、新しいワークフローインスタンスが開始されます。
この問題により、次のようなエラーメッセージが生成されました。
15.01.2018 10:40:06.628 *ERROR* XX.XXX.XX.XX 1515980405832 POST /content/dam/path/to/file.createasset.html HTTP/1.1 com.day.cq.dam.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 つの症状として、アセットのアップロード中に画面上で赤く点滅していることが報告されました。
環境
AEM 6.1 SP1
原因
アセットのアップロードを試みたユーザーが、 delete
フォルダーに対する権限。
その結果、ユーザーが大きなファイル (5 MB+) をアップロードすると、AEMはファイルを分割して複数のチャンクにアップロードし、asset ノードに格納します。
すべてのチャンクがアップロードされると、AEMは元のファイルとしてチャンクを統合し、DAM アセットの更新ワークフローを開始し、チャンクをクリアします。
しかし、ユーザーが delete
権限を持つ場合、チャンクのクリアに失敗し、その結果、ファイルのアップロードが再び再開します。
指定されたメッセージ
ERROR * POST /content/dam/*.createasset.html HTTP/1.1 com.day.cq.dam.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 つあります。
Resolution メソッド 1
次を追加: delete
ユーザーのアセットフォルダーに対する権限。
Resolution メソッド 2
次のプロパティを変更します。/libs/dam/gui/content/assets/jcr:content/body/assetscontent/header/items/default/items/fileupload
チャンクアップロードの最小バイト数を増やすには、 chunkUploadMinFileSize
.
チャンクのアップロードを無効にするには、 false に設定します。 chunkUploadSupported
.