Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi, we are using latest Qlik View version (MAY 2023) and licensed one. Our business created dashboard and schedule a reload task to run frequently. Whenever reload task rans, sometime we are getting failure for the few jobs. Below is the error we are getting, not sure why its happening. Could you please suggest on this ?
(8/27/2023 6:20:44 AM) Information: The Source Document reload complete. DocumentPath=\\cfwdod5sq001\QLIK\QlikviewPRD\SourceDocs\IC\2.QVDGen\QVDGen_Daily_4706SO.qvw
(8/27/2023 6:20:44 AM) Information: Memory Allocation Delta for this file=44.69 Mb. Available Physical Memory Before Reload=24471.55 Mb. Available Physical Memory After Reload=23427.25 Mb.
(8/27/2023 6:20:44 AM) Error: The Source Document was NOT reloaded successfully.
Error: The task "QVDGen_Daily_4706SO" failed. Exception: || QDSMain.Exceptions.TaskFailedException: Task execution failed with errors to follow. ---> QDSMain.Exceptions.ReloadFailedException: Reload failed ---> QDSMain.Exceptions.LogBucketErrorException: The Source Document was NOT reloaded successfully. DocumentPath=\\cfwdohd5sqls001\QLIK\QlikviewPRD\SourceDocs\IOC\2.QVDGen\QVDGen_Daily_4706SO.qvw. || at QDSMain.AbstractReloadTask.VerifyConditions(IExecutingTaskResult executingTaskResult) || at QDSMain.AbstractReloadTask.Reload(String fileName, IExecutingTaskResult executingTaskResult, String sectionAccessUserName, String sectionAccessPassword, eReloadOptions reloadOption, String variableName, String variableValue, Boolean moniterCpuUsage) || --- End of inner exception stack trace --- || at QDSMain.AbstractReloadTask.Reload(String fileName, IExecutingTaskResult executingTaskResult, String sectionAccessUserName, String sectionAccessPassword, eReloadOptions reloadOption, String variableName, String variableValue, Boolean moniterCpuUsage) || at QDSMain.DistributeTask.PerformExecute(IExecutingTaskResult executingTaskResult) || --- End of inner exception stack trace --- || at QDSMain.DistributeTask.PerformExecute(IExecutingTaskResult executingTaskResult) || at QDSMain.Task.AbstractTask.TaskExecution(CurrentExecutionArgs args)
Today also my job getting failed, i saw the document log. Pasted the document log below
The last entries with " ... cannot open ... in write mode ... " show it quite clear - the qvd is locked from another process. Very likely it's another QV process which also consumed this qvd but thinkable are also any security tools scanning the file or windows services like the indexing or shadow copies and/or a too high workload on your storage/network queuing tasks or didn't responding in time ...
I suggest to start to look for other QV processes - in many cases should the monitoring of the qmc and the task-manager give valuable hints. If not you may use the various log-files (application + event + performance + session) from QV + OS which is probably more time consuming (whereby it's a valuable invest for the future).
@marcus_sommer Thanks. Can you guide how to check this ? the qvd is locked from another process.
It means "I suggest to start to look for other QV processes"? Please suggest.
Which other QMC tasks are running while your failing task is executed - how does it look within the task-manager? Quite probably there is anything noticeable.
The last action of the load script right before the reload fails is the STORE statement. First, as Marcus suggested, review your reload schedule to ensure there's no other tasks trying to write/read this QVD at the time of it being stored.
If there aren't any other tasks reading/writing concurrently to this QVD, an option is to add a SLEEP statement (e.g. SLEEP 10000) after the store statement. This is to give the reload a bit of a breather, since at this point, Windows has to write the data to disk. The number is in milliseconds and can be tweaked as needed. It might be trying to do the Store, finishes and then errors out right after. Hopefully the Sleep would give it a chance to catch up.
If the reload is still failing after adding a STORE statement, another option if we know this happens with certain reloads, is to set up MS Sysinternals Process Monitor scan on those QVDs to see if anything else is touching it that might cause the error.
Best Regards
@Chip_Matejowsky Thanks. Where I need to mention this SLEEP statement.
Immediately after the STORE statement
Best Regard
@Chip_Matejowsky Means? I didn't get you. Need to give in the SQL statement ? or anywhere else in the QVD scripts? Can you please explain. Moreover we are only taking care of Administration apart all QVD generation and reload task schedule taking care other teams.
A sleep-statement could be added between the statements - means before a load / store starts or after it ends - just to give the various I/O operations on the outside of Qlik a certain extra time to finish their threads.
In your case you are loading from the qvd by concatenating the historic data with the current ones and storing it again in the same file. Such approach worked usually very well without such lock-issues but by a heavy workload on the storage/network it may react too slowly. Therefore you may try a sleep-statement before the store-statement.
Beside this there is further a possibility that any other process locked the file in the meanwhile. Therefore it might be helpful to move the task to start a few minutes earlier or later.
In the load script. So refer to whomever is the developer who writes the load script.
Best Regards