私は今このサークルでしばらくの間周りを回ってきました。私は、提供されたチャネルテーブルファイルを使用して分散キューマネージャーに接続しようとしています。環境変数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で指定されたチャネルテーブルを使用する必要があります。誰もがなぜこれらの値を拾っていないのか知っていますか?