The OpenDRDA FAQ

1. General Questions
1.1 What is DRDA
1.2 What is OpenDRDA
1.3 Why a BSD license
1.4 Why DRDA
1.5 Why not ISO's RDA
1.6 Why not roll your own
1.7 Why not ODBC?
2. Implementation
2.1 How usable is OpenDRDA today?
2.2 Is there a roadmap?
3. Helping
3.1 How do I help?

General Questions

1.1 What is DRDA
DRDA stands for Distributed Relational Database Architecture. It is a low level protocol analogous to Sybase/Microsoft's TDS or Oracle's SQL/Net. It handles such network operations as logging in to a database, making SQL requests, and fetching results. DRDA was originally an IBM invention and was later adopted as an Open Group standard for database access. It also has some advanced features when dealing with several databases within a transaction (the 'distributed' part).
1.2 What is OpenDRDA
OpenDRDA (once completed) is a open source implementation of DRDA for Posix like systems (Unix, Linux, etc). It is released under a BSDish license with no advertising clause.
1.3 Why a BSD license
We would like to see DRDA supported in as many products and projects as possible whether open or commercial, so a very unrestrictive license was chosen for the code.
1.4 Why DRDA?
DRDA has several things going for it.
1.5 Why not ISO's RDA?
ISO RDA is an older standard for database connectivity. This standard really never took off as it was initially based on the OSI stack and was lacking support for some of the more advanced DBMS features that most vendors implement.
1.6 Why not roll your own?

DRDA is ___________ (insert your favorite complaint here), why not make a new standard?

One would presume it would be possible to get all the open source databases behind a homegrown standard, but that would leave out the commercial vendors and interoperability is the whole point. DRDA may have some short comings (complexity and a penchant for ebcdic among them) but it is a standard. The benefits of having a widely adopted standard generally outweigh the slight imperfections they may have.

1.7 Why not ODBC?
ODBC is an API, while DRDA is a wire level protocol. OpenDRDA will include an ODBC driver for the client piece of it. ODBC allows your application to be ported or linked against different drivers, but you still have to manage all the drivers and their configurations. DRDA has the possibility to have one standard driver and accessing a database will 'just work'.

Implementation

2.1 How usable is OpenDRDA today?

Not very. The code is capable of negotiating connection attributes (EXCSAT), logging in (SECCHK) and accessing a database (ACCRDB).

There is some preliminary code for sending a query (EXSQLIMM or PRPSQLSTT) that is kinda working.

2.2 Is there a roadmap?

No. ;-)

But if we did it would look something like this:

Helping

3.1 How do I help?

Join the mailing list.

If you can code in C, I'd recommend starting by reading the specs and looking at tester.c to see how things are structured.

For people interested in OpenDRDA's development but not able to help directly, join the mailing list, and let us know what you're looking for and what features are important.

Valid XHTML 1.0!