BESClient API is often unresponsive

I run query via BESClient API and found that often BESClient doesnt respond with results for long time, even for 1 hour.
If i restart BESClient service its API starts working fine.
So as I understand when BESClient started it works in Normal mode and have enough time to respond for API queries.
Then BESClient finished its first stage and switched to Idle mode. In this case it SLOWLY evaluates fixlets and doesnt hurry to notice and respond to Client API query.
I dont like to restart BESCLient service every time when i need to get results from BESClient.
Is any other way to “wake up” BESClient or enforce it to stop current fixlet evaluation and do respond to API?

qna.exe seems doesnt have client session info from BESClient service so need to reevaluate all required fixlets which takes 2 minutes, but it is really works faster comparing to often unresponsive BESClient API.
evalsession.exe doesnt support any useful commands and also doesnt interact to BESClient.
eval.exe which supports XML query now is not available. So i switched to qna.exe with QNA form of query/respond.

Hi rustam,
If you are on Windows you can use the FixletDebugger with the Local Client Evaluator:

It should use the same API that you are using manually. Try to see if the performance are different. If it’s that the case then there is something wrong in the XML that you are submitting manually.

Another option would be BigFix Query . It can be used to target more than one BES Client but it has the same context limitation of the qna.

Thanks for the reply. Yes, i know about FixletDebugger and able to run it with command line option /e inputfile outputfile
I aware about Client Compliance API and I am complaining that BESClient often doesnt respond on time to queries, regardless is it manual via FixletDebugger or programmatically created via BESClientComplianceMod.dll.
BigFix Query is not very good approach as i want to run query on the local computer to get immediate fresh local results without involving server.
Nothing wrong in my XML/QNA, there are some basic relevance expressions and one with “relevant fixlets of sites …” which available for BESClient and not for qna.exe.
Of course i can keep qna.exe in background and so be able to get fast response for basic relevance expressions.
But “relevant fixlets of sites …” is only available via Client Compliance API.
If wait for API long time and restart BESClient after 60 minutes of waiting it works but it somehow affects Relay functionality.
Why BESClient cannot stop/pause/cancel current evaluation and just respond to my query even in Idle mode?

I guess that the BES Client put current evaluation at higher priority.
Furthermore the CPU consumption needs to be kept low.
This might also impact the evaluation time.
Do you have particular cpu throttling settings ?

it is default settings which I suppose are:

  1. Normal mode 50/50
  2. Idle mode 10/480
    I tried to set _BESClient_Resource_WorkIdle with higher value, it works better but also consumes more CPU which is undesired.
    _BESClient_Query_WorkTime settings doesn’t change BESClient API behavior. I guess it is only for server initiated qna.

Q: track fixlets of evaluationcycle of client
3291.815: actionsite.425605:Background Evaluation
3129.424: actionsite.425369:Background Evaluation
3128.938: Enterprise Security.276060103:Background Evaluation
3122.317: Enterprise Security.1203011:Background Evaluation
3119.495: Enterprise Security.1203011:Background Evaluation
3118.023: Enterprise Security.287832301:Background Evaluation
3113.685: Enterprise Security.287832303:Background Evaluation

Q: maximum of evaluationcycle of client
21991377
Q: average of evaluationcycle of client
1407377 (ms so it is 1407.377 seconds = 23 minutes 27 seconds 377 ms)
Q; average duration of evaluationcycle of client
00:23:27.377178
Q: maximum duration of evaluationcycle of client
06:06:31.377314
Q: total duration of evaluationcycle of client
5 days, 21:37:28.294260 (Total time since agent start)
Q: sleep duration of evaluationcycle of client
5 days, 12:07:47.038759 (Time taken sleeping since agent start)
Q: relevance duration of evaluationcycle of client
06:33:22.937908 (Time taken performing relevance processing since agent start)
Q: relay select duration of evaluationcycle of client
02:12:24.924503
Q: gather duration of evaluationcycle of client
00:14:31.962257
Q: property duration of evaluationcycle of client
00:10:22.852579
Q: api duration of evaluationcycle of client
00:07:24.483545
Q: report duration of evaluationcycle of client
00:06:35.924208
Q: other duration of evaluationcycle of client
00:04:06.909648
Q: action duration of evaluationcycle of client
00:00:48.658225
Q: archive duration of evaluationcycle of client
00:00:07.936183
Q: quiet mode duration of evaluationcycle of client
00:00:00.734510

Q: sleep percent of evaluationcycle of client
93.29
Q: relevance percent of evaluationcycle of client
4.63
Q: relay select percent of evaluationcycle of client
1.55
Q: gather percent of evaluationcycle of client
0.17
Q: property percent of evaluationcycle of client
0.12
Q: api percent of evaluationcycle of client
0.09
Q: report percent of evaluationcycle of client
0.08
Q: other percent of evaluationcycle of client
0.05
Q: action percent of evaluationcycle of client
0.01