我已经创建了几个自定义活动来更新我的DB中的表(在本例中是SQLServerCompact),使用实体框架4和POCOs。
如果我在WF4 TransactionScope活动中放置了多个数据库,就会遇到问题: EF在第一个活动完成后处理DB连接,当下一个DB活动尝试执行DB更新时,就会建立一个新的连接。此时抛出一个异常。
System.Activities.WorkflowApplicationAbortedException : The workflow has been aborted.
----> System.Data.EntityException : The underl
我有一个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;
我在本地数据库中的SQL表上有一个非常简单的触发器。触发器看起来像这样:
ALTER TRIGGER [dbo].[trg_UpdateAzureDB]
ON [dbo].[my_local_table]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trig
我有一个结构,设置了对服务器上的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 (
我在一个表中创建了一个insert触发器,在进行insert/update/delete时会触发。触发器应该发送有关触发它的查询的信息,但是每次触发时,都会发生以下错误。
OLE DB provider "SQLNCLI11" for linked server "TMP-DBA-DB" returned message "The transaction manager has disabled its support for remote/network transactions.".
Msg 7391, Level 16, State 2,
当我尝试在具有两个链接服务器的本地SQL Server上触发SP时,出现有趣的错误。 上述异常处理的目的是将数据从一个链接服务器移动到另一个链接服务器。 当我从SSMS触发存储过程时,它就像一个魔咒,但是当我从Python触发它时,我得到了这些有趣的错误消息: (
'42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The OLE DB provider "SQLNCLI11" for linked server "XXXX" reported
我正在尝试从我的机器( Server 2012)到客户端服务器( server 2008)运行一个分布式事务。
我试着跑:
begin distributed transaction
select * from [172.01.01.01].master.dbo.sysprocesses
Commit Transaction
我得到了:
OLE DB provider "SQLNCLI11" for linked server "172.01.01.01" returned message "No transaction is active.".
实际上,我正试图分析和解决一些经常发生的死锁,这些死锁至少包括一个名为"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不是一个事务性存储,所以在最后一刻尽力持久化书面数据,但仍然遵守作业状态合同。如果写入过程中发生错误,则不尝试回滚。
然而,这种情况不再是这样了;,
我有一个允许用户创建数据库表和字段的应用程序。我们使用SQL (Microsoft.SqlServer.Smo)执行表更改。
更新现有表的代码执行以下操作:
using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, new TimeSpan(0, 15, 0)))
{
using (SqlConnection sqlConnection = new SqlCon
我的一个控制器动作就像
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 的条件了。
求问,有人知道该如何操作嘛?
当我在[RemoteServer]链接服务器上执行这个查询时,它运行得很好:
INSERT INTO [RemoteServer].[DbName].[SchemaName].[TableName] VALUES (1, 'bar');
但是,当将它放入事务中时,它就不再起作用了:
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO [RemoteServer].[DbName].[SchemaName].[TableName] VALUES (1, 'bar');
COMMIT TRANSACTION
PRI