我已经创建了几个自定义活动来更新我的DB中的表(在本例中是SQLServerCompact),使用实体框架4和POCOs。
如果我在WF4 TransactionScope活动中放置了多个数据库,就会遇到问题: EF在第一个活动完成后处理DB连接,当下一个DB活动尝试执行DB更新时,就会建立一个新的连接。此时抛出一个异常。
System.Activities.WorkflowApplicationAbortedException : The workflow has been aborted.
----> System.Data.EntityException : The underl
我有一个结构,设置了对服务器上的WCF服务的多个服务调用。我每个调用都实例化了多个DbContexts。我希望将这些调用中的一些分组到服务器上的单个事务中,同时排除可能在同一时间发生的其他调用。这个是可能的吗?
我的上下文都是在单个服务器上的单个应用程序中管理的,并且所有上下文都使用相同的连接字符串。
我在找像这样的东西
var transKey = transService.BeginTransaction(); // creates a transaction of some kind.
service1.Execute(transKey); // on the server places
一家公司拥有一个MicrosoftSQLServer2017企业集群(RTM,64位,14.0.2027.2,KB4505224),由一个可用性组(AG)组成,其中包含两个服务器,一个主服务器和一个辅助服务器。
该公司使用的封闭源代码应用程序似乎可以正常工作,但有一项功能除外。当使用此功能时,可以在其日志文件中找到以下错误:
Cannot use SAVE TRANSACTION within a distributed transaction
根据一个不相关的网站,一种可能的解决办法是通过以下方式禁用分布式事务:
ALTER AVAILABILITY GROUP MyaAG
SET (
实际上,我正试图分析和解决一些经常发生的死锁,这些死锁至少包括一个名为"DTCXact“的事务,这让我不禁要问。
我重复地对生产服务器运行以下查询:
SELECT DTAT.transaction_id ,
DTAT.[name] ,
DTAT.transaction_begin_time ,
CASE DTAT.transaction_type
WHEN 1 THEN 'Read/write'
WHEN 2 THEN 'Read-only'
WHEN 3 THEN 'System
我有一个包含两个数据库的Spring应用程序:一个用于Spring元数据的SQL,另一个是存储所有业务数据的MongoDB。关系数据库仍然使用DataSourceTransactionManager。但是,我认为Mongo写的东西并不是在带有回滚的活动事务中完成的。以下是 on MongoItemWriter的摘录
使用Spring的ItemWriter实现向MongoDB存储写入的一种MongoOperations实现。由于MongoDB不是一个事务性存储,所以在最后一刻尽力持久化书面数据,但仍然遵守作业状态合同。如果写入过程中发生错误,则不尝试回滚。
然而,这种情况不再是这样了;,
我的一个控制器动作就像
def create
App.transaction do
app = App.create_new_app(params["app_alias"])
campaign = Campaign.create_new_campaign(params)
user = User.create_new_user(params)
end
end
说,“事务作用于单个数据库连接”和“完全分布的事务超出了活动记录的范围”。如果在创建用户或活动时有一些异常,那么应用程序也会回滚,反之亦然。
我需要从MS SQL服务器通过ODBC向Oracle服务器提交一系列查询,并将结果作为表存储在MS SQL服务器上。
它必须是直通,因为查询需要在Oracle服务器上定义的服务器端函数。我不能将表保存在Oracle服务器上,然后通过ODBC访问它,因为Oracle上运行的数据库的供应商有许可限制。
下面是返回正确结果的代码,但我不知道如何保存它们:
DECLARE @BibID AS bigint
DECLARE BibList CURSOR FOR
SELECT BIB_ID FROM tblActiveSerialsThatHave740s
OPEN BibList
FET
你可以读到:
隐式取消默认绑定。使连接在事务结束时脱离事务。分离后,对连接的附加请求将以自动提交模式执行。当事务处于活动状态时,在执行请求时不检查当前属性。事务结束后,将在自动提交模式下执行其他请求。
我的所有连接都使用默认的隐式取消绑定。
我在创建TransactionScope实例之后打开连接,所以所有打开的连接都是同一个事务的一部分。到目前一切尚好。当我在调用transactionScope.Complete()和transactionScope.Dispose()方法之后尝试使用其中一个连接时,问题出现了,我得到了以下异常:
An unhandled exception of
Java 中,原生 JDBC 执行 TDSQL 批量更新的时候,proxy 报错,报错内容理解为:in a non XA transaction,this sql use a different set。
官网 TDSQL 文档中,我看到 update 语句允许跨 set 更新的,update 语句 where 条件加上了 shardkey 的条件了。
求问,有人知道该如何操作嘛?
我有一个SQL Server 2008 RDS实例,我在本地计算机SQL server 2014上创建了一个链接服务器(AWSMSSQL)。
现在,我从本地计算机数据库表中创建了insert、update和delete触发器
USE [test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[ms_test] ON [dbo].[localservertable]
FOR INSERT, UPDATE, DELETE
AS
BEGIN
declare @iddata int;
我们有两台服务器--一台在本地(windows server 2003),一台在godaddy(windows server 2008),在这两台服务器中都安装了sql server 2005,并在这两台服务器中创建了链接服务器。
我们已经为一个sampletbl表在godaddy中启用了触发器,每当我们试图使用触发器启用从godaddy数据库插入数据到本地数据库时,我们就会面临以下错误。
OLE DB提供程序"SQLNCLI“用于链接服务器"211_TEST”返回的消息“是活动的”。
Msg 7391,16级,状态2,程序36至211,第8行
无法执行此操作,因为用于链接服
我使用的源代码如下:
Database db1 = new Database(); //init 1 db connection
db1.BeginTransaction();
//this function used to check exist customer
//in this function, I also use Database db2 = new Database(); db2.Close();
CheckExistCustomer();
InsertCustomer(db1, strInsert); //this function worked correct, use
我想在Server1.DB1中执行一个存储过程,这个存储过程将在另一个使用动态SQL的存储过程中执行,它将在Server1.DB2中执行。
我需要使用begin/end transaction来确保所有东西都执行了,否则所有东西都失败了。
问题是:在这种情况下,使用指向不同数据库的动态SQL,事务可以工作吗?
喜欢
BEGIN TRANSACT
--Set Status to "In Progress"
SET @Qry = N'EXEC '+ @DB2 + '.[dbo].[StatusUpdate] @Id, @Status