Ibm mq 从UFT连接到IBM MQ
我一直在尝试从UFT向MQ读写消息。我正在使用dotnet工厂实例。当我在访问队列和读写消息时遇到问题时,我已经达到了能够连接到MQ的程度 代码如下Ibm mq 从UFT连接到IBM MQ,ibm-mq,qtp,hp-uft,Ibm Mq,Qtp,Hp Uft,我一直在尝试从UFT向MQ读写消息。我正在使用dotnet工厂实例。当我在访问队列和读写消息时遇到问题时,我已经达到了能够连接到MQ的程度 代码如下 strQMgrName = "queue manager name" strMQMDllPath = "C:\\Program Files (x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll" Set oMqEnvironment = DotNetFactory.CreateInstance("IBM.WMQ.MQ
strQMgrName = "queue manager name"
strMQMDllPath = "C:\\Program Files (x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll"
Set oMqEnvironment = DotNetFactory.CreateInstance("IBM.WMQ.MQEnvironment",strMQMDllPath)
oMqEnvironment.Hostname = "host name"
oMqEnvironment.Port = "port number"
oMqEnvironment.Channel = "channel name"
Set oMQC = DotNetFactory.CreateInstance("IBM.WMQ.MQC",strMQMDllPath)
' qmanager name,channel name, connection name
Set oMqQMgr = DotNetFactory.CreateInstance("IBM.WMQ.MQQueueManager",strMQMDllPath,strQMgrName)
oMqQMgr.isConnected'为true
现在我想用这个方法
public MQQueue AccessQueue(string queueName, int openOptions)
实例IBM.WMQ.MQQueueManager的。是否有人可以指导我做同样的事情,并让我知道如何推送消息和读取所述队列中的消息
谢谢你在大量搜索和阅读IBM文档之后,我能够从UFT在MQ中输入和获取消息。。下面是对我有用的代码片段。。希望这对某人有帮助。。我正在分别处理PUT和GET,因此代码中可能会有一些重复 这方面的先决条件。。您必须从IBM站点下载MQ客户端,并将其安装在安装了UFT的PC上。。IBM MQ客户端是一个免费软件
Dim oMQEnvironment
Dim oMQM
Dim oMQC
Dim oMQMessage
Dim oMQQueue
Dim intOpenOptions
strMQMDLLPath = "C:\\Program Files (x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll"
strHostName= "Host Name"
intPort = "Port Number"
strChannel ="Channel Name"
strMessage ="UFT Test Message"
strMQManager = "Quemanager Name"
strMessageQueue = "Queue Name"
这部分代码是公然从网上的一篇帖子中抄袭的。一旦我再次找到它,我会发布链接
'用于应用程序(UFT)在客户端模式下连接到队列管理器
Set oMQEnvironment = DotNetFactory.CreateInstance("IBM.WMQ.MQEnvironment",strMQMDLLPath)
'Initize the Environment
With oMQEnvironment
.HostName = strHostName
.Port = intPort
.Channel = strChannel
End with
On Error Resume Next
'Create MQ Instatnces
Set oMQM = DotnetFactory.CreateInstance("IBM.WMQ.MQQueueManager",strMQMDLLPath)
'Check if MQM Connected
If Err.Number <> 0 Then
Reporter.ReportEvent micFail , "Step: Creating MQM Object" , "Unable to Connect to MQ Manager at" & strHostName
'Exit Test
End If
Set oMQC = DotnetFactory.CreateInstance("IBM.WMQ.MQC",strMQMDLLPath)
Set oMQMessage = DotnetFactory.CreateInstance("IBM.WMQ.MQMessage",strMQMDLLPath)
'Declare Q open options
intOpenOptions = oMQC.MQOO_OUTPUT or oMQC.MQOO_FAIL_IF_QUIESCING ' 16 + 8192
'Open the Q to post the messages
If strRemoteMQManager = "" Then
Set oMQQueue = oMQM.AccessQueue(strMessageQueue , intOpenOptions)
Else
Set oMQQueue = oMQM.AccessQueue(strMessageQueue , intOpenOptions ,strRemoteMQManager, "","" )
End If
'Format Message
With oMQMessage
.CharacterSet = 819
.WriteString(strMessage)
End with
'Post Message
With oMQQueue
.Put(oMQMessage)
.Close()
End With
Set oMQEnvironment=DotNetFactory.CreateInstance(“IBM.WMQ.MQEnvironment”,strmqmdlllpath)
“初始化环境
环境恶劣
.HostName=strHostName
.Port=intPort
.Channel=strChannel
以
出错时继续下一步
'创建MQ Instantnces
设置oMQM=DotnetFactory.CreateInstance(“IBM.WMQ.MQQueueManager”,strmqmdlllpath)
'检查MQM是否已连接
如果错误号为0,则
Reporter.ReportEvent micFail,“步骤:创建MQM对象”,“无法连接到位于的MQ管理器”&strHostName
“退出测试”
如果结束
设置oMQC=DotnetFactory.CreateInstance(“IBM.WMQ.MQC”,strmqmdlllpath)
设置oMQMessage=DotnetFactory.CreateInstance(“IBM.WMQ.MQMessage”,strmqmdlllpath)
'声明Q打开选项
InOpenOptions=oMQC.MQOO_输出或oMQC.MQOO_失败,如果_静止'16+8192
'打开Q以发布消息
如果stremotemqmanager=“”,则
设置oMQQueue=oMQM.AccessQueue(strMessageQueue,intOpenOptions)
其他的
设置oMQQueue=oMQM.AccessQueue(strMessageQueue、intOpenOptions、strRemoteMQManager、“”、“”)
如果结束
'格式化消息
用oMQMessage
.CharacterSet=819
.WriteString(strMessage)
以
"留言",
使用oMQQueue
.Put(oMQMessage)
.Close()
以
现在开始从MQ获取消息
Dim oMQEnvironment
Dim oMQM
Dim oMQC
Dim oMQMessage
Dim oMQQueue
strMQMDLLPath = "C:\\Program Files (x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll"
strHostName= "host name"
intPort = "port number"
strChannel ="channel name"
strMessage ="UFT Test Message"
strMessageQueue = "message queue intended to access"
strMQManager = "mq manager name"
strRemoteMQManager=""
'Create MQ Instances
Set oMQC = DotnetFactory.CreateInstance("IBM.WMQ.MQC",strMQMDLLPath)
'set the properties of the Queue manager
Set properties = DotNetFactory.CreateInstance("System.Collections.Hashtable")
properties.Add oMQC.HOST_NAME_PROPERTY, strHostName
properties.Add oMQC.PORT_PROPERTY, intPort
properties.Add oMQC.CHANNEL_PROPERTY, strChannel
'access the queue manager
Set oMQM = DotnetFactory.CreateInstance("IBM.WMQ.MQQueueManager",strMQMDLLPath,strMQManager,properties)
'here We are trying to browse the message one by one and keep the messages on the queue.
'Declare Q open options
Set oMQQueue = oMQM.AccessQueue(strMessageQueue,oMQC.MQOO_BROWSE)
Set oMQGetMessageOptions = DotNetFactory.CreateInstance("IBM.WMQ.MQGetMessageOptions",strMQMDLLPath)
oMQGetMessageOptions.Options = oMQC.MQGMO_BROWSE_FIRST
Set oMQMessage = DotnetFactory.CreateInstance("IBM.WMQ.MQMessage",strMQMDLLPath)
oMQQueue.Get oMQMessage,oMQGetMessageOptions
Set mqGetNextMsgOpts = DotNetFactory.CreateInstance("IBM.WMQ.MQGetMessageOptions",strMQMDLLPath)
mqGetNextMsgOpts.Options = oMQC.MQGMO_BROWSE_NEXT
browseMessages = true
Do while browseMessages
on error resume next
messageText = oMQMessage.ReadString(oMQMessage.MessageLength)
'Print messageText
Set oMQMessage = DotnetFactory.CreateInstance("IBM.WMQ.MQMessage",strMQMDLLPath)
oMQQueue.Get oMQMessage,mqGetNextMsgOpts
if Err.Number <> 0 then browseMessages =false
'Clear both MsgID and CorrelID for next use.
oMQMessage.MessageId = oMQC.MQMI_NONE
oMQMessage.CorrelationId = oMQC.MQCI_NONE
Loop
'Cleanup
Set oMQQueue = Nothing
Set oMQMessage= Nothing
Set oMQOpenOptions= Nothing
Set oMQM= Nothing
Set oMQEnvironment = Nothing
Dim oMQEnvironment
Dim oMQM
Dim oMQC
模糊oMQMessage
Dim oMQQueue
strMQMDLLPath=“C:\\ProgramFiles(x86)\\IBM\WebSphere MQ\\bin\\amqmdnet.dll”
strHostName=“主机名”
intPort=“端口号”
strChannel=“频道名称”
strMessage=“UFT测试消息”
strMessageQueue=“要访问的消息队列”
strMQManager=“mq管理器名称”
stremotemqmanager=“”
'创建MQ实例
设置oMQC=DotnetFactory.CreateInstance(“IBM.WMQ.MQC”,strmqmdlllpath)
'设置队列管理器的属性
Set properties=DotNetFactory.CreateInstance(“System.Collections.Hashtable”)
属性。添加oMQC.HOST\u NAME\u属性,strHostName
属性。添加oMQC.PORT\u属性,intPort
属性。添加oMQC.CHANNEL\u属性,strChannel
'访问队列管理器
设置oMQM=DotnetFactory.CreateInstance(“IBM.WMQ.MQQueueManager”、strmqmdlllpath、strMQManager、properties)
'在这里,我们尝试逐个浏览消息,并将消息保留在队列中。
'声明Q打开选项
设置oMQQueue=oMQM.AccessQueue(strMessageQueue,oMQC.MQOO_BROWSE)
设置oMQGetMessageOptions=DotNetFactory.CreateInstance(“IBM.WMQ.MQGetMessageOptions”,strmqmdlllpath)
oMQGetMessageOptions.Options=oMQC.MQGMO\u首先浏览
设置oMQMessage=DotnetFactory.CreateInstance(“IBM.WMQ.MQMessage”,strmqmdlllpath)
获取oMQMessage,oMQGetMessageOptions
设置mqGetNextMsgOpts=DotNetFactory.CreateInstance(“IBM.WMQ.MQGetMessageOptions”,strmqmdlllpath)
mqGetNextMsgOpts.Options=oMQC.MQGMO\u浏览\u下一步
browseMessages=true
在浏览信息时执行此操作
出错时继续下一步
messageText=oMQMessage.ReadString(oMQMessage.MessageLength)
'打印消息文本
设置oMQMessage=DotnetFactory.CreateInstance(“IBM.WMQ.MQMessage”,strmqmdlllpath)
获取oMQMessage,mqGetNextMsgOpts
如果错误号为0,则browseMessages=false
'清除MsgID和CorrelID以供下次使用。
oMQMessage.MessageId=oMQC.MQMI_NONE
oMQMessage.CorrelationId=oMQC.MQCI_NONE
环
"清理",
设置oMQQueue=Nothing
设置oMQMessage=Nothing
设置oMQOpenOptions=Nothing
设置oMQM=Nothing
设置oMQEnvironment=Nothing