Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Toronto Sept 9th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Fahad2
Contributor
Contributor

using tCheckpoint in multi thread job

Hi!

I am trying to use tCheckpoint (a third party component) in Multi Thread Execution. Attached is a demo job.

Job Description:0693p000009I9cwAAC.png

What I am doing is;

  • In tPrejob, establishing a DB connection (using Teradata DB).
  • Executing parallel jobs using tCheckpoints with some dummy jobs.
  • From tStatcCatcher, I am looking up for any component with a "failure" message and then setting a key "CP_End" in globalMap to log a value that shows if any of the component suffered a failure and checkpoint file is cleared in tPostJob.

0693p000009I9cmAAC.png

 

 

  • in tPreJob, tJava is just to use an if trigger. In if trigger, "CP_End" is checked for value. if it exists then it means there was some error and checkpoint file is not cleared. In case of flawless execution, checkpoint file is cleared.

0693p000009I9crAAC.png

 

 

Issue:

When I generate an error in tDBInput_1, the job is expected to execute CP2 only and not the rest of sub jobs. However, CP3 gets executed where error is not generated even. Below is demo of such execution.

1- 0693p000009I9d6AAC.png

Respective Checkpoint file.

0693p000009I9dBAAS.png

 

 

2- Re-executing job.0693p000009I9dLAAS.png

An interesting fact is that this job was functioning correctly when I designed it few days ago and I checked all scenarios. I have not changed any configuration since then. I am using TOS 7.21. Any help will be greatly appreciated. 🙂

Regards,

Fahad.

Labels (3)
3 Replies
Fahad2
Contributor
Contributor
Author

Here is the checkpoint status upon re-execution

  Checkpoint1

CP1 Recovery: false

CP1 Execution: false

Checkpoint2

CP2 Recovery: false

CP2 Execution: false

Checkpoint3

CP3 Recovery: true

CP3 Execution: true

 

The run if triggers from CPs comprise of ((Boolean)globalMap.get("tCheckpoint_xxx_NEEDS_EXECUTION")) only.

 

Also, I have used Checkpoints in sequential execution and everything works as per requirement, I am facing trouble only in multi thread execution.

Anonymous
Not applicable

@Not defined Not defined​ , if you want to compare whether two string are equal, use the String1.equals("string2") function replace of "=" in the Java expression, eg:

if(input_row.message.equals("failure")){

....

}

 

Regards

Shong

Fahad2
Contributor
Contributor
Author

Hi Shong!

 

I have replaced "==" with ".equals", however, I am still facing same issue with checkpoints.