Configuración de conexión de Apache HttpClient

Estoy tratando de configurar un HttpClient a través de HttpClientBuilder . También eché un vistazo al HttpClientConnectionManager y aquí comenzó la confusión.

En ConnectionManager o más exactamente en PoolingHttpClientConnectionManager hay métodos para:

  • cerrar conexiones caducadas
  • cerrar conexiones inactivas

¿Cuándo se considera caducada una conexión?
¿Cuándo está inactivo?
¿Qué sucede cuando se cierra una conexión del grupo? ¿Se garantiza que se recrean las conexiones cuando es necesario?

Respuesta 1

De acuerdo con: https://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html

HttpClient intenta mitigar el problema probando si la conexión está 'obsoleta', eso ya no es válido porque se cerró en el lado del servidor, antes de usar la conexión para ejecutar una solicitud HTTP. La comprobación de conexión obsoleta no es 100% confiable. La única solución factible que no implica un modelo de un subproceso por socket para conexiones inactivas es un subproceso de monitor dedicado que se utiliza para desalojar las conexiones que se consideran caducadas debido a un largo período de inactividad. El subproceso de monitor puede llamar periódicamente al método ClientConnectionManager # closeExpiredConnections () para cerrar todas las conexiones caducadas y desalojar las conexiones cerradas del grupo. Opcionalmente, también puede llamar al método ClientConnectionManager # closeIdleConnections () para cerrar todas las conexiones que han estado inactivas durante un período de tiempo determinado.

La diferencia entre expirado e inactivo es que una conexión expirada se ha cerrado en el lado del servidor, mientras que la conexión inactiva no está necesariamente cerrada en el lado del servidor, pero ha estado inactiva durante un período de tiempo. Cuando se cierra una conexión, vuelve a estar disponible en el grupo que se utilizará.

Respuesta: 2

Mi aplicación utiliza BorderLayout para mostrar contenido en el marco. También tengo una barra de menú en la parte superior para que se puedan alternar otros cuadros para mostrar. Cuando inicio la aplicación, cada uno de estos contenidos ...

Hola, soy nuevo en el desarrollo de Android. Ya he creado la Base de datos SQLite y la guardé en mi carpeta de activos en Android Studio. Mi aplicación tiene que usar la base de datos existente en lugar de crear una nueva. ...

Quiero exportar un espacio de claves que incluya datos completos, algo así como lo hacemos en mysql desde un clúster de cassandra de un solo nodo y restaurarlo en otro clúster de nodo único.

Tengo una configuración basada en Spring Java. Paquete HibernateConfiguration com.app.surveyapp.configuration; import java.util.Properties; import javax.sql.DataSource; import org.apache.log4j.Logger; ...