问题标签 [optimistic]

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 投票
1 回答
400 浏览

concurrency - 业务应用程序 - 使用消息传递的悲观并发

我们在我们的一个项目中使用消息传递来实现悲观并发。这意味着如果消息传递中断(通道中断),并发性就会下降。

  • 这是在其他业务应用程序中完成的吗?
  • 如果消息传递失败,您是否关闭应用程序(注销用户)?

我更多地考虑将乐观和悲观并发结合起来。那么如果悲观并发下降了,还有一个备用乐观并发......

谢谢,列文卡登

0 投票
5 回答
288 浏览

performance - 在不使用 CDN 的情况下提高全球网站性能?

CDN 似乎是一种在全球范围内提高网站性能的非常强力的方法,因为它们使用接近最终用户的数千台机器来确保良好的吞吐量。

与减少请求大小和数量的“常规”方法相比,是否有任何方法可以通过高延迟或慢速链接(例如,英国到澳大利亚)提高长距离性能,或者是让服务器更接近的唯一其他方法用户?

0 投票
3 回答
2490 浏览

activerecord - 为什么activerecord乐观锁定每行只工作一次?

不知何故,我总是在星期五得到这些。

我之前的问题是关于同样的问题,但我现在可以缩小范围:

我整天都在玩这个,试图理解它。我有一个带有 lock_version 列的表,指定如下:

我做这样的事情:

然后我验证第一个和第二个引用同一个对象 - 它们的 ID 相同,并且我使用 mysql 命令行工具在数据库中看到该行。

到目前为止没有问题。我正确地得到了一个 ActiveRecord::StaleObjectError 异常。 但是

……什么也没有发生。事实证明,我唯一一次得到正确(抛出异常)行为是当 first 和 second 的 lock_version 为 0 时。但是,在第一次保存之后,它不再是 0。这到底是怎么回事?

我正在使用 ruby​​ 1.8.6 和活动记录 2.2.2

谢谢...

0 投票
1 回答
1716 浏览

nhibernate - fluent nhibernate automap 版本栏

我的约定中的当前代码:

这不会将 RowVersion 呈现为版本列。它将 RowVersion 视为只是另一列。

所以我的问题是如何使用 Fluent Nhibernate 添加行版本并发?

0 投票
1 回答
1314 浏览

java - how to catch OptimisticLockException in web layer

I'm having one issue that is how to catch OptimisticLockException in web layer (.war code) when it is raised by the EJB layer.

We are using JEE5, GlassFishV2.1 and JPA (with TopLinks)and Container Managed Transactions.But when the dirty read occur due to trnasaction by another concurrent user on the same entity.It gives Transaction.RollBackException at the war layer which is actually caused by OptimisticLockException.But i am unable to catch OptimisticLockException at war side.

I found on internet
http://books.google.com/books?id=fVCuB_Xq3pAC&pg=PA292&dq=OptimisticLockException++Collision+Exception&hl=en&ei=0A6jTI3nN5DQccbO5MAB&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA#v=onepage&q=OptimisticLockException%20%20Collision%20Exception&f=false

that use of em.flush on ejb side and then we can catch and throw some custom exception to war. but I think em.flush will refresh all database, is it an expensive operation or not?

My opinion is not to call em.flush as 90% of cases there will be no OptimisticLockException and to catch the EJBException in the .war and then retry it. Is there a better option?

try{ // some code } catch (EJBException ex) {

0 投票
1 回答
3467 浏览

java - 休眠是否为分离的对象提供默认的乐观锁定?

我有一个应用程序:

我没有使用版本字段显式配置乐观锁定。但是,如果两个请求并行运行,试图删除同一个对象,那么我有时会收到 HibernateOptimisticLockingFailureException,有时会收到“CustomException”。

在没有明确设置乐观锁定的情况下获得 HibernateOptimisticLockingFailureException 是否正常?休眠是否为分离的对象提供默认的乐观锁定?

你在做什么来处理这个 HibernateOptimisticLockingFailureException ?重试或使用“服务器忙”之类的默认消息通知用户?

0 投票
1 回答
291 浏览

javascript - javascript中复制对象的乐观同步

我正在编写一个浏览器应用程序(首选 html5+websockets+css3+js),它使用户能够同时访问(读取、写入)同一对象的属性。为了创建实时体验,我想使用乐观同步。我阅读了有关 Timewarp 和 Trailing State 算法的信息,我想知道是否有一个 JavaScript 库,它已经实现了这些或类似的算法。

我找到了这个问题,但不幸的是还没有回答。XSTM 似乎只支持悲观同步。

你对我有什么想法吗?

0 投票
1 回答
628 浏览

nhibernate - 解决 Nhibernate 并发问题

我目前正在考虑使用 NHibernate 实现一个应用程序,并且我希望能够通过向用户显示自从他检索实例后哪些字段发生了变化来解决并发问题。所以用户应该有可能将他输入的值与数据库中的值进行比较,然后决定使用哪些值。

从我读过的内容来看,当存储的信息被持久化并且版本字段与数据库中的值不同时,NHibernate 会抛出一个异常。此异常是否包含有关数据库中对象的某种信息,或者我是否必须再次查询数据库以获取数据对象并将其与我的用户操作对象进行比较?

也许有人已经做了类似的事情并想分享代码。

0 投票
0 回答
265 浏览

javascript - 乐观骨干应用

我只是想知道是否有任何关于构建乐观应用程序的文章、讨论和一般建议?

从 0.9 开始,Backbone 将其模型更改为默认乐观。现在,如果我要保存/更新模型,是否需要等待服务器的响应?显然,如果不是,结果是立竿见影的,这会导致应用程序更加快速。如果在服务器上更新或创建新模型时出现错误,这也可能导致问题。这让我想到了下一点。

如果我正在构建一个乐观的应用程序,我该如何处理错误?假设模型已经创建/更新并且如果没有将数据存储在本地存储中并定期尝试保存到服务器是否可行?我没有仔细研究过这个插件,但我认为它具有相同的心态。

你有什么意见和建议?假设我正在构建一个非事务性应用程序。

0 投票
1 回答
1411 浏览

java - 奇怪的乐观锁异常

我一直在为这个问题苦苦挣扎,最后决定与你分享作为我最后的选择。请帮帮我。我正在从事一个涉及 JSF、EcllipseLink JPA、Glassfish 3.1.2.2 开源版和 ms sql 的项目server 2008。问题是我无法在我的应用程序的任何地方更新数据库。每次我这样做时,我都会得到如下所示的乐观锁异常......

数据只是首先读取以显示在 jsf 数据表中的网页上,可以在其中选择和编辑它。我知道没有其他线程在运行,这不仅用于编辑以前存储的记录,甚至创建新记录也会抛出同样的例外。我知道代码没有问题,因为我所有的队友都没有这个问题。我是团队的新手。我的应用程序在每个地方都会发生这种情况,无论是创建新记录还是修改现有记录。我试图调试,但我能达到的深度是 entityManager.persist(entity); 此时它会引发异常。有什么方法可以深入潜水吗?我认为这里不需要任何代码示例,因为每个使用此代码的人都没有这个问题。我从我的团队收到了现成的代码并进行了设置。问题的原因可能是什么?如果需要其他信息,请告诉我。