2011-01-13 8 views
4

私は今このサークルでしばらくの間周りを回ってきました。私は、提供されたチャネルテーブルファイルを使用して分散キューマネージャーに接続しようとしています。環境変数MQCHLLIBとMQCHLTABを自分のサーバー上で指定すると、これを動作させることができます。しかし、IBMのマニュアルによれば、.net設定ファイルはこれらの変数を無効にすることができます。ここでweb.configを使用して.net WebアプリケーションのWebSphere MQチャネルテーブルの場所を指定する方法

は、私は私のweb.configファイルに配置したものである:

... 
<configSections> 
    <section name="CHANNELS" type="System.Configuration.NameValueSectionHandler" /> 
</configSections> 

<CHANNELS> 
    <add key="ChannelDefinitionDirectory" value="C:\temp"></add> 
    <add key="ChannelDefinitionFile" value="DSM_MOM_TEST.tab"></add> 
</CHANNELS> 
... 

そしてここでは、実行されるコードは次のとおりです。

Hashtable properties = new Hashtable(); 
//Add managed connection type to parameters. 
const String connectionType = MQC.TRANSPORT_MQSERIES_CLIENT; 
properties.Add(MQC.TRANSPORT_PROPERTY, connectionType); 
return new MQQueueManager(queueManagerName, properties); 

queueManagerNameは、汎用キューマネージャ「に設定されています* Q101T」となる。

しかし、これは動作していないと、私はエラーを取得するには、返された:私は、これは、環境変数と標準mqclient以外の仕事に取得する方法上の任意のより多くのドキュメントを見つけることができませんしてきた2058 MQRC_Q_MGR_NAME_ERROR

を。 iniはweb.configのチャンネルスタンザによって上書きされます。

コードで紛失したことはありますか?どんなヒントも大歓迎です。

編集:接続タイプをMQC.TRANSPORT_MQSERIES_MANAGEDに変更しました。エラーが発生しました。しかし、私は今、I/Oエラーが返さ取得しています:

System.IO.IOExceptionが ユーザーコードメッセージによって未処理だった= "I/Oエラー が発生しました。"ソース=「amqmdnet」
のStackTrace:IBM.WMQ.MQChannelTable.CreateChannelEntryListsで (MQChannelListEntry 名前リスト)

私はこれが最も可能性が高いので、私は今確認するミドルウェアみんなで待っているhttps://www-304.ibm.com/support/docview.wss?uid=swg1IC69174に関連していると思いますこの場合、新しい.TABファイルを私に提供してください...

Edit2これは問題ではないようです。 MQトレースを実行しましたが、AMQCLCHL.TABファイルが見つからないため、エラーが発生しています。なぜこのファイルを探しているのか分かりません。それは私のweb.configで指定されたチャネルテーブルを使用する必要があります。誰もがなぜこれらの値を拾っていないのか知っていますか?

答えて

0

.Net構成ファイルは管理対象クライアント接続タイプでのみ使用されるため、管理モードへの切り替えは間違いなく正しい方向へのステップでした。今問題は、アプリケーションが実際に管理モードで実行されているかどうかです。インフォセンターのDefining which connection type to useセクションに記載されている決定木があります。管理接続が管理されていない接続にフォールバックする可能性があることに注意してください。これらのケースが当てはまるかどうかを確認するために、このセクションを実行することをお勧めします。

または、mqclient.iniファイルでチャネルテーブルを設定してみてください。この値は、.Net構成ファイルによってオーバーライドされない場合に使用されます。ここで値を設定すると、アプリケーションがアンマネージモードで実行されている可能性があるため、.Net構成ファイルの値が無視されていることが確認されます。

関連する問題