db4o prática recomendada para consultar objetos do db

Estou usando duas maneiras diferentes de consultar objetos no db4o e gostaria de discutir sobre iss

1) Neste primeiro exemplo, crio uma instância do ObjectContainer, abro a conexão e depois a fech

ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), "User");
ObjectSet result = db.queryByExample(user);
db.close();

2) Neste segundo exemplo, crio um ObjectServer e deixo a conexão aberta por todo o ciclo de vida do aplicativo. Também abro o ObjectContainer no ObjectServer, faço minha consulta e depois a fecho:

ObjectServer userDb = Db4oClientServer.openServer(Db4oClientServer.newServerConfiguration(), "User", 0);
ObjectContainer client = client = userDb.openClient();
ObjectSet result = client.queryByExample(user);
client.close();

-

Quais são as principais diferenças entre os dois métodos? É perigoso se eu nunca fechar o ObjectServer?

Na minha opinião, o segundo método é melhor, porque se duas instâncias diferentes chamarem o método mostrado no primeiro exemplo, o segundo chamador receberá uma exceção, porque o banco de dados seria bloqueado, mas no segundo exemplo eu não tenho esse um problema. Como não tenho muita experiência com o db4o, prefiro perguntar se estou no caminho certo.

questionAnswers(2)

yourAnswerToTheQuestion