September
2002
SqlLink3000: Your
Datas Link to the Future
Link Your HP 3000 to any SQL database
on any platform
Review by John Burke
SqlLink3000 is both a migration tool
and a tool for extending the life of your HP 3000 applications. As a
migration tool, SqlLink3000 can be used to create custom programs for
migrating your TurboIMAGE data to an SQL database on a Windows, Unix
or Linux platform. It can also be used to create a program to
synchronize your databases on your migration platform with your
databases on your HP 3000 in a step-wise migration.
As an application extender,
SqlLink3000 can be used from any HP 3000 application to access, and
even update, SQL databases on a Windows, Unix or Linux platform. All
you need is an ADO or ODBC driver on the SqlLink3000 Windows bridge
server. Looked at this way, SqlLink3000 is the first and only ODBC
client for the HP 3000.
Features, and how it works
SqlLink3000 has two main
components, a multi-threaded data server that runs on a Windows
workstation or Windows server bridge machine and a
library (XL) of callable routines that reside on the HP 3000 client
system. SqlLink3000 makes use of Microsoft Active Data Objects (ADO)
and can connect to any SQL database for which you have ADO or ODBC
drivers.
SqlLink3000 supports
connections to multiple databases at the same time and multiple
connections to the same database at the same time. SqlLink3000 gives
you full read/write access to your SQL databases, supports
INSERT/UPDATE/DELETE/EXEC statements, supports views and
supports stored procedures. The procedures in the SqlLink3000 XL
library and their functions are:
SqlConnect connect to
the remote data server and open your database
SqlClose close your
database and disconnect from your remote data server
SqlExec execute a SQL
command; i.e. INSERT, UPDATE, DELETE
SqlRead initiate a
read operation on a table, a view or linked tables
SqlGetNext retrieves
the next record from your database
SqlGetStringField and
SqlGetIntegerField retrieve a string field or numeric field
from your record
SqlGetDecimalField
retrieve a decimal numeric field from your record
The default listener port for
SqlLink3000 is 9875. This can be overridden by a run time parameter.
SqlLink3000 is multi-threaded. Each requestor talks to its own
socket. Hovering over the icon in the system tray of the bridge
machine will show the number of connections.
The SqlLink3000 package also
includes SqlQuery, which allows you full access to your SQL databases
from your HP 3000 without having to write code. Simply connect to the
database and issue standard SQL statements such as SELECT, INSERT,
UPDATE and DELETE. Since SqlQuery pipes your SQL statements to your
SQL database using SqlLink3000, most of the work is actually done by
the bridge server running SqlLink3000. The only thing you need to
supply for SqlQuery is the IP address of the SqlLink3000 server and a
standard connection string.
SqlLink3000 has been tested
against SqlServer, Oracle, Access, PostgreSQL and MySQL, but should
be able to access any SQL database for which there is an ODBC or ADO
driver.
System requirements
The SqlLink3000 bridge server
software will run on Windows 95/98, Windows 2000 or Windows XP. The
MPE XL procedures will work on any supported version of MPE/iX. Any
reasonably new PC should be an adequate platform for the SqlLink3000
bridge server software.
Installation
Pretty standard stuff
which of course means you have to get out of all other programs and
reboot for the changes to take effect. After doing the Windows
installer bit, you have to transfer six files to your HP 3000 either
as WRQ labeled files or as a single store-to-disk file you unpack
with RESTORE. This should all take less than 15 minutes even on a bad
day.
If you are going to use
SqlLink3000 to access an SQL database via ODBC, you will also have to
install and configure an ODBC driver for your database onto the
SqlLink3000 machine. This may require a little Googling and Internet
cruising but should not take too long. Here is a little hint: try to
connect to your database from your SqlLink3000 system first to get
any configuration issues out of the way.
Documentation
The documentation I received
can best be described as Spartan. It consisted of two slim manuals, a
22-page manual on SqlLink3000 and a 10-page manual on SqlQuery. At my
urging, a section on configuring the ODBC connection was added to the
SqlLink3000 manual. Previously, all of the examples assumed a
database on a Windows platform.
The documentation is saved
from low marks by the inclusion of a well-annotated COBOL program
that shows how to use the SqlLink3000 calls (the source as well as a
pre-compiled and linked NMPRG file are part of the product
distribution). This is extremely useful for anyone starting out to
use SqlLink3000.
Lets take it out for a spin
The sample database, COBOL
program and SqlQuery demo pretty much work right out of the box
install everything (15 minutes on a bad day), fire up
SqlLink3000 on the Windows bridge machine and you are good to go. No
configuration needed. However, the sample database resides on the
same machine as SqlLink3000 does and I wanted something a little more
interesting. My gaze naturally turned toward the Linux box sitting
right next to my R&D HP 3000.
Ive wanted to load up MySQL on the
Linux box, I say to myself, so it was off to the Internet to get
MySQL for Linux and its Windows ODBC driver. Several days of part
time hacking and a few false starts later (mostly dealing with MySQL
security), I had MySQL loaded on my Linux machine, along with the
menagerie database (see Figure 1) and ODBC configured on my bridge Win2K
machine (see Figure 2). Once I had the MyODBC Windows driver
talking to MySQL on the Linux server (more MySQL security issues),
SqlQuery on my HP 3000 worked like a charm (see Figure 3). Obviously,
this little example does not address performance (see below). But it
does show that from the HP 3000, you can probably talk to any of the
popular SQL databases, whether on Windows, Unix or Linux.
User Experience
Since I was only able to test
a simple example, albeit a complex scenario, I spoke with several
users of the product. I wanted to find out how they were using
SqlLink3000 and what their reactions were. Here is one story.
This organization wanted one
of their on-line HP 3000 applications to be able to extract some
customer data from a sales system running on a Linux server using an
Informix database. After much searching to find a cost-effective way
of doing it, the organization settled on SqlLink3000.
They report the
implementation was relatively straightforward. A COBOL subroutine was
written for the HP 3000 application that made the necessary
SqlLink3000 calls. This could then be plugged into the main
application wherever required. The main application had to be tweaked
a bit to do some necessary housekeeping (open and close of the link,
etc.). Finally, a simple PC, available for under $1,000, with
SqlLink3000 and the ODBC driver for Informix installed, was used as
the bridge between the HP 3000 and the Linux-system. All of this took
just several man days of labor to complete.
The first hit of their day by
the first user takes up to 30 seconds as everything starts up. From
then on, when the user hits ENTER, the data from the HP 3000 and the
Linux box arrive as fast as it takes the screen to paint, virtually
instantaneous. [Note: I saw similar behavior in my test; i.e. 30
seconds for the first connect, but instantaneous response afterwards.
I also noticed that after the first open of the day, subsequent opens
seemed to be very fast, even if I was the only one using the
connection.]
They noted that the
application uses a highly optimized SQL query designed to get one
specific table of data and return it. Thus there is no way to project
the performance if the SQL query had to read a lot of entries or
return a lot of entries.
The revised application went
live in July with no reported problems. While the user does not do
any writes in production, they did try a test that did updates and
found them to be equally fast.
Conclusion
SqlLink3000 is not easily
categorized. On the one hand it is a migration tool, while on the
other hand it can extend the life of existing HP 3000 applications by
providing access to SQL databases on other platforms. Either way, it
is worth a look.
John Burke is editor of the
NewsWires net.digest and Hidden Value columns and has managed
HP 3000 systems for more than 20 years.
|