Installing Ingres Enterprise Access in a system which already has anIngres InstanceIntroductionThis problem usually does not exist at a client site unless for some reason they require a conversionfrom an Ingres database to one of those DBMSs supported by the Gateway.However, it is obviously a problem in this case, and is a current problem for our developers.In the first place, the current GA version, EA 2.6, can only be installed into an Ingres instance that isat Version 2.6 SP5. Since all MyWorkplace personnel are using at least Ingres 2006 9.0.4, this meansthat EA must be installed into an additional instance. When this is done as a second instance, thenthe environment variable II_SYSTEM ends up pointing to the new instance and OpenROAD no longerworks.A vNode has to be created in the original instance, pointing to the EA instance, and all databaseaccesses referring to the SQL Server (say) database qualified with the vnode name and the databasetype (eg vnodename::databasename/MSSQL).As a further complication, the initial version of Ingres EA 2.6 contained a number of errors, the worstof which are corrected in SP1 although there are still some difficulties (There is a version 2.7 of EA inbeta test. A GA version of 2.7 has just been released for Sun Solaris x86_64 systems).Following is a set of instructions and annotated screen shots from an install of Ingres EA into asystem that already has an Ingres instance, in this case Ingres 9.2.0.Note that this all assumes use of Microsoft SQL Server as the EA database.Also note that there is a considerable difference between Microsoft SQL Server 2000 and MicrosoftSQL Server 2005, and a further though lesser difference between SQL Server 2005 and SQL Server2008. There is only anecdotal evidence that EA supports SQL Server 2008.Installing SQL ServerUnfortunately, there are differences between the ways Ingres EA deals with the different versions ofSQL Server. The differences are documented in the ReadMe documents that are included with theEA installation media.Add to this the fact that SQL Server 2005 and 2008 are available in no-cost “EXPRESS” versions aswell as the “Standard” and “Enterprise” versions. SQL Server 2000 is available as MSDE (similar to“EXPRESS”) and also as “Standard” and “Enterprise”. For both SQL Server 2005 and 2008, themanagement software (SQL Management Studio) available for the “Standard” and “Enterprise”versions is also available in a stripped down form for the “Express” version. For SQL Server 2000, nomanagement facility is available for the MSDE version.
It is probably sufficient for most test cases to use the “Express” version of SQL Server 2005 togetherwith its Management Studio. For thorough testing, in particular where schema changes are made incode, all versions should be tested as there are differences in simple things between versions.Whichever version or versions of SQL Server are to be used, one installation at least must beinstalled prior to installing Ingres EA so that the appropriate Client software and ODBC drivers arepresent in the machine where EA will be installed. If this is a different system from where SQL Serveris installed, be sure that the correct Client version is installed on the system that will contain EA.Also be aware that where the SQL Server installation is NOT in the same machine as the Ingres EAinstallation, the SQL Server system must be installed to allow “Mixed mode authentication”.Then in the technique used by MyWorkplace, the “ingres” user must be setup in the SQL Serverinstance as a db owner and preferably also as a db administrator, with the same password as theingres user on the system in which EA is to be installed.Use the SQL Server Management studio (if you have SQL Server 2005 or 2008), signed in with SQLServer authentication as the Ingres user, to create a database called (say) “mwp”. You can importany required database now or later in the process if desired. Most MyWorkplace personnel will endup with multiple databases for testing etc. It is best to call the database something that representsthe client name.Preparing for EA InstallationUse a CD containing the SP1 version to upgrade that instance. This will probably call for a re-mountof the initial CD at some stage and this is best managed by using CDs rather than images on the localdisk or even on a DVD.Obtain the base EA installer from a suitable place – in our case themwpsvrPublicDocsmwpdvd2009Client2006InstallOpenROAD2006ea folder. Burn the contentsto a CD.Obtain the SP1 version of EA frommwpsvrPublicDocsmwpdvd2009Client2006Installea260706int_w32_sp1_97c or directly fromthe Ingres downloads site. Burn the contents to another CD.Right mouse click on “MyComputer” and select “Properties”. Select the”Advanced” tab and then the“Environment Variables” button.Make a careful note of the existing value of “II_SYSTEM” because after the installation, you will haveto reset it to this value. If you followed the MyWorkplace standard, the value will bec:IngresProgramsIngresI6. If not it will be whatever you allowed/set it to be.Be sure that the entire existing Ingres instance is shut down. There must be no ii* programs and now4glrun or w4gldev programs running as services or processes.Installing Enterprise Access (SQL Server gateway)For some reason, the installer requires both the EA 2.6 SP1 disk, and the previous EA 2.6 disk, atleast since XP SP3 has been applied to a system.
Both CDS will try to Autoplay when inserted so if you do not want then hold down the left Shift keywhile you insert the CD and hold it down until all CD activity stops.Insert the EA 2.6 SP1 CD and let it autorun.Select “Next”.Change the Installation Identifier to EASelect “Next”
And “Finish”The installer will then go into full screen modeAfter a bit, it may prompt for a CD change.
Switch to the original EA 2.6 CD.If you were asked to switch CDs, after a while it will prompt for a CD switch again. Put back the SP1CD and it will then continue to the end.At this stage, the gateway is installed but now must be configured.Configuring the gatewayDo not reset II_SYSTEM yet – leave it pointing to C:IngresProgramsingresEA.Create an ODBC DSNYou now need to create the ODBC entry that the gateway will use to access the SQL Server database.This ODBC DSN has to be a suitable SQL Server entry. We usually call it by the same name as thedatabase to which it gives access. Hence if we created a database called “clientABC” then we wouldcall the DSN “clientABC”. This is not mandatory but keeps it all simple.If you want multiple databases, then you must have multiple DSNs.Remember that you MUST use SQL Server authentication for this, NOT Windows authentication -hence the need to create the SQL Server userid first.Test that the DSN connects properly.
Create an Ingres EA gateway aliasYou now need to provide a link between the database name that will be used in the Ingres side ofthe gateway, and the DSN name that accesses the SQL Server database. This is done with theGateway Alias Utility.In our example, the DSN is called clientABC so we probably want the same name to be used in allaccesses from the Ingres side of things.From the startbar, select All Programs/Ingres/ Enterprise Access [II]/Gateway Alias UtilityThe DB Alias is the name that will be used by Ingres programs.The DB Name is the name of the ODBC DSN entry that points to the SQL Server database.
And select “Add”. When done, select “Close”This actually generates an entry in the EA instance config.dat file.The alias is now setup.Configure date formats and empty dates etc.There are a couple of ways to do the next part but it is probably easiest to use VDBA and VCM.In the EA instance, either from right mouse click on the IVM icon or via the menus, get the VisualManager up and select the Parameters tab.Using the Add button, add parameters:II_DATE_FORMAT 35II_DATE_CENTURY_BOUNDARY MULTINATIONALCheck the TimeZone name is correct
Now select the Visual Configuration Manager iconAnd then open the Gateways entry.
And “Close”The gateway is now configured but the database itself may need modification.
SQL Server database modificationIn order for the database on the outside of the Gateway to appear as if it was an Ingres database, aset of tables and views have to be installed on the database that simulate the Ingres systemdatabases. That way interrogation of what seems like Ingres metadata returns meaningful results toIngres programs. The tables and views all have names starting with ii or ii_ and are essentially thesame as the “system tables” in a native Ingres database.These tables and views are generated by a gateway program called the Gateway Catalog Utility. ForWindows it is available as an OpenROAD image with which, unfortunately, I have had limitedsuccess. There is also a cmd line version which appears to be easier to get working – iigwcatmss.This can only be run in an environment where II_SYSTEM points to the EA instance.Start the Instance first using IVM or whatever.Where the database being used has been restored from an existing gateway-client database, thenecessary views and tables are usually already set and the utility does not require re-run.To be used successfully, the SQL Server database (empty or otherwise) must be owned by the ingresuser who must also have all the required permissions to create, delete etc. The tables and viewsgenerated will all be owned by the Ingres user, where the application tables will be owned by dbo.Setting permissions etc is quite different between SQL Server 2000 and SQL Server 2005 so for thispart, if you need to do it, read the manuals that are in the Docs folder on the SP1 CD – “GettingStarted” is a good one - and get an SQL Server expert involved (if you are not such an expert).Final bits and piecesNow is the time to reset the II_SYSTEM environment variable to point to the previously installedOpenROAD instance.You also now need to add another vNode to your original instance, pointing to the EA instance.Once the vNode is created, you have to navigate to the MSSQL entry under the Servers node andRight mouse there and select Connect. You cannot just connect directly using the node name.Also be aware that all references to the database from an OpenROAD application will have to be ofthe form <vNodename>::<databasename>/MSSQL.The answers to most problems are somewhere in the documentation.