Я использую Unboundid In-Memory Directory Server в своем приложении, и до сих пор он прекрасно работает (как и намного больше, чем Apache DS).Но когда мое приложение готово и я хочу завершить работу сервера, оно, похоже, «зависает», то есть выполняется команда shutDown (), но поток не останавливается.
InMemoryDirectoryServerConfig configuration = new InMemoryDirectoryServerConfig(baseDNs);
configuration.setListenerConfigs(InMemoryListenerConfig.createLDAPConfig("default", port));
configuration.setSchema(null);
server = new InMemoryDirectoryServer(configuration);
server.startListening();
LDAPConnection ldapConnection = new LDAPConnection("localhost", PORT);
// lots of processing the LDAP data
ldapConnection.close();
server.shutDown("default", true);
Этовыполняется без исключения или чего-то еще, но все равно не закрывается.
Самое смешное, если я выполню приведенный выше код без обработки, он будет работать.
EDIT
Кодирование обработки обычно вызывает ldapConnection.search()
и ldapConnection.getEntry()
несколько раз для получения некоторой информации о пользователе и группе.Затем он создает объекты, используя эту информацию, и затем вставляет их в БД.
РЕДАКТИРОВАТЬ 2
Не имеет значения, если вызывается shutDown("default",true)
или shutDown(true)
.Я собираюсь проверить другие вещи, которые вы упомянули позже.