У меня есть следующий код для получения информации об очереди, который выдает ошибку 2232
при выполнении в рамках транзакции:
Dim specificQMConnProperties As Hashtable = CType(queueManagerConnectionProperties.Clone(), Hashtable)
specificQMConnProperties.Add(MQC.HOST_NAME_PROPERTY, qmgrHostNameOrIP)
specificQMConnProperties.Add(MQC.PORT_PROPERTY, qmgrPort)
specificQMConnProperties.Add(MQC.CHANNEL_PROPERTY, qmgrChannel)
Dim qmgr As MQQueueManager = Nothing
Try
qmgr = New MQQueueManager(qmgrName, specificQMConnProperties)
Catch ex As MQException
Select Case ex.ReasonCode
Case 2059, 2538
' qmgr or host not available
Return nothing
Case Else
' continue
End Select
End Try
If qmgr IsNot Nothing Then
Try
' use PCF to get queue information.
Dim agent As New PCFMessageAgent(qmgr)
Dim request As New PCFMessage(CMQCFC.MQCMD_INQUIRE_Q)
request.AddParameter(MQC.MQCA_Q_NAME, queueName)
Dim responses As PCFMessage() = Nothing
Try
' connected
responses = agent.Send(request)
Catch pcfex As PCFException
LogException(pcfex, {queue}, "Exception checking queue availability via PCF. Assuming false")
Return Nothing
End Try
If responses IsNot Nothing AndAlso responses.Any() Then
LogDebug("Checking queue availability for " & queue.ToString() & " returned a PCF result.")
return responses
Else
LogError("No result returned from PCF Message request on " & queue.ToString())
Return Nothing
End If
Catch ex As MQException
LogException(ex, {queue})
Return False
End Try
End If
Ошибка возникает в строке responses = agent.Send(request)
следующим образом:
Код завершения: 2, код причины: 2232(2232=MQRC_UNIT_OF_WORK_NOT_STARTED) в IBM.WMQ.MQDestination.Put(сообщение MQMessage, MQPutMessageOptions pmo) в IBM.WMQ.PCF.PCFAgent.Send(команда Int32, параметры PCFParameter[]) в IBM .WMQ.PCF.PCFMessageAgent.Send(запрос PCFMessage, логическая проверка) в IBM.WMQ.PCF.PCFMessageAgent.Send(запрос PCFMessage) в MyMethod
К остальным параметрам подключения к транзакциям (например, для получения или отправки сообщения) добавлено Or MQC.MQGMO_SYNCPOINT
, но я не вижу, как установить параметры подключения для сообщения PCF. Кто-нибудь может помочь?
Чтобы было ясно, мне все равно, будет ли он отправлен как часть транзакции, но поскольку Transactionscope открыт, я получаю эту ошибку.
--Редактировать--
Я добавил код подключения администратора очередей вверху.
get
,PCF
,put here
илиput there
; Например. - person simonalexander2005   schedule 17.11.2015