I have Servletwith objects static Mongo = new Mongo()and Morphia morphia = new Morphia(). Each time it is called GET, I do the following:
doGet(...){
...
datastore = morphia.createDatastore(mongo, dbName);
...
}
I do not close datastorebecause there is no closing method. Every time I call a servlet, the number of connections used in mongo grows:
{ "current" : 113, "available" : 706, "totalCreated" : NumberLong(122) }
> db.serverStatus().connections { "current" : 115, "available" : 704, "totalCreated" : NumberLong(124) }
> db.serverStatus().connections { "current" : 116, "available" : 703, "totalCreated" : NumberLong(125) }
> db.serverStatus().connections { "current" : 121, "available" : 698, "totalCreated" : NumberLong(130) }
> db.serverStatus().connections { "current" : 122, "available" : 697, "totalCreated" : NumberLong(131) }
> db.serverStatus().connections { "current" : 128, "available" : 691, "totalCreated" : NumberLong(137) }
What is the right way to close ties with mongo and morphine and where does the leak really occur? Thank.
source
share