vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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 |
| |||
| Joachim Klassen wrote: > I'm currently working on a migration of a DB2 VM V7.2 database to DB2 UDB > Linux V8.2. 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 |
| |||
| "Jan M. Nelken" <Unknown.User@Invalid.Domain> schrieb im Newsbeitrag news:426414f8_3@news1.prserv.net... > Joachim Klassen wrote: > >> I'm currently working on a migration of a DB2 VM V7.2 database to DB2 UDB >> Linux V8.2. > > 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 > Great- I love this answer :-). Could I have found this in the docs/web anywhere ? Thanks a lot Joachim |
| ||||
| Joachim Klassen wrote: > Great- I love this answer :-). > > Could I have found this in the docs/web anywhere ? 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 |