Connect

Lit les propriétés pour déterminer quelle connexion de passerelle utiliser et établit une connexion au serveur. Vous pouvez vous connecter via HTTP, HTTPS ou SOCKET. Cependant, HTTP et HTTPS ne se connectent pas vraiment au serveur tant qu'une méthode GetService ou Process n'est pas invoquée. Avec un type de connexion SOCKET, la méthode Connect est complètement fonctionnelle.

Syntaxe

public void connect() 

Paramètres

Aucun(e)

Résultats

Throws :

  • ConfigurationException : lorsqu'une configuration invalide entraîne une connexion impossible au serveur. Par exemple, un protocole inconnu causerait une ConfigurationException. Il n'y a pas de valeur dans la tentative de réessayer connect() lorsque cette erreur survient.
  • ConfigurationException : lorsque la connexion au serveur est impossible. Il se peut que la reconnexion soit possible en fonction de la cause sous-jacente à l'exception.
  • MessageProcessingException : lorsqu'une erreur se produit sur le serveur qui n'est pas liée aux problèmes de Configuration ou de Connexion.

Exemple

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 
}

Pool de connexion

Pool de connexion pour le type de connexion SOCKET est disponible sur le client Java. Cette section décrit comment activer et désactiver le pool de connexion. Par défaut, le pool de connexion est désactivé.

Pour activer le pool de connexion :

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

Pour désactiver le pool de connexion :

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

Lorsque le pool de connexion est activé, la méthode connect() emprunte une connexion à partir du pool et la méthode disconnect() renvoie la connexion vers le pool. Lors de l'utilisation du pool, le client doit appeler la méthode disconnect() chaque fois pour renvoyer la connexion au pool.

Chaque thread doit contenir son propre serveur, comme indiqué dans l'exemple suivant :

{ 
	...	
	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(); 
	...	
}

Le tableau suivant répertorie les constantes que vous pouvez utiliser pour le pool de connexion.

Tableau 1. Constantes pour le pool de connexion

Nom de constante

Description

SOCKET_POOL

Utiliser ou non le pool de connexion si le type de connexion SOCKET est utilisé. Les valeurs valides sont true ou false. La valeur par défaut est false.

SOCKET_POOL_MAX_ACTIVE*

Nombre maximum de connexions socket actives pouvant être empruntées dans la réserve. La valeur par défaut est -1, ce qui indique aucun maximum.

SOCKET_POOL_MAX_IDLE*

Nombre maximum de connexions socket en attente restant dans la réserve. La valeur par défaut est -1, ce qui indique aucun maximum.

SOCKET_POOL_MAX_TOTAL*

Nombre maximum total de connexions socket mises en réserve (à la fois actives et en attente). La valeur par défaut est -1, ce qui indique aucun maximum.

SOCKET_POOL_MAX_WAIT*

Temps maximum (en millisecondes) à attendre avant d'envoyer une exception lorsque la réserve est épuisée et que l'action « lorsque c'est épuisé » est WHEN_EXHAUSTED_BLOCK. La valeur par défaut est -1, ce qui indique aucun maximum.

SOCKET_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS*

Temps minimum pendant lequel une connexion doit rester en attente dans la réserve avant qu'elle soit éligible pour l'éviction. La valeur par défaut est 1 800 000 (30 minutes).

SOCKET_POOL_MIN_IDLE*

Nombre minimum de connexions autorisées dans la réserve avant que le thread d'éviction (si elle est active) crée de nouvelles connexions. La valeur par défaut est 0.

SOCKET_POOL_NUM_TESTS_PER_EVICTION_RUN*

Définit le nombre de connexions en attente à examiner pendant chaque exécution du thread d'éviction (si elle est active). La valeur par défaut est -1, indiquant que les connexions en attente sont examinées.

SOCKET_POOL_TEST_ON_BORROW*

Si les connexions vont être validées avant d'être empruntées dans la réserve. La valeur par défaut est true.

SOCKET_POOL_TEST_ON_RETURN*

Si les connexions vont être validées avant d'être renvoyées dans la réserve. La valeur par défaut est false.

SOCKET_POOL_TEST_WHILE_IDLE*

Si les connexions vont être validées par le thread d'éviction de connexions en attente. La valeur par défaut est false.

SOCKET_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS*

Définit de nombre de millisecondes de veille entre les exécutions du thread d'éviction de connexions en attente. Lorsqu'il est défini sur zéro ou un nombre négatif, aucun thread d'éviction de connexion en attente ne sera exécutée. Par défaut, c'est 300000 (5 minutes).

SOCKET_POOL_WHEN_EXHAUSTED_ACTION*

Définit l'action « lorsque c'est épuisé » à prendre lors d'une tentative pour emprunter une connexion alors qu'aucune n'est disponible. Par défaut, c'est SOCKET_POOL_WHEN_EXHA USTED_BLOCK.

SOCKET_POOL_WHEN_EXHAUSTED_BLOCK*

Un type d'action « when_exhausted » indique une tentative pour emprunter une connexion alors qu'aucune n'est disponible, l'appelant doit bloquer jusqu'à ce qu'un nouvel objet soit disponible, ou que le temps d'attente maximum soit écoulé.

SOCKET_POOL_WHEN_EXHAUSTED_FAIL*

Un type d'action « when_exhausted » indique une tentative pour emprunter une connexion alors qu'aucune n'est disponible, l'appelant doit échouer, envoyant une ConnectionException.

SOCKET_POOL_WHEN_EXHAUSTED_GROW*

Un type d'action « when_exhausted » indique une tentative pour emprunter une connexion alors qu'aucune n'est disponible, une nouvelle connexion sera de toute façon établie.

* Applicable uniquement si on utilise un type de connexion SOCKET et si la mise en réserve de connexions est activée.