Лучшим способом (рекомендуется) является использование пакета java.util.Concurrent. Используя этот пакет, вы можете легко избежать этого исключения. см. Модифицированный код
blockquote>public static void main(String[] args) { Collection<Integer> l = new CopyOnWriteArrayList<Integer>(); for (int i=0; i < 10; ++i) { l.add(new Integer(4)); l.add(new Integer(5)); l.add(new Integer(6)); } for (Integer i : l) { if (i.intValue() == 5) { l.remove(i); } } System.out.println(l); }
После некоторого гугления я нашел совет сделать следующее:
> sqlplus /nolog
SQL> connect / as sysdba
Connected.
SQL> shutdown abort
ORACLE Instance shut down.
SQL> startup nomount
ORACLE Instance started
SQL> alter database mount;
SQL> alter database open;
, Который все еще дал ошибку:
РТЫ 00600: внутренний код ошибки, аргументы: [kcratr1_lostwrt]
я тогда нашел совет сделать следующее:
SQL> startup mount
ORACLE Instance started
SQL> recover database
Media recovery complete
SQL> alter database open;
Database altered
Эта ошибка может также произойти в нормальной ситуации, когда база данных запускается или останавливается. Обычно на запуске можно ожидать, пока запуск не завершается, затем соединитесь, как обычно. Если ошибка сохраняется, , сервис (на поле Windows) может быть запущен без база данных запускаемый. Это может быть должно запустить проблемы, или потому что сервис не настроен для автоматического запуска базы данных. В этом случае необходимо будет соединиться как sysdba и физически запустить базу данных с помощью команды "запуска".