Browse Prior Art Database

Record Blocking in SQLJRA Remote Protocol

IP.com Disclosure Number: IPCOM000110594D
Original Publication Date: 1992-Dec-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 3 page(s) / 126K

Publishing Venue

IBM

Related People

Brissette, LF: AUTHOR [+5]

Abstract

Remote Data Service is a set of functions for OS/2* Extended Edition (EE) that allowed users to access databases not only on their local workstations but also on remote workstations. A private communication protocol (DRDA-0) was implemented in 1.3 EE to access relational database remotely. DRDA-0 is based on Distributed Relational Database Architecture* (DRDA*) which is the architecture for connecting database products. DRDA basically makes use of an intermediate language defined in Distributed Data Management (DDM) architecture to pass information back and forth from client to server.

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

Record Blocking in SQLJRA Remote Protocol

       Remote Data Service is a set of functions for OS/2*
Extended Edition (EE) that allowed users to access databases not only
on their local workstations but also on remote workstations.  A
private communication protocol (DRDA-0) was implemented in 1.3 EE to
access relational database remotely.  DRDA-0 is based on Distributed
Relational Database Architecture* (DRDA*) which is the architecture
for connecting database products.  DRDA basically makes use of an
intermediate language defined in Distributed Data Management (DDM)
architecture to pass information back and forth from client to
server.

      One of the features in DRDA to improve performance is the
Record Blocking.  With Record Blocking, the server can send multiple
data rows in one communication buffer.  The client will then retrieve
one row at a time from the communication buffer and pass it to the
application program.  Communication overhead can be reduced
significantly.

      However, we found that the Record Blocking implementation in
DRDA is far more complicated than needed.  We also found that
performance of Record Blocking can also be improved.

      Our implementation of Record Blocking takes advantage of the
fact that the data structures built on either the client or the
server in a homogeneous environment are the same.  Therefore, the
underlying data structures are passed directly, without the
conversion step being necessary.

      The following is a discussion of the operations and functions
that the client and server perform.

      (1) After the client and the server establish proper
connection, an application may do an OPEN CURSOR request to the
client.  The client will pass the SQLJRA (Request type = SQLJR_OPEN),
input SQLDA and user input data to the server.  The client will set
the third byte in SQLR FLAG (one of the SQLJRA triplets) to
SQLCP_BLOCK which indicates blocking request.

      (2) The server receives and processes the OPEN CURSOR request.
It then determines that it will use the blocking protocol because no
SQL UPDATEs or DELETEs are to be performed against the corresponding
cursor.  The server will place the Distributed Data Services (DDS)
return code and SQLCA into the data stream.  DDS return code
indicates whether blocking protocol is used.

      (3) The server then puts the output SQLDA generated by the
database engine into the data stream.  If there is still space left
in the communication buffer to hold at least a complete row, the
server will FETCH data rows to fill up the communication buffer.
Before the communication buffer is sent to the client, the server
will put a number of complete rows in the communication buffer into
the data stream.  The data stream is sent to the client.

      (4) The ...