Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
obriened83
Creator
Creator

Qlikview EDX and SSIS Issues

Hi

   I was wondering if anyone could help me. Is it possible to end a task using a EDX commnad?

We are currently testing Qlikview 11 using a SSIS package system and we are encountering problems where the

EDX executable file quits unexpectedly but the Qlikview Task remains running on the Qlikview Server.

Would anyone know in anyway in how to overcome this issue?

Any help would be much appreiciated.

Kind Regards

Eamonn

1 Solution

Accepted Solutions
obriened83
Creator
Creator
Author

Hi

     Just to let anybody who has this issue know that I found a solution.

I have now coded an Error Handler within the QMSEDX.exe that has successfully neutralized that Process Error Code 255. When the error now occurs, the Error Handler successfully catches the error and retries the polling process.

Let me know if ye have any queries.

Please see below the C# Code needed to implement this

----------------Code ---------------------------------------------------------

try

{

TraceMessage(TraceLevel.Info, String.Format("Successfully started task with id/name={0}", _taskIdOrName));

EDXStatus mainTaskResult = PollSingleTask(client, triggerResult.ExecId, _pollIntervall, _timeout);

List<EDXStatus> triggeredEDXStatuses = MonitorTriggeredTasks(client, mainTaskResult.TriggeredTasksId);

totalResult = AnalyseResult(mainTaskResult, triggeredEDXStatuses);

}

catch (Exception ex)

{

Console.WriteLine("An error occured: " + ex.Message);

Console.WriteLine("An error occured: " + ex.Source);

Console.WriteLine("An error occured: " + ex.InnerException);

Console.WriteLine("An error occured: " + ex.HelpLink);

Console.WriteLine("Trying Again");

TraceMessage(TraceLevel.Info, String.Format("Re-Initialised Communication With id/name={0}", _taskIdOrName));

EDXStatus mainTaskResult = PollSingleTask(client, triggerResult.ExecId, _pollIntervall, _timeout);

Console.WriteLine("Polling Complete");

List<EDXStatus> triggeredEDXStatuses = MonitorTriggeredTasks(client, mainTaskResult.TriggeredTasksId);

Console.WriteLine("Monitored Trigger Tasks Complete");

totalResult = AnalyseResult(mainTaskResult, triggeredEDXStatuses);

}


View solution in original post

8 Replies
Bill_Britt
Former Employee
Former Employee

What version of QlikView are you running?

Bill

Bill - Principal Technical Support Engineer at Qlik
To help users find verified answers, please don't forget to use the "Accept as Solution" button on any posts that helped you resolve your problem or question.
obriened83
Creator
Creator
Author

Hi Bill

    I am running Qlikview 11 SR 1.

Eamonn

Anonymous
Not applicable

I have seen this issue in some cases, and not solved it yet.

But i  thougt about a solution, that might helps.

If you are using a SSIS execute process task and execute the QMSEDX.exe file you could try to add a timeout parameter that is longer that the expected total reload time of your QlikView task.

Something like this:

QMSEDX.exe

-qms="http://localhost:4799/qms/service"
-task="taskname"
-timeout=600

Please let me know if it works, cause i

/Henrik

obriened83
Creator
Creator
Author

Hi Henrik

     Thanks for getting back to me on this. The issue lies in that the SISS executes the EDX with a Timeout setting of 3 hours. What happens is that the EDX quits unexpectedly and returns a process error code of 255 to SSIS but the Qlikview Console contines to run the Job until it has completed.

    

               Is there a Job Kill command that we could use that if SSIS recieves that 255 process error, it could execute another process Task that that would end that job?

Please let me know what you think?

Kind Regards

Eamonn

Anonymous
Not applicable

As I see it, you can do either, in your SSIS environment:

1) Set FailTaskIfReturnCodeIsNotSuccesValue=False and then accept the error.
2) Set FailTaskIfReturnCodeIsNotSuccesValue=False and catch the return code in a variable and the create your own error-handling in SSIS, where you specific handle code 255

3) Make a add to your Qlikview script, where you tell the SQL server ETL job that QlikView has finish ok. You can create a store procedure for this an use this in a load statement in QlikView. In this case you should also set FailTaskIfReturnCodeIsNotSuccesValue=False

/Henrik

obriened83
Creator
Creator
Author

Hi Henrik

            This is a very good workaround but ideally we would love to be able to kill the job from SISS either through a direct command or an executable file. The reason for this is that the SSIS packages needs to log other parameters that the QVW would not be aware of.

Could this be done?

Chees

Eamonn

obriened83
Creator
Creator
Author

Hi

     Just to let anybody who has this issue know that I found a solution.

I have now coded an Error Handler within the QMSEDX.exe that has successfully neutralized that Process Error Code 255. When the error now occurs, the Error Handler successfully catches the error and retries the polling process.

Let me know if ye have any queries.

Please see below the C# Code needed to implement this

----------------Code ---------------------------------------------------------

try

{

TraceMessage(TraceLevel.Info, String.Format("Successfully started task with id/name={0}", _taskIdOrName));

EDXStatus mainTaskResult = PollSingleTask(client, triggerResult.ExecId, _pollIntervall, _timeout);

List<EDXStatus> triggeredEDXStatuses = MonitorTriggeredTasks(client, mainTaskResult.TriggeredTasksId);

totalResult = AnalyseResult(mainTaskResult, triggeredEDXStatuses);

}

catch (Exception ex)

{

Console.WriteLine("An error occured: " + ex.Message);

Console.WriteLine("An error occured: " + ex.Source);

Console.WriteLine("An error occured: " + ex.InnerException);

Console.WriteLine("An error occured: " + ex.HelpLink);

Console.WriteLine("Trying Again");

TraceMessage(TraceLevel.Info, String.Format("Re-Initialised Communication With id/name={0}", _taskIdOrName));

EDXStatus mainTaskResult = PollSingleTask(client, triggerResult.ExecId, _pollIntervall, _timeout);

Console.WriteLine("Polling Complete");

List<EDXStatus> triggeredEDXStatuses = MonitorTriggeredTasks(client, mainTaskResult.TriggeredTasksId);

Console.WriteLine("Monitored Trigger Tasks Complete");

totalResult = AnalyseResult(mainTaskResult, triggeredEDXStatuses);

}


Not applicable

Hello I have the Process Error Code 255  is sent to the scheduler whenever there is aa long QVD reload , and this blocks the launch of the other tasks from the scheduler  however  for the other qvw document that are less time consuming when launched the error dooesn't reproduce, where do i need to implement your C# code ? thanks in advance