Мы используем com4j в нашем приложении Java 8 для подключения к нашей Microsoft Active Directory, используя следующий код:
_Connection con = com4j.typelibs.ado20.ClassFactory.createConnection();
try {
con.provider("ADsDSOObject");
con.open("AD-Anon-Search", "", "", -1/*default*/);
_Command cmd = com4j.typelibs.ado20.ClassFactory.createCommand();
try
{
cmd.activeConnection(con);
cmd.commandText("<GC://" + this.domain + ">;" + filter.encode() + ";" + atributes + ";SubTree");
_Recordset rs = cmd.execute(Variant.getMissing(), Variant.getMissing(), -1/*default*/);
try
{
if (rs.eof())
return nullValue;
else
return mapper.mapRecordSet(rs);
} finally {
rs.close();
rs.dispose();
}
} finally {
cmd.dispose();
}
} finally {
con.close();
con.dispose();
COM4J.cleanUp();
}
Мы замечаем, что каждый раз, когда команда выполняется, она открывает соединение UDP противнаша реклама, но эта связь никогда не закрывается.Итак, через некоторое время мы открыли все наши UDP-порты.У нас есть другая среда с этим приложением, установленная с использованием java6, и этого не происходит, поэтому мы подозреваем любое недоразумение между com4j и java8 ... но не уверены.
AFAIK, мы закрываем все.не так ли?Есть ли что-нибудь еще, что мы должны сделать?