de.mvcsys.renscribe
Class Host

java.lang.Object
  |
  +--de.mvcsys.renscribe.Host

public class Host
extends Object

Diese Klasse stellt eine Verbindung zum NonStop-Host her


Field Summary
static int DEFINES_KEY_ATTR
           
static int DEFINES_KEY_CLASS
           
static int DEFINES_KEY_NAME
           
static int DEFINES_KEY_VALUE
           
static int EBADF
           
static int EINVAL
           
static String ENCODING
          Default-Encoding ISO-8859-1
static int END_OF_FILE
           
static int ERR_CONNECT
           
static int ERR_DUPLICATE_KEY
           
static int ERR_GUARDIAN
           
static int ERR_IN_USE
           
static int ERR_LOGIN
           
static int ERR_MAX
           
static int ERR_NOT_FOUND
           
static int ERR_PROTOCOL
           
 int errno
          Fehlercode
 String errorMsg
          Fehlertext
static int EXCEPTION
           
 String hostName
          Name des Hosts
static int NOT_OK
           
static int OK
           
static short OPEN_BUFFERED
           
static short OPEN_BUFFERED_INPUT
           
static short OPEN_BUFFERED_OUTPUT
           
static short OPEN_EXCLUSIVE
           
static short OPEN_FORCE_UPDATE
           
static short OPEN_NOWAIT
           
static short OPEN_SHARED
           
static short OPEN_STREAM
           
 int port
          TCP/IP-Port
static int READ_LOCK
           
static int READ_NOLOCK
           
static int RENSCRIBE_PORT
          Default Port
static int SEEK_ABSOLUTE
           
static int SEEK_APPROXIMATE
           
static int SEEK_END
           
static int SEEK_EXACT
           
static int SEEK_GENERIC
           
static int SEEK_LOCK
           
static int SEEK_MASK
           
static int SEEK_RELATIVE
           
static int SEEK_REVERSE
           
static int SEEK_SKIP
           
protected  boolean throwException
          Throw-Exception-Flag
static byte TT_BEGIN
           
static byte TT_COMMIT
           
static byte TT_NONE
           
static byte TT_ROLLBACK
           
static int TYPE_EDIT
           
static int TYPE_ENSCRIBE
           
static int TYPE_UNSTRUCTURED
           
static int WRITE_NOUNLOCK
           
static int WRITE_UNLOCK
           
 
Constructor Summary
Host(String hostName, int port, String user, String password)
          Konstruktor.
Host(String hostName, int port, String user, String password, boolean trace)
          Konstruktor.
Host(String hostName, int port, String user, String password, PrintWriter traceWriter)
          Konstruktor.
Host(String hostName, String user, String password)
          Konstruktor.
Host(String hostName, String user, String password, boolean trace)
          Konstruktor.
Host(String hostName, String user, String password, PrintWriter traceWriter)
          Konstruktor.
 
Method Summary
 boolean checkTransaction()
          TMF-Transaktion prüfen.
 int closeAll()
          Schliessen aller Dateien.
 int comment(String comment)
          Comment (tut nichts, kann aber protokolliert werden)
protected  void connect(String user, String password)
          Baut Verbindung auf.
 short[] contime(byte[] timestamp, short[] result)
          Timestamp umrechnen.
 String create(String filename, int type, int code, int recsize, int pext, int sext, int maxextents)
          Erzeuge eine Datei.
 void disconnect()
          Serververbindung auflösen
 int flushAll()
          Puffer leeren für alle Dateien.
 int getResult()
          Ermittle das Resultat
 EFileInfo info(String filename)
          Informationen über eine Datei.
 String info(String filename, EFileDate timestamp, int[] size, int[] code, int[] type, int[] recsize, char[] security, String[] catalog)
          Informationen über eine Datei.
 boolean isTransaction()
          TMF-Transaktion prüfen.
 int loadDefines(String defines)
          Lade Defines
static void main(String[] args)
          Test
static String makeString(byte[] buffer, int offset, int length, String encoding)
          Erzeuge einen String mit dem angegebenen Encoding.
 EFile open(String filename, String access, int flags, int recsize)
          Datei eröffnen.
 String purge(String filename)
          Datei löschen.
 void releaseAll()
          Resourcen zurückgeben.
protected  int returnNotOk()
          Werfe abhängig vom ThrowException-Flag eine Exception oder gebe NOT_OK zurück
protected  Object returnNull()
          Wirf abhängig vom ThrowException-Flag eine Exception oder gebe null zurück
 boolean setDebug(boolean flag)
          Debug starten/stoppen.
 void setThrowException(boolean throwException)
          Setze das Throw-Exception-Flag.
 boolean setTrace(boolean flag)
          Trace starten/stoppen.
 void setTrace(PrintWriter trace)
          Trace-Writer setzen.
 int startLog(String server)
          Logging zu Prozess starten/stoppen.
 int startLog(String pathmon, String server)
          Logging zu Pathway-Server oder Prozess starten/stoppen.
 int stopLog()
          Logging zu Pathway-Server oder Prozess stoppen.
static String strerror(int error)
          Fehlertext ermitteln (fehlt noch)
 int system(String cmd)
          Systemaufruf (TACL).
 int transact(int type)
          TMF-Transaktion.
 String volume(String volume)
          Volume wechseln
 int xComputeIoOffset(int offset)
          Ermittle einen absoluten Parameter-String-Offset Erst müssen alle Parameter gelesen worden sein!
 int xDoExtIo(short cmd, short handle, short size)
          Führe ein Sub-Kommando aus.
 byte xGetByte()
          Ermittle das nächste Byte des Puffers.
 int xGetInt()
          Ermittle das nächste 32-Bit-Wort des Puffers.
 byte[] xGetIoBuffer()
          Ermittle den Byte-Array des I/O-Buffers.
 short xGetShort()
          Ermittle das nächste 16-Bit-Wort des Puffers.
 int xGetString()
          Ermittle den nächsten Parameter-String.
 String xGetString(int offset)
          Ermittle einen Parameter-String.
 String xGetString(int offset, boolean mayBeNull)
          Ermittle einen Parameter-String.
 short xGetSubResult()
          Ermittle das Ergebnis eines SubCommands.
 void xResetParameters()
          Setze den Datenzeiger auf den Anfang der Daten zurück.
 void xSetByte(byte value)
          Setze das nächste Byte des Puffers.
 void xSetBytes(byte[] b, int offset, int size)
          Setze einen Byte-Array als Parameter in den Daten-Puffer.
 void xSetInt(int value)
          Setze das nächste 32-Bit-Wort des Puffers.
 void xSetShort(short value)
          Setze das nächste 16-Bit-Wort des Puffers.
 void xSetString(String value)
          Setze einen Parameter-String in den Daten-Puffer (Pointer beim aktuellen Offset).
 short xSetSubCommand(short value)
          Setze das Sub-Kommando und die Parameterlänge.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFINES_KEY_ATTR

public static final int DEFINES_KEY_ATTR

DEFINES_KEY_CLASS

public static final int DEFINES_KEY_CLASS

DEFINES_KEY_NAME

public static final int DEFINES_KEY_NAME

DEFINES_KEY_VALUE

public static final int DEFINES_KEY_VALUE

EBADF

public static final int EBADF

EINVAL

public static final int EINVAL

ENCODING

public static final String ENCODING
Default-Encoding ISO-8859-1

END_OF_FILE

public static final int END_OF_FILE

ERR_CONNECT

public static final int ERR_CONNECT

ERR_DUPLICATE_KEY

public static final int ERR_DUPLICATE_KEY

ERR_GUARDIAN

public static final int ERR_GUARDIAN

ERR_IN_USE

public static final int ERR_IN_USE

ERR_LOGIN

public static final int ERR_LOGIN

ERR_MAX

public static final int ERR_MAX

ERR_NOT_FOUND

public static final int ERR_NOT_FOUND

ERR_PROTOCOL

public static final int ERR_PROTOCOL

errno

public int errno
Fehlercode

errorMsg

public String errorMsg
Fehlertext

EXCEPTION

public static final int EXCEPTION

hostName

public String hostName
Name des Hosts

NOT_OK

public static final int NOT_OK

OK

public static final int OK

OPEN_BUFFERED

public static final short OPEN_BUFFERED

OPEN_BUFFERED_INPUT

public static final short OPEN_BUFFERED_INPUT

OPEN_BUFFERED_OUTPUT

public static final short OPEN_BUFFERED_OUTPUT

OPEN_EXCLUSIVE

public static final short OPEN_EXCLUSIVE

OPEN_FORCE_UPDATE

public static final short OPEN_FORCE_UPDATE

OPEN_NOWAIT

public static final short OPEN_NOWAIT

OPEN_SHARED

public static final short OPEN_SHARED

OPEN_STREAM

public static final short OPEN_STREAM

port

public int port
TCP/IP-Port

READ_LOCK

public static final int READ_LOCK

READ_NOLOCK

public static final int READ_NOLOCK

RENSCRIBE_PORT

public static final int RENSCRIBE_PORT
Default Port

SEEK_ABSOLUTE

public static final int SEEK_ABSOLUTE

SEEK_APPROXIMATE

public static final int SEEK_APPROXIMATE

SEEK_END

public static final int SEEK_END

SEEK_EXACT

public static final int SEEK_EXACT

SEEK_GENERIC

public static final int SEEK_GENERIC

SEEK_LOCK

public static final int SEEK_LOCK

SEEK_MASK

public static final int SEEK_MASK

SEEK_RELATIVE

public static final int SEEK_RELATIVE

SEEK_REVERSE

public static final int SEEK_REVERSE

SEEK_SKIP

public static final int SEEK_SKIP

throwException

protected boolean throwException
Throw-Exception-Flag

TT_BEGIN

public static final byte TT_BEGIN

TT_COMMIT

public static final byte TT_COMMIT

TT_NONE

public static final byte TT_NONE

TT_ROLLBACK

public static final byte TT_ROLLBACK

TYPE_EDIT

public static final int TYPE_EDIT

TYPE_ENSCRIBE

public static final int TYPE_ENSCRIBE

TYPE_UNSTRUCTURED

public static final int TYPE_UNSTRUCTURED

WRITE_NOUNLOCK

public static final int WRITE_NOUNLOCK

WRITE_UNLOCK

public static final int WRITE_UNLOCK
Constructor Detail

Host

public Host(String hostName,
            int port,
            String user,
            String password)
     throws UnknownHostException,
            IOException,
            SocketException

Konstruktor. Baut Verbindung auf.

Parameters:
hostName - Hostname
port - TCP/IP-Port auf dem RSQLSRV oder ENSERV installiert ist
user - Guardian-Benutzer
password - Guardian-Passwort

Host

public Host(String hostName,
            int port,
            String user,
            String password,
            boolean trace)
     throws UnknownHostException,
            IOException,
            SocketException

Konstruktor. Baut Verbindung auf.

Parameters:
hostName - Hostname
port - TCP/IP-Port auf dem RSQLSRV oder ENSERV installiert ist
user - Guardian-Benutzer
password - Guardian-Passwort
trace - Trace einschalten

Host

public Host(String hostName,
            int port,
            String user,
            String password,
            PrintWriter traceWriter)
     throws UnknownHostException,
            IOException,
            SocketException

Konstruktor. Baut Verbindung auf.

Parameters:
hostName - Hostname
port - TCP/IP-Port auf dem RSQLSRV oder ENSERV installiert ist
user - Guardian-Benutzer
password - Guardian-Passwort
traceWriter - Trace in diesen Writer

Host

public Host(String hostName,
            String user,
            String password)
     throws UnknownHostException,
            IOException,
            SocketException

Konstruktor. Baut Verbindung auf.

Parameters:
hostName - Hostname[:Port]
user - Guardian-Benutzer
password - Guardian-Passwort

Host

public Host(String hostName,
            String user,
            String password,
            boolean trace)
     throws UnknownHostException,
            IOException,
            SocketException

Konstruktor. Baut Verbindung auf.

Parameters:
hostName - Hostname[:Port]
user - Guardian-Benutzer
password - Guardian-Passwort
trace - Trace einschalten

Host

public Host(String hostName,
            String user,
            String password,
            PrintWriter traceWriter)
     throws UnknownHostException,
            IOException,
            SocketException

Konstruktor. Baut Verbindung auf.

Parameters:
hostName - Hostname[:Port]
user - Guardian-Benutzer
password - Guardian-Passwort
traceWriter - Trace in diesen Writer
Method Detail

checkTransaction

public boolean checkTransaction()
                         throws IOException

TMF-Transaktion prüfen.

Diese Version fragt explizit beim Host nach!
Returns:
true, wenn eine Transaktion offen ist

closeAll

public int closeAll()

Schliessen aller Dateien.

Returns:
Host.OK oder HOST.NOT_OK

comment

public int comment(String comment)
            throws IOException
Comment (tut nichts, kann aber protokolliert werden)
Parameters:
comment - Kommentar (nur Text erlaubt!)

connect

protected void connect(String user,
                       String password)
                throws UnknownHostException,
                       IOException,
                       SocketException

Baut Verbindung auf.

Parameters:
user - Guardian-Benutzer
password - Guardian-Passwort

contime

public short[] contime(byte[] timestamp,
                       short[] result)
                throws IOException

Timestamp umrechnen.


create

public String create(String filename,
                     int type,
                     int code,
                     int recsize,
                     int pext,
                     int sext,
                     int maxextents)
              throws IOException

Erzeuge eine Datei.

Parameters:
filename - Name der Datei
type - Host.TYPE_UNSTRUCTURED, Host.TYPE_EDIT oder Host.TYPE_ENSCRIBE
code - Filecode
recsize - Satzlänge bei strukturierten Dateien
pext - Primary Extent Size
sext - Secondary Extent Size
maxextents - Anzahl der Extents
Returns:
null bei Fehler, den vollständigen Namen der Datei sonst

disconnect

public void disconnect()
                throws IOException
Serververbindung auflösen
Returns:
Host.OK

flushAll

public int flushAll()
             throws IOException

Puffer leeren für alle Dateien.

Returns:
Host.OK oder HOST.NOT_OK

getResult

public int getResult()
Ermittle das Resultat
Returns:
das Resultat des Befehls

info

public EFileInfo info(String filename)
               throws IOException

Informationen über eine Datei.

Returns:
Alle Daten in einem Objekt

info

public String info(String filename,
                   EFileDate timestamp,
                   int[] size,
                   int[] code,
                   int[] type,
                   int[] recsize,
                   char[] security,
                   String[] catalog)
            throws IOException

Informationen über eine Datei.

Der Aufruf gibt Werte über die Parameter zurueck, die vorher angelegt sein müssen:

      String filename = "file";
      EFileDate date = new EFileDate();
      int[] size = new int[ 1 ];
      int[] code = new int[ 1 ];
      int[] type = new int[ 1 ];
      int[] recsize = new int[ 1 ];
      char[] security[] = new char[ 4 ];
      String fullName = info( filename, date, size, code,
                              type, recsize, security );
  
Parameters:
filename - Name der Datei
timestamp - Zeitpunkt der letzten Änderung (Rückgabewert wie alle folgenden auch).
size - Dateigröße in size[0]
code - Filecode in code[0]
type - Filetyp in type[0]
recsize - Satzlänge in recsize[0]
security - Zugriffsrechte (4 Zeichen, RWEP)
Returns:
Der voll qualifizierte Dateiname

isTransaction

public boolean isTransaction()

TMF-Transaktion prüfen.

Diese Version gibt nur das Flag zurück!
Returns:
true, wenn eine Transaktion offen ist

loadDefines

public int loadDefines(String defines)
                throws IOException
Lade Defines
Parameters:
defines - Dateiname auf NonStop-Host oder "add define"-Befehl

main

public static void main(String[] args)
                 throws Exception
Test

makeString

public static String makeString(byte[] buffer,
                                int offset,
                                int length,
                                String encoding)

Erzeuge einen String mit dem angegebenen Encoding.

Bei Problemen wir das Standard-Encoding benutzt.
Parameters:
buffer - Datenpuffer
offset - Offset der Daten im Puffer
length - Länge des Strings
encoding - gewüschtes Encoding

open

public EFile open(String filename,
                  String access,
                  int flags,
                  int recsize)
           throws IOException

Datei eröffnen.

Parameters:
filename - Guardian-Dateiname
access - Zugriffsart als Text wie in C ("wb", "r+", ...)
flags - Open-Flags (Host.OPEN_...)
recsize - (maximale) Satzlänge der Datei
Returns:
ein EFile-Objekt für die Datei oder null bei Fehler

purge

public String purge(String filename)
             throws IOException

Datei löschen.

Parameters:
filename - Die zu löschende Enscribe-Datei
Returns:
null bei Fehler, den vollständigen Namen der Datei sonst

releaseAll

public void releaseAll()

Resourcen zurückgeben.

Diese Implementierung setzt die laufende TMF-Transaktion zurück und schließt alle Dateien.

returnNotOk

protected int returnNotOk()
                   throws IOException
Werfe abhängig vom ThrowException-Flag eine Exception oder gebe NOT_OK zurück

returnNull

protected Object returnNull()
                     throws IOException
Wirf abhängig vom ThrowException-Flag eine Exception oder gebe null zurück

setDebug

public boolean setDebug(boolean flag)

Debug starten/stoppen.

Returns:
alter Zustand des Flags

setThrowException

public void setThrowException(boolean throwException)

Setze das Throw-Exception-Flag.

Bei Fehlern wird automatisch eine IOException geworfen.

setTrace

public boolean setTrace(boolean flag)

Trace starten/stoppen.

Returns:
alter Zustand des Flags

setTrace

public void setTrace(PrintWriter trace)

Trace-Writer setzen.


startLog

public int startLog(String server)
             throws IOException

Logging zu Prozess starten/stoppen.

Ist der Parameter null, stoppt das Logging
Parameters:
server - Prozessname

startLog

public int startLog(String pathmon,
                    String server)
             throws IOException

Logging zu Pathway-Server oder Prozess starten/stoppen.

Sind beide Parameter null, stoppt das Logging
Parameters:
pathmon - Pathway-Monitor oder null
pathmon - Pathway-Monitor oder null
server - Pathway-Server oder Prozessname

stopLog

public int stopLog()
            throws IOException

Logging zu Pathway-Server oder Prozess stoppen.


strerror

public static String strerror(int error)
Fehlertext ermitteln (fehlt noch)

system

public int system(String cmd)
           throws IOException

Systemaufruf (TACL).

Parameters:
cmd - Befehl für TACL. Das Out-File sollte für jeden Befehl gesetzt werden!
Returns:
Host.OK oder Host.NOT_OK

transact

public int transact(int type)
             throws IOException

TMF-Transaktion.

Parameters:
type - Host.TT_BEGIN, Host.TT_COMMIT oder Host.TT_ROLLBACK
Returns:
Host.OK oder Host.NOT_OK

volume

public String volume(String volume)
              throws IOException
Volume wechseln
Parameters:
volume - Subvolumme-Name

xComputeIoOffset

public int xComputeIoOffset(int offset)

Ermittle einen absoluten Parameter-String-Offset

Erst müssen alle Parameter gelesen worden sein!

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
offset - Ergebnis von xGetString()
Returns:
Offset in den I/O-Bereich

xDoExtIo

public int xDoExtIo(short cmd,
                    short handle,
                    short size)
             throws IOException

Führe ein Sub-Kommando aus.

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
cmd - das Kommando
handle - (File-)Handle
size - Anzahl der Bytes

xGetByte

public byte xGetByte()

Ermittle das nächste Byte des Puffers.

Nur von SubCommand (RSQL) aufzurufen!

Returns:
ein Byte

xGetInt

public int xGetInt()

Ermittle das nächste 32-Bit-Wort des Puffers.

Nur von SubCommand (RSQL) aufzurufen!

Returns:
ein Wort

xGetIoBuffer

public byte[] xGetIoBuffer()

Ermittle den Byte-Array des I/O-Buffers.

Nur von SubCommand (RSQL) aufzurufen!

Returns:
Puffer

xGetShort

public short xGetShort()

Ermittle das nächste 16-Bit-Wort des Puffers.

Nur von SubCommand (RSQL) aufzurufen!

Returns:
ein Wort

xGetString

public int xGetString()

Ermittle den nächsten Parameter-String.

Nur von SubCommand (RSQL) aufzurufen!

Returns:
interner Offset auf den String

xGetString

public String xGetString(int offset)

Ermittle einen Parameter-String.

Erst müssen alle Parameter gelesen worden sein!

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
offset - Ergebnis von xGetString()
Returns:
der String; die Methode liefert nie null zurück

xGetString

public String xGetString(int offset,
                         boolean mayBeNull)

Ermittle einen Parameter-String.

Erst müssen alle Parameter gelesen worden sein!

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
offset - Ergebnis von xGetString()
mayBeNull - Wenn true, dann werden leere Strings durch null ersetzt
Returns:
der String

xGetSubResult

public short xGetSubResult()

Ermittle das Ergebnis eines SubCommands.

Nur von SubCommand (RSQL) aufzurufen!

Returns:
das Resultat

xResetParameters

public void xResetParameters()

Setze den Datenzeiger auf den Anfang der Daten zurück.

Der Befehl muss vor dem ersten setXxxx() aufgerufen werden.

Nur von SubCommand (RSQL) aufzurufen!


xSetByte

public void xSetByte(byte value)

Setze das nächste Byte des Puffers.

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
value - das Byte

xSetBytes

public void xSetBytes(byte[] b,
                      int offset,
                      int size)

Setze einen Byte-Array als Parameter in den Daten-Puffer. (Pointer beim aktuellen Offset).

Achtung: die Daten werden gepuffert und erst beim Aufruf von xSetSubCommand(short) in den Daten-Puffer geschrieben! Der wirkliche Offset ist vorher nicht bekannt.

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
data - Quelle
offset - Offset innerhalb der Quelle
size - Laenge der Daten

xSetInt

public void xSetInt(int value)

Setze das nächste 32-Bit-Wort des Puffers.

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
value - das Wort

xSetShort

public void xSetShort(short value)

Setze das nächste 16-Bit-Wort des Puffers.

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
value - das Wort

xSetString

public void xSetString(String value)

Setze einen Parameter-String in den Daten-Puffer (Pointer beim aktuellen Offset).

Achtung: die Strings werden gepuffert und erst beim Aufruf von xSetSubCommand(short) in den Daten-Puffer geschrieben! Der wirkliche Offset ist vorher nicht bekannt!

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
value - der String

xSetSubCommand

public short xSetSubCommand(short value)

Setze das Sub-Kommando und die Parameterlänge.

Vorher werden alle gepufferten Strings in den Puffer gepackt.

Nur von SubCommand (RSQL) aufzurufen!

Parameters:
value - das Sub-Kommando
Returns:
die I/O-Länge


Copyright © 2002 MvC Systemsoftware.