2

WebSphere MQ キューに書き込もうとしている SSIS スクリプト タスク (C# で記述) があります。明らかに、この接続を行うために特定の dll を参照する必要がありますが、別の dll に関連するエラーが発生しています。プログラムがキューへの接続を開こうとすると、次のエラーが表示されます。

{"Unable to find an entry point named 'zstMQGET' in DLL
'C:\\Program Files (x86)\\IBM\\WebSphere MQ\\bin\\mqic.dll'.":""}
System.Exception {System.EntryPointNotFoundException}

フォルダー内に dll が見つかり、参照として追加しようとしましたが、VS2010 ではこれが許可されません。「ファイルにアクセスできること、および有効なアセンブリまたは COM コンポーネントであることを確認してください」というエラーが表示されます。

また、Dependency Walker をダウンロードして mqic.dll を調べたところ、次のエラー メッセージが表示されたことも付け加えておきます。

「警告: 少なくとも 1 つの遅延読み込み依存モジュールが見つかりませんでした。」「警告: 遅延読み込み依存モジュールにエクスポート機能がないため、少なくとも 1 つのモジュールに未解決のインポートがあります。」

編集 エラーの原因となっているコードの部分は、MQQueue オブジェクトの get() 呼び出しです。これらのキュー タイプは両方ともローカルであり、それに応じて Dts.Variables が設定されます。

4

3 に答える 3

2

申し訳ありませんが(コメントはできません)、実行するために正確に何を変更しましたか?5.3 から 7.1 への移行時にまったく同じ問題が発生し、解決策が見つかりません

この投稿をより多くの回答にするために:GET関数(メッセージサイズのあるもの)の3パラメーター呼び出しを使用してこのエラーを抑制することができた後、EntryPoint-Errorは発生しませんが、正確な理由はわかりませんそれのための

より明確: まったく同じ関数呼び出しが、何も変更せずにプログラムで後で (変更なしで) 機能するため、これは永続的なリンク エラーではありません。

于 2012-10-04T10:54:24.030 に答える
1

これは、7.1ではなくMQClient5.3用に記述されたコードの結果であることが判明しました。この変更を行うだけで問題は解決しました。

于 2012-08-10T19:50:32.300 に答える
1

WMQInstallDir\bin\amqiRegisterdotNet.cmdスクリプトを実行しましたか? さらに言えば、ベンダー インストールを実行しましたか、それとも dll を取得しましたか?

また、WMQ コンポーネントと Net コンポーネントをインストールする順序も異なります。詳細については、Infocenterの.Net インストールのトピックを参照してください。

WMQ クライアントのベンダー インストール メディアが必要な場合は、無料でダウンロードできます。

最高のパフォーマンスと安定性を得るには、最新のクライアント バージョンを使用することをお勧めします。古いバージョンの WMQ サーバーで動作します。また、使用しているクライアントのバージョンに対応する Infocenter を使用してください。

于 2012-08-09T15:57:22.247 に答える