Merge pull request #10250 from ashleyfrieze/BAEL-4728-improvement-connection-handling
BAEL-4728 Change the connection handling to close the connections in …
This commit is contained in:
commit
aa5df9a357
|
@ -6,10 +6,12 @@ import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
|
||||||
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
|
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.boot.MetadataSources;
|
import org.hibernate.boot.MetadataSources;
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistry;
|
import org.hibernate.boot.registry.StandardServiceRegistry;
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
|
import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -22,11 +24,14 @@ import static org.hibernate.cfg.AvailableSettings.PASS;
|
||||||
*/
|
*/
|
||||||
public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
|
public class App implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
|
||||||
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||||
|
private SessionFactory sessionFactory = createSessionFactory();
|
||||||
|
|
||||||
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
|
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
|
||||||
try (SessionFactory sessionFactory = createSessionFactory()) {
|
try {
|
||||||
ShippingService service = new ShippingService(sessionFactory, new ShippingDao());
|
ShippingService service = new ShippingService(sessionFactory, new ShippingDao());
|
||||||
return routeRequest(input, service);
|
return routeRequest(input, service);
|
||||||
|
} finally {
|
||||||
|
flushConnectionPool();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,4 +110,12 @@ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||||
.buildMetadata()
|
.buildMetadata()
|
||||||
.buildSessionFactory();
|
.buildSessionFactory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void flushConnectionPool() {
|
||||||
|
ConnectionProvider connectionProvider = sessionFactory.getSessionFactoryOptions()
|
||||||
|
.getServiceRegistry()
|
||||||
|
.getService(ConnectionProvider.class);
|
||||||
|
HikariDataSource hikariDataSource = connectionProvider.unwrap(HikariDataSource.class);
|
||||||
|
hikariDataSource.getHikariPoolMXBean().softEvictConnections();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue