問題タブ [isolation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
310 参照

virtualization - Windows:テスト目的のアプリケーションの分離

私はかつて、別の環境でアプリケーションを分離するアプリケーションを見たことがあります。仮想メモリとレジストリおよびファイルシステムがあります。これはアプリケーションの分離に似ていますが、アプリケーションのインストールや管理者権限の付与など、私が実行できるすべての操作を許可します。私はVirtualBoxや他のソフトウェアについて話していません。しかし、私は欲しいものを見つけることができません。ソフトウェアの提供をいただければ幸いです。

0 投票する
2 に答える
541 参照

networking - Node.JS: tcp を stdin/stdout に変換する

Node.JS は、コードをライブ更新する機能と、例外を自動的に分離する機能に制限があるようです。どちらもJavaでは実質的にデフォルトです。

ライブ更新の非常に効果的な方法の 1 つは、子プロセスとの間の通信を単純にエコーするリスナー プロセスを使用することです。次に更新するために、リスナーは新しい子を起動し (更新されたコードを自動的に読み取ります)、新しい子へのリクエストの送信を開始し、すべてのリクエストが完了すると古い子を終了します。

  • stdout/stdin を介してこの http 機能を提供するシステムは既にありますか。
  • stdout/stdin を介して TCP サーバーまたは UDP サーバーの機能を提供するシステムはありますか。

つまり、基本的な I/O に stdout/stdin を使用することを除いて、 httporモジュールのように見えるモジュールを提供するということです。net

この CGI モジュールに似ている

一部のアプリケーションは、変更するだけで済みrequire('http')ますrequire('cgi')

私は似たようなことをするつもりです。コードが既に存在する場合は再利用し、小規模または単一目的の Web サーバーを、多くの Web アプリケーションを実行するこのリスナー レイヤーに簡単に変換したいと考えています。クリーンアップが適切に行われることが重要です。終了またはエラーの接続を解放し、終了/エラー イベント/コマンドを双方向で適切にエコーする必要があります。

(一般的な方法は、子にポートをリッスンさせ、親にそれらのポートと通信させることだと思いますが、stdout/stdin ソリューションの方が効率的だと思います)

0 投票する
1 に答える
245 参照

memory - appdomain は 1 つの com dll を複数回ロードし、メモリを分離したままにします

COM DLL (VC6.0 ATL ウィザード ビルド) があり、appdomain の ID を使用して、1 つのプロセスが複数の appdomain を作成し、すべてのプロセスがこの COM DLL をロードし、すべての COM DLL がメモリ空間を分離できるようにします。</p>

例えば

AppDomain Domain1 = AppDomain.CreateDomain("D1"); AppDomain Domain2 = AppDomain.CreateDomain("D2");

object obj1 = Domain1.CreateInstanceFromAndUnwrap("UnManagedCOMDLL.dll", "UnManagedCOMDLL.ShowTag");

オブジェクト obj2 = Domain2.CreateInstanceFromAndUnwrap("UnManagedCOMDLL.dll", "UnManagedCOMDLL.ShowTag")

この dll には、グローバル変数があり、ロードするたびに it++ になります。com は異なる appdomain にロードされていますが、グローバル変数は互いに共有されています。

なぜそのような結果が起こったのですか?appdomain はメモリ分離を維持する必要がありますが、失敗しました。

ただし、マネージ dll に対しては、appdomain は機能します。

助けて!!!!!

0 投票する
1 に答える
329 参照

php - PHPで単体テストを単独で実行する

PHPで基本ユニットテストスイートを作成しました。テストに合格したかどうかと、テストの実行にかかった時間が表示されます。それはうまく機能しますが、私は問題に遭遇し、それに対処する方法がわかりません。各単体テストクラスの各初期単体テストは、通常、重要な要因により、そのクラスの他の単体テストよりも実行に時間がかかるように見えます。

例として:

TestClass1

  • Test1.1(0.042395)
  • Test1.2(0.000392)
  • Test1.3(0.000325)
  • Test1.4(0.000645)

TestClass2

  • Test2.1(0.042395)
  • Test2.2(0.000392)
  • Test2.3(0.000325)
  • Test2.4(0.000645)

最初のテスト時間もリソースのロードを考慮していると思いますが、最初のテストを他の時間と一致させることができないようです。各テストには、実行されるsetUpメソッドとtearDownメソッドがあります。また、まったく同じテストを別の名前で繰り返してみましたが、予想されるより短い時間で実行されるため、最初のテストには常に何らかのオーバーヘッドがあります。

PHPにはunloadClass関数やunloadFile関数がないため、最初のテストにリソースをメモリにロードするオーバーヘッドがある場合、テストごとに一貫したテスト環境を再作成できるかどうかはわかりません。ファイルのプリロードと初期クラスのインスタンス化を試しましたが、どちらも影響を与えていないようです。

最初のテスト時間に影響を与える可能性がある他の可能性がありますか?これに対処する適切な方法は何ですか?

:私は既存のPHPユニットテストフレームワークを知っていますが、少し違うことをしようとしているので、この問題の解決には役立たないので、「PHPUnitを使用してください」とは言わないでください。

0 投票する
1 に答える
2171 参照

networking - ネットワーク スイッチのネットワーク トラフィック分離動作

スタックオーバーフローの初心者はこちら。誰もこの質問をしなかったことに驚いています。これが適切な場所であることを願っています。通常のネットワーク スイッチ (ルーターではなく単純なスイッチ) に、スイッチ内のローカル ネットワーク トラフィック (つまり、スイッチ内の別のローカル ポートに向けられたターゲット トラフィック) を分離する機能があることを期待すべきかどうかを判断しようとしています。

たとえば、同じスイッチのポート (ポート 2 と 3 など) に接続された 2 台のマシンがあり、直接非ブロードキャスト プロトコル (TCP など) を使用して会話している場合、これら 2 台のマシン間のトラフィックがスイッチド サブネット外の残りのネットワークは転送されません。

ホーム ネットワークを構築しており、ローカル サブネット トラフィックが「バックボーン」またはネットワークの残りの部分に転送されないスイッチを使用して、プライベート ネットワーク「サブネット」または「ゾーン」を構築したいと考えていました。これらの「ゾーン」との間のインバウンドまたはアウトバウンドのトラフィックをブロックしようとしているわけではありませんが、これらのゾーンに「知る必要がある」という基準を実装して、これらのゾーン内を宛先とするローカライズされたトラフィックのネットワーク全体の露出を制限したかっただけです。同じスイッチ。具体的には、バックボーンの不要なトラフィックをできるだけ少なくしたかったのです。

元の質問に戻ります。ローカル トラフィックをネットワークの残りの部分に転送しないほどスマートなネットワーク スイッチを期待するのは公平でしょうか? 私はこれが当てはまると思っていましたが、確認したかったのです。

PS: ネットワーク上のどこかに IP アドレスなどを割り当てる DHCP/WINS サーバーがあると仮定できます。

質問が理にかなっていることを願っています。助けていただければ幸いです。- K.

0 投票する
1 に答える
905 参照

dependency-injection - 断続的なjunitテストの失敗をトラブルシューティングする方法は?

宣言の順序に基づいてテストが成功または失敗するケースを扱っています。これはもちろん、テストが適切に分離されていないことを示しています。しかし、私は問題を見つける方法について困惑しています。問題は、私のjunitテストが、junit上に構築されたテストフレームワークに属し、いくつかの依存性注入コンテナを持つクラスから派生していることです。コンテナーは、基本クラスのセットアップによってテストごとにリセットされるため、コンテナー自体が新しいため、少なくともコンテナー内に残留オブジェクトはありません。だから私は次のシナリオに傾いています。

  1. test1 は、classA.somestaticMember を xyz 値に設定する classA を間接的に引き起こします。test obj は classA への参照を直接保持していませんが、test1 が終了すると、classA は vm によって値 xyz でロードされます。
  2. test2 は classA にアクセスし、xyz 値を持つ staticmember でつまずきます。

問題は、a)これが実際に当てはまるかどうかわかりません-どうすればそれを見つけることができますか?コードで静的変数への参照を見つけることができないようです... b) junit にロードされたすべてのクラスをダンプし、すべてのテストメソッドに対して新たに実行するように指示する方法はありますか?

0 投票する
1 に答える
886 参照

select - Sybase でテーブルを更新する際の同時実行性を解決する

次のコードを使用してSybaseにプロシージャがあります。

問題は、プロシージャが複数のユーザーに同時に呼び出されると、同じ min(id) を受け取り、テーブル内の同じ行を異なる値 @uid で更新できることです。その結果、データが歪んでしまいます。行が単一のユーザーを更新するために既に選択されている場合、他のユーザーはそれを選択できないという結果を達成する必要があります。テーブルにはロック タイプのデータ行があります。

次のようにトランザクション レベルのロックを使用しようとしましたが、トランザクションの開始前にトランザクション分離レベル 3 を設定しましたが、プロシージャを呼び出すアプリケーションで例外 java.sql.SQLException: サーバー コマンド (ファミリ ID # 0、プロセス ID # 530) がデッドロックに遭遇しました状況。コマンドを再実行してください。

どんな助けにも感謝します。

0 投票する
1 に答える
62 参照

ruby - 仕様をメソッドの 1 つの特定の呼び出しに分離する

別のオブジェクトのメソッド (IO#delete) を何度も呼び出すオブジェクト (Sample) の仕様を作成しています。

このメソッドのテストを分離したいのですが、これを行うと:

null オブジェクト パターンを使用しているため、複数のメソッドを呼び出しても問題ありません。ただし、この場合、2 番目のテストを実行すると、次のようにエラーが表示されます。

確認しようとしている呼び出しを除いて、すべての呼び出しを無視する必要があることを示す方法はありますか?

0 投票する
1 に答える
107 参照

.net - AppDomain またはプロセス境界を介して MSMQ キュー ハンドルを渡す

.NET アプリケーションで AppDomain や場合によってはプロセスの分離を使用する場合、MSMQ MessageQueue を作成したり開いたりするために必要なアクセス許可を、分離された環境に与える必要はありません。また、分離チャネルを使用して、特権ホストとの間でメッセージをやり取りしてこれを実行する必要はありません。これは、パフォーマンスが大幅に低下すると思われるためです。

ホストで MessageQueue を作成/開き、開いているハンドルを分離環境に渡して (リモート処理なしで) 使用する方法はありますか?

0 投票する
1 に答える
252 参照

nosql - Memcached/その他のKey-Valueエンジンの分離

バランサーの背後にたくさんのWebサーバー(フロントエンド)があります。各apacheプロセスは、すべての仮想ホストに対して独自のユーザーで実行されます。apacheが実行するコードはPHPであり、信頼できるコードではありません。(Webサーバー間で)セッションストレージを共有し、user(vhost)がそのセッションストレージにのみアクセスするように制限する必要があります。そのため、1つのテナントがmemcachedに保存されているデータをパージまたは破損できないようにします。だから私は基本的にユーザーを認証し、プライベートバケットを作成するためのソリューションを探しています。MySQLの方法が常に利用可能であることは知っていますが、SQLレイヤーによってもたらされるパフォーマンスの低下を避けたいと思います。

これまでに考えている解決策はありますか?