NServiceBusバックエンドによる問題の解決

警告: 第三者への言及は情報提供のみを目的とし、当該組織を推奨したり、パートナー関係を示唆したりするものではありません。そのような言及に関連するすべての権利は、それぞれの所有者または当事者が留保します。

  • NServiceBus バージョン 6 を使用していて、Splunk AppDynamics .Net エージェントアセンブリに関する次の例外が発生した場合。ご使用の環境は、NServiceBus AssemblyScanner の既知の問題の影響を受ける可能性があります。
    PYTHON
    Unhandled exception. System.Exception: Could not load '....some_assembly_name.dll'. Consider excluding that assembly from the scanning.
    ---> System.IO.FileLoadException: Assembly with same name is already loaded

    この問題を修正するには、Splunk AppDynamics .Net エージェントアセンブリの不要なスキャンから NServiceBus AssemblyScanner を停止することを推奨します。NServiceBus によって提案された次のいずれかの回避策を実行できます。

    1. アプリケーションで Splunk AppDynamics .Net エージェントアセンブリの除外ルールを設定します。アセンブリのスキャンと、スキャンからアセンブリを除外する方法の詳細については、NServiceBus AssemblyScanner の仕様を参照してください。

    2. NserviceBus AssemblyScanner がスキャンするパスの外に Splunk AppDynamics .Net Agent エージェントアセンブリを移動します。次のいずれかのオプションを選択できます。

      • アプリケーションの作業ディレクトリは、デフォルトのスキャンパスです。アプリケーションに NServiceBus AssemblyScanner 用の特定の設定がない場合は、Splunk AppDynamics .Net エージェントアセンブリがアプリケーションの作業ディレクトリにないことを確認します。最適なオプションは、アセンブリを作業ディレクトリのネストされたフォルダに移動することです。完全に作業ディレクトリの外にアセンブリを移動することもできます。

      • アプリケーションに、追加のパスまたはネストされたフォルダをスキャンする NserviceBus AssemblyScanner 用の特別な設定が含まれている場合は、Splunk AppDynamics .Net エージェントアセンブリをこれらのパスの外に移動することを推奨します。アセンブリのスキャンと、スキャンからアセンブリを除外する方法の詳細については、NServiceBus AssemblyScanner の仕様を参照してください。

  • NServiceBusバージョン5を使用していて、受信機ーにダウンストリーム相関が表示されない場合、受信機ーでスレディングアーキテクチャを検証する。マルチスレッド受信機の nservicebus-single-threaded アプリケーション エージェントのノード プロパティを「false」に設定します。

  • MSMQ を NServiceBus とは別個に使用している場合は、MSMQ のノードプロパティ、msmq-single-threaded、msmq-correlation-field のみを使用します。.NET エージェントは、MSMQ トランスポートで NServiceBus を検出し、インストゥルメント化する場合、MSMQ ノードプロパティを使用しません。
  • NServiceBusバージョン4を使用している場合、パブリッシャーと受信機ーの両方でNServiceBusインストゥルメンテーションを無効化できる。
    • 以下のインストゥルメンテーション エレメントをマシンエージェント エレメントの子にコピー。

      <!--Disable NServiceBus instrumentation-->
      <instrumentation>
      <instrumentor name="NServiceBusReceiveContextInstrumentor" enabled="false" />
      <instrumentor name="NServiceBusPublishExitInstrumentor" enabled="false" />
      <instrumentor name="NServiceBusEntryInstrumentor" enabled="false" />
      <instrumentor name="NServiceBusExitInstrumentor" enabled="false" />
      </instrumentation>

      詳細については、「.NET エージェントの構成プロパティ」の「インストゥルメンテーション エレメント」を参照してください 。

    • MSMQ または RabbitMQ の場合と同様に、パブリッシャおよび受信機を構成します。