Hello,

I am developing an application using Geotools. The framework used for the
application is Quarkus. The application connects to the PostGIS database.

Since it is a web application I want to minimize the overheads in
connecting to the database in each request. I want to reuse an already
connected database.

I have maintained an application level DataStore object which gets created
when the application starts up.

Map<String, Object> params = new HashMap<>();
params.put("dbtype", "postgis");
params.put("host", this.dbConfig.getHost());
params.put("port", this.dbConfig.getPort());
params.put("schema", "public");
params.put("database" ,this.dbConfig.getDatabase());
params.put("user", this.dbConfig.getUser());
params.put("passwd", this.dbConfig.getPassword());
params.put("preparedStatements", true);
params.put("encode functions", true);

try {
    this.dataStore = (JDBCDataStore) DataStoreFinder.getDataStore(params);
} catch (IOException e) {

Logger.getLogger(DataSourceService.class.getName()).warning(e.getMessage());
} catch (SQLException e) {

Logger.getLogger(DataSourceService.class.getName()).warning(e.getMessage());
}
---------

Then I am using the dataStore object in the rest of the places.

Is this the proper way of doing  or should I use DataStoreFinder each time
to find the datastore and dispose of the data store at the end of
processing request?
Can I plug connection pools like HikariCP to get datastore out of that
connection?

When I leave the application idle for a long time I am getting  this error.

java.sql.SQLException: An I/O error occurred while sending to the backend.

Please suggest the best way of doing it.

Thanks in advance.

Sunish.
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to