Connect

Lee las propiedades para determinar la conexión de punto de acceso a utilizar y establece la conexión con el servidor. Puede conectarse a través de HTTP, HTTPS o SOCKET. No obstante, HTTP y HTTPS en realidad no establecen conexión con el servidor hasta que se invoca un método GetService o de proceso (Process). Con una conexión de tipo SOCKET, el método Connect ofrece funciones completas.

Sintaxis

public void connect() 

El json en el POST es opcional; solo se requiere si la consulta SQL utiliza parámetros vinculados.

Ninguno.

Resultados

Arroja:

  • ConfigurationException: cuando una configuración no válida causa una incapacidad para conectarse con el servidor. Por ejemplo, un protocolo desconocido puede causar un error ConfigurationException. Si se produce este error, será inútil intentar usar nuevamente el método connect().
  • ConnectionException: cuando no es posible establecer conexión con el servidor. Puede ser posible volver a conectarse, de acuerdo con la causa subyacente de la excepción.
  • MessageProcessingException: cuando ocurre un error en el servidor que no se debe a problemas de configuración o conexión.

Ejemplo

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 
}

Agrupación de conexiones

La agrupación de conexiones para el tipo de conexión SOCKET se encuentra disponible para el cliente Java. En esta sección se explica cómo activar y deshabilitar la agrupación de conexiones. De forma predeterminada, la agrupación de conexiones está deshabilitada.

Para activar la agrupación de conexiones:

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

Para deshabilitar la agrupación de conexiones:

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

Cuando se activa la agrupación de conexiones, el método connect() toma prestada una conexión del grupo y el método disconnect() devuelve la conexión al grupo. Al utilizar la agrupación, el cliente debe invocar disconnect() todas las veces para devolver la conexión al grupo.

Cada subproceso debe contener su propio servidor, tal como se muestra en el siguiente ejemplo:

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

La siguiente tabla enumera las constantes que pueden utilizarse para la agrupación de conexiones.

Tabla 1. Constantes para la agrupación de conexiones

Nombre de constante

Descripción

SOCKET_POOL

Indica si debe utilizarse o no la agrupación de conexiones si se usa el tipo de conexión SOCKET. Los valores son "true" (verdadero) o "false" (falso). El valor predeterminado es "false".

SOCKET_POOL_MAX_ACTIVE*

Cantidad máxima de conexiones SOCKET activas que pueden tomarse del grupo. El valor predeterminado es -1, lo que indica que no hay un límite máximo.

SOCKET_POOL_MAX_IDLE*

La cantidad máxima de conexiones SOCKET inactivas que permanecen en el grupo. El valor predeterminado es -1, lo que indica que no hay un límite máximo.

SOCKET_POOL_MAX_TOTAL*

La cantidad máxima de conexiones SOCKET agrupadas (activas e inactivas). El valor predeterminado es -1, lo que indica que no hay un límite máximo.

SOCKET_POOL_MAX_WAIT*

El plazo máximo (en milisegundos) para esperar antes de arrojar una excepción si el grupo está agotado y la acción "when exhausted" es WHEN_EXHAUSTED_BLOCK. El valor predeterminado es -1, lo que indica que no hay un límite máximo.

SOCKET_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS*

El plazo mínimo para que una conexión permanezca inactiva en el grupo antes de ser seleccionada para su expulsión. El valor predeterminado es 1800000 (30 minutos).

SOCKET_POOL_MIN_IDLE*

La cantidad mínima de conexiones permitidas en el grupo antes de que el subproceso de expulsión (si está activo) cree nuevas conexiones. El valor predeterminado es 0.

SOCKET_POOL_NUM_TESTS_PER_EVICTION_RUN*

Define la cantidad de conexiones inactivas que deben examinarse durante cada ejecución del subproceso de expulsión (si está activo). El valor predeterminado es -1, lo que indica que se examinarán todas las conexiones inactivas.

SOCKET_POOL_TEST_ON_BORROW*

Indica si las conexiones se validarán antes de ser prestadas desde el grupo. El valor predeterminado es "true" (verdadero).

SOCKET_POOL_TEST_ON_RETURN*

Indica si las conexiones se validarán antes de ser devueltas al grupo. El valor predeterminado es "false".

SOCKET_POOL_TEST_WHILE_IDLE*

Indica si las conexiones serán validadas por el subproceso de expulsión de conexiones inactivas. El valor predeterminado es "false".

SOCKET_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS*

Define la cantidad de milisegundos de inactividad entre las ejecuciones del subproceso de expulsión de conexiones inactivas. Si se define el valor cero o un número negativo, no se ejecutará un subproceso de expulsión de conexiones inactivas. El valor predeterminado es 300000 (5 minutos).

SOCKET_POOL_WHEN_EXHAUSTED_ACTION*

Define la acción "when exhausted" que se adoptará si se intenta tomar prestada una conexión y no hay ninguna disponible. El valor predeterminado es SOCKET_POOL_WHEN_EXHA USTED_BLOCK.

SOCKET_POOL_WHEN_EXHAUSTED_BLOCK*

Un tipo de acción "when exhausted" que indica que si se intenta tomar prestada una conexión y no hay ninguna disponible, quien inicia la llamada debe hacer un bloqueo hasta que haya un nuevo objeto disponible o hasta que haya transcurrido el tiempo máximo de espera.

SOCKET_POOL_WHEN_EXHAUSTED_FAIL*

Un tipo de acción "when exhausted" que indica que si se intenta tomar prestada una conexión y no hay ninguna disponible, la llamada debe ser darse por fallida, lo que arroja un error ConnectionException.

SOCKET_POOL_WHEN_EXHAUSTED_GROW*

Un tipo de acción "when exhausted" que indica que si se intenta tomar prestada una conexión y no hay ninguna disponible, de todas formas se realizará una nueva conexión.

* Esto solo corresponde si se usa el tipo de conexión SOCKET y se activa la agrupación de conexiones.