Я столкнулся с той же проблемой с БД Oracle, где каждая транзакция должна регистрироваться для возможных проверок.
Таким образом, каждый раз, когда пользователь проходит аутентификацию в веб-приложении, он помещает такой объект:
public class ConnectionUser implements Serializable {
private String userId;
private String password;
private String transactionKey;
//setters and getters
public boolean equals(Object object) {
if(!(object instanceof org.ampf.af.jdbc.connection.ConnectionUser)) {
return false;
}
if(object == null) {
return false;
}
return (this.getUserId().equals(((ConnectionUser)object).getUserId()) &&
this.getPassword().equals(((ConnectionUser)object).getPassword()));
}
Затем я реализовал пул соединений (на основе карты), где ключом является объект ConnectionUser, а значением является открытое соединение. Если ключ не существует на карте, он создает соединение и размещает его на карте.
Надеюсь, это поможет вам.