Category: OI9


Debugger_Dump

Environment Settings screen shot

Environment Settings Screen

OpenInsight 9.2.1 saw the introduction of a Debugger Intercept facility and this can be used to create a Debugger Dump file.

The debugger_dump procedure is designed to be executed from within a “debugger intercept” procedure which is triggered when the engine hits a debug condition.  The intercept can be setup by simply openning the Database Manager and chosing the Environment Settings option from the ‘Database’ menu.  On that screen the Intercept radio button can be selected (as shown in the graphiv opposite).

The debugger intercept procedure by default is called “Debugger_Replacement” and an example version is supplied with OpenInsight and you can change this to your own procedure if you wish by updating field 54 of your application’s environment record (see the ENVIRON_CONSTANTS insert) or use the dialog above.

Once in the intercept routine you can look at the contents of any variable in the broken program with the debugger_Fetch() function.   An example of how this works can be found the the debugger_dump() procedure, also supplied with OpenInsight.  This simply attempts to write out the local and global variables to a text file.

One thing to remember about working in the debugger intercept routine is that the engine is already in an error state – your code should do the minimum possible to handle the error and then return – doing lots of screen updating, displaying messages and stuff probably isn’t a good idea.   When we use this we normally write the errors out to a log or send an email and then return.

Thanks to Carl Pates (Sprezzatura) for this article.

 

My time last week learning about the new features in OpenInsight 9.3 and the plans for version 10 and onwards was motivational to say the least.  As the team pile more and more functionality into the version 9.x releases for both end-users and developers, it pains me to have discussions with people still running version 8.0.8 (and older) and who are missing out on all of the good things in 9.x.  However, I understand and respect the reasons for continuing to use these older versions.  Reasons which, all too often, revolve around the annual license fees and the upgrade process itself.

The later is something that is not too difficult, but I appreciate that it does involve some work in applying the upgrades and then QA testing before creating and releasing the upgrade.  Stepping up from 7.x to 9.x can involve some form issues, but SRP has a nice utility to assist with that issue.  I’ve personally kept my OpenInsight system up to date with the betas and subsequent commercial releases and my applications have upgraded without any issues.  That said, my contact manager (my main application) was written initially in version 9.0, so the upgrade path through the 9’s has been flawless and issue free.

Anyway, the question of justifying the annual license fee is the topic of this posting.  It goes without saying that end-users like a one time license purchase and then the option to purchase upgrades as and when, but that business model is now behind us.  The OpenInsight 9.x licensing model enables Revelation to continue to invest in the product suite, develop new features as you need them and to plan future development.  At the same time, it enables you (our WORKS subscribers) to, amongst other things, have the freedom to maintain your deployed systems without the overhead of buying upgrades from Revelation for each client every time you want to upgrade them.  At the very least this would invoke extra administration for everyone and worse still it might result in you having to support multiple versions of OpenInsight where some users upgrade and others do not.

So, to help customers with their decision to upgrade, Revelation has packed the 9.x releases full of brand new technology and new features.  Along with a myriad of fixes, these new features go a long way to enhancing the user experience and empower users to do more things and more easily.  It is a number of these new features and enhancements that I have pulled together into my updated Summary of the Benefits to End-Users in the OpenInsight 9.x Series white paper.  Touching on the more salient points that are of most interest to end-users, this document is designed to offer Revelation VARs with a bulleted list from which they can pick the golden nuggets that will appeal most to their end-users and then the VAR can expand on those points when discussing, negotiating or marketing the upgrade to the wonderful world of OpenInsight version 9.x.

The white paper will not be applicable to new customers and for that reason I will not be posting it online for download anywhere.  So, drop me a line and I’ll email you a complimentary copy in .pdf format.

Thank you to everyone who is currently beta testing the 7.2 to 9.2 one step upgrade, available from the WORKS area on www.revelation.com. This will become an invaluable resource for anyone looking to move their end-users from an older version of OpenInsight to 9.2 and your feedback during this beta phase is very much appreciated.

As a result of the current testing, a new version (Release 2) has been published to the WORKS area. This release sees an enhancement to resolve an issue where the SYSREPOSIX table could become damaged and a ‘Rebuild system Index’ would then be required to resolve the issue. OpenInsight WORKS subscribers can download the new file from the WORKS area – click here.

>

We have recently had a couple of people asking about configuring OpenInsight systems to run in a thin client environment, most notably Citrix and Terminal Server.

Following assistance to get the systems working, the clients wanted to better understand the working of the system. My experience indicates that getting these systems to work on one site is not always a recipe for success on another site and often an exact duplicate of a site at a new site results in a system that needs further configuration to get it to work correctly – go figure!

It is for this reason that, whilst we know that OpenInsight runs fine in these environments (once correctly configured) and Revelation even have some Citrix systems hosted internally, they are still officially labelled as unsupported. This sometimes results in consultancy services being needed and onsite investigation to resolve some of the more stubborn issues.

However, to better help Revelation VARs and users to understand these environments from an OpenInsight installation perspective, Sprezzatura have written and published a very useful blog posting. You can gain access to it at www.sprezzatura.com and I would highly recommend all VARs take a look and anyone else involved with or considering a thin client based OpenInsight system.

>

Did you know that OpenInsight release 9.1 includes a form and stored procedure called TEST_NEW_EDITTABLE_STYLES. This test form provides examples for programming the new edit table styles and the associated stored procedure has all of the code exposed for developers to review how things are done.

Some of the examples included in the test form include:

  1. Options button within a cell that calls the options event for the edit table control.
  2. Using vertical styles.
  3. Forcing uppercase in rows.
  4. Multiline processing.
  5. Including drop down controls in cells, columns and rows.
  6. Including drop down edit controls in columns.
  7. Using a Multi-Line Header.
  8. How to change the test in the row buttons (all buttons and also only some buttons).

The test form can be run from the Application Manager or the Form Designer in the normal way. The accompanying stored procedure can be viewed using the System Editor by opening the TEST_NEW_ET_STYLES stored procedure, it too can be opened from the Application Manager window.

>

It would seem that .NET integration is back on the hotlist again judging from a few calls that I have had from some of you recently. Whilst requirements vary, I thought it timely to touch on a new window that is included in version 9.1, entitled the .NET Explorer.

The .NET Explorer enables you to browse for a .NET assembly and then choose one of the Classes located within that assembly. Once selected, OpenInsight then interrogates the Class to expose pretty much everything that you are likely to need to interface to that class from within OpenInsight.

There are six tabs of information that OpenInsight extracts for you. These include the classes properties, methods, fields, events and interfaces. The sixth tab then shows a representation of the default .NET class (as applicable) along with it’s properties and values.

There is too much information to run through in this posting, but I will be happy to show anyone this useful window via a WebEx session – just drop me an email and I’ll schedule a mutually convenient time.

>Revelation were pleased to release the OpenInsight version 9.1 beta software overnight and those of you who subscribe to the WORKS beta program should have now received an email from Mike.

This is yet another major release from Revelation and one that comes hot on the heals of version 9.0 just five months ago. This release sees over 4,000 new and enhanced items, many of which are user request driven. Just some of the highlights include better .Net functionality, EditTable enhancements, the inclusion of graphics in menus, Macros for ARev32 and CTO and there is much more that will be listed in the accompanying readme file.

The installation of 9.1 is considerably different from previous installations, so please be sure to review and follow the new 9.1 Installation Guide when you come to install your copy of 9.1, beta or commercial release.

Just recently, I have received an increased number of telephone calls with regards to running OpenInsight on Virtual Servers (or virtual machines), for example VMware (being the most popular at the moment), Microsoft Virtual PC, etc.

In the main, there are no real technical issues that I am aware of in running OI 8.x and 9.x in these environments and there shouldn’t really be any issues as the virtualisation software ‘should’ take care of sandboxing the server instance and any communications between virtual servers, for disaster recovery etc. That said, Revelation’s testing of these environments is yet to be concluded and, for that reason alone, they remain in the ‘unsupported’ category for the moment.

However, there are OpenInsight licensing questions to be addressed, the answers to which depend greatly on the reasons for the virtualisation, and this is the primary point of this posting.

There are probably more scenarios applicable to this question than those in this article and I will post more details here as they come to light. The three usual reasons that I am asked about though, are covered below:

  1. Sandboxing
    The days of buying a new server for a new application are over and this appears to be extending to a move away from buying a dedicated application server and a separate data server. Instead, organisations are buying one large and very well resourced server that they then break up into multiple virtual servers. This enables IT staff to sandbox applications, removing the worry about one application or set of data files bumping with another and it also eases the daily backup process. However, one of the main reasons for this move is to tick the green environmental box by reducing the cost of building the server in the first place and, more importantly, in reducing the increasing and ongoing energy costs associated with running several machines compared to one machine.

Sandboxing OpenInsight in this way is perfectly fine. You only have one instance of OpenInsight installed in one place and you are therefore operating within the license.

  • Disaster Recovery
    Talk to anyone involved with selling virtualisation services, software or hardware and you will quickly find yourself steered into talking about disaster recovery. This appears to be one of the main reasons why IT Managers in larger organisations turn to virtualisation. Again, OpenInsight will usually behave perfectly well in such an environment as (if supported by the virtualisation solution) it is normally the virtualisation software that will handle the communications between the virtual servers to maintain a mirror or whatever the organisation requires to facilitate an automated failover solution. OpenInsight just resides in both places as per any normal installation.However, this scenario usually involves OpenInsight being installed in two or more locations, or a full copy of the software being copied into more than one location. Even though the system is often designed and configured to run only one copy at a time (as a cold spare) and only one is available to end users at any one time, it IS technically a violation of the OpenInsight and Universal Driver licenses. In many situations, duplicate licenses will need to be purchased from Revelation Software, regardless of what the virtualisation salesperson tells you, so I strongly recommend that you contact your usual Revelation representative for clarification on your configuration.That said, Revelation always recommend the Universal Driver Heavy (UDH) as the optimal resource for maintaining a disaster recovery solution for any OpenInsight system. Not least because the UDH provides real time mirroring of Linear Hash files. Whereas, technologies like Microsoft File Replication Services and Volume Shadow copy were designed for periodic replication of static documents. These technologies aren’t capable of, nor optimised to efficiently mirror frequently changing Linear Hash data. A full white paper expanding on the reasons why the UDH 4.6 should be used as the premium solution and the various configuration options will be following over the next few weeks. In the meantime, you can find out more about the UDH on our web site.
  • Load Balancing
    The use of virtualisation for load balancing is one that I am not over familiar with, but it has come up a couple of times during discussions about OpenInsight and virtualised servers. Furthermore, the issue becomes more complicated as there seem to be many different ways of going about this. For instance, some people have spoken about setting up a system with a shared central engine with processes being spawned on other machines, whilst on other occasions people have talked about load balancing the front end servers each with their own copy of OpenInsight.As I understand it, in most cases the virtualisation solution maintains the virtual servers/machines on one or more physical servers and some other solution (or code) manages the inbound user request and the levels of available resources across the virtualised system. This solution then passes the request to the virtual machine with the most available resources at that time.This scenario, especially where front end application servers are load balanced, often requires multiple copies of OpenInsight to be running in multiple locations. In this instance, there is a clear business benefit where users are accessing (or have access to) each instance of OpenInsight. For this reason, the appropriate number of OpenInsight and Universal Driver licenses must be purchased to cover each instance on each virtual server/machine. Again, I would recommend talking to your usual Revelation representative for clarification on your configuration.

Please remember, if there is any doubt about your proposed installation – call your usual Revelation representative with specific configuration details for clarification of what licenses you will need.

>JSON

>Did you know that from OpenInsight version 9.0.1 you can utilise JSON from within your OpenInsight applications. During the recent RUG in London, Mike showed how easy and fast JSON is within OpenInsight using a round-trip RSS feed example. JSON is becoming more and more popular as a replacement for XML as it is smaller, faster and easier to use. This is yet another check box that you can tick on your sales proposals when asked.

“JSON (pronounced /ˈdʒeɪsɒn/, i.e., “Jason”), short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects).” (Source – Wikipedia – http://en.wikipedia.org/wiki/JSON).

>Did you know that you can use the WebOI Commuter Routine Generator to create commuter routines for any OpenInsight window that is currently based on Quick Events and Scripts. The use of commuter routines is widely considered to be best practice and that leads to an easier to maintain, faster to operate and more organised application. At the present time the routine can be executed from the WebOI utility in the new IDE or from the System Monitor.

The commuter routine generator includes an option to create ‘case statement stubs’ in the commuter routine for all controls and supported events on the form. You would usually only select those that you want to include, but there might be times when you would want them all. When checking the box, OpenInsight (from version 9.0.1) will not only double check that you really want to create the empty case statement stubs along with your define stubs, but it will also notify you of how many stubs will be created so that you can make a more informed decision.

Follow

Get every new post delivered to your Inbox.

Join 67 other followers