Вот код процедура Oracle для вызова из Java:Вызов процедуры Oracle с Java - что происходит при вызове System.exit()?
CallableStatement st = connection.prepareCall("{call PROCEDURE_0(?,?,?)}");
st.setInt(1,xyz1);
st.setString(2,xyz2);
st.setInt(3,int_variable);
st.registerOutParameter(3,Types.INTEGER);
try{
st.execute();
}
catch(Exception e){
}
Если пользователь вызывает System.exit() на этой Java JVM - то, что происходит с процедурой Oracle, которая была вызвана? Гарантируется ли работа в Oracle? Или, возможно, чтобы гарантировать это, я должен отправить его в планировщик заданий Oracle вместо этого? До сих пор мой опыт состоял в том, что иногда процедура продолжает работать, даже если JVM завершается, а иногда и нет. Имеет ли это какое-либо отношение к «регистрации параметра out»? Будет ли код попадать в блок catch, если вызывается System.exit?
У кого-нибудь есть опыт?
Не он не будет продолжать работать. В какой-то момент ваша сессия будет прекращена. – OldProgrammer
ok, отправит ли планировщик заданий Oracle решить эту проблему? –