[SGVLUG] Am I asking the impossible? (Oracle question...)

Emerson, Tom Tom.Emerson at wbconsultant.com
Thu Nov 16 20:14:59 PST 2006


We have an "interesting" situation here at work -- our database
(proprietary) has a "gateway" or "interface" to the rest of the world
that makes it look like an Oracle database of 7.x vintage.

Oracle 9 and beyond refuses to talk to something that "old"
(alternatively: the O7 interface that our system presents to the world
is not completely O7 compliant...)

For the most part, we've eliminated most of the connections using this
database, but we have one that seems to be "critical" -- one of the
systems that feeds data to our database is checking our data before
sending updates [a good thing]   In particular, before allowing changes
to a catalog number, the sending system checks to see if there are an
"open orders" -- if there are, the change is not allowed.

The database that "feeds" our system will be migrating from Oracle8 to
Oracle9 "in the VERY near future"...

(ummm, go back and read the part about how O9 won't talk to [our] O7
gateway...)

So, I applied a little "out of the box" thinking and came up with an
amazingly simple solution, but the Oracle guys are balking it, citing
reasons of support and "what if it breaks?  We're screwed!"  (my feeling
is that if our oracle gateway breaks, which it IS when talking to
version 9+ databases, they are worse off because there is no knowledge
base for the gateway, and neither HP nor Oracle will support it, etc.)

In any case, here's the simple solution: a very tiny socket-listener
program running on "our" system waits for a client to "connect" and send
a 10-character catalog number.  The "server" then performs the same
lookups previously done by the "gateway" [with, BTW, the advantage of
being written in the native mode of the database rather than a bolted-on
SQL interpreter...] and returns the number of "open" orders.  If it's
anything other than zero, their system knows "changes are forbidden".

Aparently, the Oracle guys don't know how to make a TCP/IP connection to
an arbitrary server to transmit 10 characters then receive a string of
digits -- at least, that's the impression I'm getting (or instead of
"don't know how", "would rather not...")

Is it really asking too much of Oracle/Oracle-programmers to make
arbitrary TCP/IP connections to transmit/receive strings (and parse
them) to/from a remote server?

BTW: the server is written in COBOL [gotta keep up the job security, you
know ;) ] and is roughly 500 lines of code -- haven't really pounded on
it, but this version is a "proof of concept" version, and it's doing
quite well... ;)




More information about the SGVLUG mailing list