问题标签 [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 转换为标准输入/标准输出

Node.JS 的实时更新代码能力和自动隔离异常的能力似乎有限。这两者在 Java 中实际上都是默认的。

实时更新的一种非常有效的方法是拥有一个侦听器进程,它简单地回显与子进程的通信。然后更新,监听器启动一个新的孩子(它会自动读取更新的代码),然后开始向新的孩子发送请求,当所有请求都完成时结束旧的孩子。

  • 是否已经有一个系统通过 stdout/stdin 提供此 http 功能。
  • 是否有通过 stdout/stdin 提供 TCP 服务器或 UDP 服务器功能的系统。

我的意思是,提供一个看起来像httpornet模块的模块,但它使用标准输出/标准输入作为底层 I/O。

类似于这个 CGI 模块

一些应用程序只需更改require('http')require('cgi')

我打算做类似的事情。我希望重新使用已经存在的代码,并且还希望轻松地将小型或单一用途的网络服务器转换为运行许多网络应用程序的侦听器层。正确进行清理很重要。结束或错误的连接应该被释放,结束/错误事件/命令应该以两种方式正确回显。

(我相信一种常见的方法是让孩子在端口上监听,而父母与这些端口进行通信,但我认为 stdout/stdin 解决方案会更有效)

0 投票
1 回答
245 浏览

memory - appdomain 多次加载一个 com dll 并保持内存隔离

有一个COM DLL(VC6.0 ATL 向导内置),我想用appdomain的身份来实现一个进程创建多个appdomain,每个进程都加载这个COM DLL,保证每个COM DLL都有独立的内存空间。</p>

例如

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

对象 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 中创建了一个基本的单元测试套件。它显示测试是否通过以及执行测试所需的时间。它工作得很好,但我遇到了一个问题,我不知道如何解决它。每个单元测试类的每个初始单元测试似乎总是比该类中的其他单元测试花费更多的时间来执行,通常是一个重要因素。

举个例子:

测试类1

  • 测试1.1 (0.042395)
  • 测试1.2 (0.000392)
  • 测试1.3 (0.000325)
  • 测试1.4 (0.000645)

测试类2

  • 测试2.1 (0.042395)
  • 测试2.2 (0.000392)
  • 测试2.3 (0.000325)
  • 测试2.4 (0.000645)

我假设初始测试时间也是资源加载的因素,但我似乎无法使第一次测试与其他时间一致。每个测试都有运行的 setUp 和 tearDown 方法。我还尝试以不同的名称重复完全相同的测试,并且它在预期的更短的时间内运行,所以第一个测试总是有某种开销。

PHP 没有任何类型的 unloadClass 或 unloadFile 函数,因此如果第一个测试有将资源加载到内存中的开销,我不确定是否可以为每个测试重新创建一致的测试环境。我已经尝试过预加载文件和初始类实例化,但似乎都没有产生影响。

我可能会遗漏其他可能会影响初始测试时间的可能性吗?解决这个问题的正确方法是什么?

注意:我知道现有的 PHP 单元测试框架,但我正在尝试做一些不同的事情,所以请不要说“只使用 PHPUnit”,因为它对帮助我解决这个问题没有帮助。

0 投票
1 回答
2171 浏览

networking - 网络交换机的网络流量隔离行为

Stack Overflow 上的新手。我很惊讶似乎没有人问过这个问题,我希望这是问这个问题的正确地方。我试图确定我是否应该期望常规网络交换机(只是简单的交换机,而不是路由器)能够在交换机内隔离本地网络流量(即定向到 ame 交换机中另一个本地端口的目标流量)?

例如,如果我有 2 台机器连接到同一交换机上的端口(例如,端口 2 和 3)并使用定向的非广播协议(例如 TCP)进行通信,我想确保这两台机器之间的流量是不转发交换子网之外的其余网络。

我正在构建一个家庭网络,我想使用交换机构建专用网络“子网”或“区域”,其中本地子网流量不会转发到“骨干网”或网络的其余部分。请注意,我并不是要阻止这些“区域”之间的任何入站或出站流量,但我只是想为这些区域实施“需要知道”的基础,以限制网络范围内对本地流量的暴露同一个开关。具体来说,我希望骨干网的不必要流量尽可能少。

回到最初的问题:期望任何网络交换机足够聪明,不会将本地流量转发到网络的其余部分,这是否公平?我希望会是这样,但我想确定一下。

PS:您可以假设我在网络上的某个地方有一个 DHCP/WINS 服务器,它将分配 IP 地址等。

我希望这个问题是有道理的,任何帮助将不胜感激!- K。

0 投票
1 回答
905 浏览

dependency-injection - 如何解决间歇性junit测试失败?

我正在处理我的测试根据声明顺序通过或失败的情况。这当然指向没有正确隔离的测试。但我对如何寻找问题感到困惑。问题是我的 junit 测试派生自一个属于基于 junit 构建的测试框架并具有一些依赖注入容器的类。容器通过基类设置为每个测试重置,因此至少在容器中没有延迟对象,因为容器本身是新的。所以我倾向于以下场景。

  1. test1 间接导致一些 classA 将 classA.somestaticMember 设置为 xyz 值。test obj 不直接维护对 classA 的任何引用,但在 test1 结束时,vm 仍会使用值 xyz 加载 classA。
  2. test2 访问 classA 并在一些具有 xyz 值的静态成员上绊倒。

问题是a)我不知道这是否确实如此 - 我该如何找到它?我似乎无法在代码中找到对静态变量的引用... b) 有没有办法告诉 junit 转储其所有加载的类并为每个测试方法重新执行?

0 投票
1 回答
886 浏览

select - 在 Sybase 中更新表期间解决并发问题

我在 Sybase 中有一个带有以下代码的过程。

问题是当多个用户同时调用该过程时,他们可以接收相同的 min(id) 并使用不同的值 @uid 更新表中的同一行。结果是数据失真。需要达到一个结果,如果该行已经选择更新单个用户,其他用户不能选择它。表具有锁定类型的数据行。

尝试使用事务级锁定,如下所示在事务开始之前设置事务隔离级别 3,但调用过程的应用程序获取异常 java.sql.SQLException:您的服务器命令(系列 ID #0,进程 ID #530)遇到死锁情况。请重新运行您的命令。

如果有任何帮助,我将不胜感激。

0 投票
1 回答
62 浏览

ruby - 将规范隔离到方法的一个特定调用

我正在为多次调用另一个对象的方法(IO#delete)的对象(示例)编写规范。

我想隔离此方法的测试,但是当我这样做时:

如果我调用多个方法,这不是问题,因为我使用的是空对象模式。但是,在这种情况下,当我执行第二个测试时,它会抱怨:

有没有办法表明必须忽略所有呼叫,除了我试图确保完成的呼叫?

0 投票
1 回答
107 浏览

.net - 通过 AppDomain 或进程边界传递 MSMQ 队列句柄

在 .NET 应用程序中使用 AppDomain 或可能的进程隔离,我不一定要为隔离环境提供创建甚至打开 MSMQ 消息队列所需的权限。我也不想使用隔离通​​道来来回传递来自特权主机的消息,因为我相信性能会受到很大影响。

有没有办法在主机中创建/打开 MessageQueue,然后将打开的句柄传递给 Isolation 环境以供使用(无需远程处理)?

0 投票
1 回答
252 浏览

nosql - Memcached/其他键值引擎隔离

我在平衡器后面有一堆 Web 服务器(前端)。对于每个虚拟主机,每个 apache 进程都使用自己的用户运行。apache 运行的代码是 PHP,它不是受信任的代码。我需要共享(在 Web 服务器之间)会话存储并限制用户(虚拟主机)只能访问它的会话存储。所以我想避免一个租户能够清除或损坏 memcached 存储的数据。所以我基本上是在寻找对用户进行身份验证+创建私有存储桶的解决方案。我知道总有可用的 MySQL 方式,但我想避免 SQL 层引入的性能损失。

到目前为止,您有什么解决方案吗?