デモンストレーションを実行するには、次の操作を行います。
- Web サイトを開き、デフォルトで %PUBLIC%\Documents\Micro Focus\Visual COBOL\Samples\MultiRunUnits に置かれているデモ ファイルをブラウズします。
- Web サイトをビルドします。
- [デバッグ] > [デバッグなしで開始] をクリックし、次に service.asmx をクリックして Web サービスを開始します。
- 同じようにして、2 つ目の Web サービスを開始します。
- 両方のブラウザで [AddTwoNumbers] をクリックします。
- 片方のブラウザで、1 番目の演算子 op1 に 1 を入力し、2 番目の演算子 op2 に任意の数値を入力します。
- もう一方のブラウザで、各フィールドに 1 以外の演算子を入力します。
データが誤って共有されていることを確認するため、両方のブラウザの「UsingMultiRunUnits」フィールドに False と入力します。1 を入力したブラウザで [起動] をクリックし、次にもう一方のブラウザでも [起動] をクリックします。最初は正しい結果が返されますが、次に返される結果は最初の結果と同じになり、正しくありません。理由は次のとおりです。
- 最初のインスタンスが、デフォルトの実行単位を作成し、その実行単位にデータを送り、待機します。
- 2 番目のインスタンスは、同じデフォルトの実行単位を使用し、その際にデフォルトの実行単位のデータを上書きします。
- 2 番目のインスタンスが、2 つの数字を足して、正しい結果を返します。
- 最初のインスタンスは、待機を終えると、デフォルトの実行単位を使用して 2 つの数字を足しますが、それらの数字は 2 番目のインスタンスからの数字になっています。このため、最初のインスタンスは 2 番目のインスタンスの結果を返し、正しい結果でなくなります。
次に、もう一度デモンストレーションを行います。今度は、[UsingMultiRunUnits] フィールドに True と入力します。両方とも正しい結果が返されます。理由は次のとおりです。
- 最初のインスタンスが、専用の実行単位を作成し、その実行単位にデータを送り、待機します。
- 2 番目のインスタンスが、別の専用の実行単位を作成し、その専用の実行単位にデータを送ります。
- 2 番目のインスタンスが、2 つの数字を足して、正しい結果を返します。
- 最初のインスタンスは、待機を終えると、その専用の実行単位を使用します。そこで、正しい 2 つの数値を足し、正しい結果を返します。