How QlikView helped me fix QlikView

By Barry Harmsen

Fixing QlikView using QlikViewToday, instead of a tip, I have a little anecdote about how QlikView helped me fix QlikView.

One project had me setting up a customized QlikView Server environment for an enterprise client. Part of the customization was ensuring that the service accounts, the ‘users’ that are used to run the QlikView services, do not require local administrator privileges.

Anyone who’s had to deal with this requirement knows that it isn’t exactly a straightforward job. Out of the box, the QlikView services will not work without local admin privileges. There is some help, but on a typical ‘hardened‘ version of Windows Server you still need to do additional troubleshooting to make things work.

A tool that I often use for these type of tasks is Process Monitor. This tool lets you monitor the file system, registry and process/thread activity in real-time, making it relatively easy to see what a piece is software is doing and where it might be missing some required permissions.

Process Monitor
In this project, I had used Process Monitor again to ensure that all services were working well without administrative rights. Things looked (and tested) great in the development and test environments, but on the acceptance server which, as it turned out, had some additional restrictions, some functions just stopped working.

Troubleshooting the issue turned out to be tough. Everything would work fine when I gave the service account local admin rights, only to stop working once these privileges were removed. Process Monitor would return over 150,000 events each time I executed the function, and while this tool offers good filtering functionality it proved hard to discover any significant errors.

That’s when I got my light bulb moment. Process Monitor lets you save the event log to a CSV file. Why not do two isolated runs, one with local admin rights, and one without and load the log files into QlikView? With some quick scripting, dragging and dropping I had put together a QlikView application that let me quickly analyze exactly what happened in each scenario.

Process Monitor data in QlikView

Sure enough, within 5 minutes I had found where the non-admin log went ‘off-track’ compared to the admin log. The next step was to fix the problem, run Process Monitor again and read the fixed log into the QlikView application to check that it behaved similar to the admin log. Bingo!

And that’s how QlikView helped me fix QlikView.

About The Author

Barry Harmsen

Hi there, I'm Barry and I'm a Business Intelligence Consultant at Bitmetric and based in the Netherlands. Originally from a background of 'traditional' Data Warehousing, Business Intelligence and Performance Management, for the past 10 years I have been specializing in Qlik and a more user-centric form of BI. I have done numerous QlikView and Qlik Sense implementations in many different roles and industries. In 2012 I co-authored the book QlikView 11 for Developers. You can follow me on Twitter at @meneerharmsen.

9 Comments

  • 1
    November 29, 2012 - 20:58 | Permalink

    Nice. Is your app generic enough that you might want to share it?

    • 2
      November 30, 2012 - 22:06 | Permalink

      Sure, no problem, but it’s nothing special. I will add it after the weekend (need to replace the customer’s data with some of my own test data).

  • 3
    Hari
    December 4, 2012 - 16:20 | Permalink

    Thanks and nice info. As brian said.. can we get app generic ?

  • 4
    KnightriderX
    July 30, 2014 - 15:16 | Permalink

    Hi Barry!

    Can you please mention what additional privileges/rights have you given to the service account on the system which is not part of the local Administrators group to have the services up and running?
    This information would be very useful.

    Thanks,
    KnightriderX

  • 5
    ian jones
    February 26, 2015 - 10:46 | Permalink

    Hi Barry,
    Did you ever release the generic version, I am looking at some event files myself at the moment and trying to make sense of them

  • 6
    Jan Terje Hansen
    October 7, 2016 - 13:09 | Permalink

    Hi Barry,

    Great solution!

    This is something I want to do for a customer as well.
    Would it be possible to share the QV Document that you used?

    The script you use should be enough if it is too time consuming for you to remove customer data form your document.

    Also, if you could share some of your conclusions regarding which rights you had to give the user, that would be great.

    Thanks!

    BR,
    Jan Terje

    • 7
      October 7, 2016 - 17:45 | Permalink

      Processmonitor:
      LOAD
      FileBaseName() as Version,
      RecNo() as [EventOrder],
      [Time of Day],
      Operation,
      Path,
      Result,
      Detail
      FROM
      [*.csv]
      (txt, utf8, embedded labels, delimiter is ‘,’, msq);

      LEFT JOIN (Processmonitor)
      LOAD
      EventOrder,
      COUNT(DISTINCT Operation & ‘|’ & Path & ‘|’ & Result) as Check
      RESIDENT Processmonitor
      GROUP BY EventOrder;

    • 8
      October 7, 2016 - 17:48 | Permalink

      Hi Jan Terje,

      This is the script, it just loads all versions of the logs and giving each row a sequence number. In the next step it just add the number of distinct Operation/Path/Results. If both rows are the same then it should be 1, otherwise it’ll be >1.

      In the front-end I created a text object with this expression:

      =’Things go off-track at event ‘ & Min( {1″}>} EventOrder)

      In short, the first row where a difference is found is where you will want to start looking. Fix that and repeat the process, until there are no more differences (or issues).

      Kind regards,
      Barry

  • 9
    Jan Terje Hansen
    October 9, 2016 - 23:32 | Permalink

    Thanks, Barry!

    BR,
    Jan Terje

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    Read previous post:
    Announcing QlikView 11 for Developers: The Book

    After many months of hard work, today I am proud and excited to announce the upcoming release of the new...

    Close