Назад | Перейти на главную страницу

wsadmin - jmsprovider создает дублирующийся ресурс без каких-либо исключений

Я пытаюсь создать ресурс jmsprovider с помощью wsadmin, как показано ниже в установленной версии WAS ND 8.5.5.9.

  1. Установка области в TestDmgrNode

wsadmin>AdminConfig.getid('/Node:TestDmgrNode/') 'TestDmgrNode(cells/TestCell/nodes/TestDmgrNode|node.xml#Node_1)'

  1. Добавление JMSProvider в указанной выше области

wsadmin>AdminConfig.create('JMSProvider', node, [['name', 'TestProvider1'], ['description', 'TestProvider1'], ['classpath', '/var/tmp/test.jar'], ['externalInitialContextFactory', 'testICF'], ['externalProviderURL', 'testexternalurl']]) 'TestProvider1(cells/TestCell/nodes/TestDmgrNode|resources.xml#JMSProvider_1517482261206)' wsadmin>AdminConfig.save()

Однажды я сохранил конфигурацию, в которой я могу видеть ресурс в разделе JMS Provider. Теперь я попытался снова запустить ту же команду, и она снова сохраняет тот же ресурс, не выдавая никаких исключений, что ресурс с «именем» уже существует.

wsadmin>AdminConfig.create('JMSProvider', node, [['name', 'TestProvider1'], ['description', 'TestProvider1'], ['classpath', '/var/tmp/test.jar'], ['externalInitialContextFactory', 'testICF'], ['externalProviderURL', 'testexternalurl']])
'TestProvider1(cells/TestCell/nodes/TestDmgrNode|resources.xml#JMSProvider_1517482261206)'

wsadmin>AdminConfig.save()

Может ли кто-нибудь помочь, если это связано с какой-либо ошибкой в ​​установленной версии

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

Пожалуйста, предложите Спасибо, Судхир

Да, мне удалось воспроизвести то, что вы описали, и об этом следует сообщить как об ошибке из-за несовместимого поведения между wsadmin и консолью администратора. В качестве простого обходного пути перед созданием JMSProvider проверьте наличие любого JMSProvider с тем же именем, что и ваш новый JMSProvider, в той же области, в которой вы создаете новый. Например:

def jmsProviderExists(scope, jmspName):
    #print 'JMSProviders' + AdminConfig.list('JMSProvider',scope)
    jps = AdminConfig.list('JMSProvider',scope).splitlines()
    #print jps
    for jp in jps:
        #print jp
        name = AdminConfig.showAttribute(jp, 'name')
        if name == jmspName:
            return True
        continue
    return False

node = AdminConfig.getid('/Node:DefaultNode01/')
#print 'Node:' + node
intendedName='TestProvider1'
if jmsProviderExists(node, intendedName):
    print 'JMSProvider with name already exists'
else:
    print 'Create JMSProvider'