MultiRunUnits デモンストレーションの実行

デモンストレーションを実行するには、次の操作を行います。

  1. Visual Studio を起動します。
  2. [File > Open > Web Site] をクリックし、C:\Users\Public\Documents\Micro Focus\prodname\Samples\MultiRunUnit を指定して [Open] をクリックします。
  3. ソリューションをビルドします。
  4. ソリューション エクスプローラーで、service.asmx を右クリックし、[Set As Start Page] をクリックします。
  5. Web サービスを [Debug > Start Without Debugging] をクリックして起動します。
  6. 2 番目の Web サービスを [Debug > Start Without Debugging] をクリックして起動します。
  7. 両方のブラウザーで [AddTwoNumbers] をクリックします。
  8. 片方のブラウザーで、1 番目の演算子 op1 に 1 を入力し、2 番目の演算子 op2 に任意の数値を入力します。
  9. もう一方のブラウザーで、各フィールドに 1 以外の演算子を入力します。

データが誤って共有されていることを確認するため、両方のブラウザーの [UsingMultiRunUnits] フィールドに False と入力します。1 を入力したブラウザーで [起動] をクリックし、次にもう一方のブラウザーでも [起動] をクリックします。最初は正しい結果が返されますが、次に返される結果は最初の結果と同じになり、正しくありません。理由は次のとおりです。

  1. 最初のインスタンスが、デフォルトの実行単位を作成し、その実行単位にデータを送り、待機します。
  2. 2 番目のインスタンスは、同じデフォルトの実行単位を使用し、その際にデフォルトの実行単位のデータを上書きします。
  3. 2 番目のインスタンスが、2 つの数字を足して、正しい結果を返します。
  4. 最初のインスタンスは、待機を終えると、デフォルトの実行単位を使用して 2 つの数字を足しますが、それらの数字は 2 番目のインスタンスからの数字になっています。このため、最初のインスタンスは 2 番目のインスタンスの結果を返し、正しい結果でなくなります。

次に、もう一度デモンストレーションを行います。今度は、[UsingMultiRunUnits] フィールドに True と入力します。両方とも正しい結果が返されます。理由は次のとおりです。

  1. 最初のインスタンスが、専用の実行単位を作成し、その実行単位にデータを送り、待機します。
  2. 2 番目のインスタンスが、別の専用の実行単位を作成し、その専用の実行単位にデータを送ります。
  3. 2 番目のインスタンスが、2 つの数字を足して、正しい結果を返します。
  4. 最初のインスタンスは、待機を終えると、その専用の実行単位を使用します。そこで、正しい 2 つの数値を足し、正しい結果を返します。