Accessing DB2 UDB on Linux from within a DB2 VM Cobol program

Accessing DB2 UDB on Linux from within a DB2 VM Cobol program

Post by Joachim Kl » Tue, 19 Apr 2005 17:26:12


I'm currently working on a migration of a DB2 VM V7.2 database to DB2 UDB
Linux V8.2.
In the first stage the applications will stay on VM only the database will
be migrated.
Applications will be migrated in a second stage in the future.
The connectivity between DB2 VM as a DRDA requester and DB2 UDB as DRDA
server has been established.
At a first look at the applications one thing came up: they use SQL INSERT
via a CURSOR.
This works that way:
- a cursor is declared for INSERT
- the cursor is opened
- Rows are inserted via SQL PUT
- PUT will not immediately insert that row, but will store the rows in a
memory block until this block is full.
At that time the accumulated rows will get inserted all together.

Unfortunately DB2 UDB does not support INSERT via CURSOR (at least AFAIK).
My question: will it be possible to run the COBOL programs unchanged against
a DB2 UDB database?
Means will DRDA emulate a INSERT via cursor as it for example emulates
COMPOUND SQL against platforms that do not support COMPOUND SQL.

I do not have a VM system at the moment to run tests, but need to clarify
this.

Any comments or links ?

TIA

Jo
 
 
 

Accessing DB2 UDB on Linux from within a DB2 VM Cobol program

Post by Jan M. Nel » Wed, 20 Apr 2005 05:01:26


SQL PUT insert method is unique to DB2 for VSE and VM utilizing private protocol
connection from client.

When you connect from DB2 VM to Linux server - you will be using DRDA protocol.
Your Cobol program should be prepared against Linux server with SQLERROR
CONTINUE option. You will get an SQL error when processing declare cursor for
insert statement.

This error can be ignored.

Your COBOL application will use non-blocking EXECUTE IMMEDIATE INSERT instead of
SQL PUT. Performance of this application will suffer somehow - but unchanged
Cobol programm will execute correctly.

You may want to rewrite this part of the application to eliminate prepare time
errors.

Jan M. Nelken

 
 
 

Accessing DB2 UDB on Linux from within a DB2 VM Cobol program

Post by Joachim Kl » Wed, 20 Apr 2005 15:57:42


"Jan M. Nelken" < XXXX@XXXXX.COM > schrieb im Newsbeitrag



Great- I love this answer :-).

Could I have found this in the docs/web anywhere ?

Thanks a lot
Joachim
 
 
 

Accessing DB2 UDB on Linux from within a DB2 VM Cobol program

Post by Jan M. Nel » Wed, 20 Apr 2005 23:36:51


If you were lucky - this was hidden in the DB2/VSE&VM SQL Reference manual in
chapter 2. Concepts. Unfortuneately it was not mentioned in the PUT statement
section where some one might actually look for it.

"...Only DB2 Server for VSE & VM supports Insert Cursors. However, an
application on a DB2 Server for VM application requester or a DB2 Server for
VSE CICS application requester can declare Insert Cursors and issue PUT
statements against unlike application servers. Note that there is no blocking of
input data because the application requester turns PUT statements into INSERT
statements. The purpose of this support is to allow an application to run without
having to make this change in the source program..."

Jan M. Nelken