Динамический JDE-коннектор Проблема увеличения числа дескрипторов приводит к OutOfMemory и после разрешения выдает исключение NullPointerException - PullRequest
0 голосов
/ 24 октября 2019

Мы пытаемся использовать динамический Java-коннектор для JDE9.0 и сталкиваемся с проблемой увеличения числа дескрипторов для процесса.

Сценарий:

Вызов динамического JDE-соединителя параллельно с несколькими вызовами одновременно.

Процесс реализации BSFN выглядит следующим образом:

1) Метод входа имеет все учетные данные и возвращает sessionID

int sessionID =   
Connector.getInstance().login(username.trim(), password.trim(), env.trim(), role.trim());
…

2) ExecuteBSFN имеет входные параметры в виде модуля, bsfnName и inputfile (входные данные в bsfn)

…..

ExecutableMethod execMethod = bsfnMethod.createExecutable();
execMethod.resetValues();
Map<String, String> input = inputParams(moduleName, bsfnName, inputFile);

if(input != null)
   execMethod.setValues(input);

CallObjectErrorList errorList = execMethod.executeBSFN(sessionID);
Map output = execMethod.getValues();
….

3) Выход из системы:

Connector.getInstance().logoff(sessionID);    

В этом случае мы наблюдали, что количество дескрипторов для процесса продолжает увеличиваться, хотя мы использовали метод logoff () и в конечном итоге приводит к OutOfMemory.

Для разрешенияэта проблема в реализации выхода из системы, после выполнения выхода из системы мы вызывали:

       Connector.getInstance().shutDown();

В этом случае мы наблюдали, что на нем выдается исключение нулевого указателя для последующих вызовов. Кто-нибудь знает, как преодолеть эту ситуацию?

...