Skip to content

Commit 4ae1998

Browse files
authored
Open only one connection pool per one execution and reuse it (#71)
1 parent e614b84 commit 4ae1998

File tree

17 files changed

+51
-32
lines changed

17 files changed

+51
-32
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
command: ./gradlew test --daemon
2020
- run:
2121
name: Run Integration Tests
22-
command: ./gradlew integrationTest --daemon
22+
command: ./gradlew integrationTest --daemon --stacktrace
2323
workflows:
2424
version: 2
2525
build_and_test:

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 2.4.5 (September 1, 2021)
2+
Open only one connection pool per one execution and reuse it
3+
14
## 2.4.4 (August 12, 2021)
25
* Remove dependencyCheckAnalyze task
36

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
group = 'io.elastic'
2-
version = '2.4.4'
32
apply plugin: 'java'
43
apply plugin: 'idea'
54
apply plugin: 'eclipse'

component.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"title": "Database",
33
"description": "Database JDBC connector",
4+
"version": "2.4.5",
45
"buildType": "docker",
56
"credentials": {
67
"verifier": "io.elastic.jdbc.JdbcCredentialsVerifier",

src/main/java/io/elastic/jdbc/actions/CustomQuery.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public void execute(ExecutionParameters parameters) {
3636
LOGGER.info("Found dbEngine: '{}'", dbEngine);
3737

3838
List<Message> messages = new ArrayList<>();
39-
try (Connection connection = Utils.getConnection(configuration)) {
39+
try {
40+
Connection connection = Utils.getConnection(configuration);
4041
connection.setAutoCommit(false);
4142
try (Statement statement = connection.createStatement()) {
4243
boolean status = statement.execute(queryString);

src/main/java/io/elastic/jdbc/actions/DeleteRowByPrimaryKey.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ public void execute(ExecutionParameters parameters) {
7070
}
7171

7272
if (primaryKeysCount == 1) {
73-
try (Connection connection = Utils.getConnection(configuration)) {
73+
try {
74+
Connection connection = Utils.getConnection(configuration);
7475
LOGGER.info("Executing delete row by primary key action");
7576
boolean isOracle = dbEngine.equals(Engines.ORACLE.name().toLowerCase());
7677
Utils.columnTypes = Utils.getColumnTypes(connection, isOracle, tableName);

src/main/java/io/elastic/jdbc/actions/ExecuteStoredProcedure.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@ public class ExecuteStoredProcedure implements Function {
1717
public void execute(ExecutionParameters parameters) {
1818
final JsonObject body = parameters.getMessage().getBody();
1919
final JsonObject configuration = parameters.getConfiguration();
20-
21-
try (Connection connection = Utils.getConnection(configuration)) {
20+
try {
21+
Connection connection = Utils.getConnection(configuration);
2222
QueryFactory queryFactory = new QueryFactory();
2323
Query query = queryFactory.getQuery(configuration.getString("dbEngine"));
2424

2525
JsonObject result = query.callProcedure(connection, body, configuration);
26-
2726
parameters.getEventEmitter()
2827
.emitData(new Message.Builder().body(result).build());
2928
} catch (SQLException e) {

src/main/java/io/elastic/jdbc/actions/InsertAction.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ public void execute(ExecutionParameters parameters) {
2929
final boolean isOracle = dbEngine.equals(Engines.ORACLE.name().toLowerCase());
3030
final String tableName = Utils.getTableName(configuration, isOracle);
3131
LOGGER.info("Found dbEngine: '{}'", dbEngine);
32-
try (Connection connection = Utils.getConnection(configuration)) {
32+
try {
33+
Connection connection = Utils.getConnection(configuration);
3334
Utils.columnTypes = Utils.getColumnTypes(connection, isOracle, tableName);
3435
LOGGER.debug("Detected column types");
3536
LOGGER.info("Inserting values in the table");

src/main/java/io/elastic/jdbc/actions/LookupRowByPrimaryKey.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public void execute(ExecutionParameters parameters) {
7474

7575
if (primaryKeysCount == 1) {
7676

77-
try (Connection connection = Utils.getConnection(configuration)) {
77+
try {
78+
Connection connection = Utils.getConnection(configuration);
7879
LOGGER.info("Executing lookup row by primary key action");
7980
Utils.columnTypes = Utils.getColumnTypes(connection, isOracle, tableName);
8081
LOGGER.debug("Detected column types");

src/main/java/io/elastic/jdbc/actions/SelectAction.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@
33
import io.elastic.api.ExecutionParameters;
44
import io.elastic.api.Message;
55
import io.elastic.api.Function;
6+
import io.elastic.api.ShutdownParameters;
67
import io.elastic.jdbc.query_builders.Query;
78
import io.elastic.jdbc.utils.QueryFactory;
89
import io.elastic.jdbc.utils.Utils;
910
import java.sql.Connection;
1011
import java.sql.SQLException;
12+
import java.sql.Statement;
1113
import java.util.ArrayList;
1214
import javax.json.Json;
1315
import javax.json.JsonObject;
1416
import javax.json.JsonString;
1517
import org.slf4j.Logger;
1618
import org.slf4j.LoggerFactory;
1719

18-
public class SelectAction implements Function {
1920

21+
public class SelectAction implements Function {
2022
private static final Logger LOGGER = LoggerFactory.getLogger(SelectAction.class);
2123
private static final String SQL_QUERY_VALUE = "sqlQuery";
2224
private static final String PROPERTY_NULLABLE_RESULT = "nullableResult";
@@ -52,9 +54,8 @@ public void execute(ExecutionParameters parameters) {
5254
sqlQuery = Query.preProcessSelect(sqlQuery);
5355
LOGGER.debug("Got SQL Query");
5456
ArrayList<JsonObject> resultList;
55-
try(Connection connection = Utils.getConnection(configuration)){
56-
resultList = query.executeSelectQuery(connection, sqlQuery, body);
57-
}
57+
Connection connection = Utils.getConnection(configuration);
58+
resultList = query.executeSelectQuery(connection, sqlQuery, body);
5859
for (int i = 0; i < resultList.size(); i++) {
5960
LOGGER.debug("Columns count: {} from {}", i + 1, resultList.size());
6061
LOGGER.info("Emitting data...");

0 commit comments

Comments
 (0)