Jython WLST с использованием модуля потоков Python (Weblogic 10) - PullRequest
4 голосов
/ 26 февраля 2012

Окружающая среда

  • Weblogic 10
  • Солнце Ява
  • HP UX

Цель

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

Вопрос

Есть ли способ использовать модуль потоков Jython для одновременного выполнения нескольких действий WLST?

Попытка сближения

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

Thread(target=lambda: cluster.managedRestart()).start()

но я получаю ошибку TypeError: can't set arbitrary attribute in java instance: target

Идеи

Разбейте код управляемого перезапуска на отдельный файл и используйте execfile() для его вызова из потока

У кого-нибудь еще есть идеи / предложения / опыт?

1 Ответ

4 голосов
/ 20 октября 2012

Я не думаю, что потоки должны использоваться явно для параллельного запуска управляемых серверов.Следующий код запустит все кластеры параллельно.block='false' будет не блокировать управление командой запуска, что означает, что команда запуска будет выдана, и сразу же будет выполнена следующая команда, запускающая другой кластер.Поэтому все кластеры могут быть запущены параллельно.То же самое относится и к команде shutdown .

connect(username='weblogic', password='weblogic1', url='t3://localhost:7001')
clusterList = ls('/Clusters', returnMap='true')
for cluster in clusterList :
    start(cluster, 'Cluster', block='false')
...