Hi Bernard,
Regarding workaround - I have some DBLayer class that looks like following:
Code:
class DBLayer
{
public ... f1(...){
ConnectionPtr connection = createConnection(communicator(), "db");
//Do something
}
public ... f2(...){
ConnectionPtr connection = createConnection(communicator(), "db");
//Do something
}
...
public ... fN(...){
ConnectionPtr connection = createConnection(communicator(), "db");
//Do something
}
}
All DBLayer functions may be executed in context of multiple threads => using 1 cached connection means serialization of access to it. So, according to Ice Manual -
If your application requires concurrent access to the same database file (persistent map), you must create several connections and associated maps.
- it looks like I have to use a pool of connections.
Am I correct?