2011-06-24 27 views
2

.NET MQ拡張トランザクションクライアントを使用して、エンタープライズ内の既存のキューマネージャと通信しようとしています。私は、MQ 7.0.1試用版からExtended Clientを使用してWindows 2008 R2をクリーンインストールしています。例外MQエクステンドトランザクションクライアントでキューに書き込む

私のプログラムは、TransactionScopeとMQC.MQPMO_SYNCPOINTオプションをコメントアウトするときにキューに書き込みます。このプログラムはtrans.Completeを持っていないことを

using System; 
using System.Collections.Generic; 
using System.Text; 
using IBM.WMQ; 
using System.Transactions; 

namespace MQSeries 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     var transOptions = new TransactionOptions(); 
     transOptions.IsolationLevel = IsolationLevel.Serializable; 

     string queueManagerName = "MYQUEUEMANAGER"; 
     string queueName = "MYQUEUE"; 
     string channelName = "MYCHANNEL"; 
     string channelInfo = "myserver.com(1418)"; 

     MQQueueManager qm; 

     using (var trans = new TransactionScope(TransactionScopeOption.Required, transOptions, EnterpriseServicesInteropOption.Full)) 
     { 
      qm = new MQQueueManager(queueManagerName, channelName, channelInfo); 

      // Set up the options on the queue we wish to open 
      int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT; 

      var q = qm.AccessQueue(queueName, openOptions); 

      // Define a WebSphere MQ message, writing some text in UTF format 
      MQMessage hello_world = new MQMessage(); 
      hello_world.WriteUTF("Hello World!"); 

      // Specify the message options 
      MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the defaults, 
      pmo.Options = MQC.MQPMO_SYNCPOINT; 

      // Put the message on the queue 
      q.Put(hello_world, pmo); 
     } 

     qm.Disconnect(); 
    } 
} 
} 

注意(:

ここ
MQRC_UOW_ENLISTMENT_ERROR ReasonCode 2354 

は私の完全なプログラムです:トランザクションコードで、私はq.Put()の呼び出しで、次の例外を取得します)コール。だから、現在の例外を除いて、私は、トランザクションでロールバックされるキュー上のメッセージを期待します。

答えて

2

v7クライアントでは未解決の問題であることが判明しました。私のV7のXAクライアントは、V6キュー・マネージャーに話していた。

IC74808: MQ V7 XA CLIENT APPLICATION FAILS WHILE CONNECTING TO MQ V6 QUEUE MANAGER. AのWebSphere MQ V7のXAクライアント アプリケーションは のWebSphere MQ V6キュー・マネージャーにMQCONNを発行します。 理由コード2046、MQRC_OPTIONS_ERRORのxa_open中に MQCONNが失敗します。 はMQRC = 2354であるUOW_ENLISTMENT_ERRORを引き起こす MSDTCプロセスにおける この障害は、これも に-3(XAER_RMERR)で失敗のxa_openコールをもたらします。

関連する問題