Как обойти блокировку редактирования

Я пишу сценарий WLST для развертывания некоторых WAR и EAR. Однако время от времени сценарий истекает, потому что он не может получить блокировку редактирования (этот сценарий является частью цепочки многих других сценариев). Мне было интересно, есть ли способ обойти или остановить любые текущие блокировки на сервере? Это только временное решение, но в интересах времени, оно сойдет на данный момент.

Спасибо.


person julian    schedule 08.04.2011    source источник


Ответы (4)


Вы можете попробовать установить период ожидания и тайм-аут:

startEdit([waitTimeInMillis], [timeoutInMillis], [exclusive]).  

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

Кроме того, вы используете одного и того же пользователя для связанных скриптов?

person Jeff West    schedule 08.04.2011
comment
Ни один из других скриптов не выдает ошибку. Определенно нужно больше обработки исключений, но я должен работать с тем, что у меня есть к этому сроку. Мне придется выяснить, можно ли оставить консоль администратора открытой, я не знал, что она может автоматически заблокироваться. Это вполне может быть проблемой. Это один и тот же пользователь для всех скриптов. Спасибо за помощь! - person julian; 09.04.2011

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

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

Документацию Oracle по блокировкам конфигурации можно найти здесь.

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

WLST также содержит команду cancelEdit, которую вы можете запустить перед startEdit. Надеюсь, один из этих вариантов сработает!

person Musannif Zahir    schedule 10.04.2011

Чтобы снять блокировку изменения конфигурации с другого администратора: Если другой администратор уже имеет блокировку конфигурации, появится следующее сообщение: Блокировка уже принадлежит другому пользователю. Вам нужно будет либо дождаться освобождения замка, либо взять замок.

  1. Найдите Центр изменений в левом верхнем углу Консоли администрирования.
  2. Нажмите «Заблокировать и изменить».
  3. Внесите изменения в конфигурацию.
  4. В Центре изменений щелкните Активировать изменения. Не все изменения вступают в силу немедленно. Некоторые требуют перезагрузки (см. Использование Центра изменений).
person Nagappa L M    schedule 16.10.2014

Пока вы используете WLST в качестве администратора, вы должны иметь возможность перейти в существующий сеанс редактирования с помощью команды edit () — я провел быстрый тест с двумя пользователями-администраторами, один в консоли администратора и один использует WLST, и, похоже, он работает нормально - я вижу изменения в сеансе консоли администратора внутри интерпретатора WLST.

Вы можете поместить очень простой обработчик исключений вокруг ваших вызовов startEdit, который будет регистрировать трассировку стека исключения, но больше ничего не делать. А затем полагайтесь на вызов edit, чтобы ввести вас в сеанс изменений.

Полагаться на это будет сложно, хотя, если другой скрипт начал сеанс редактирования и ожидает, что сможет сам зафиксировать этот сеанс изменений, вы получите исключения и ненадежное поведение при нескольких вызовах.

person kevinpowe    schedule 11.04.2011