我应该责怪PostgreSQL - 事务失败与DDL

时间:2012-07-11 10:44:59

标签: spring postgresql transactions ddl

某些背景:

我有一个工作流程应用程序(java ee。),其中包含要执行的节点。 PostgreSQL 9.1.2与Spring TX管理一起使用。

节点在自己的事务中执行(必需,读取已提交)。 node-1(TX1)将创建一个表TB_NODE_1以将数据传递给下一个节点 - node2。 这是在TX1中完成的。

TX1提交后,将触发node2执行(在TX2中)。 node2做的第一件事是读取TB_NODE_1作为其输入。

问题:

发生这种情况,主要是在负载很重的情况下(实际上LARGE查询同时点击PostgreSQL),node2抱怨:关系TB_NODE_1不存在

一些细节:

  1. 我使用“create table tb_node_1 as table * from table_foobar where ......”创建TB_NODE_1。
  2. TX1保证由Spring TX提交。
  3. 如果TX1回滚,PostgreSQL将保持在TX1中创建表。
  4. TX1未回滚(TX1中不会发生异常)。
  5. 似乎PostgreSQL给了我一个假的结果TX1已经提交,但实际上并没有。

    有人有同样的问题吗?

0 个答案:

没有答案