2014-11-06 4 views
0

Привет, У меня есть несколько процессов Java, которые запускаются последовательно поочередно. Этот процесс выполняет работу по загрузке данных в tablexyz, а затем tablefinal. После того как первый процесс завершит свою работу, я получаю следующую ошибку:Ошибка SQL Anywhere - 210: Пользователь «другой пользователь» имеет строку в «tablexyz» заблокирован

Ошибка SQL Anywhere - 210: Пользователь «другого пользователя» заблокировал строку в «tablexyz».

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

Процесс 1: Создает таблицу tablexyz и загружает данные в это делает некоторую обработку, а затем, наконец, копирует данные в tablefinal. Я совершаю транзакцию здесь после всех шагов.

Процесс 2: Капли/Опорожнения table tablexyz, если он есть, а затем снова создает таблицу tablexyz и загружает данные в нее, выполняет некоторую обработку и затем, наконец, копирует данные в tablefinal. Я совершаю транзакцию здесь после всех шагов.

Мое приложение не работает в процессе 2, и оно заставляет tablexyz заблокирован. Я не понимаю, как процесс использует тот же пользователь базы данных myuser, а затем почему второй процесс не может удалить tablexyz, созданный первым процессом. Просьба указать, что я новичок в Sybase IQ. Заранее спасибо.

+0

Вы используете IQ или Anywhere? – frlan

+0

Привет база данных Sybase iq и jdbc драйвер Anywhere – u449355

+0

У вас есть RLV включен в базе данных IQ? – frlan

ответ

0

причиной этой ошибки является то, что, возможно, пользователь работает с этим «уже существующим» представлением/таблицей.

Просто посмотрите с sp_iqlock.

Если он заблокирован, dba/admin/creator должен разблокировать его или удалить пользователя, который блокирует таблицу.