SAP and MaxDB
This is a short section on the interaction between SAP and MaxDB, I have no section on how SAP works. In this short section I will discuss the architecture of SAP and how MaxDB fits into the picture.
The architecture that I will discuss is based on SAP NetWeaver 7.0, MaxDB interacts via the SAP NetWeaver Application Server Java and the SAP NetWeaver Application Server ABAP (Advanced Business Application Programming).
A specific combination of the available NetWeaver components is required for the different SAP NetWeaver applications, each of these components requires either one of the two application server variants or both. The structure of the two application server differ greatly, and this topic is mostly related to SAP and thus will not be discussed further.
When the clients requests are received by the application server they are accepted by a dispatcher process which distributes them to the work processes in the ABAP stack, these in turn respond to the request, in the Java system the dispatcher uses Java server threads to process the work.
So putting the above together SAP uses a three layer technology
As stated above the ABAP server uses worker processes and the Java Server uses thread processes as seen by the below picture
Each work process or server thread can establish one or more connections to the database, when a work process requests a connection to the database the requestor on the database side transfers the request to a free user task. This task checks authorization using the login and password provided, after which the user task completes the request. This can be seen in the diagram below
The SAP NetWeaver AS processes can either run on a separate server or on the same server as MaxDB, however their connections will be different. If running on the same server the concept of inter-Process Communication (IPC) is used instead of TCP/IP when used on a different server. IPC is more efficient as it has less overheads than TCP/IP. The below diagram display how this works
To access MaxDB from a remote computer you must setup an X Server (like a listener in the Oracle world), you have only one X Server running per database, even if multiple instances are running. To establish a connection the services sql6 (port 7210) and sql30 (7200, used for compatibility only) must be open both on the client and server.
A complete setup would look like something below
You can setup a SAP router which is an application that serves as a single point of access to an entire SAP landscape, this has benefits that allow a minimum amount of ports open thus reducing firewall rules.
You can access MaxDB via a number of interfaces
|ODBC||complete supports the ODBC-SQL syntax thus you should be able to use it with existing ODBC applications.|
|JDBC||by default it is not installed, once obtained install it in <independent_program_path>/runtime/jar. The driver fully supports the JDBC 2.0 standard extension API, you will need at least java 1.4 or above installed.|
|SQLDBC||this is a standard interface between SAP NetWeaver AS ABAP and MaxDB databases.|
|MaxDB ODBC .NET||two drivers enable access to SAP MaxDB in .NET applications, the driver is a wrapper around ODBC.|
|MaxDB ADO .NET||this driver improves on the ODBC driver by using SQLDBC|
|Perl, Python and PHP||These scripting languages all have drivers that can access MaxDB, all can use the JDBC interface.|