问题标签 [ora-08177]

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 回答
72401 浏览

oracle - ORA-08177: 无法序列化此事务的访问

我有一个使用 ADO.NET 的非常简单的代码,它会引发 ORA-08177 异常。我不确定这有什么问题。我在安装了 oracle 32 位客户端的 windows vista 机器上尝试这个。我的 Visual Studio 编译选项设置为 x86 平台。

需要注意的重要事项:(我不确定它们是否已连接)但如果我从我的机器上卸载最新的 Windows 更新,我不会遇到这个问题。

有没有人遇到过这个问题或对这里发生的事情有任何线索?

编辑:-

我取得了一些进展,我发现只有当我们有问题的 blob 列类型时才会出现这个问题。对于简单的列,它工作正常。

其他细节(不确定这是否有影响)

我正在研究 64 位 windows vista 商务机。我已经为 windows vista 安装了 32 位 oracle 客户端(因为 64 位 oracle 客户端在 vista 上不起作用)。我正在 Visual Studio 中为 x86(32 位环境)编译我的项目。这是一个控制台应用程序,我知道此时没有其他人在访问数据库。所以不能有多个交易。

如果我卸载最新的 Windows 更新,我看不到这个问题。(KB963027、KB967190、KB959426、KB960225、KB960803、KB952004、KB956572、KB958687、KB958690、KB958481、KB958483、KB943729)

0 投票
2 回答
3052 浏览

oracle - 如果只有一个与数据库的连接,我可以得到 ORA-08177 吗?

我的任务是在 oracle 的 Storm 后端上运行单元测试,以便我们可以查看后端是否有足够的质量用于生产。我遇到的一个问题是,如果我以可序列化模式连接,我将得到 ORA-08177(无法序列化此事务的访问)。当我使用读取提交模式时,问题就消失了。

现在我已经阅读了这篇 ask tom文章,它表明这基本上是一个并发问题。

假设我只有一个线程连接到数据库并且世界上没有其他人连接到这个数据库,是否有可能得到这个错误?如果是这样,有人可以为我提供一个会产生此错误的示例查询吗?

或者这可能表明游标或连接没有在某处关闭?或者一个事务没有被提交或回滚?

0 投票
2 回答
12309 浏览

oracle - 只有一个活动会话随机获取 ORA-08177

我正在运行一个创建表然后插入一些数据的程序。
这是访问数据库的唯一程序。
我随机得到 ORA-08177。
实际代码有些复杂,但我编写了一个简单的程序来重现这种行为。

此代码运行无限循环。
在每次迭代中,它执行以下操作 10 次:

  • 公开课

  • 插入 100 行随机数据

  • 关闭会话

  • 显示一条消息说没有发生错误

如果发生错误,则捕获异常并打印其消息,然后执行下一次迭代。

这是示例输出。如您所见,ORA-08177 与成功的交互随机交错。

我正在运行 Oracle 11.1.0.6.0 并使用 ODP.NET 2.111.6.20。
更改隔离级别以ReadCommited解决问题,但我真的想在Serializable级别上运行它。
看起来我并不孤单 ,但没有给出答案,所以我再次询问。
我做错了什么,我该如何解决这个问题?

由 APC 编辑

为防止其他人发现错误的树,发布的代码示例只是 ORA-8177 错误的生成器。显然实际的代码是不同的;具体来说,删除和重新创建表格是一条红鲱鱼。

0 投票
1 回答
686 浏览

ora-08177 - 如何在 oracle XE 中创建工作区

如何在 oracle XE 中创建工作区

0 投票
0 回答
2969 浏览

oracle - ORA-08177: 无法序列化事务的访问

我间歇性地面临以下异常。我正在使用 oracle 数据库并且没有设置任何隔离级别

ORA-08177: 无法序列化此事务的访问

org.springframework.dao.CannotSerializeTransactionException: PreparedStatementCallback; SQL []; ORA-08177: 无法序列化此事务的访问;嵌套异常是 java.sql.SQLException: ORA-08177: can't serialize access for this transaction : java.sql.SQLException: ORA-08177: can't serialize access for this transaction。

我没有在任何地方设置隔离级别,因此它应该采用默认隔离级别,即 Read_committed。

但是,如果默认情况下采用 Read 提交的 oracle 数据库是这种情况,则不应抛出此异常。

请建议。我不能将我的代码作为我公司的代码共享。

谢谢