We have moved to WordPress. Please click here to navigate to the new blog.
Thanks,
Martyn.
RevSoft UK - Martyn
Martyn's blog for the Revelation Software community, sharing ideas, news, views and more. NOTE - Views and opinions expressed in this blog are personal and do not necessarily represent those of Revelation Software.
Friday 13 May 2011
Tuesday 22 March 2011
How many engines does my O4W consume?
I recently ran into a problem where I was demonstrating O4W to a prospect and I ran out of available user counts. I have a 5-user system and I had been running up O4W, closing it, running up the desktop OpenInsight and then running up O4W again. I’d assumed that when I closed down O4W the user counts would be freed up, but as I was leaving the EngineSever running this was not the case.
This issue then provoked the usual question about how many O4W Web User licenses people should purchase for their web based systems. This is a terribly difficult question to answer, mainly because it depends on the time required to process each web request and this is dependant on the application and the type of request itself. If the request is a simple record read with only a few data items being returned, then it is going to be very quick and the engine could handle multiple requests of this type per second. However, if it is being asked to process a large report, then the engine will be tied up for considerably longer.
However, with the release of OECGI3, this becomes less of an issue as OECGI3 will utilise multiple licenses (OEngines) to process multiple requests. Furthermore, it will then queue any inbound requests if an OEngine is not free to process the request at that time. When an engine becomes free, it will then process the request as normal. That said, it is always advisable for developers to build in some form of monitoring where user counts are likely to be tight, so that peak usage times can be handled efficiently or additional user licenses purchased to cater for the peaks.
Now, if OECGI3 is able to consume multiple engines, and we are unable to control the number of web users accessing our system, AND we have both the web system AND the desktop system using the same OpenInsight user license (Oengine.dll file), then we could run into trouble.
Take the scenario where I have a 60-user licensed OI system. This is used to serve 50 desktop (office based) users and an O4W system that has been built to extend my application to customers over the web. I could easily get into a situation where I have 20-user licenses being used by O4W and this would leave only 40 user licenses for my office staff – i.e. 10 office users could be blocked from using the system – not a favourable situation.
Fortunately, the O4W developers have thought about this issue and it is easily addressed through the eserver.cfg file within OpenInsight. This file includes two lines towards the beginning of the file for managing both the maximum number of engines that the engine server (OECGI3 / O4W) can consume and also the time that the engine will remain active and able to process web requests.
MaxEngines is used to define the maximum number of engines that are kept alive and ready to process stateless connections. This means that the engine does not need to be spawned and closed down for each web request and it therefore handles more requests more efficiently. The default setting for MaxEngines is 10 (MaxEngines=10).
IdleTimeout is the length of time (in minutes) that an engine remains active and ready to process web requests before it is closed down. The default setting for IdleTimeout is 15 minutes (IdleTimeout=15).
So, in our example scenario above, we can easily use the eserver.cfg file to limit the number of engines available to O4W to just 10 and we can also control the amount of time that the engines remain active. By setting MaxEngines=10 and IdleTimeout=15, we can ensure that we will always have at least 50 engines (from the 60-user license) available to our desktop users.
I should also point out that O4W requires a minimum of 10-user licenses and you will receive a warning message stating that a 10-user license is the minimum requirement for O4W use if you try to use an engine with fewer than those required 10 users. In addition, the MaxEngines can be set to any number from 1 to 10 for that minimum number of user engines, or more if there are more engines available. If you set a figure greater than the number of user licenses in the engine (say MaxEngines=100 on a system with only 10 users) then O4W will use all of the engines available up to the maximum user count in the license (so 100 in the above example).
So, why was I running out of engines during my demo? Quite simply, I had the defaults set for MaxEngines and Idletimeout in the eserver.cfg file, and as I was not closing down my OengineServer all five of my engines (licenses) were being used and left open for the full 15 minutes. I then changed my MaxEngines to 3 and IdleTimeout to 5, mostly because I don’t need them open for 15 minutes) and all was fine. I now know that I always have two engines free for my desktop OpenInsight system and the remainder available for my O4W system.
This issue then provoked the usual question about how many O4W Web User licenses people should purchase for their web based systems. This is a terribly difficult question to answer, mainly because it depends on the time required to process each web request and this is dependant on the application and the type of request itself. If the request is a simple record read with only a few data items being returned, then it is going to be very quick and the engine could handle multiple requests of this type per second. However, if it is being asked to process a large report, then the engine will be tied up for considerably longer.
However, with the release of OECGI3, this becomes less of an issue as OECGI3 will utilise multiple licenses (OEngines) to process multiple requests. Furthermore, it will then queue any inbound requests if an OEngine is not free to process the request at that time. When an engine becomes free, it will then process the request as normal. That said, it is always advisable for developers to build in some form of monitoring where user counts are likely to be tight, so that peak usage times can be handled efficiently or additional user licenses purchased to cater for the peaks.
Now, if OECGI3 is able to consume multiple engines, and we are unable to control the number of web users accessing our system, AND we have both the web system AND the desktop system using the same OpenInsight user license (Oengine.dll file), then we could run into trouble.
Take the scenario where I have a 60-user licensed OI system. This is used to serve 50 desktop (office based) users and an O4W system that has been built to extend my application to customers over the web. I could easily get into a situation where I have 20-user licenses being used by O4W and this would leave only 40 user licenses for my office staff – i.e. 10 office users could be blocked from using the system – not a favourable situation.
Fortunately, the O4W developers have thought about this issue and it is easily addressed through the eserver.cfg file within OpenInsight. This file includes two lines towards the beginning of the file for managing both the maximum number of engines that the engine server (OECGI3 / O4W) can consume and also the time that the engine will remain active and able to process web requests.
MaxEngines is used to define the maximum number of engines that are kept alive and ready to process stateless connections. This means that the engine does not need to be spawned and closed down for each web request and it therefore handles more requests more efficiently. The default setting for MaxEngines is 10 (MaxEngines=10).
IdleTimeout is the length of time (in minutes) that an engine remains active and ready to process web requests before it is closed down. The default setting for IdleTimeout is 15 minutes (IdleTimeout=15).
So, in our example scenario above, we can easily use the eserver.cfg file to limit the number of engines available to O4W to just 10 and we can also control the amount of time that the engines remain active. By setting MaxEngines=10 and IdleTimeout=15, we can ensure that we will always have at least 50 engines (from the 60-user license) available to our desktop users.
I should also point out that O4W requires a minimum of 10-user licenses and you will receive a warning message stating that a 10-user license is the minimum requirement for O4W use if you try to use an engine with fewer than those required 10 users. In addition, the MaxEngines can be set to any number from 1 to 10 for that minimum number of user engines, or more if there are more engines available. If you set a figure greater than the number of user licenses in the engine (say MaxEngines=100 on a system with only 10 users) then O4W will use all of the engines available up to the maximum user count in the license (so 100 in the above example).
So, why was I running out of engines during my demo? Quite simply, I had the defaults set for MaxEngines and Idletimeout in the eserver.cfg file, and as I was not closing down my OengineServer all five of my engines (licenses) were being used and left open for the full 15 minutes. I then changed my MaxEngines to 3 and IdleTimeout to 5, mostly because I don’t need them open for 15 minutes) and all was fine. I now know that I always have two engines free for my desktop OpenInsight system and the remainder available for my O4W system.
Tuesday 15 March 2011
O4W Quick Start Guide Video Series
Well the midnight oil has been well and truly burning in my office these last few days, but finally the O4W Quick Start Series of videos are now complete and published to the web. You can gain access to the series from the new O4W Quick Start Guide page on our website.
The video series works through extending the Clinic application that we built in the desktop tutorial series and it provides us with a great example if extending a small ‘existing’ OI application. When I began the desktop series, I had only planned on web enabling one form as an example. However, when I saw what we achievable (at my level) with O4W I went quite a fair bit further.
I hope that you find the series of videos useful and I’ll welcome your feedback as always. I should also say a special thank you to Bryan at RevUS for his patience in answering some silly questions at times and helping over a couple of small hurdles.
The video series works through extending the Clinic application that we built in the desktop tutorial series and it provides us with a great example if extending a small ‘existing’ OI application. When I began the desktop series, I had only planned on web enabling one form as an example. However, when I saw what we achievable (at my level) with O4W I went quite a fair bit further.
I hope that you find the series of videos useful and I’ll welcome your feedback as always. I should also say a special thank you to Bryan at RevUS for his patience in answering some silly questions at times and helping over a couple of small hurdles.
Friday 25 February 2011
OI 9.2.1 - Source Code Management Video
Mike has just release a new video for those of you who have been asking about the Source Code Manager in OpenInsight 9.2.1. Mike takes a look at turning on the source code manager, working with a program at various stages, setting versions and also at using the module facility and how that hooks into the RDK for easier RDK upgrades.
The video is well worth a look if you are an OpenInsight developer and it can be found by clicking here.
The video is well worth a look if you are an OpenInsight developer and it can be found by clicking here.
Friday 18 February 2011
Get email notification of updates.
A number of you have recently mentioned that you have missed postings and this has come to light when asking about something that has been covered on my blog. Whilst I have the RSS feeds for people to sign up to, we do not always have the time to check these every day in our RSS Feed Readers and if you are like me and become faced with a list of 100 or more feeds, then it is easy to miss and important one.
For this reason, I have now added a new facility whereby you can subscribe to have an email notification sent through to you when a new posting is published. I think that this will be more user friendly as we all tend to monitor email more closely than our RSS Feeds.
Please let me know what you think, by way of a comment to this posting.
For this reason, I have now added a new facility whereby you can subscribe to have an email notification sent through to you when a new posting is published. I think that this will be more user friendly as we all tend to monitor email more closely than our RSS Feeds.
Please let me know what you think, by way of a comment to this posting.
Thursday 17 February 2011
Should you use the UD 4.7?
Earlier this week Revelation released OpenInsight version 9.2.1 and as part of that the Universal Driver 4.7 was released in both standalone and bundled configurations. But what does this mean for people running older Revelation Network Products or none at all?
Let’s begin with those of you not running a network product at all on your multi-user ARev or OpenInsight systems.
Multi-user applications written in OpenInsight versions prior to 9.0 or ARev 3.12 require the Universal Driver. It protects your data against corruption, increases speed performance and reduces downtime. More details about the benefits of the Universal Driver can be found here.
If your application is based on OpenInsight 9 then there is no need to purchase the Universal Driver. The Universal Driver NUL (Network User License) is already included with OpenInsight 9 and later. The Universal Driver NUL edition is compatible with all existing database files but it is only forward compatible with the OpenInsight 9 development environment. For mixed environments with OpenInsight 9 and any prior Revelation Software development tool, the for-purchase Universal Driver is required since it is compatible with all supported versions of the Revelation Software development tool.
If you are an existing Universal Driver (UD) user then you should also take advantage of the new Universal Driver 4.7. Below is a list of what has changed since these older versions:
Using the UD 3.0 -
Some of the other great features of the Universal Driver include:
So in answer to the posting's title - Yes, I think that the benefits afforded by the UD 4.7 means that everyone should be using the Universal Driver 4.7 wherever possible.
Let’s begin with those of you not running a network product at all on your multi-user ARev or OpenInsight systems.
Multi-user applications written in OpenInsight versions prior to 9.0 or ARev 3.12 require the Universal Driver. It protects your data against corruption, increases speed performance and reduces downtime. More details about the benefits of the Universal Driver can be found here.
If your application is based on OpenInsight 9 then there is no need to purchase the Universal Driver. The Universal Driver NUL (Network User License) is already included with OpenInsight 9 and later. The Universal Driver NUL edition is compatible with all existing database files but it is only forward compatible with the OpenInsight 9 development environment. For mixed environments with OpenInsight 9 and any prior Revelation Software development tool, the for-purchase Universal Driver is required since it is compatible with all supported versions of the Revelation Software development tool.
If you are an existing Universal Driver (UD) user then you should also take advantage of the new Universal Driver 4.7. Below is a list of what has changed since these older versions:
Using the UD 3.0 -
- Versions of the Universal Driver after 3.0 are compatible with all previous versions of Linear Hash files.
- NSIS replaces Install Shield as the installer.
- Support for unlimited-length record keys removed (click here for more details).
- FIX_LH routine has been enhanced. The "Fix GFEs" option on the Verify LH menu silently considers any records with keys greater than 50 characters long to be GFEs and data can be lost when running Fix GFEs. This enhanced routine removes the "50-character-throwaway" functionality and replaces it with the "552-character-save" functionality.
- The UD Manager (see note below) is now compatible with 64bit systems.
- The ability to select and unlock multiple records from the Universal Driver Manager is now available. Previous versions allowed only one record to be selected during each unlock.
- Server side install program now recognizes Arev 3.12 as a valid installation location.
Some of the other great features of the Universal Driver include:
- Only one REVPARAM file no matter how many different subdirectories you have with .LK and .OV files.
- Support for files larger than 4 gigabytes.
- Support for large frame sizes up to 100K.
- You can 'hide' your .LK and .OV from your users.
- The LHVerify facility is integrated onto the server side, allowing much faster performance.
- Registry settings and REVPARAM file created automatically.
So in answer to the posting's title - Yes, I think that the benefits afforded by the UD 4.7 means that everyone should be using the Universal Driver 4.7 wherever possible.
Tuesday 15 February 2011
OpenInsight 9.2.1 Released
Revelation Software released OpenInsight 9.2.1 today (incorporating O4W version 1.1), along with the Universal Driver 4.7. The 9.2.1 version is now available as a free upgrade to all OpenInsight WORKS members, and for everyone else an evaluation version can be downloaded from our OpenInsight Evaluation page..
This is the culmination of months and months of work and it really is another sterling piece of work by the team at Revelation.
More information can be found within the 9.2.1 readme file and the US press release can be viewed by clicking here. The EMEA press release can be found here.
This is the culmination of months and months of work and it really is another sterling piece of work by the team at Revelation.
More information can be found within the 9.2.1 readme file and the US press release can be viewed by clicking here. The EMEA press release can be found here.
Monday 14 February 2011
OpenInsight and NoSQL
As many of you will no doubt know, the NoSQL technology has been steadily gaining ground as organisations move to super fast and highly flexible technologies for their web solutions. These organisations include some huge names such as Google, Facebook, Amazon, eBay and many more.
So why do I mention this on a blog about Revelation Software?
Well, NoSQL presents OpenInsight developers (well any MultiValue developer) with a new edge to their sales pitch. NoSQL is now being referred to as ‘No’ SQL and also ‘Not Only’ SQL and most MultiValue systems, like OpenInsight, fit very nicely into the second camp. Not only do we have a flexible, scalable and fast multi-dimensional database (rather than a structured, slower relational database), but we can also play with SQL as well. In effect we bring the best of both worlds together and enable developers to do more, faster and therefore more economically.
MultiValue is not the be all and end all and neither are the Relational databases. Your MultiValue database is like your sports car hurtling along twisty country roads, whereas your relational database is like an articulated truck trundling efficiently along the highway with a large load – the truck can’t deviate easily but it is efficient at handling large loads.
In IT talk, this correlates to the sports car providing you with a system that can move and adapt with your ever changing business needs. This helps you to keep ahead of your competition and to maintain your competitive edge. Whereas the truck correlates to the data store that your business intelligence and data mining teams will work against.
Of course, both operate perfectly well in each others environments. Countless MultiValue systems have been written over the years and each efficiently and robustly handle thousands of users with millions of rows of data and likewise for the SQL based systems.
Putting an environmentally friendly slant on things, with your NoSQL based solution you can work more efficiently, benefit from the speed and sharding features and only work with the data that you 'need' to work with. Then, when you do need to work with the large datasets you can bring into play your SQL tools.
So back to our sports car and truck analogy. Your data will get to where it needs to get to, but the sports car will zip around and navigate the fastest route working with only the ‘NECESSARY data, whereas the truck will take the long route and lumber into the depot with everything - that depots delivery (your required data) and that of countless other deliveries (unnecessary but associates data). Smaller, refined and faster requests results in lower resource requirements, lower bandwidth use on both desktop and web systems and in most instances this correlates to a lower cost to your business.
So why compromise when you can have both? With MultiValue tools, like OpenInsight from Revelation Software, you can have the sports car with it’s small fuel tank and low running costs AND easy access to the truck when it’s needed.
For those of you who are not already benefitting from OpenInsight, please go to http://www.revsoft.co.uk/ or http://www.revelation.com/ to learn more about one of the leading MultiValue (NoSQL) databases. In addition, you can find out more about the NoSQL technology and what it has to offer in Prospectus’s new two part video.
So why do I mention this on a blog about Revelation Software?
Well, NoSQL presents OpenInsight developers (well any MultiValue developer) with a new edge to their sales pitch. NoSQL is now being referred to as ‘No’ SQL and also ‘Not Only’ SQL and most MultiValue systems, like OpenInsight, fit very nicely into the second camp. Not only do we have a flexible, scalable and fast multi-dimensional database (rather than a structured, slower relational database), but we can also play with SQL as well. In effect we bring the best of both worlds together and enable developers to do more, faster and therefore more economically.
MultiValue is not the be all and end all and neither are the Relational databases. Your MultiValue database is like your sports car hurtling along twisty country roads, whereas your relational database is like an articulated truck trundling efficiently along the highway with a large load – the truck can’t deviate easily but it is efficient at handling large loads.
In IT talk, this correlates to the sports car providing you with a system that can move and adapt with your ever changing business needs. This helps you to keep ahead of your competition and to maintain your competitive edge. Whereas the truck correlates to the data store that your business intelligence and data mining teams will work against.
Of course, both operate perfectly well in each others environments. Countless MultiValue systems have been written over the years and each efficiently and robustly handle thousands of users with millions of rows of data and likewise for the SQL based systems.
Putting an environmentally friendly slant on things, with your NoSQL based solution you can work more efficiently, benefit from the speed and sharding features and only work with the data that you 'need' to work with. Then, when you do need to work with the large datasets you can bring into play your SQL tools.
So back to our sports car and truck analogy. Your data will get to where it needs to get to, but the sports car will zip around and navigate the fastest route working with only the ‘NECESSARY data, whereas the truck will take the long route and lumber into the depot with everything - that depots delivery (your required data) and that of countless other deliveries (unnecessary but associates data). Smaller, refined and faster requests results in lower resource requirements, lower bandwidth use on both desktop and web systems and in most instances this correlates to a lower cost to your business.
So why compromise when you can have both? With MultiValue tools, like OpenInsight from Revelation Software, you can have the sports car with it’s small fuel tank and low running costs AND easy access to the truck when it’s needed.
For those of you who are not already benefitting from OpenInsight, please go to http://www.revsoft.co.uk/ or http://www.revelation.com/ to learn more about one of the leading MultiValue (NoSQL) databases. In addition, you can find out more about the NoSQL technology and what it has to offer in Prospectus’s new two part video.
Friday 4 February 2011
OI QSG - The Grande Finale
OK – So I was not done with the OpenInsight Quick Start Guide Video Series. As a few of you have rightly pointed out, I hadn't done anything with the table on the Consultations tab on the Patient Entry window. Well, that just happened to leave a nice topic for a finale, encore, or whatever.
The 24th lesson (could this now be 'learn OpenInsight in 24 hours') is a feature length lesson in which we look at creating the facility to capture consultations (appointments), hook them up to the Patient window and we create a report for our hypothetical receptionists and doctors to see appointments for any given day.
In this final video (before I look at O4W), the lesson will pretty much summarise the whole series by working with the Table Builder, Forms Designer, Indexes, User Interface Workspace, Scripts and the Report Builder.
I hope that you find the series useful and that this last lesson puts the cherry on the cake.
The 24th lesson (could this now be 'learn OpenInsight in 24 hours') is a feature length lesson in which we look at creating the facility to capture consultations (appointments), hook them up to the Patient window and we create a report for our hypothetical receptionists and doctors to see appointments for any given day.
In this final video (before I look at O4W), the lesson will pretty much summarise the whole series by working with the Table Builder, Forms Designer, Indexes, User Interface Workspace, Scripts and the Report Builder.
I hope that you find the series useful and that this last lesson puts the cherry on the cake.
Thursday 3 February 2011
O4W 'Run First' Option
Did you know, that you can enhance an O4W Report with the "Run First" option?
The O4W Report tool, in addition to all the flexibility it normally provides the user when generating a report, also allows you to specify a statement to "run first" before any other sort/selection is performed. This can be any R/List command that generates an active list, for example the report designer could pre-select data for particular users, or a particular month, or activate a previously saved list, before the O4W Report runs any user-entered selection criteria. READ ON.
Article first published in the January 2011 edition of the Revelation Software Newsletter.
The O4W Report tool, in addition to all the flexibility it normally provides the user when generating a report, also allows you to specify a statement to "run first" before any other sort/selection is performed. This can be any R/List command that generates an active list, for example the report designer could pre-select data for particular users, or a particular month, or activate a previously saved list, before the O4W Report runs any user-entered selection criteria. READ ON.
Article first published in the January 2011 edition of the Revelation Software Newsletter.
Subscribe to:
Posts (Atom)