Изменение каталога журнала транзакций в WAS 8.5 с помощью wsadmin

Мне нужно внести несколько изменений в раздел «Служба транзакций» группы серверов приложений WebSphere. Я надеялся написать сценарий с помощью wsadmin.

Одно из свойств, которое я хочу изменить, - это «Каталог журнала транзакций». Я пробовал следовать руководству:

Проблема в том, что мой объект recoveryLog всегда пуст (со значением Jython None). Есть ли другой способ изменить это значение?

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


person Tom Purl    schedule 05.06.2014    source источник


Ответы (2)


Мне удалось изменить каталог журнала с помощью следующих команд:

serverEntryId = AdminConfig.getid("/ServerEntry:server1")
recoveryLog = AdminConfig.showAttribute(serverEntryId, "recoveryLog")
AdminConfig.modify(recoveryLog, '[[transactionLogDirectory c:/mylog]]')
AdminConfig.save()

Что касается вашего второго вопроса - все, что вы можете делать через веб-консоль, можно сделать с помощью сценария wsadmin.

person Gas    schedule 06.06.2014
comment
Спасибо за быстрый ответ, Газ. К сожалению, объект recoveryLog все еще имеет значение None. Какую версию WAS вы используете? Я использую 8.5.5.1. - person Tom Purl; 06.06.2014
comment
Получаете ли вы что-нибудь при вызове: AdminConfig.showAttribute (serverEntryId, recoveryLog) rl = AdminConfig.showAttribute (serverEntryId, recoveryLog) print AdminConfig.show (rl), если нет, вам может потребоваться создать запись recoveryLog, используя: AdminConfig.create (serverEntry, ' recoveryLog ') Я на 8.5.5.1 - person Gas; 06.06.2014
comment
Я попытался запустить это и получил исключение NullPointerException. Что вы имеете в виду, когда спрашиваете, создал ли я журнал восстановления? Разве он не должен существовать по умолчанию? - person Tom Purl; 10.06.2014
comment
Нет, его не существует, если у него есть настройки по умолчанию. Однако после его создания при любых последующих изменениях вы только модифицируете его. Я пропустил точную команду для создания этой записи в последнем посте, она должна быть такой: AdminConfig.create ('RecoveryLog', serverEntry, '[[transactionLogDirectory c: \ mylog]]') Вы можете проверить команду в консоли администратора через: 'Command Assistance - просмотр команды административного скрипта для последнего действия' - person Gas; 10.06.2014
comment
Спасибо за тонну газа. Итак, в основном мне нужно сначала создать журнал восстановления, а затем указать каталог журнала транзакций в качестве его свойства. - person Tom Purl; 13.06.2014

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

mySeverEntry = listConfigObjects("ServerEntry", "*TomsServer*")[0]
mySeverEntry.create("RecoveryLog", 
        transactionLogDirectory="/some/dir1"), 
        compensationLogDirectory="/some/dir2"), 
        compensationLogFileSize="5") 
save()
sync()

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

person Tom Purl    schedule 13.06.2014