Connect

Liest die Eigenschaften, um zu bestimmen, welche Gateway-Verbindung verwendet werden soll, und stellt eine Verbindung zum Server her. Sie können über HTTP, HTTPS oder SOCKET eine Verbindung herstellen. Über HTTP und HTTPS wird eigentlich erst dann eine Verbindung zum Server hergestellt, wenn die Methode „GetService“ oder „Process“ aufgerufen wird. Bei dem Verbindungstyp SOCKET ist die Methode Connect voll funktionsfähig.

Syntax

public void connect() 

Parameter

Keine.

Ergebnisse

Auslösungen:

  • ConfigurationException: Wenn durch eine ungültige Konfiguration keine Verbindung zum Server hergestellt werden kann. Ein unbekanntes Protokoll verursacht beispielsweise eine ConfigurationException. Bei dem Versuch, die Methode „connect()“ erneut auszuführen, ist bei Auftreten dieses Fehlers kein Wert vorhanden.
  • ConnectionException: Wenn keine Verbindung zum Server hergestellt werden kann. Abhängig von der zugrunde liegenden Ursache für die Ausnahme kann die Verbindung eventuell wiederhergestellt werden.
  • MessageProcessingException: Wenn auf dem Server ein Fehler auftritt, der nicht durch Konfigurations- oder Verbindungsprobleme verursacht wurde.

Beispiel

Server server = new Server(); 

server.setConnectionProperty(Server.HOST, "localhost"); 
server.setConnectionProperty(Server.PORT, "10119"); 
server.setConnectionProperty(Server.CONNECTION_TYPE, "SOCKET"); 
server.setConnectionProperty(Server.ACCOUNT_ID, "guest"); 
server.setConnectionProperty(Server.ACCOUNT_PASSWORD, ""); 

try 
{ 
	//Connect to server 
	server.connect(); 
} 
catch (ConfgurationException e) 
{ 
	// indicate an error with configuration 
} 
catch (ConnectionException e) 
{ 
	// handle connection issue (retry, report error, etc.) 
} 
catch (MessageProcessingException e) 
{ 
	// report error 
}

Verbindungspooling

Verbindungspooling für den Verbindungstyp SOCKET ist für den Java-Client verfügbar. In diesem Abschnitt wird beschrieben, wie Verbindungspooling aktiviert und deaktiviert wird. Verbindungspooling ist standardmäßig deaktiviert.

So aktivieren Sie das Verbindungspooling:

Server server = new Server(); Server.setConnectionProperty(Connection.SOCKET_POOL, "true"); 

So deaktivieren Sie das Verbindungspooling:

Server server = new Server(); Server.setConnectionProperty(Connection.SOCKET_POOL, "false"); 

Wenn Verbindungspooling aktiviert ist, leiht sich die Methode „connect()“ eine Verbindung aus dem Pool und die Methode „disconnect()“ gibt die Verbindung wieder an den Pool zurück. Beim Pooling muss der Client die Methode „disconnect()“ jedes Mal aufrufen, um die Verbindung an den Pool zurückzugeben.

Jeder Thread sollte seinen eigenen Server enthalten, wie im folgenden Beispiel dargestellt:

{ 
	...	
	Server server = new Server(); 
	server.setConnectionProperty(Server.HOST, "localhost"); 
	server.setConnectionProperty(Server.PORT, "10119"); 
	server.setConnectionProperty(Server.CONNECTION_TYPE, "SOCKET"); 
	server.setConnectionProperty(Server.ACCOUNT_ID, "yourID"); 
	server.setConnectionProperty(Server.ACCOUNT_PASSWORD, "pwd"); 
	server.setConnectionProperty(Connection.SOCKET_POOL, "true"); 
	server.setConnectionProperty(Connection.SOCKET_POOL_MAX_ACTIVE, "20"); 
	server.setConnectionProperty(Connection.SOCKET_POOL_MIN_IDLE, "10"); 
	server.setConnectionProperty(Connection.SOCKET_POOL_MAX_TOTAL, "25"); 
	server.connect(); 
	...	
	service = server.getService(serviceName); 
	reply = service.process(requestMessage); 
	server.disconnect(); 
	...	
}

In der folgenden Tabelle werden die Konstanten aufgeführt, die Sie für Verbindungspooling verwenden können.

Tabelle 1. Konstanten für Verbindungspooling

Name der Konstante

Beschreibung

SOCKET_POOL

Gibt an, ob beim Verbindungstyp SOCKET Verbindungspooling verwendet werden soll. Die Werte sind „wahr“ oder „falsch“. Der Standardwert ist „false“.

SOCKET_POOL_MAX_ACTIVE*

Die maximale Anzahl der aktiven Socket-Verbindungen, die vom Pool ausgeliehen werden können. Der Standardwert ist -1 und gibt keinen maximalen Wert an.

SOCKET_POOL_MAX_IDLE*

Die maximale Anzahl der im Pool verbleibenden inaktive Socket-Verbindungen. Der Standardwert ist -1 und gibt keinen maximalen Wert an.

SOCKET_POOL_MAX_TOTAL*

Die maximale Gesamtzahl der Socket-Verbindungen im Pool (aktiv und inaktiv). Der Standardwert ist -1 und gibt keinen maximalen Wert an.

SOCKET_POOL_MAX_WAIT*

Die maximale Wartezeit (in Millisekunden) bevor eine Ausnahme ausgelöst werden soll, wenn der Pool erschöpft ist und der Wert der Aktion „Wenn erschöpft“ WHEN_EXHAUSTED_BLOCK lautet. Der Standardwert ist -1 und gibt keinen maximalen Wert an.

SOCKET_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS*

Die minimale Zeitdauer, die eine Verbindung in einem Pool inaktiv sein kann, bevor Sie entfernt werden kann. Der Standardwert ist 1800000 (30 Minuten).

SOCKET_POOL_MIN_IDLE*

Die minimal zulässige Anzahl der Verbindungen im Pool, bevor der Evictor-Thread (sofern aktiv) neue Verbindungen erstellt. Der Standardwert ist 0.

SOCKET_POOL_NUM_TESTS_PER_EVICTION_RUN*

Legt die Anzahl der inaktiven Verbindungen fest, die während den einzelnen Ausführungen des Evictor-Threads (sofern aktiv) überprüft werden sollen. Der Standardwert ist -1 und gibt an, dass alle inaktiven Verbindungen geprüft wurden.

SOCKET_POOL_TEST_ON_BORROW*

Gibt an, ob Verbindungen überprüft werden, bevor sie vom Pool ausgeliehen werden. Der Standardwert ist „Wahr“.

SOCKET_POOL_TEST_ON_RETURN*

Gibt an, ob Verbindungen überprüft werden, bevor sie an den Pool zurückgegeben werden. Der Standardwert ist „false“.

SOCKET_POOL_TEST_WHILE_IDLE*

Gibt an, ob Verbindungen durch das Evictor-Thread für inaktive Verbindungen überprüft werden. Der Standardwert ist „false“.

SOCKET_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS*

Legt die Anzahl der Millisekunden des Ruhezustands zwischen Ausführungen des Evictor-Threads für inaktive Verbindungen fest. Wenn der Wert auf null oder eine negative Zahl festgelegt ist, wird kein Evictor-Thread für inaktive Verbindungen ausgeführt. Der Standardwert ist 300000 (5 Minuten).

SOCKET_POOL_WHEN_EXHAUSTED_ACTION*

Legt die Aktion „Wenn erschöpft“ fest, die ausgeführt werden soll, wenn versucht wird, eine Verbindung zu leihen und keine Verbindung verfügbar ist. Der Standardwert ist SOCKET_POOL_WHEN_EXHA USTED_BLOCK.

SOCKET_POOL_WHEN_EXHAUSTED_BLOCK*

Der Aktionstyp „Wenn erschöpft“, der angibt, dass der Aufrufer so lange blockiert werden sollte, bis ein neues Objekt verfügbar ist, wenn versucht wird, eine Verbindung auszuleihen und keine Verbindungen verfügbar sind. Alternativ kann es auch sein, dass die maximale Wartezeit verstrichen ist.

SOCKET_POOL_WHEN_EXHAUSTED_FAIL*

Der Aktionstyp „Wenn erschöpft“, der angibt, dass der Aufrufer fehlschlagen sollte, wenn versucht wird, eine Verbindung auszuleihen und keine Verbindungen verfügbar sind. Dadurch wird eine ConnectionException ausgelöst.

SOCKET_POOL_WHEN_EXHAUSTED_GROW*

Der Aktionstyp „Wenn erschöpft“, der angibt, dass ohnehin eine neue Verbindung hergestellt wird, wenn versucht wird, eine Verbindung auszuleihen und keine Verbindungen verfügbar sind.

* Gilt nur, wenn der Verbindungstyp SOCKET verwendet wird und das Verbindungspooling aktiviert ist.