Remote SQL für Java

Kurzinformation

Remote SQL (RSQL), aufgebaut auf modernster Client/Server Technologie, erlaubt Ihnen den Zugriff auf HP NonStop-SQL/MP Datenbanken direkt aus einem Java-Programm heraus.

Zusammengefaßt bietet RSQL unter anderem folgende Vorteile:

Einsatzbereich

Der Zweck des Produktes Remote-SQL (RSQL) ist es, dem Programmierer von Anwendungen auf einem PC (Windows und andere) zu gestatten, über eine Netzwerkverbindung auf Daten einer HP NonStop-SQL/MP-Datenbank zuzugreifen.

RSQL ist die technische Basis für den JDBC-Treiber, benutzt aber im Gegensatz zu diesem die Original NonStop-SQL/MP-Syntax und bietet Zugriff auf DEFINE-Tabellen. Der JDBC-Treiber wird demnächst verfügbar sein.

Realisierung

RSQL wurde in Client/Server Architektur realisiert. Dabei stellt das NonStop-System die Server-Maschine dar und die Java-Anwendung den Client. Folglich enthält RSQL zwei wesentliche Komponenten:

  1. einen Serverprozess für die NonStop-Seite

  2. eine Klassenbibliothek für die PC-Seite, mit deren Hilfe der Anwendungsprogrammierer in die Lage versetzt wird, seiner Anforderung gemäße Client-Programme zu schreiben.

Die Kommunikation zwischen diesen beiden Komponenten erfolgt mittels TCP/IP. Genaue Kenntnisse dieses Protokollstacks werden vom Programmierer jedoch nicht verlangt, da sämtliche Netzwerkzugriffe durch Java-Klassenbibliotheken verborgen werden. Im Gegenteil: der Anwendungsprogrammierer kann sich während der Entwicklung weitestgehend auf die eigentlichen SQL- und Datenbankproblematiken konzentrieren, ohne sich um Details der Transportschichten kümmern zu müssen.

Der Server-Prozess auf dem NonStop-System wird über den LISTNER-Prozess des NonStop-TCP/IP gestartet, sobald ein Client-Programm auf dem Client-System (es können auch mehrere dieser Client-Systeme parallel eingesetzt werden) eine Verbindung eröffnet.

Durch Aufruf der zugehörigen Klassenfunktionen kann das Anwendungsprogramm nun auf die SQL-Daten zugreifen, wobei die Klassenbibliothek die Aufträge über das TCP/IP-Netzwerk an den Serverprozess sendet. Dieser interpretiert die Aufträge und führt die entsprechenden SQL-Operationen aus.

Anschließend überträgt er die Antwortdaten an den Client. Diese werden nun dort in systemgerechte Datenformate konvertiert und dem aufrufenden Anwendungsprogramm bereitgestellt.

Programmierumgebung

RSQL verwendet zur Ausführung von Datenbankoperationen dynamische SQL-Anweisungen. Um solche SQL-Anweisungen in ein Anwendungsprogramm aufzunehmen, stellt RSQL eine Bibliothek von Java-Klassen zur Verfügung.

Die gesamte Netzwerkanbindung und die Realisierung des Client/Server-Systems (mit Ausnahme der Netzwerkadresse des Tandem-Rechners) werden in den Klassenbibliotheken verborgen, die folgende Aufgaben erfüllen:

Die folgenden Datentypen werden unterstützt: CHAR(n), VARCHAR(n), SMALLINT, INTEGER, LARGEINT, NUMERIC(m,n), unsigned NUMERIC(m,n), REAL, DOUBLE, DECIMAL(n,m), DATETIME, INTERVAL, Nullindikator

Noch ein Wort für Java-Neulinge: die RSQL Klassenbibliotheken fordern keine tiefgehenden Kenntnisse der Programmiersprache Java. Wenn Sie bereits erfahren sind im Umgang mit C, so wird Ihnen die Verwendung von RSQL kaum Schwierigkeiten bereiten. Auf der anderen Seite nimmt Ihnen Java aber eine Menge Arbeit ab und sorgt unter anderem dafür, daß Ihre Programme zuverlässiger ablaufen. Kenntnisse in NonStop SQL sollten jedoch vorhanden sein.

API-Dokumentation

Die vollständige API-Dokumentation liegt im Javadoc-Format vor: Remote SQL Java API.


Installation des NonStop-Gateways RSQLSRV

Der Server RSQLSRV muß auf dem NonStop-System installiert werden. Dazu ist eine Zeile in der Datei PORTCONF der TCP/IP-Konfiguration für den LISTNER einzutragen:

741     $system.rsql.rsqlsrv -p150

Danach ist der LISTNER-Prozess neu zu starten.

Das ausführbare Programm muß im Binärformat auf das NonStop-System, hier im Subvolume $SYSTEM.RSQL kopiert werden und den Filecode 100 erhalten. Der Server muss noch mit SQLCOMP noch in einen beliebigen SQL-Katalog eingetragen werden.

Die Portnummer, hier 741, kann frei gewählt werden. Der angegebene Wert ist der Default.

Der Parameter -p150 legt die Priorität des Prozesses auf 150 fest. Andere Werte sind jederzeit möglich. Die korrekte Wahl der Priorität ist eine Maßnahme, um unnötige Systembelastungen durch komplexe Abfragen auf eine Minimum zu reduzieren.

Installation der Java-Klassen

Die Java-Klassen sind in den beiden Archiven renscribe.jar und rsql.jar gespeichert, die dem Klassenpfad hinzugefügt werden müssen. Innerhalb einer IDE wird dies normalerweise im Projekt eingetragen. Auf aktuellen Java-Plattformen, kann der Aufruf mit

java -cp renscribe.jar;rsql.jar MyClass

erfolgen. Geben sie die vollständigen Pfade der Jar-Dateien an.

Sie können die Dateien auch dem System-Klassenpfad, je nach System in der Systemsteuerung (NT, W2K, XP), CONFIG.SYS (OS/2), AUTOEXEC.BAT (W9x) oder dem Benutzerprofil (Unix) hinzufügen. Java ab Version 1.2 unterstützt auch die Speicherung der Jar-Files im Verzeichnis jre\lib\ext unterhalb des Java-Verzeichisses.