The SAP IQ (IQ) documentation states that installing SAP SQL Anywhere (SQLA) and IQ on different machines avoids potential start-up problems.  The key word here is “potential” as it doesn’t necessarily mean that you’ll encounter problems.  There may be a situation where you need to install SQLA and IQ on the same computer (for example, installing SAP BusinessObjects because it embeds SQLA), so understanding how those “potential start-up problems” can arise will help you avoid them.

SAP IQ embeds the SQLA product, meaning that the SQLA database server binaries are installed alongside the IQ binaries. On a default Windows installation for IQ16, the SQLA binaries are installed in C:\sybase\IQ-16_0\Bin32 and C:\sybase\IQ-16_0\Bin64 (one folder is for 32-bit binaries, the other for 64-bit).  Unix installations have a similar directory structure.

What you need to keep in mind is that the IQ installation modifies your computer’s PATH environment variable to include those two directories (at the beginning of PATH), so if you were to launch a Command Prompt and type “dbisql.exe”, the GUI tool Interactive SQL will launch and its startup location is C:\sybase\IQ-16_0\Bin64 (assuming a 64-bit operating system).  The same applies to all the other SQLA binaries.

Now, the SAP SQL Anywhere installation also modifies your computer’s PATH environment variable to include its binaries directories (this time at the end of PATH).  On a default Windows installation, the SQLA16 install adds these two folders to the PATH: C:\Program Files\SQL Anywhere 16\Bin64 and C:\Program Files\SQL Anywhere 16\Bin32.

Understanding what each install program does will help you prevent start-up problems.  Here are some examples of how the PATH environment variable would look like (assuming 64-bit Windows machine):

  1. Installing SAP IQ only

    C:\sybase\IQ-16_0\Bin64;C:\sybase\IQ-16_0\Bin32

  2. Installing SAP SQL Anywhere only

    C:\Program Files\SQL Anywhere 16\Bin64;C:\Program Files\SQL Anywhere 16\Bin32

  3. Installing SAP IQ followed by SAP SQL Anywhere

    C:\sybase\IQ-16_0\Bin64;C:\sybase\IQ-16_0\Bin32;C:\Program Files\SQL Anywhere 16\Bin64;C:\Program Files\SQL Anywhere 16\Bin32

  4. Installing SAP SQL Anywhere followed by SAP IQ (notice the entries have the same order as the previous example)

    C:\sybase\IQ-16_0\Bin64;C:\sybase\IQ-16_0\Bin32;C:\Program Files\SQL Anywhere 16\Bin64;C:\Program Files\SQL Anywhere 16\Bin32

As you can see, when you install both IQ and SQLA, the PATH environment variable will always include IQ’s entries before SQLA’s.  That is the situation you want when using both products in the same machine.  To keep things simple and avoid start-up issues, I suggest you install SQLA first, and then IQ.

To further avoid problems, what you need to do is use the full directory structure for any binaries you want to use.  In example #4 above, running “dbisql.exe” from the Command Prompt launches Interactive SQL from the IQ installation, while running “C:\Program Files\SQL Anywhere 16\Bin64\dbisql.exe” launches Interactive SQL from the SQLA installation.  Note that this only applies to binaries that are found in both the IQ and SQLA installations (i.e. they must have the same file name).

There are many other products that embed SQLA, such as the aforementioned SAP BusinessObjects (BOBJ).  Note that typically those products DO NOT change the PATH environment variable and use the entire directory structure to call SQLA binaries.  If you find yourself in the situation where you need to install IQ and another product that embeds SQLA, simply perform the IQ installation last.  As an additional check, have a look at the PATH environment variable after installing the other product to see if any directories were added that also contain SQLA binaries.  In the case of SAP BusinessObjects, its installation adds the BOBJ-SQLA directories to the PATH environment variable.  To prevent conflict with SAP IQ, ensure the BOBJ-SQLA references appear after the IQ-SQLA references, or install IQ after installing BOBJ.

One last thing to be aware of is that the SQLA setup program creates entries on the registry (Windows) or .ini files (Unix) for its install location and language locale.  These settings can also be controlled via environment variables as described here: SQL Anywhere environment variables.  When working with SQLA, use those environment variables instead of the registry or .ini file entries.

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply