05-03-2012 02:16 PM
We have API query licenses (for example let’s say 1000 queries per hour), and we also have many external applications using API queries.
Is there any way to know how close we are to the 1000 queries per hour limit? Does Onbase have any counter or flag accessible via API?
I know Onbase keeps the count, because obviously they have to verify the query consumption. The question is: does onbase offer access to this counter? How?
It becomes really difficult for me to keep my own counter (I have different apps spread all over the company in different servers) As a consequence, I just have to wait until I get the program exception (because I reached the limit and the query can't be executed) and then start a super-complex rollback procedure. Don’t forget I have many apps, and they will all have the same problem at the same time. It’s like you know you are going to have a problem, but there is nothing you can do until it hits you in the face, and then you start doing some “damage control”.
I can spend LOTS of time trying to have a centralized query counter among all the apps , and implement all sort of counting and validation mechanisms on my side... but in the end the ultimate truth is the Onbase query counter, and that's why I need to know if I can read it.
Any idea will be really appreciated. Please, please, please… I really need to hear you have something better for me.
05-04-2012 04:34 AM
Try using the "Log License Usage" function. It is disabled by default and not recommended to leave on because it generate a lot of queries and database activity.
To enble:
In Configuriaton --> UTILS --> CORE BASED SETTINGS.
Unfortunately there is not UI for viewing these results but you can query the the "logusage" table. Also, note that this is not realtime but near real time. It is a timer that executes ever couple of minutes to get the license count.
Hope that helps.
05-04-2012 06:49 AM
Hello Daniel and thank you for the answer.
I immediately tried to get more info on this setting and the only thing I found was this description in the Sys. Admin. MRG (version 11)
Honestly I don't get the whole picture... Can you please elaborate a little bit more on how can this option be useful on this scenario? Please keep in mind that I am looking for something that my applications can read automatically... like a flag or a counter, in order to know if they can continue doing queries or they need to "sleep" for a while.
Thanks again.
05-04-2012 07:37 AM
Hi Adrian,
From the API SDK:
The query count is actually stored in memory and is not accessible via any API method. The only way to know the count within your code is to manually count the queries in the code and keep an internal count. For the purpose of trying to determine if more blocks are needed, certain logging can be turned on. Contact your technical support team for assistance. (Note that if you are using Client Query metering, the count shows in the Status Window.)
05-04-2012 07:51 AM
Adrian, I know that you have the challenge of the queries coming from multiple applications. One idea that I can offer is to have a separate application, perhaps a web service, that you make an asynchronous call to to log when you make a query from each application. You can provide the service the application that made the call, the time stamp, etc. This can then be logged to a separate database or log file or something that you can later use for querying. This way the information is outside of the OnBase system and you are not turning on logging that could affect the performance of the system. You can make a service that is easily called from several types of applications and have a historical log so that you can use the information for analysis and try and be more proactive on when you will need more queries or when the issue may occur.
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.