kindly help me out wit internals of openedge RDBMS

Posted by Aravindhacks on 31-Jul-2013 08:30

Hey guys this is my first post in this forum and i'm new to Openedge database.

I need an information how the broker process allocates server and how communication is performed between broker and server?????

Thanks and regards...

All Replies

Posted by gus on 31-Jul-2013 10:30

When a broker is started, it listens for network logins over tcp/ip (ipv4 or ipv6) on the port number (or service name) specified by the -S configuration parameter. You can start more than one broker if you want, with different configuration parameters.

When a login request arrives, the broker either assigns the new client to an existing server process or starts a new server process and assigns the client to the the new server. The broker sends a reply message to the client telling it to which server it should connect. If there are no server processes with free slots and you are at the maximum number of server processes or maximum number of connections, then the login request is rejected. After the client receives the reply from the broker it terminates its connection with the broker and (assuming login was not rejected) connects to the specified server. After that, there is no further communication between client and broker. Communication between brokers and servers is via shared memory data and is infrequent.

There are also self-serving clients that combine the client and server into a single process. In those, client and server comminicate by means of subroutine calls instead of network messages.  To use those, the client must be executing on the same machine as the database. Self-serving clients are for 4GL only.

There are configuration parameters that control the maximum number of connections, maximum number of servers, maximum and minimum number of clients per server, number of servers for sql cleints, number of servers for 4GL clients, port ranges, ssl, etc. With suitable arrangement of the configuration parameters, you can do round robin, filling servers roughly equally and starting them as soon as possible, or start new servers only when all existing ones are maximized.

Clients can be SQL or 4GL. If SQL, then either JDBC or ODBC (no other types of sql interfaces are supported).  If 4GL, then either slef-serving or networked. For SQL, there are 32 and 64 bit ODBC driver shared libraries and a type 4 JDBC driver. There is no charge for the ODBC or JDBC drivers.

The relevant configuration parameters are (see database administation manual for details)

  • -S = port on which broker listens for connections
  • -n = maximum number of connections
  • -Mn = maximum number of server processes
  • -Mpb = maximum number of servers for broker
  • -Ma = maximum number of clients per server
  • -Mi = minimum number of cleints per server
  • -maxport = upper bound of tcp/ip port range
  • -minport = lower bound of tcp/ip port range

Message was edited by: Gus Bjorklund

Posted by rohit.ramak on 31-Jul-2013 23:42

Excellent !!  Thanks Gus for the detailed information.

Posted by Aravindhacks on 01-Aug-2013 00:06

Hey Buddy thanks a lot. I got an idea now but still i have a doubt! How Server identifies that this client gonna get connected ? Do broker pass any information about the client to server?? Where does client authenticaion take place,either by broker or server??

Thanks and regards,Aravind.

Posted by Aravindhacks on 01-Aug-2013 05:23

Also intimate me whether attached pdf describing the architecture of OE RDBMS is right???Coz i made it myself with my own assumptions.If you have any clear OE DBMS architecture,kindly attach!

thanks & regards


Posted by willer on 01-Aug-2013 18:04

Hello Aravind,

nice investigation. But the "mindmap" doesn't look like newbie! Do you reverse engeneer?

The main thing is you only need to know, how to connect to the database, and get/set your data for your application,

and to be sure, that your Data is best in Progress' hand.

This thread is closed