|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Problem Listing remote Queues |
« View previous topic :: View next topic » |
Author |
Message
|
MillsPerry |
Posted: Fri Dec 21, 2001 1:16 pm Post subject: |
|
|
 Acolyte
Joined: 08 Oct 2001 Posts: 59 Location: ZyQuest, inc.
|
I recently figured out how to list a queue manager's local queues by using MQAI. I would like to also list remote queues.
I tried the obvious things, such as changing the MQQT_LOCAL parameter to MQQT_REMOTE, but I just get a blank list returned to me. Can anybody tell me the steps to get a list of remote queues? I'm writing in VB, but I can usually figure out a C++ listing.
Here is my current code. Any unresolved constants are defined in IBM's MQSeries header files.
Public Property Let ConnectionHandle(ByVal vData As Long)
Dim adminBag As Long ' Admin bag handle.
Dim systemBag As Long ' System bag handle.
Dim responseBag As Long ' Response bag handle.
Dim intCompCode As Long, intReason As Long
Dim i As Long
Dim strQName As String * MQ_Q_NAME_LENGTH, intQNameLength As Long
' ============================================================
' Update the property value.
' ============================================================
mvarConnectionHandle = vData
' ============================================================
' Get the queue name list.
' ============================================================
adminBag = MQHB_UNUSABLE_HBAG
systemBag = MQHB_UNUSABLE_HBAG
responseBag = MQHB_UNUSABLE_HBAG
' Create an admin bag.
mqCreateBag MQCBO_ADMIN_BAG, adminBag, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqCreateBag failure on admin bag."
Exit Property
End If
' Create a response bag.
mqCreateBag MQCBO_ADMIN_BAG, responseBag, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqCreateBag failure on response bag."
Exit Property
End If
' Put generic local queue name into admin bag.
mqAddString adminBag, MQCA_Q_NAME, MQBL_NULL_TERMINATED, "*", mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqAddString failure."
Exit Property
End If
' Put local queue type into admin bag.
mqAddInteger adminBag, MQIA_Q_TYPE, MQQT_LOCAL, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqAddInteger failure."
Exit Property
End If
' ' ==============================================================================
' ' Put generic remote queue name into admin bag.
' mqAddString adminBag, MQCA_REMOTE_Q_NAME, MQBL_NULL_TERMINATED, "*", mvarCompletionCode, mvarReasonCode
' If mvarCompletionCode = MQCC_FAILED Then
' mvarErrorMessage = "mqAddString failure."
' Exit Property
' End If
'
' ' Put remote queue type into admin bag.
' mqAddInteger adminBag, MQIA_Q_TYPE, MQQT_REMOTE, mvarCompletionCode, mvarReasonCode
' If mvarCompletionCode = MQCC_FAILED Then
' mvarErrorMessage = "mqAddInteger failure."
' Exit Property
' End If
'
' ' ==============================================================================
' Add inquiry for current queue depths.
mqAddInquiry adminBag, MQIA_CURRENT_Q_DEPTH, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqAddInquiry failure."
Exit Property
End If
' Send command to the queue manager.
mqExecute mvarConnectionHandle, MQCMD_INQUIRE_Q, MQHB_NONE, adminBag, responseBag, MQHO_NONE, MQHO_NONE, _
mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqExecute failure."
Exit Property
End If
' Count number of system bags are embedded in the response bag.
mqCountItems responseBag, MQHA_BAG_HANDLE, mvarQueueCount, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqCountItems failure."
Exit Property
End If
ReDim arQueue(mvarQueueCount)
ReDim arDepth(mvarQueueCount)
For i = 0 To mvarQueueCount - 1
' Get the system bag handle.
mqInquireBag responseBag, MQHA_BAG_HANDLE, i, systemBag, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqInquireBag failure."
Exit Property
End If
' Get the queue name from the system bag.
mqInquireString systemBag, MQCA_Q_NAME, 0, MQ_Q_NAME_LENGTH, strQName, _
intQNameLength, 0, mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqInquireString failure."
Exit Property
End If
' Get the queue depth from the system bag.
mqInquireInteger systemBag, MQIA_CURRENT_Q_DEPTH, MQIND_NONE, arDepth(i), _
mvarCompletionCode, mvarReasonCode
If mvarCompletionCode = MQCC_FAILED Then
mvarErrorMessage = "mqInquireInteger failure."
Exit Property
End If
arQueue(i) = Trim(strQName)
Next i
' Clean up
If adminBag > 0 Then _
mqDeleteBag adminBag, mvarCompletionCode, mvarReasonCode ' Delete the admin bag.
If systemBag > 0 Then _
mqDeleteBag systemBag, mvarCompletionCode, mvarReasonCode ' Delete the system bag.
If responseBag > 0 Then _
mqDeleteBag responseBag, mvarCompletionCode, mvarReasonCode ' Delete the response bag.
End Property |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|