Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Cursor Operation Error Handling in SQLJRA Remote Protocol

IP.com Disclosure Number: IPCOM000110090D
Original Publication Date: 1992-Oct-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 2 page(s) / 82K

Publishing Venue

IBM

Related People

Jordan, LE: AUTHOR [+4]

Abstract

Remote Data Service is a set of functions for OS/2* Extended Edition (EE) that allows users to access databases on remote workstations. SQLJRA remote protocol (an application layer protocol) is designed to pass the database engine control structures from client to server and vice versa. One of the distinguishing features of SQLJRA remote protocol is record blocking. With record blocking, the server can send multiple data rows on one communication buffer. The client will then get one row at a time from the communication buffer and give it to the application program. Communication overhead can be reduced significantly with record blocking.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Cursor Operation Error Handling in SQLJRA Remote Protocol

       Remote Data Service is a set of functions for OS/2*
Extended Edition (EE) that allows users to access databases on remote
workstations.  SQLJRA remote protocol (an application layer protocol)
is designed to pass the database engine control structures from
client to server and vice versa.  One of the distinguishing features
of SQLJRA remote protocol is record blocking.  With record blocking,
the server can send multiple data rows on one communication buffer.
The client will then get one row at a time from the communication
buffer and give it to the application program.  Communication
overhead can be reduced significantly with record blocking.

      However, with record blocking, the client must keep a
communication buffer for each opened cursor.  The minimum
communication buffer size is 4K.  If a user opened large number of
cursors at the same time, he will probably run out of memory
allocated for remote service heap.

      In our previous implementation, the open cursor operation fails
when the client is not able to allocate communication buffer from the
remote service heap.  With the proposed error handling protocol
defined in this disclosed invention, the user program can still open
a cursor successfully even though no memory is left in the remote
service heap.

      The following is some brief description about the error
handling procedure.  Let the name of the cursor be C1.
      (1) The client will send the open cursor commands to the
server.  Since blocked fetches are more efficient than non-blocked
fetches, and only the server knows whether the cursor can be blocked
or not, the client will always request for blocking first.
      (2) The server will check whether C1 can be blocked or not.  If
C1 can be blocked, server will send back a positive DDS return code
(SQLJR_RCF_BLOCK) to the client indicating that C1 can be blocked.
At the same time, the server will fill up the communication buffer
with as many complete rows as possible and send it back to the cl...