Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否可以在多个程序之间共享Server事务?

是否可以在多个程序之间共享Server事务?
EN

Stack Overflow用户
提问于 2018-08-10 09:49:21
回答 2查看 1.9K关注 0票数 4

在我的情况下,我们的内部工具需要以下顺序,这些工具必须一起工作,以便为测试目的准备一个数据库。

  • program1启动、开始数据库事务并退出
  • program2启动并连接相同的数据库事务,执行一堆语句和出口。
  • program3还启动和连接相同的数据库事务,执行一堆语句并退出。
  • program4启动并决定是否/何时回滚事务

这些程序是.Net命令行应用程序.

我研究了MSDTC / TransctionScope,但是我找不到程序启动事务,然后退出,同时让事务打开以供其他程序加入的任何场景。

这可行吗?

编辑(可能的解决方案):

我测试了sp_bindsession,它可以工作:

program1会这样做(在.Net代码中)

代码语言:javascript
运行
AI代码解释
复制
begin transaction
DECLARE @bind_token varchar(255);  
EXECUTE sp_getbindtoken @bind_token OUTPUT; 
print @bind_token

并将bind_token返回/写入到其他程序可以获取令牌并加入事务的文件中:

代码语言:javascript
运行
AI代码解释
复制
sp_bindsession ':7:FliJ.4AShUOIOjb<6^]5---0aE=--'
//Do stuff
rollback transaction

但是,program1必须在整个过程中保持活动,以便在其他程序加入/退出会话时保持会话的活力。

这个api的文档声明:

此功能处于维护模式,可能会在Microsoft SQL Server的未来版本中删除。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。

EN

回答 2

Stack Overflow用户

发布于 2018-08-10 10:21:27

SQL事务被锁定到它们的连接上。一个连接不能通过多个应用程序共享。

然而,实现目标的一种方法是将所有应用程序的查询代理到一个应用程序,该应用程序实际上保存了连接,因此也包含了它的事务。

票数 2
EN

Stack Overflow用户

发布于 2018-08-10 10:16:44

事务特定于连接源的每个会话。每次独立于另一个代码运行不同的代码时,它将启动一个新事务。要让软件使用相同的连接,就必须在一次运行中从一个源运行。例如,一个应用程序启动到数据库源的打开连接,然后运行所需的所有代码,然后终止该代码。

不幸的是,一个会话不能用同一个事务连接另一个会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51791689

复制
相关文章
挑逗 Java 程序员的那些 Scala 绝技
有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 Java 开发者,为何会出现两种截然不同的态度,我想这其中一定有误会。Scala 是一粒金子,但是被一些表面上看起来非常复杂的概念或语法包裹的太严实,以至于人们很难在短时间内搞清楚它的价值。与此同时,Java 也在不断地摸索前进,但是由于 Java 背负了沉重的历史包袱,所以每向前一步都显得异常艰难。本文主要面向 Java 开发人员,希望从解决 Java 中实际存在的问题出发,梳理最容易吸引 Java 开发者的一些 Scala 特性。希望可以帮助大家快速找到那些真正可以打动你的点。
joymufeng
2018/10/23
2K0
挑逗 Java 程序员的那些 Scala 绝技
有个问题一直困扰着 Scala 社区,为什么一些 Java 开发者将 Scala 捧到了天上,认为它是来自上帝之吻的完美语言;而另外一些 Java 开发者却对它望而却步,认为它过于复杂而难以理解。同样是 Java 开发者,为何会出现两种截然不同的态度,我想这其中一定有误会。Scala 是一粒金子,但是被一些表面上看起来非常复杂的概念或语法包裹的太严实,以至于人们很难在短时间内搞清楚它的价值。与此同时,Java 也在不断地摸索前进,但是由于 Java 背负了沉重的历史包袱,所以每向前一步都显得异常艰难。本文主要面向 Java 开发人员,希望从解决 Java 中实际存在的问题出发,梳理最容易吸引 Java 开发者的一些 Scala 特性。希望可以帮助大家快速找到那些真正可以打动你的点。
芋道源码
2018/12/24
1.5K0
java官方编译器_JAVA 编译器
说白了,javac就是一个编译器;编译器就是把一种语言规矩转换成另一种语言规矩,也就是将对人友好的语言转换成对机器友好的语言。因此,javac是把Java源代码编译成Java字节码,即JVM可以识别的二进制;表面上就是将.java文件转成.class文件。
全栈程序员站长
2022/09/14
2.3K0
影响Scala语言设计的因素列表
Scala语言设计概述 Scala的设计受许多编程语言和研究思想的影响。事实上,仅很少的Scala的特点是全新的;大多数都已经被以另外的形式用在其他语言中了。Scala的革新主要来源于它是如何构造并放在一起的。在这部分里,我们罗列了对Scala设计的主要影响。列表并不全——因为围绕着编程语言的设计有太多的好点子,没办法全都列举在这里。 Scala语言设计的“蓝本”语言 在最表层,Scala采用了Java和C#语法的大部,而它们大部分借自于C和C++句法的改变。表达式,句子和代码块多数和Java一样,同样
Albert陈凯
2018/04/04
1.2K0
Scala-0.Scala和Java
预加载所有java.lang下的类,其他类需要显式引入。 例如Date和DateFormat
悠扬前奏
2019/06/28
6970
手机版java编译器_Java编译器[通俗易懂]
这是一款专为学习Java的学员们打造的一款非常优质的程序验证软件,让用户能够非常快速的复制自己的程序到APP中,进行检验,能够非常快速的去验证程序的内容,能够非常及时的进行纠错,让你的代码能够及时的得到解决,用户可以随时在这里打开使用,保证自己的编辑的代码能够更加的完美,让你可以更好的精心纠错,对于初学者来说是一款非常棒的软件,让自己能够学的更好,经验能够更加的丰富。
全栈程序员站长
2022/09/14
4K0
如何成为合格的Java开发人员
今天,成为一名称职的程序员比以往任何时候都更具挑战性,人们应该拥有大约70%的技术技能和30%的软(认知)技能。如果一个“硬核”开发人员缺乏所需的软技能,他/她很难进入管理层。
终码一生
2022/04/15
2500
在Android上使用Java8启用Jack
已废弃 目前来说Android开发所支持的Java版本是Java 7,在Android N发布以后可以通过Jack(Java Android Compile Kit)编译链可以使用Java 8。但目标来说使用Java 8有以下限制:
JarvanMo
2018/09/06
1.1K0
scala 隐式转换
Scala 中可以让函数库调用变得更加方便的隐式变换和隐式参数,以及如何通过它们来避免一些繁琐和显而易见的细节问题。 内容主要包括 implicits 的使用规则、隐含类型转换、转换被方法调用的对象等
全栈程序员站长
2022/11/10
1.1K0
Java与Scala如何编译Lambda表达式?
Lambda表达式在过去几年中风靡编程世界。大多数现代语言都将它们作为函数式编程的基础部分。基于JVM的语言(如Scala,Groovy和Clojure)已将它们集成为语言的关键部分,本文将会对比Java与Scala在编译Lambda表达式上存在的差异
疯狂软件李刚
2020/06/24
1.4K0
由 Java 到 Scala:如何优雅的跳出循环
在开发过程中,我们经常会遇到这样的需求:循环执行某个操作,当满足一定条件的时候循环终止。最常见的场景就是累加数组中的元素,一直到大于某个值,用伪代码来描述就是:
Allen Cheng
2018/09/10
3.4K0
少年:Scala 学一下
一开始学Scala的时候可能会感觉各种不适应,尤其是写惯了C++/Java这样的语言后。感觉更重要的思想跟编程习惯上的改变。一旦写多了熟练使用了,那就一个字 真香!
sowhat1412
2020/11/05
7410
少年:Scala 学一下
安装java编译器
参考:https://www.cnblogs.com/mr-wuxiansheng/p/6850437.html
全栈程序员站长
2022/06/26
1K0
安装java编译器
三、java编译器[通俗易懂]
在 Java7 之前,需要根据程序的特性来选择对应的 JIT,虚拟机默认采用解释器和其中一个编译器配合工作。
全栈程序员站长
2022/09/14
5990
Android兼容Java 8语法特性的原理分析
本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支持。通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点,将Android如何兼容Java8的过程分享给大家。
美团技术团队
2019/10/23
8720
Android兼容Java 8语法特性的原理分析
本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理、Android第三方插件RetroLambda对其的支持过程、Android官方最新的dex编译器D8对其的编译支持。通过对这三个方面的跟踪分析,以Java 8的代表性特性——Lambda表达式为着眼点,将Android如何兼容Java8的过程分享给大家。
程序亦非猿
2019/11/07
9290
gradle项目中如何支持java与scala混合使用?
一、目录结构 二、build.gradle配置 group 'yjmyzz' version '1.0-SNAPSHOT' apply plugin: 'java' apply plugin: 's
24-丰总
2018/06/14
1.4K0
gradle项目中如何支持java与scala混合使用?
之前写过一篇maven项目中java与scala如何混用,今天来看看gradle项目中如何达到同样的效果: 一、目录结构 基本上跟maven一样,tips:这一堆目录结构不用死记,后面会讲如何用gra
菩提树下的杨过
2018/01/18
2.4K0
gradle项目中如何支持java与scala混合使用?
如何将Java完全卸载
之前安装的Java没有卸载干净,造成重新安装JDK能正常安装,接着安装JRE的时候总是报1603错误。虽然说JRE安装报错了没安装上,但是eclipse、IntelliJ IDEA和AndroidStudio都能正常打开和使用,然而在命令行里却无法使用。虽然工具能正常打开,但是这不能忍,为此我差点就直接使用狂暴AOE秒杀大招重装系统了,还好,最后解决了。在这里,我分享一下我是如何解决的,有需要的小伙伴不妨接着往下看。
全栈程序员站长
2022/07/21
9390
如何将Java完全卸载
GitHub宕机,影响数百万的开发人员!
问题是从美国东部时间下午3点45分左右开始出现的。 微软旗下的GitHub宕机,结果影响了全球数百万依赖其众多服务的开发人员。GitHub在美国东部时间下午3点45分左右开始出现了问题,Git操作、API请求、GitHub操作、软件包、页面和合并请求统统受到了影响。 “我们现正在调查影响GitHub大多数服务的错误,”GitHub 状态页面上的事件更新显示。“我们正在积极调查此事,会尽快提供最新信息。”该状态页面列出了Git操作、API请求、Web钩子(webhook)、合并请求、GitHub操作、Git
云头条
2022/03/18
4310

相似问题

Kubernetes服务端点运行状况检查

22

如何使用以前的etcd服务在Kubernetes集群上部署etcd群集

11

Kubernetes etcd未出现

129

Kubernetes内部etcd的应用

24

Kubernetes etcd HighNumberOfFailedHTTPRequests QGET

014
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文