2017-02-27 26 views
0

我們正在將IBM Websphere MQ移動到不同的服務器(VB6應用程序將位於不同的服務器中)。 我需要填充SET服務器字段。 我正在使用MQAX200.DLL連接到MQ。添加服務器詳細信息以連接到VB6中的IBM Websphere MQ系列

請讓我知道如何從vb6連接到不同的服務器。

下面是我們目前正在使用連接到隊列管理器代碼:

Form1.txtstreamLog_File.WriteLine Date & " " & Time & " STATUS: Attempting to connect to the MQ Queue Manager: " & Form1.strManagerQueueName 
Set mconMQ = New MQAX200.MQQueueManager 
With mconMQ 

    'Set the Name of the Queue Manager (or allow to default) 
    .Name = Form1.strManagerQueueName 

    'Connect to Queue Manager 
    .Connect 

    'Get Connect Method Results & Display 
    mlngConnectionHandle = .ConnectionHandle 

    'Check Completion Code 
    If .CompletionCode <> MQCC_OK Then 
     Form1.txtstreamLog_File.WriteLine Date & " " & Time & " ERROR: Failed to connect to Queue Manager: " & Form1.strManagerQueueName & vbCr & _ 
       "Reason Code: " & .ReasonCode & vbCr & _ 
       "Reason Text: " & .ReasonName 
     ConnectQueueManager = False 
     Exit Function 
    End If 
End With 'mconMQ 

Form1.txtstreamLog_File.WriteLine Date & " " & Time & " STATUS: Connected to the Queue Manager successfully" 
ConnectQueueManager = True 
Exit Function 
+0

MQ管理器和隊列位於不同的服務器上。我通過MQAX200連接到MQ。 'code'隨着MQAX200.MQQueueManager 「設置隊列管理器的名稱(或允許默認) 請將.Name = Form1.strManagerQueueName .ChannelAutoDefinition.ChannelName = 「%CL.SELECTA.SELQMD1」 .ChannelAutoDefinition.ConnectionName =「 selmqrhd11「 '連接到隊列管理器 。連接'代碼' –

+0

對不起,我在這裏試圖測試代碼,但它不工作。請找到上面的代碼,它是一個工作版本,目前正在使用。正如你所看到的,這裏沒有提供服務器/連接名稱。這就是我想知道在哪裏可以設置服務器/連接名稱? –

+0

它用於與位於同一服務器上的隊列管理器相連。 現在我們要將這個MQ移動到不同的服務器上。 所以我必須編寫一個新的代碼來連接到位於不同服務器上的MQ。 –

回答

1

MQAX200.DLL是用於IBM MQS的dll depricated微軟ActiveX和VB6的連接。 IBM MQ Class for .NET是推薦的替代技術。


的一切,我發現表明,你只能使用MQSERVER環境變量來提供連接細節單個隊列管理器或使用MQ頻道表由該MQCHLLIB/MQCHLTAB環境變量指向的,如果你需要連接到多個隊列管理器。


它在最近所有的知識中心的版本(V7.0.1是最老的,我能找到),其MQAX(MQ的ActiveX)支持在IBMWebSphere®的MQ 6.0版本的水平穩定下來被記錄在案: MQ v7.0.1知識中心頁面「Coding in ActiveX」:

對WebSphere的支持已穩定在WebSphere®MQ V6.0級別。要利用引入到WebSphere 6.0以後版本的功能,請考慮使用.NET。


MQ V9.0知識中心頁面 「Object-oriented applications」:

的ActiveX

的IBM MQ ActiveX是俗稱MQAX。 MQAX作爲IBM MQ for Windows的一部分。在IBMWebSphere®MQ V6.0級別上,對ActiveX的支持已穩定下來。要利用引入到IBM MQ 6.0以後的功能,請考慮使用.NET。有關使用ActiveX中的IBM MQ對象模型編碼程序的信息,請參閱使用組件對象模型接口(用於ActiveX的WebSphere MQ自動化類)。


另外IBM在 「IBM MQ V9.0 Software Announcement」 曾表示:對於在IBM MQ V9.0去除

功能

微軟的ActiveX IBM MQ支持和VB6

IBM MQ支持Microsoft Act iveX和VB6是已棄用。 IBM MQ Class for .NET是推薦的替代技術。


總之你正在使用的接口已經穩定,並沒有得到加強,因爲IBM MQ V6.0於2005年6月發佈,並已只有缺陷修復程序。在v9.0中,它已被棄用,這表明IBM將從未來版本的產品中刪除它。

請注意,您也無法使用TLS加密或使用Microsoft ActiveX庫將MQ用戶名和密碼傳遞給MQ,並且會限制您的SVRCONN通道受到未授權連接的保護。


我建議你轉換爲.NET庫。樣本位於tools\dotnet\samples的MQ安裝目錄下。


UPDATE 2017年4月17日

IBM MQ V9知識中心頁面 「Deprecated, stabilized and removed features」 現在已經更新到也反映出,對於微軟的ActiveX和VB6 IBM MQ支持棄用 。對於MicrosoftActive X和Microsoft Visual Basic 6.0

爲MicrosoftActive X和 的Microsoft Visual Basic 6.0 IBM MQ支持的IBM MQ支持

棄用已棄用。用於.NET的IBM MQ類是 建議的替代技術。見Using the Component Object Model Interface (IBM MQ Automation Classes for ActiveX)Coding in Visual Basic

+0

感謝您提供這些詳細信息,它確實幫助我找出了不要使用MQAX200.DLL。 –

+0

如果MQ服務器安裝在除應用程序之外的服務器上,則應該使用MQIC32.DLL,否則使用MQIC.DLL。示例項目(如amqscnxb.vbp)非常有用,並且將在安裝MQ Client後進行安裝。希望這對正在面臨類似問題的其他人有所幫助。 –

相關問題