OI10 Alpha Update

didyouknowoiA few people have recently asked me about the release of the OpenInsight 10 beta and I’m afraid to confirm that the beta will be a few more weeks away BUT I have received a brand new internal alpha, which I hope will be published on the WORKS downloads shortly.

I’ve been working hard with the alpha and I have uploaded a fair number of things for the technical team to look at.  I am pleased to say that the vast majority of these have been responded to and a lot are said to have been addressed in this alpha.  I’ll therefore be working through the alpha to confirm these fixes and then it’ll be back into building my clients application again.

So why this posting?

Well this alpha is more than just fixes and interface enhancements.  It’s a heck of a lot more and something that I have found really exciting because it’s a topic that I have been banging on about for ages – PERFORMANCE.

Several of the team have been working on different areas of OpenInsight to gain better performance.  At conference Mike and Bob spoke about better use of caching and optimised tables as part of the conversion process.  However, recent work with clients around the world and also scheduled code reviews have resulted in much, MUCH more than I had expected.

For example, using memory hash tables and single pass logic, Bob has recently managed to rebuild a 9 million row table in about 10 minutes.  Preliminary tests indicate that OpenInsight 10 is now up to 42% faster than OpenInsight 9.4 at these sort of operations following these changes.  Revelation have indicated to me that users with multiple indexes should see an even bigger jump in performance.  For example, a 9 million row table with five indexes will now only take one pass through the file instead of five passes and thereby give a saving of 40,000,000 reads. 4 x 9,000,000 is 38,000,000 😉 

In addition, Revelation have also reviewed and optimised the ! code to not perform spurious IO operations and index transaction node splits per the Sprezz blog entry here http://sprezzblog.blogspot.co.uk/2009_12_01_archive.html. These changes should eliminate quite a bit of overhead in the system and make index updates faster.

Obviously every application will behave differently but with these and other more general performance enhancements, there really should be some good reasons for end users and developer to want to take a long hard look at OpenInsight 10.

I know that a lot of people have been talking about waiting for a point release, but with these performance enhancements, I’d recommend all OpenInsight developers to begin thinking about their move to OpenInsight 10.  This should begin with a review of Carl’s OpenInsight 10 blog in which he has documented a large number of the interface and code enhancements.  WORKS subscribers can also take a look at the Alpha, although I would wait for the next one and, even then, consider this as a look at what is coming and use it to make plans for your future application conversion and how you might be able to use the interface enhancements in your applications.  This will then put you in a great position to dive into the beta when it comes out and make sure that your needs are catered for with regards to your specific application conversion.

For those interested in such things, the tests noted in this article were undertaken on a Surface 4 running the i7 processor.  The latest OpenInsight 10 alpha was installed with the Universal Driver 5.0 and a real world 9 million row table supplied by one of our customers.


OpenInsight Authorisation Process

reauthI have recently been asked several times about the OpenInsight Reauthorisation process, how easy it is to use the process and what issues people might face.

The process is extremely easy when planned for because you have to get everyone off of the system and you need to make sure that there are no locks on the system, services running, etc.

The OpenInsight License Renewal and Installation/Upgrade Authorisation Process .pdf file that is located in the Documents folder under your OpenInsight installation contains ‘full’ details, but I have created a couple of videos and uploaded them to my usual RevSoftUK YouTube channel.

There are two videos.  The short video shows how quick and easy it is to authorise systems when the correct procedure is followed.  The longer video goes into a little more detail about why we need this process and some of the usual gottchas that we come across.  The longer video also has a couple of annotations about running the reauth.exe routine with administrator privileges if users don’t have adequate permissions and also about restarting the OEngineServer and other services that might be needed to run the application.

I hope that these videos are useful to developers and end users when reauthorizing their OpenInsight based systems for the annual renewals and also when adding additional users.

This process is applicable to OpenInsight 8.0.3 to 8.0.8, 9.x and it might be different for other versions of OpenInsight (i.e. the forthcoming OI10).


We were recently approached by one of our OpenInsight supported clients with an OpenInsight executable which had been quarantined by a piece of security software.  The file which is simply called LB.EXE was flagged up as a ‘possible’ ransomware virus.

With all of the recent headlines about ransomware programs and the nightmare that they pose to people who open the ransomware file, I jumped on this one straight away.  A search on my computer quickly found the LB.EXE file in my copy of OpenInsight 9.4.  I googled LB.EXE and found no reported issues and running it through Norton and ThreatExpert also showed no issues to be concerned about.

My next stop was the support team here at Revelation Software and I learned that LB.EXE is a legitimate file that was used for the Database Manager in older versions of OpenInsight and it is therefore a legacy program that can now be removed if you are running version 8.x or 9.x of OpenInsight.

If you are still running older versions of OpenInsight, I would strongly recommend looking at upgrading to version 8.0.8 at the very least and preferably OpenInsight 9.4, being the currently supported version of the development suite.


Furniture Retail Operations Group Uses Revelation to Help Power its Business

The September 19, 2016 issue of Database Trends and Applications features an article written by Stephanie Simone titled Furniture Retail Operations Group Uses Revelation to Help Power its Business.

The Furniture Retail Operations Group (FROG) provides innovative, yet easy to use IT solutions for furniture and appliance stores.  Its mission is to create reliable and cost-effective methods that allow home furnishings retailers to operate more efficiently.

The company’s KISS system is a fully integrated point-of-sale solution for Windows built by experts in furniture operations to make companies more efficient in how they operate. In order to get the most out of this system, fix problems, and create new solutions and projects, FROG uses Revelation Software’s OpenInsight solution.

The OpenInsight Windows application is a big part of FROG’s ability to run its business, according to David Hatcher, director of software services at FROG.  Keeping the system running 24/7 to support customers means FROG needs a foundation that’s reliable and Revelation delivers that.

Choosing OpenInsight
“OpenInsight is what handles the data,” Hatcher said. “The nice thing is that it has a CGI (common gateway interface) for web-based data handling. An OpenInsight windows interface takes the same data from the internet, from an app, from a browser or from within the built-in Windows application all at same time, in real time. From any device, we can get into the system to manipulate data, keep track of customers, and do what need to do to keep business going.”

FROG’s data management system was created in the late 1980s on PICK mini-computers and Revelation technology helped the company move from that platform to the first DOS-based system.

“We’ve been able to maintain same data structure through those decades. Some code from the old Pick system was even ported to the DOS system and then later to Windows,” Hatcher said.  “The data control on even the new capabilities we develop often has 25 years of testing behind it so we don’t have many of the problems that can come up with new development using a new system.”

The ability to keep the environment stable while having the flexibility to evolve and change has been a key reason why FROG continues to utilize Revelation’s systems, he said.

Evolving with Revelation
In addition to using OpenInsight at the back end for many years, FROG more recently began using O4W (OpenInsight for Web) in its web applications.

“Most of our new development is on O4W,” he said.  “As we move more and more of the system to apps, eventually our system will eventually be 100% application-on-cloud and we’ll have no need for Windows anymore.”

The latest initiative FROG has underway involves OpenInsight and Google geocoding and tracking to route and monitor trucks, according to Hatcher.  “It has heat maps of where our customers are for ad purposes and we can see anything we want to know about customers through these maps which are linked into apps suite.”

Meeting New Goals
By working with Revelation, FROG has been able to shift technologically into anything, anywhere, Hatcher explained.  “The advancements with CGI and Revelation’s O4W keep data flowing out to the latest and greatest apps and that’s been extremely useful.”

Revelation is always ahead of the curve, keeping up with latest trends and sensing where the market is going, he noted.  “They react to new capabilities the technology sector is developing but also knows what to retain so we can keep the same database and stay on the leading edge,” Hatcher said.

‘The advancements with CGI and Revelation’s O4W keep data flowing out to the latest and greatest apps and that’s been extremely useful.’

Because of Revelation’s innovations and foresight it has never made sense to switch to another provider, he said.  Revelation’s ability to stay with the same data structure, move through several transitional kinds of interfaces, and ability to provide constant upgrades, has made it easier on FROG to keep its system going.

“We didn’t have to rewrite for all the changes,” Hatcher said. “The ability to transition has been greatly simplified by keeping data separate from the user interface as technology changes.”

What’s Ahead
Preparing for the future, FROG is in the process of enhancing its database to make sure it runs faster, and apps perform reliably and smoothly as the company runs into more internet networking situations, Hatcher explained. The plan is to be able to offer its services exclusively through apps in the cloud.

“Building apps for the system was a big step forward and we’re looking forward to having the ability to go into back end with a new engine Revelation is working on,” Hatcher said.

<Article sourced from Revelation Software’s monthly newsletter>

OpenInsight 10 Features

Assertions in Basic+

For those of you who have done any Java or C/C++ programming in the past, assertions may be a familiar programming construct.  For those who have not, an assertion is simply a way of embedding tests in your programs to check that a condition is true: if the condition evaluates to false then the program stops to display a message informing you of the failure, and presents a set of choices for dealing with it.

Assertions are basically “sanity checks” that you can employ anywhere in your programs to ensure that the state of your data is as you expect it.  You should use normal error-handling code for errors you expect; you should use assertions for errors that should never occur.

Read On…

Understanding the Linear Hash SIZELOCK parameter and Best Practice Usage

The sizelock parameter is used to control the automatic resizing of the primary address space.  A sizelock of “0” indicates that a table should be allowed to expand as more rows are entered, and become smaller as rows are deleted.  A sizelock of “1” indicates that a table should be allowed to expand, but should not become smaller.  This is useful in cases of a presized table, when a preliminary expectation is for the table to hold 1000 rows, but more rows may be added.  If a sizelock is set to “2” or more, the table is not allowed to expand or contract.  A sizelock of “2” is very important during a select operation executed on a network, when one user is searching a table for information while another user is entering new data.

Read On...

Running two instances of OI10

OK, so this posting is more as a reminder for me going forward than anything else.  Last weekend I was working with the OI10 Alpha and I wanted to copy things from one instance of OI10 to another. However, I was blocked because I was only permitted to use one engine and it was being used by the first instance of OI.  I thought that this might have been a restriction but I reported it anyway.

It turns out that this is another setting in the new .rxi file that is used by OpenInsight when first launched.  I have a couple of .rxi files on my system, so the first challenge was to work out which one I needed to change.  This is pretty easy to work out, you just follow these rules:

  1. If the RX switch is used in the shortcut, you’ll use that .rxi file.
  2. If none is defined then OI10 will look for a .rxi file with the same name as the application that you are loading with the /AP switch.
  3. If there is no application defined using the /AP switch, then Oi10 assumes SYSPROG and it’ll use that .rxi file.

So, after a quick check, I’m using SYSPROG, or the SYSPROG.rxi file in my bin32 folder under the OI installation.

I initially guessed that my issue was the <singleInstance> entry which was set to 1, but Carl quickly put me straight and told me that heading will shortly be changed.  In the meantime, he’s told me to look at the <serverName> entry in my .rxi file.  Because I have a serverName set, I am effectively trying to use the same engine as the first instance and Oi behaves correctly and stops the session.  All I need to do is clear the entry by setting it to nothing and then OI will launch as many instances as my license count permits.

Starting OI10 is fully documented in the ‘OpenInsight 10 Presentation Server Object Model’ documentation.  This is a work in progress document that is already into 272 pages but today has been yet another reminder of the numerous options that the guys are exposing to developers when launching OpenInsight.

Consider the .rxi file as a more powerful OInsight.ini file and you won’t go far wrong.  Just don’t do what I did and blindly dive in.  Please take some time to better understand the .rxi files as noted on Carl’s OI10 blog and also in the paperwork when eventually published and released.

For now, I’ll be back into my OI10 Alpha project later today for more learning.