Я хочу установить системную переменную MQSERVER для подключения к MQ с помощью QTP. Каждый раз, когда это значение изменяется из QTP, мне нужно перезапускать QTP, чтобы отразить изменения.
Например. в окне системных переменных MQSERVER = ABCD
изменить переменную, используя
Set objWSH = CreateObject("WScript.Shell")
Set objSystemVariables = objWSH.Environment("SYSTEM")
objSystemVariables(MQVariableName) = MQVariableValue
Переменная установлена правильно, но не отображается в коде QTP при подключении к websphere MQ.
Сразу после перезапуска QTP QTP правильно считывает переменную env. Не могли бы вы сообщить мне, как я могу использовать указанный ниже метод API. Я получаю несоответствие типа в QTP.
lnRetVal = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment", 2, 1000, Null) 'Getting type mismatch here
Обновление моего исходного вопроса кодом, который подключается к диспетчеру очередей.
Самая простая вещь, которую я пытаюсь сделать, это (что невозможно сделать без перезапуска QTP)
1) Подключитесь к администратору очередей
2) Ставим сообщение
3) Подключитесь к другому администратору очередей
4) Прочтите вывод
Const MQOO_OUTPUT = 16
Const MQOO_INPUT_AS_Q_DEF = 1
Set MQS = CreateObject("MQAX200.MQSession")
Set QM = MQS.AccessQueueManager(Environment.Value("MQName")) 'This will pass the queue name and access the queue manager.
Set MQQueue = QM.AccessQueue(strQueName, MQOO_INPUT_AS_Q_DEF Or MQOO_OUTPUT)
Set PutOptions = MQS.AccessPutMessageOptions()
PutOptions.Options = MQPMO_NO_SYNCPOINT
Set PutMsg = MQS.AccessMessage()
PutMsg.CharacterSet = 1208
PutMsg.MessageData = PutMsgStr 'the message text
PutMsg.ApplicationIdData = "INTF_0439B"
MQQueue.Put PutMsg, PutOptions 'write the message to queue.
Кроме того, моя версия websphere MQ - 7.0.1.8.
MQSERVER
будет заменена двумя переменнымиMQCHLLIB
(расположение файла CCDT) иMQCHLTAB
(имя файла CCDT). Сам файл CCDT может иметь один или несколько определенных в нем каналов, связанных с именем администратора очередей. Затем приложению достаточно указать имя диспетчера очередей для подключения, и MQ будет искать сведения о канале через этот файл. - person JoshMc   schedule 16.10.2017MQSERVER
в том, что вы можете установить все возможные настройки на стороне клиента, например,HBINT
,SSLCIPH
,SCYEXIT
, ни одна из которых невозможна сMQSERVER
. - person JoshMc   schedule 16.10.2017