I am doing research in order to use Acu4GL to possibly convert from Vision index files to SQL.  I would appreciate advice from someone with this experience.  Have just started research so any knowledge or suggest places to research would be helpful.  Thank you.

  • I did the same type of research and proof of concept for a previous employer.  Obviously a side note to your question but the research was spurned by the sales group and their perception that current prospects disapproved of the product using a "flat file" as opposed to a relational database. I said that to let you know that the major requirement for the switch was it needed to work. The concept wasn't a wholesale change out for every client just the clients that insisted on a SQL backend. We were a Microsoft shop so we only looked at using MS SQL server and in retrospect that was far too short sighted.

    Out of the box, the Acu4GL with MS SQL has a rather poor performance when compared to Vision files. With some tweaking in your COBOL code using a where constraint the performance can be improved dramatically. The concept behind Acu4GL makes extensive use of database cursors which are the reason for performance hits. Because of this, the more physical RAM on a server seemed to also help performance.

    Even though I haven't tested this concept, it is my understanding that Oracle handles cursors better than MS SQL and if I were starting over, I would have a look at Oracle as a backend instead of MS SQL.  

    By the way, the where constraint logic is easy to add and is completely ignored if the runtime is using a vision file instead of a SQL table. It's also rather easy to put some tables in SQL and leave others as Vision files.  

    I realize this is very brief as to an explanation but maybe it will help you get started.

    • What is the business need for this?  Such conversions are often undertaken to satisfy some urge to be modern.  This conversion represents a very large potential cost, possibly with very little payback for the business.  Is it better to spend money on this change, or on some other change that will add value to the business?  If you have not done so, make sure your answer to these questions indicates that a conversion using Acu4GL is prudent.
    • Is your data already normalized in your indexed files?  If not, you will spend a lot of time fighting this.  Look in your record layouts for OCCURS and for redefinitions of large pieces of file records.  ('Micro' redefinitions of single fields is not quite as big a problem, though it will still need to be addressed.)
    • If your business need is for ad hoc reporting and other access to the data, consider other possible solutions.  AcuXDBC is the SQL engine for your data as it sits right now in your indexed file database.  (Yes, you already have a database - you are just missing the SQL engine and a bit of metadata.)  If you need to have other processes access your data, consider using Xcentrisity Business Information Server to implement web services.  Most modern tools can interact with web services as easily as with relational databases, and web services bring the possibility of exposing your business rules to other processes as well.
    • I have observed more than one company (ISVs) go out of business trying to accomplish what you are contemplating (if you are contemplating a wholesale change to Acu4GL).
    • Better advice will result from, "I need to do <business requirement>. My current implementation is AcuCOBOL Vision indexed files.  What is the best way to accomplish <business requirement>?"

    Best regards,

    Tom Morrison
    Hill Country Software