我们正在考虑在Java EE中开发关键任务应用程序,并且让我印象深刻的一件事是平台中缺少会话隔离.让我解释一下这个场景.
我们有一个原生的Windows应用程序(一个完整的ERP解决方案),每月从稀疏的贡献者那里获得大约2k LoC和50个bug修复.它还支持脚本,因此客户可以添加自己的逻辑,我们不知道这样的逻辑是做什么的.每个服务器节点都有一个代理和一个进程池,而不是使用线程池.代理接收客户端请求,将其排队直到池化实例空闲,向该实例发送请求,向客户端传递响应,并将实例释放回进程池.
这种体系结构非常强大,因为有这么多稀疏贡献和自定义脚本,所以部署版本有一些严重的错误,例如无限循环,长时间等待的悲观锁定,内存损坏或内存泄漏,这种情况并不少见.我们实现了内存限制,请求超时和简单的监视器.只要某个进程无法正确及时地回答,代理就会杀死它,因此看门狗会检测并启动另一个实例.如果进程在开始响应请求之前崩溃,则代理会将相同的请求发送到另一个池化实例,并且用户不知道服务器端的任何故障(管理日志除外).这很好,因为有些实例在处理请求时会被伪代码慢慢删除.因为大多数会话数据都保存在客户端或(在极少数情况下)共享存储中,所以它似乎完美无缺.
现在考虑转向Java EE,我在规范或流行的应用程序服务器上找不到类似的东西,比如Glassfish和JBoss.是的,我知道大多数集群实现都使用会话复制进行透明故障转移,但是我们有一些小公司在一个简单的双节点集群上使用我们的系统(我们也有冒险者在单节点服务器上使用该系统) .使用线程池,我理解一个错误的线程可以使整个节点关闭,因为服务器无法检测并安全地杀死它.将整个节点关闭比杀死单个进程要糟糕得多 - 我们有部署,其中每个节点有大约100个池化流程实例.
我知道IBM和SAP已经意识到了这个问题
, 分别.但基于最近的JSR,论坛和开源工具,社区上没有太多活动.
现在问题来了!
如果你有类似的场景并使用Java EE,你是如何解决的?
您是否了解即将推出的开源产品或Java EE规范中可以解决此问题的更改?
.NET有同样的问题吗?你能解释或引用参考文献吗?
您是否了解一些可以解决此问题的现代开放平台,并且值得完成ERP业务逻辑的任务?
拜托,我不得不告诉你不要做更多的测试或任何类型的QA投资,因为我们不能强迫我们的客户在他们自己的脚本上做这个.我们还有一些案例,其中紧急错误修复必须绕过QA,并且当我们强迫客户接受此时,我们不能让他接受有缺陷的软件部分会影响一系列不相关的功能.这个问题是关于健壮的架构,而不是开发过程.
感谢您的关注!
我需要一个默认值集和许多不同的页面访问和更新..最初我可以像这样在类构造函数中设置默认值吗?在C#.NET中执行此操作的正确方法是什么?
public class ProfitVals
{
private static double _hiprofit;
public static Double HiProfit
{
get { return _hiprofit; }
set { _hiprofit = value; }
}
// assign default value
HiProfit = 0.09;
}
Run Code Online (Sandbox Code Playgroud) 在c#中,我想要一个函数来获取当前日期并返回一年中该季度的最后一个月的数字(作为2个字符的字符串)
所以
这样的事情:
DateTime dt = new DateTime(
DateTime.Today.Year,
DateTime.Today.Month,
DateTime.Today.Day);
String 2characterlastMonthinQuarter = CalcLastMonthInQuarter(dt);
Run Code Online (Sandbox Code Playgroud) 我正在寻找有关循环动画的jQuery滑块(如可滚动插件)的教程.没有任何插件,最简单的方法,教程
我无法从亚马逊那里了解他们的DRM如何工作或如何实现它,我也找不到任何值得一试的文档.
亚马逊会自己改变APK还是开发人员必须做的事情?
是否有一些不错的文档(专为开发人员设计)解释它?如果有,请发布链接.
如果我有一个列表,有没有办法检查它是否包含任何其他列表?
我的意思是说,我想知道一个列表是否有[]这个结构:与这个结构相反[[]]
所以,比较[1,2,3,4]和[1,[2,3],4]
由于我有一个字符串列表,这很复杂.
好吧,phihag的解决方案似乎工作到目前为止,但我正在做的是:
uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))
Run Code Online (Sandbox Code Playgroud)
如果列表中包含其他列表,则为了压缩列表.但由于我的列表包含字符串,如果在已经展平的列表上完成,我会得到原始列表中每个字符串的每个字符的列表.这不是我想要的行为.所以,检查是否需要在展平之前将列表弄平,这是必要的.
有没有办法在Freemarker中轻松格式化Joda DateTime对象?例如,使用Java日期,我们可以使用?字符串和其他指令.
我知道我可以调用Date并获得Java Date,但我希望有更好的方法.
可能重复:
我应该如何打印off_t和size_t等类型?
我正在使用fstat(stream, &fs)C中的文件大小返回类型off_t.
打印这个只是一个警告:
format ‘%d’ expects type ‘int’, but argument has type ‘off_t’
Run Code Online (Sandbox Code Playgroud)
任何想法如何打印这没有编译器错误?
我正在构建一个与SQL 2008数据库相悖的Windows应用程序.一些表数据非常敏感,但是如果不对这些表进行读/写访问,我们的一些用户仍然至少需要读取.我们将使用Windows安全性来控制他们对数据库的访问.
我想知道那些相同的用户是否可以通过Excel或MS Access等方式访问这些表中的数据?这是关于阻止一个坏苹果试图窃取内部数据并随之走走.但是,如果他们对数据具有读取权限,是否有任何真正的方法可以阻止它们?
很抱歉,如果这是一个SQL Server 101问题,但我找不到问题的好答案.
谢谢您的帮助!
objective-c方法是否支持"按值传递"?或者更具体一点:
谢谢