janus.net
Class Connection

java.lang.Object
  extended by janus.net.Connection
Direct Known Subclasses:
LocalConnection, SecureConnection, ServerConnection

public class Connection
extends Object

Diese Klasse stellt die Verbindung der JAVA-Applikation über ein Gateway oder den TCP_TAN-Server zu den Servern auf einem Tandem-System her.

Das Gateway (TCP_RSC) muss auf einer Plattform installiert werden, die RSC unterstützt:

     JVM <--(TCP/IP)--> TCP_RSC <--(RSC)--> TDP <--(PATHSEND)--> Server
  
Alternativ kann direkt der Prozess TCP_TAN auf dem Tandem-System installiert und angesprochen werden. Die Lösung kommt so ohne RSC-Lizenzen oder externe Gateway-Rechner aus:
     JVM <--(TCP/IP)--> TCP_TAN <--(PATHSEND)--> Server
  


Field Summary
protected static int ACCEPT_SIZE
          Protokollkonstante
protected static int ADDRESS_SIZE
          Protokollkonstante
protected  String alias
          UMS-Aliasname (Server)
protected  boolean connected
          true, wenn Verbindung besteht
protected  boolean debug
          Debug einschalten.
protected  PrintWriter debugStream
          PrintWriter für Debugging
static String DEFAULT_HOST
          Standard TCP/IP-Name des Gatewayhosts
static String DEFAULT_INIT
          Standardtext für INIT-Nachricht ("$PM")
static int DEFAULT_PORT
          Standard TCP/IP-Portnummer des Gateways
protected  String destination
          Zielfeld aus DATA-Nachricht
protected static int DESTINATION_SIZE
          Protokollkonstante
protected  CommException exception
          Letzter Fehler
protected static int HEADER_SIZE
          Protokollkonstante
protected  String host
          TCP/IP-Adresse des Gateway-Systems oder Hosts
protected  int id
          ID für das Debugging
protected  String init
          Initialisierungs-Information (Pathmon-Name oder RSC.INI-Datei)
protected static int INIT_SIZE
          Protokollkonstante
protected  InputStream input
          TCP/IP-Eingabe-Strom
protected  byte[] io_buffer
          Sende und Empfangspuffer
protected static int IO_BUFFER_SIZE
          Protokollkonstante
protected  int io_len
          Gesamt-Pufferlänge
protected static int IP_ADDRESS_SIZE
          Protokollkonstante
protected  NumberString long_number
          Hilfsfeld für große Zahlen
protected static int LONG_NUMBER_SIZE
          Protokollkonstante
protected  int message_type
          Art der empfangenen Nachricht
static int MT_ACCEPT
          Nachrichtentyp Verbindungsannahme
static int MT_ACK
          Nachrichtentyp positive Quittung
static int MT_AWAITIO
          Nachrichtentyp Warten auf I/O-Completion
static int MT_CANCEL
          Nachrichtentyp I/O-Abbruch
static int MT_DATA
          Nachrichtentyp Server-Message
static int MT_ERROR
          Nachrichtentyp negative Quittung
static int MT_INIT
          Nachrichtentyp Initialisierung
static int MT_REPLY
          Nachrichtentyp Server-Antwort
static int MT_TRANSACTION
          Nachrichtentyp Transaktion
protected static int MT_UNKNOWN
          Nachrichtentyp unbekannt
protected  boolean nowait
          true, wenn ein Nowait-I/O aussteht
protected  NumberString number
          Hilfsfeld für Zahlen
protected static int NUMBER_SIZE
          Protokollkonstante
protected  byte[] nw_buffer
          Verweis auf Puffer für Reply aus Nowait-I/O
protected  int nw_length
          Maximale Länge des Nowait-Reply
protected  int nw_offset
          Offset innerhalb des Nowait-Reply
protected  int option
          Options-Bits
protected static int OPTION_NOWAIT
          Bedeutung der Optionen
protected  OutputStream output
          TCP/IP-Ausgabe-Strom
protected  String partner
          Prozessname des Gegenprozesses (TCP_TAN) fuer UMS Bei Servern die letzte adressierte Destination
protected  int port
          TCP/IP-Port des Gateway-Systems oder Hosts
protected  int reply_len
          Maximale Antwortlänge
protected static int REPLY_SIZE
          Protokollkonstante
protected  boolean server
          true, wenn dies eine Serververbindung ist
protected  Socket socket
          TCP/IP-Socket zum Gateway
protected  int success_hi
          Oberer Grenzwert für erfolgreiche Transaktion
protected  int success_lo
          Unterer Grenzwert für erfolgreiche Transaktion
protected static String TAG_ACCEPT
          Nachrichtentag Verbindungsannahme
protected static String TAG_ACK
          Nachrichtentag positive Quittung
protected static String TAG_AWAITIO
          Nachrichtentag Warten auf I/O-Completion
protected static String TAG_CANCEL
          Nachrichtentag I/O-Abbruch
protected static String TAG_DATA
          Nachrichtentag Server-Message
protected static String TAG_ERROR
          Nachrichtentag negative Quittung
protected static String TAG_INIT
          Nachrichtentag Initialisierung
protected static String TAG_REPLY
          Nachrichtentag Server-Antwort
protected static int TAG_SIZE
          Protokollkonstante
protected static String TAG_TRANSACTION
          Nachrichtentag Transaktion
protected  String terminal
          UMS-Terminalname (Server)
protected static int TEXT_SIZE
          Protokollkonstante
protected  int timeout
          Timeout-Wert (aus DATA-Nachricht oder AWAITIO)
protected  boolean transaction
          true, wenn Transaktion aktiv
protected static int TRANSACTION_SIZE
          Protokollkonstante
protected  int transaction_type
          Transaktionstyp
static int TT_AUTOCOMMIT
          Transaktionstyp - Automatische Transaktion
static int TT_BEGIN
          Transaktionstyp - BeginTransaction
static int TT_COMMIT
          Transaktionstyp - EndTransaction
static int TT_IN_PROGRESS
          Transaktionstyp - Transaktion aktiv (nur intern benutzt)
static int TT_NONE
          Transaktionstyp - Keine Transaktion
static int TT_ROLLBACK
          Transaktionstyp - AbortTransaktion
static int TT_SINGLE
          Transaktionstyp - Einzeltransaktion
protected  char type
          Typ für das Debugging
protected  String ums_address
          IP-Adresse (UMS)
protected static int UMS_ALIAS_SIZE
          Protokollkonstante
protected  int ums_port
          IP-Port (UMS)
protected static int UMS_TERMINAL_SIZE
          Protokollkonstante
protected  ServerConnection umsConnection
          UMS-Connection
protected  int user_code
          Fehlernummer aus Nachricht
protected  int user_len
          Länge der Nutzdaten
protected  int user_offset
          Beginn der Nutzdaten
protected  Object userObject
          User-Object (@see #setUserObject)
 
Constructor Summary
protected Connection()
          Konstruktor ohne Parameter - für abgeleitete Klassen
  Connection(ConnectionParameter param)
          Konstruktor - baut die Verbindung zum Tandem-System auf.
  Connection(ConnectionParameter param, boolean debug)
          Konstruktor - baut die Verbindung zum Tandem-System auf.
  Connection(String host, int port, String init)
          Konstruktor - baut die Verbindung zum Tandem-System auf.
  Connection(String host, int port, String init, boolean compress, boolean debug)
          Konstruktor - baut die Verbindung zum Tandem-System auf.
  Connection(String host, int port, String init, boolean compress, PrintWriter stream)
          Konstruktor - baut die Verbindung zum Tandem-System auf.
  Connection(String host, int port, String init, boolean compress, String file)
          Konstruktor - baut die Verbindung zum Tandem-System auf.
 
Method Summary
 void abortTransaction()
          Zurücknehmen einer Transaktion (Alias für rollbackTransaction.)
 ServerConnection acceptNew()
          Umgekehrter Verbindungsaufbau für UMS
protected  Socket acceptUmsServerSocket(ServerSocket ss)
          Nehme den UMS-Server-Socket an.
 void autoCommitTransaction(int success_lo, int success_hi)
          Automatisches Transaktionsende.
 int awaitIo(int timeout)
          Warte auf I/O.
 void beginTransaction()
          Beginn einer Transaktion.
 void cancel()
          Breche Nowait-I/O ab.
protected  void checkConnection()
          Test auf bestehende Verbindung.
 void commitTransaction()
          Beenden einer Transaktion (Alias für endTransaction.)
 void connect()
          Verbindungsaufbau mit den gespeicherten Parametern.
 void connect(String host, int port, String init)
          Verbindungsaufbau.
 void connect(String host, int port, String init, boolean compress)
          Verbindungsaufbau.
protected  void createSocket()
          Erzeuge den Client-Socket.
protected  ServerSocket createUmsServerSocket(int port)
          Erzeuge den UMS-Server-Socket.
 void disconnect()
          Verbindungsabbau
 void endTransaction()
          Beenden einer Transaktion.
 void finalize()
          Finalizer: Ruft disconnect() auf.
 String getAlias()
          Rückgabe des UMS-Alias
 byte[] getBuffer()
          Rückgabe des Byte-Puffers
 ConnectionParameter getConnectionParameter()
          Rückgabe der Verbindungsparameter
 PrintWriter getDebugStream()
          Rückgabe des DebugStream
 String getDestination()
          Rückgabe der Destination der letzten DATA-Nachricht
 CommException getException()
          Rückgabe des letzten Fehlers
 String getInit()
          Rückgabe der Init-Nachricht bzw. der Antwort darauf
 int getIoLen()
          Rückgabe des Byte-Puffers
 int getMessageType()
          Rückgabe des Nachrichtentyps
 byte[] getNowaitBuffer()
          Rückgabe des Nowait-Puffers
 String getPartner()
          Rückgabe des Gegenprozesses (TCP_TAN) bzw. der Destination der letzten DATA-Nachricht
 int getReplyLen()
          Rückgabe der erwarteten Antwortlänge
 int getSuccessHi()
          Rückgabe des oberen Autocommitwertes
 int getSuccessLo()
          Rückgabe des unteren Autocommitwertes
 String getTerminal()
          Rückgabe des UMS-Terminalnamens
 int getTimeout()
          Rückgabe des Timeouts
 int getTransactionType()
          Rückgabe des Transaktionstyps
 String getUmsAddress()
          Rückgabe der IP-Adresse für die UMS-Connection
 ServerConnection getUmsConnection()
          Rückgabe der UMS-Connection
 int getUmsPort()
          Rückgabe des IP-Ports für die UMS-Connection
 int getUserCode()
          Rückgabe des Fehlercodes
 String getUserData()
          Rückgabe der User-Daten als String.
 int getUserData(byte[] dst, int offset, int maxlen)
          Rückgabe der User-Daten.
 int getUserLen()
          Rückgabe der Länge der User-Daten
 Object getUserObject()
          Zugriff auf das User-Objekt
 int getUserOffset()
          Rückgabe des Offsets der User-Daten
 boolean isConnected()
          Rückgabe des Verbindungsstatus
 boolean isDebug()
          Rückgabe des Debug-Status
 boolean isNowait()
          Rückgabe des Nowait-Status
 boolean isTransaction()
          Rückgabe des Transaktionsstatus
static void main(String[] args)
          Test
protected  String makeUmsDest(String terminal, String alias, int reply_len)
          Konstruiere die spezielle UMS-Destination
 void notImplemented(String caller)
          Wirf CommException NOT_IMPLEMENTED
 void println(Object text)
          Debugging
 void receiveBuffer()
          Empfangen der Antwort in io_buffer.
 void rollbackTransaction()
          Zurücknehmen einer Transaktion.
protected  void sendAccept(int port)
          Accept-Nachricht.
 void sendBuffer(byte[] buffer, int length)
          Senden eines beliebigen Puffers.
protected  void sendBuffer(String tag, int len, int opt)
          Senden einer Nachricht.
protected  void sendInit(String init)
          Init-Nachricht.
protected  int sendMessage(String dest)
          Message an Server.
 int sendMessage(String dest, byte[] msg, int msg_offset, int msg_len, byte[] reply, int reply_offset, int reply_len)
          Message an Server.
 int sendMessage(String dest, byte[] msg, int msg_offset, int msg_len, byte[] reply, int reply_offset, int reply_len, int timeout)
          Message an Server mit Timeout.
protected  int sendMessage(String dest, int timeout)
          Message an Server mit Timeout.
 int sendMessage(String dest, MessageElement[] msg, MessageElement[] reply)
          Message an Server.
 int sendMessage(String dest, MessageElement[] msg, MessageElement[] reply, int timeout)
          Message an Server mit Timeout.
 int sendMessage(String dest, MessageElement msg, int msg_len, MessageElement reply)
          Message an Server.
 int sendMessage(String dest, MessageElement msg, int msg_len, MessageElement reply, int timeout)
          Message an Server mit Timeout.
 int sendMessage(String dest, MessageElement msg, MessageElement reply)
          Message an Server.
 int sendMessage(String dest, MessageElement msg, MessageElement reply, int timeout)
          Message an Server mit Timeout.
 void sendTransaction(int type, int success_lo, int success_hi)
          Transaktionsmessage.
 int sendUms(String terminal, String alias, byte[] msg, int msg_offset, int msg_len, byte[] reply, int reply_offset, int reply_len)
          Message an UMS-Client.
 int sendUms(String terminal, String alias, MessageElement msg, int msg_len, MessageElement reply)
          Message an UMS-Client.
 int sendUms(String terminal, String alias, MessageElement msg, MessageElement reply)
          Message an UMS-Client.
 boolean setDebug(boolean debug)
          Setzen des Debug-Status
 void setDebugStream(PrintWriter stream)
          Setzen des debugStream und Debug-Status
 void setDebugStream(String file)
          Setzen des debugStream und Debug-Status
 void setUserObject(Object obj)
          Speichern eines User-Objektes Solche Objekte können zum Beispiel Puffer enthalten die pro Verbindung (in einem Pool) nur einmal erzeugt werden sollen Beispiel: conn = pool.getConnection( timeout ); MyMessage msg = (MyMessage) conn.getUserObject(); if ( msg == null ) { msg = new MyMessage(); conn.setUserObject( msg ); }
 void singleTransaction(int success_lo, int success_hi)
          Automatische Einzeltransaktion.
protected  void tcpRead(int offset, int len)
          Empfangen einer definierten Anzahl von Bytes über die Socket-Verbindung.
protected  void tcpWrite()
          Senden des Puffers über die Socket-Verbindung.
 String toString()
          Stringdarstellung
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ACCEPT_SIZE

protected static final int ACCEPT_SIZE
Protokollkonstante

See Also:
Constant Field Values

ADDRESS_SIZE

protected static final int ADDRESS_SIZE
Protokollkonstante

See Also:
Constant Field Values

alias

protected String alias
UMS-Aliasname (Server)


connected

protected boolean connected
true, wenn Verbindung besteht


debug

protected boolean debug
Debug einschalten.


debugStream

protected PrintWriter debugStream
PrintWriter für Debugging


DEFAULT_HOST

public static final String DEFAULT_HOST
Standard TCP/IP-Name des Gatewayhosts

See Also:
Constant Field Values

DEFAULT_INIT

public static final String DEFAULT_INIT
Standardtext für INIT-Nachricht ("$PM")

See Also:
Constant Field Values

DEFAULT_PORT

public static final int DEFAULT_PORT
Standard TCP/IP-Portnummer des Gateways

See Also:
Constant Field Values

destination

protected String destination
Zielfeld aus DATA-Nachricht


DESTINATION_SIZE

protected static final int DESTINATION_SIZE
Protokollkonstante

See Also:
Constant Field Values

exception

protected CommException exception
Letzter Fehler


HEADER_SIZE

protected static final int HEADER_SIZE
Protokollkonstante

See Also:
Constant Field Values

host

protected String host
TCP/IP-Adresse des Gateway-Systems oder Hosts


id

protected int id
ID für das Debugging


init

protected String init
Initialisierungs-Information (Pathmon-Name oder RSC.INI-Datei)


INIT_SIZE

protected static final int INIT_SIZE
Protokollkonstante

See Also:
Constant Field Values

input

protected InputStream input
TCP/IP-Eingabe-Strom


io_buffer

protected byte[] io_buffer
Sende und Empfangspuffer


IO_BUFFER_SIZE

protected static final int IO_BUFFER_SIZE
Protokollkonstante

See Also:
Constant Field Values

io_len

protected int io_len
Gesamt-Pufferlänge


IP_ADDRESS_SIZE

protected static final int IP_ADDRESS_SIZE
Protokollkonstante

See Also:
Constant Field Values

long_number

protected NumberString long_number
Hilfsfeld für große Zahlen


LONG_NUMBER_SIZE

protected static final int LONG_NUMBER_SIZE
Protokollkonstante

See Also:
Constant Field Values

message_type

protected int message_type
Art der empfangenen Nachricht


MT_ACCEPT

public static final int MT_ACCEPT
Nachrichtentyp Verbindungsannahme

See Also:
Constant Field Values

MT_ACK

public static final int MT_ACK
Nachrichtentyp positive Quittung

See Also:
Constant Field Values

MT_AWAITIO

public static final int MT_AWAITIO
Nachrichtentyp Warten auf I/O-Completion

See Also:
Constant Field Values

MT_CANCEL

public static final int MT_CANCEL
Nachrichtentyp I/O-Abbruch

See Also:
Constant Field Values

MT_DATA

public static final int MT_DATA
Nachrichtentyp Server-Message

See Also:
Constant Field Values

MT_ERROR

public static final int MT_ERROR
Nachrichtentyp negative Quittung

See Also:
Constant Field Values

MT_INIT

public static final int MT_INIT
Nachrichtentyp Initialisierung

See Also:
Constant Field Values

MT_REPLY

public static final int MT_REPLY
Nachrichtentyp Server-Antwort

See Also:
Constant Field Values

MT_TRANSACTION

public static final int MT_TRANSACTION
Nachrichtentyp Transaktion

See Also:
Constant Field Values

MT_UNKNOWN

protected static final int MT_UNKNOWN
Nachrichtentyp unbekannt

See Also:
Constant Field Values

nowait

protected boolean nowait
true, wenn ein Nowait-I/O aussteht


number

protected NumberString number
Hilfsfeld für Zahlen


NUMBER_SIZE

protected static final int NUMBER_SIZE
Protokollkonstante

See Also:
Constant Field Values

nw_buffer

protected byte[] nw_buffer
Verweis auf Puffer für Reply aus Nowait-I/O


nw_length

protected int nw_length
Maximale Länge des Nowait-Reply


nw_offset

protected int nw_offset
Offset innerhalb des Nowait-Reply


option

protected int option
Options-Bits


OPTION_NOWAIT

protected static final int OPTION_NOWAIT
Bedeutung der Optionen

See Also:
Constant Field Values

output

protected OutputStream output
TCP/IP-Ausgabe-Strom


partner

protected String partner
Prozessname des Gegenprozesses (TCP_TAN) fuer UMS Bei Servern die letzte adressierte Destination


port

protected int port
TCP/IP-Port des Gateway-Systems oder Hosts


reply_len

protected int reply_len
Maximale Antwortlänge


REPLY_SIZE

protected static final int REPLY_SIZE
Protokollkonstante

See Also:
Constant Field Values

server

protected boolean server
true, wenn dies eine Serververbindung ist


socket

protected Socket socket
TCP/IP-Socket zum Gateway


success_hi

protected int success_hi
Oberer Grenzwert für erfolgreiche Transaktion


success_lo

protected int success_lo
Unterer Grenzwert für erfolgreiche Transaktion


TAG_ACCEPT

protected static final String TAG_ACCEPT
Nachrichtentag Verbindungsannahme

See Also:
Constant Field Values

TAG_ACK

protected static final String TAG_ACK
Nachrichtentag positive Quittung

See Also:
Constant Field Values

TAG_AWAITIO

protected static final String TAG_AWAITIO
Nachrichtentag Warten auf I/O-Completion

See Also:
Constant Field Values

TAG_CANCEL

protected static final String TAG_CANCEL
Nachrichtentag I/O-Abbruch

See Also:
Constant Field Values

TAG_DATA

protected static final String TAG_DATA
Nachrichtentag Server-Message

See Also:
Constant Field Values

TAG_ERROR

protected static final String TAG_ERROR
Nachrichtentag negative Quittung

See Also:
Constant Field Values

TAG_INIT

protected static final String TAG_INIT
Nachrichtentag Initialisierung

See Also:
Constant Field Values

TAG_REPLY

protected static final String TAG_REPLY
Nachrichtentag Server-Antwort

See Also:
Constant Field Values

TAG_SIZE

protected static final int TAG_SIZE
Protokollkonstante

See Also:
Constant Field Values

TAG_TRANSACTION

protected static final String TAG_TRANSACTION
Nachrichtentag Transaktion

See Also:
Constant Field Values

terminal

protected String terminal
UMS-Terminalname (Server)


TEXT_SIZE

protected static final int TEXT_SIZE
Protokollkonstante

See Also:
Constant Field Values

timeout

protected int timeout
Timeout-Wert (aus DATA-Nachricht oder AWAITIO)


transaction

protected boolean transaction
true, wenn Transaktion aktiv


TRANSACTION_SIZE

protected static final int TRANSACTION_SIZE
Protokollkonstante

See Also:
Constant Field Values

transaction_type

protected int transaction_type
Transaktionstyp


TT_AUTOCOMMIT

public static final int TT_AUTOCOMMIT
Transaktionstyp - Automatische Transaktion

See Also:
Constant Field Values

TT_BEGIN

public static final int TT_BEGIN
Transaktionstyp - BeginTransaction

See Also:
Constant Field Values

TT_COMMIT

public static final int TT_COMMIT
Transaktionstyp - EndTransaction

See Also:
Constant Field Values

TT_IN_PROGRESS

public static final int TT_IN_PROGRESS
Transaktionstyp - Transaktion aktiv (nur intern benutzt)

See Also:
Constant Field Values

TT_NONE

public static final int TT_NONE
Transaktionstyp - Keine Transaktion

See Also:
Constant Field Values

TT_ROLLBACK

public static final int TT_ROLLBACK
Transaktionstyp - AbortTransaktion

See Also:
Constant Field Values

TT_SINGLE

public static final int TT_SINGLE
Transaktionstyp - Einzeltransaktion

See Also:
Constant Field Values

type

protected char type
Typ für das Debugging


ums_address

protected String ums_address
IP-Adresse (UMS)


UMS_ALIAS_SIZE

protected static final int UMS_ALIAS_SIZE
Protokollkonstante

See Also:
Constant Field Values

ums_port

protected int ums_port
IP-Port (UMS)


UMS_TERMINAL_SIZE

protected static final int UMS_TERMINAL_SIZE
Protokollkonstante

See Also:
Constant Field Values

umsConnection

protected ServerConnection umsConnection
UMS-Connection


user_code

protected int user_code
Fehlernummer aus Nachricht


user_len

protected int user_len
Länge der Nutzdaten


user_offset

protected int user_offset
Beginn der Nutzdaten


userObject

protected Object userObject
User-Object (@see #setUserObject)

Constructor Detail

Connection

protected Connection()
Konstruktor ohne Parameter - für abgeleitete Klassen


Connection

public Connection(ConnectionParameter param)
           throws CommException,
                  TandemException
Konstruktor - baut die Verbindung zum Tandem-System auf.

Parameters:
param - Parameter zum Aufbau der Verbindung
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

Connection

public Connection(ConnectionParameter param,
                  boolean debug)
           throws CommException,
                  TandemException
Konstruktor - baut die Verbindung zum Tandem-System auf. Unterstüzt das debugging

Parameters:
param - Parameter zum Aufbau der Verbindung
debug - Testinformationen auf debugStream ausgeben
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

Connection

public Connection(String host,
                  int port,
                  String init)
           throws CommException,
                  TandemException
Konstruktor - baut die Verbindung zum Tandem-System auf. Schaltet Testausgaben aus.

Parameters:
host - TCP/IP-Adresse des Gateway-Systems
port - TCP/IP-Port des Gateway-Systems
init - Initialisierungs-Information (Pathmon oder RSC.INI-Datei)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

Connection

public Connection(String host,
                  int port,
                  String init,
                  boolean compress,
                  boolean debug)
           throws CommException,
                  TandemException
Konstruktor - baut die Verbindung zum Tandem-System auf.

Parameters:
host - TCP/IP-Adresse des Gateway-Systems oder Hosts
port - TCP/IP-Port des Gateway-Systems oder Hosts
init - Initialisierungs-Information (Name der RSC.INI-Datei oder Pathmon-Name)
compress - Kompression einschalten (ohne Funktion)
debug - Testinformationen auf debugStream ausgeben
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

Connection

public Connection(String host,
                  int port,
                  String init,
                  boolean compress,
                  PrintWriter stream)
           throws CommException,
                  TandemException
Konstruktor - baut die Verbindung zum Tandem-System auf.

Parameters:
host - TCP/IP-Adresse des Gateway-Systems oder Hosts
port - TCP/IP-Port des Gateway-Systems oder Hosts
init - Initialisierungs-Information (Name der RSC.INI-Datei oder Pathmon-Name)
compress - Kompression einschalten (ohne Funktion)
stream - Ausgabe-Stream f¨r Debugging
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

Connection

public Connection(String host,
                  int port,
                  String init,
                  boolean compress,
                  String file)
           throws CommException,
                  TandemException
Konstruktor - baut die Verbindung zum Tandem-System auf.

Parameters:
host - TCP/IP-Adresse des Gateway-Systems oder Hosts
port - TCP/IP-Port des Gateway-Systems oder Hosts
init - Initialisierungs-Information (Name der RSC.INI-Datei oder Pathmon-Name)
compress - Kompression einschalten (ohne Funktion)
file - Name der Debug-Datei
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler
Method Detail

abortTransaction

public void abortTransaction()
                      throws CommException,
                             TandemException
Zurücknehmen einer Transaktion (Alias für rollbackTransaction.)

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

acceptNew

public ServerConnection acceptNew()
                           throws CommException
Umgekehrter Verbindungsaufbau für UMS

Returns:
Neues Connection-Object
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

acceptUmsServerSocket

protected Socket acceptUmsServerSocket(ServerSocket ss)
                                throws IOException
Nehme den UMS-Server-Socket an. Kann von abgeleiteten Klassen überschrieben werden.

Parameters:
ss - Server-Socket
Returns:
der verbundene Socket
Throws:
IOException

autoCommitTransaction

public void autoCommitTransaction(int success_lo,
                                  int success_hi)
                           throws CommException,
                                  TandemException
Automatisches Transaktionsende. Die Parameter success_lo und success_hi bilden die Grenzen, zwischen denen die ersten 16 Bit der Server-Antwort beim nächsten Aufruf von sendMessage() liegen müssen, damit die Transaktion automatisch beendet wird. Die Statusfunktion isTransaction() ist true, wenn die Transaktion nicht automatisch beendet werden konnte.

Parameters:
success_lo - Unterer Vergleichswert für AUTOCOMMIT (16 Bit)
success_hi - Oberer Vergleichswert für AUTOCOMMIT (16 Bit)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler
See Also:
sendMessage(java.lang.String, janus.util.MessageElement, janus.util.MessageElement), singleTransaction(int, int), isTransaction()

awaitIo

public int awaitIo(int timeout)
            throws CommException,
                   TandemException
Warte auf I/O. Die Daten werde im von sendMessage gesetzten Reply-Puffer abgelegt

Parameters:
timeout - Timeout (>=0 x0.01s)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

beginTransaction

public void beginTransaction()
                      throws CommException,
                             TandemException
Beginn einer Transaktion.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

cancel

public void cancel()
            throws CommException,
                   TandemException
Breche Nowait-I/O ab. Es kann immer nur der letzte I/O abgebrochen werden.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

checkConnection

protected void checkConnection()
                        throws CommException
Test auf bestehende Verbindung.

Throws:
CommException - wenn keine Verbindung besteht.

commitTransaction

public void commitTransaction()
                       throws CommException,
                              TandemException
Beenden einer Transaktion (Alias für endTransaction.)

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

connect

public void connect()
             throws CommException,
                    TandemException
Verbindungsaufbau mit den gespeicherten Parametern.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

connect

public void connect(String host,
                    int port,
                    String init)
             throws CommException,
                    TandemException
Verbindungsaufbau.

Parameters:
host - TCP/IP-Adresse des Gateway-Systems oder Hosts
port - TCP/IP-Port des Gateway-Systems oder Hosts
init - Initialisierungs-Information (Name der RSC.INI-Datei oder Pathmon-Name)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

connect

public void connect(String host,
                    int port,
                    String init,
                    boolean compress)
             throws CommException,
                    TandemException
Verbindungsaufbau.

Parameters:
host - TCP/IP-Adresse des Gateway-Systems oder Hosts
port - TCP/IP-Port des Gateway-Systems oder Hosts
init - Initialisierungs-Information (Name der RSC.INI-Datei oder Pathmon-Name)
compress - Einschalten der Kompression (ohne Funktion)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

createSocket

protected void createSocket()
                     throws IOException
Erzeuge den Client-Socket. Kann von abgeleiteten Klassen überschrieben werden.

Throws:
IOException

createUmsServerSocket

protected ServerSocket createUmsServerSocket(int port)
                                      throws IOException
Erzeuge den UMS-Server-Socket. Kann von abgeleiteten Klassen überschrieben werden.

Parameters:
port - Portnummer
Returns:
new ServerSocket(port)
Throws:
IOException

disconnect

public void disconnect()
Verbindungsabbau


endTransaction

public void endTransaction()
                    throws CommException,
                           TandemException
Beenden einer Transaktion.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

finalize

public void finalize()
Finalizer: Ruft disconnect() auf.

Overrides:
finalize in class Object

getAlias

public String getAlias()
Rückgabe des UMS-Alias


getBuffer

public byte[] getBuffer()
Rückgabe des Byte-Puffers


getConnectionParameter

public ConnectionParameter getConnectionParameter()
Rückgabe der Verbindungsparameter


getDebugStream

public PrintWriter getDebugStream()
Rückgabe des DebugStream


getDestination

public String getDestination()
Rückgabe der Destination der letzten DATA-Nachricht


getException

public CommException getException()
Rückgabe des letzten Fehlers


getInit

public String getInit()
Rückgabe der Init-Nachricht bzw. der Antwort darauf


getIoLen

public int getIoLen()
Rückgabe des Byte-Puffers


getMessageType

public int getMessageType()
Rückgabe des Nachrichtentyps


getNowaitBuffer

public byte[] getNowaitBuffer()
Rückgabe des Nowait-Puffers


getPartner

public String getPartner()
Rückgabe des Gegenprozesses (TCP_TAN) bzw. der Destination der letzten DATA-Nachricht


getReplyLen

public int getReplyLen()
Rückgabe der erwarteten Antwortlänge


getSuccessHi

public int getSuccessHi()
Rückgabe des oberen Autocommitwertes


getSuccessLo

public int getSuccessLo()
Rückgabe des unteren Autocommitwertes


getTerminal

public String getTerminal()
Rückgabe des UMS-Terminalnamens


getTimeout

public int getTimeout()
Rückgabe des Timeouts


getTransactionType

public int getTransactionType()
Rückgabe des Transaktionstyps


getUmsAddress

public String getUmsAddress()
Rückgabe der IP-Adresse für die UMS-Connection


getUmsConnection

public ServerConnection getUmsConnection()
Rückgabe der UMS-Connection


getUmsPort

public int getUmsPort()
Rückgabe des IP-Ports für die UMS-Connection


getUserCode

public int getUserCode()
Rückgabe des Fehlercodes


getUserData

public String getUserData()
Rückgabe der User-Daten als String. Nach einem Connect enthalten die User-Daten zum Beispiel den Namen des TCP_TAN-Prozesses zu dem die Verbindung besteht.

Returns:
Die zuletzt empfangenen User-Daten

getUserData

public int getUserData(byte[] dst,
                       int offset,
                       int maxlen)
                throws CommException
Rückgabe der User-Daten. Die Anzahl der kopierten Bytes wird zurückgegeben Sind weniger Daten vorhanden als angefordert, wird der Rest mit Space gefüllt Nach einem Connect enthalten die User-Daten zum Beispiel den Namen des TCP_TAN-Prozesses zu dem die Verbindung besteht

Parameters:
dst - Zielbereich für die Daten
offset - Offset innerhalb von dst
maxlen - Maximale Länge
Returns:
Anzahl der kopierten Zeichen
Throws:
CommException - Allgemeiner Kommunikationsfehler

getUserLen

public int getUserLen()
Rückgabe der Länge der User-Daten


getUserObject

public Object getUserObject()
Zugriff auf das User-Objekt

Returns:
das User-Objekt
See Also:
setUserObject(java.lang.Object)

getUserOffset

public int getUserOffset()
Rückgabe des Offsets der User-Daten


isConnected

public boolean isConnected()
Rückgabe des Verbindungsstatus


isDebug

public boolean isDebug()
Rückgabe des Debug-Status


isNowait

public boolean isNowait()
Rückgabe des Nowait-Status


isTransaction

public boolean isTransaction()
Rückgabe des Transaktionsstatus


main

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

Throws:
CommException

makeUmsDest

protected String makeUmsDest(String terminal,
                             String alias,
                             int reply_len)
Konstruiere die spezielle UMS-Destination

Parameters:
terminal - UMS-Terminalname
alias - UMS-Aliasname
reply_len - Maximale Länge der Antwort
Returns:
Destination

notImplemented

public void notImplemented(String caller)
                    throws CommException
Wirf CommException NOT_IMPLEMENTED

Parameters:
caller - Aufrufende Funktion
Throws:
CommException - nicht implementierte Funktion

println

public void println(Object text)
Debugging


receiveBuffer

public void receiveBuffer()
                   throws CommException,
                          TandemException
Empfangen der Antwort in io_buffer. Der Puffer wird nach einigen Kriterien ausgewertet. Parameter finden danach sich in den Member-Variablen des Objektes.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

rollbackTransaction

public void rollbackTransaction()
                         throws CommException,
                                TandemException
Zurücknehmen einer Transaktion.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendAccept

protected void sendAccept(int port)
                   throws CommException,
                          TandemException
Accept-Nachricht.

Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendBuffer

public void sendBuffer(byte[] buffer,
                       int length)
                throws CommException
Senden eines beliebigen Puffers. Für transparentes Pooling.

Parameters:
buffer - Daten
length - Länge der Daten
Throws:
CommException - Allgemeiner Kommunikationsfehler

sendBuffer

protected void sendBuffer(String tag,
                          int len,
                          int opt)
                   throws CommException
Senden einer Nachricht. Die Nachricht steht schon in io_buffer.

Parameters:
tag - Nachrichten-Tag ("INIT", "DATA", ...)
len - Länge der Nutzdaten ohne Header
opt - Options-Flag
Throws:
CommException - Allgemeiner Kommunikationsfehler

sendInit

protected void sendInit(String init)
                 throws CommException,
                        TandemException
Init-Nachricht.

Parameters:
init - Initialisierungs-Information (Name der RSC.INI-Datei oder Pathmon-Name)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

protected int sendMessage(String dest)
                   throws CommException,
                          TandemException
Message an Server. Daten sind schon in io_buffer.

Parameters:
dest - Name des Servers
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       byte[] msg,
                       int msg_offset,
                       int msg_len,
                       byte[] reply,
                       int reply_offset,
                       int reply_len)
                throws CommException,
                       TandemException
Message an Server. Beliebige Puffer für Message und Antwort.

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
msg_offset - Offset innerhalb von Message
msg_len - Länge der Message
reply - Antwort (Ausgabe)
reply_offset - Offset innerhalb der Antwort
reply_len - Maximale Länge der Antwort
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       byte[] msg,
                       int msg_offset,
                       int msg_len,
                       byte[] reply,
                       int reply_offset,
                       int reply_len,
                       int timeout)
                throws CommException,
                       TandemException
Message an Server mit Timeout. Beliebige Puffer für Message und Antwort.

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
msg_offset - Offset innerhalb von Message
msg_len - Länge der Message
reply - Antwort (Ausgabe)
reply_offset - Offset innerhalb der Antwort
reply_len - Maximale Länge der Antwort
timeout - Timeout (-1 = ohne, 0 = Nowait, >0 = x0.01s)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

protected int sendMessage(String dest,
                          int timeout)
                   throws CommException,
                          TandemException
Message an Server mit Timeout. Daten sind schon in io_buffer.

Parameters:
dest - Name des Servers
timeout - Timeout (-1 = ohne, 0 = Nowait, >0 = x0.01s)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       MessageElement[] msg,
                       MessageElement[] reply)
                throws CommException,
                       TandemException
Message an Server. Message und Antwort als Array von MessageElement-Objekten.

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
reply - Antwort (Ausgabe)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       MessageElement[] msg,
                       MessageElement[] reply,
                       int timeout)
                throws CommException,
                       TandemException
Message an Server mit Timeout. Message und Antwort als Array von MessageElement-Objekten.

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
reply - Antwort (Ausgabe)
timeout - Timeout (-1 = ohne, 0 = Nowait, >0 = x0.01s)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       MessageElement msg,
                       int msg_len,
                       MessageElement reply)
                throws CommException,
                       TandemException
Message an Server. Message und Antwort in getrennten MessageElement-Objekten. Angabe der Länge der zu sendenden Message

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
msg_len - Länge der Message
reply - Antwort (Ausgabe)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       MessageElement msg,
                       int msg_len,
                       MessageElement reply,
                       int timeout)
                throws CommException,
                       TandemException
Message an Server mit Timeout. Message und Antwort in getrennten MessageElement-Objekten. Angabe der Länge der zu sendenden Message

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
msg_len - Länge der Message
reply - Antwort (Ausgabe)
timeout - Timeout (-1 = ohne, 0 = Nowait, >0 = x0.01s)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       MessageElement msg,
                       MessageElement reply)
                throws CommException,
                       TandemException
Message an Server. Message und Antwort in getrennten MessageElement-Objekten.

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
reply - Antwort (Ausgabe)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendMessage

public int sendMessage(String dest,
                       MessageElement msg,
                       MessageElement reply,
                       int timeout)
                throws CommException,
                       TandemException
Message an Server mit Timeout. Message und Antwort in getrennten MessageElement-Objekten.

Parameters:
dest - Name des Servers
msg - Message (Eingabe)
reply - Antwort (Ausgabe)
timeout - Timeout (-1 = ohne, 0 = Nowait, >0 = x0.01s)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendTransaction

public void sendTransaction(int type,
                            int success_lo,
                            int success_hi)
                     throws CommException,
                            TandemException
Transaktionsmessage.

Parameters:
type - Transaktionstyp (TT_BEGIN, TT_END, ...)
success_lo - Unterer Vergleichswert für AUTOCOMMIT (16 Bit)
success_hi - Oberer Vergleichswert für AUTOCOMMIT (16 Bit)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler

sendUms

public int sendUms(String terminal,
                   String alias,
                   byte[] msg,
                   int msg_offset,
                   int msg_len,
                   byte[] reply,
                   int reply_offset,
                   int reply_len)
            throws CommException
Message an UMS-Client. Beliebige Puffer für Message und Antwort.

Parameters:
terminal - UMS-Terminalname
alias - UMS-Aliasname
msg - Message (Eingabe)
msg_offset - Offset innerhalb von Message
msg_len - Länge der Message
reply - Antwort (Ausgabe)
reply_offset - Offset innerhalb der Antwort
reply_len - Maximale Länge der Antwort
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler

sendUms

public int sendUms(String terminal,
                   String alias,
                   MessageElement msg,
                   int msg_len,
                   MessageElement reply)
            throws CommException
Message an UMS-Client. Message und Antwort in getrennten MessageElement-Objekten. Angabe der Länge der zu sendenden Message

Parameters:
terminal - UMS-Terminalname
alias - UMS-Aliasname
msg - Message (Eingabe)
msg_len - Länge der Message
reply - Antwort (Ausgabe)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler

sendUms

public int sendUms(String terminal,
                   String alias,
                   MessageElement msg,
                   MessageElement reply)
            throws CommException
Message an UMS-Client. Message und Antwort in getrennten MessageElement-Objekten.

Parameters:
terminal - UMS-Terminalname
alias - UMS-Aliasname
msg - Message (Eingabe)
reply - Antwort (Ausgabe)
Returns:
Anzahl der Zeichen in der Antwort
Throws:
CommException - Allgemeiner Kommunikationsfehler

setDebug

public boolean setDebug(boolean debug)
Setzen des Debug-Status

Parameters:
debug - Debug-Status
Returns:
der vorherige Stand

setDebugStream

public void setDebugStream(PrintWriter stream)
Setzen des debugStream und Debug-Status

Parameters:
stream - Ausgabe-Stream für Debugausgaben

setDebugStream

public void setDebugStream(String file)
Setzen des debugStream und Debug-Status

Parameters:
file - Dateiname für Debugausgaben

setUserObject

public void setUserObject(Object obj)
Speichern eines User-Objektes

Solche Objekte können zum Beispiel Puffer enthalten die pro Verbindung (in einem Pool) nur einmal erzeugt werden sollen

Beispiel:

      conn = pool.getConnection( timeout );
      MyMessage msg = (MyMessage) conn.getUserObject();
      if ( msg == null ) {
          msg = new MyMessage();
          conn.setUserObject( msg );
      }
  

Parameters:
obj - Das Objekt

singleTransaction

public void singleTransaction(int success_lo,
                              int success_hi)
                       throws CommException,
                              TandemException
Automatische Einzeltransaktion. singleTransaction funktioniert wie autoCommitTransaction, startet aber zusätzlich eine Transaktion vor dem nächsten sendMessage().

Parameters:
success_lo - Unterer Vergleichswert für AUTOCOMMIT (16 Bit)
success_hi - Oberer Vergleichswert für AUTOCOMMIT (16 Bit)
Throws:
CommException - Allgemeiner Kommunikationsfehler
TandemException - Tandem-Fehler
See Also:
sendMessage(java.lang.String, janus.util.MessageElement, janus.util.MessageElement), autoCommitTransaction(int, int), isTransaction()

tcpRead

protected void tcpRead(int offset,
                       int len)
                throws CommException
Empfangen einer definierten Anzahl von Bytes über die Socket-Verbindung.

Parameters:
offset - Position innerhalb von io_buffer
len - Anzahl der Bytes
Throws:
CommException - Allgemeiner Kommunikationsfehler

tcpWrite

protected void tcpWrite()
                 throws CommException
Senden des Puffers über die Socket-Verbindung.

Throws:
CommException - Allgemeiner Kommunikationsfehler

toString

public String toString()
Stringdarstellung

Overrides:
toString in class Object


Copyright © 2008 MvC Systemsoftware.