极客神殿

坚持,自由,信仰

SQLServer数据库并发控制【加锁】

当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,...

2018-02-28 16:40:41

阅读数:165

评论数:0

SQLServer数据库,锁,并发操作,原子操作

1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。2 锁的...

2018-02-28 16:36:42

阅读数:229

评论数:0

SQL Server中的Merge关键字

简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中...

2018-02-28 16:23:19

阅读数:110

评论数:0

RabbitMQ如何实现延迟队列?

什么是延迟队列延迟队列存储的对象肯定是对应的延迟消息,所谓”延迟消息”是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。 场景一:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行一场处...

2018-02-27 22:58:11

阅读数:237

评论数:0

RabbitMQ学习笔记

安装rabbitmq管理工具 安装方法是:打开命令行cd进入rabbitmq的sbin目录(我的目录是:E:\WorkSoftWare\RabbitMQ Server\rabbitmq_server-3.6.3\sbin),输入:rabbitmq-plugins enable rabbitmq_...

2018-02-26 22:44:18

阅读数:127

评论数:0

何时该用RabbitMQ,何时该用Apache Kafka?

人们是如何做决定的呢?日常生活中,每当人们做出复杂或重大决定时,情绪往往起到最终的决定作用。但对于决策专家来说,他们的每一个决定都具有长远影响,因此做决定不能只靠冲动了。通常,高效率的执行者只会在他们凭借自发的专业思维掌握决策所需的所有信息之后,才靠本能、直觉或情绪做出决策。 如今,市场上有...

2018-02-26 17:03:01

阅读数:566

评论数:0

EasyNetQ使用(十)【用EasyNetQ.Hosepipe重新提交错误信息】

EasyNetQ.Hosepipe是EasyNetQ队列管理工具。用来取回队列中的消息并重新发布这些消息。还可以用它来检测错误队列,并重试发布消息。用法EasyNetQ.Hosepipe.exe <command> [<option:value> ..]命令dump ...

2018-02-26 17:01:18

阅读数:310

评论数:0

EasyNetQ使用(九)【非泛型的发布&订阅扩展方法,发生错误的情况 】

自从EasyNetQ第一个版本开始,它就可以发布/订阅特定类型的消息。bus.Subscribe<MyMessage>("subscriptionId", x => Console.WriteLine(x.Text));bus.Publish&...

2018-02-26 17:00:24

阅读数:381

评论数:0

EasyNetQ使用(八)【对延迟消息插件的支持,自动订阅者】

RabbitMQ延迟消息插件仍然在实验阶段。你使用这个功能要自担风险。RabbitMQ延迟消息插件为RabbitMQ增加了新的交换机类型,允许延时消息投递。EasyNetQ为交换机通过定义一种新的日程类型:DelayedExchangeScheduler来支持这种能力。这样允许你使用之前同样的Fu...

2018-02-24 17:33:43

阅读数:414

评论数:0

EasyNetQ使用(七)【发布者确认 ,用Future Publish发布预定中事件 】

AMQP发布消息默认情况下是非事务性的,不能确保你的消息真正送达代理。AMQP可以去指定事务性发布,但是RabbitMQ这样会非常慢,我们没有让EasyNetQ API去支持此功能。为了高效的确保投递成功,RabbitMQ推荐使用'Publish Confirms'。简单来讲,这是AMQP的一个扩...

2018-02-24 17:16:00

阅读数:403

评论数:0

EasyNetQ使用(六)【多态发布和订阅,消息版本控制】

你能够订阅一个接口,然后发布基于这个接口的实现。让我们看下一个示例。我有一个接口IAnimal和两个实现Cat和Dog:public interface IAnimal { string Name { get; set; } }public class Cat : IAnimal { ...

2018-02-24 17:00:09

阅读数:241

评论数:0

EasyNetQ使用(五)【基于主题的路由,控制队列名称】

RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息。一个主题是由点号分隔的单词列表,随消息一同发布。例如:“stock.usd.nyse” 或 “book.uk.london” 或 “a.b.c”,这些可以是任何你喜欢的单词,但通常是一些消息的属性。主题字符...

2018-02-23 23:15:13

阅读数:423

评论数:0

EasyNetQ使用(四)【Request与Response,Send与Receive】

EasyNetQ也支持Request/Response这种方式的消息模式。这种方式很容易在client/Server应用中执行,客户端发送一个请求到服务器,服务器然后处理请求后返回一个响应。和传统的RPC机制不同,EasyNetQ request/response操作不需要有一个名字,仅仅需要简单...

2018-02-22 23:14:22

阅读数:960

评论数:0

EasyNetQ使用(三)【Publish与Subcribe】

EasyNetQ支持的最简单的消息模式是发布/订阅.这个模式是一个极好的方法用来解耦消息提供者和消费者。消息发布者只要简单的对世界说,“这里有些事发生” 或者 “我现在有一个信息”。它不关心有没有人监听,或者接收者是谁,或者接收者在那里。我们能够添加和移除特定类型的消息的订阅者,不需发布者做任何的...

2018-02-21 13:18:41

阅读数:1231

评论数:0

EasyNetQ使用(二)【连接RabbitMQ,SSL连接,Logging】

如果你连接过关系数据库,例如SQL Server。你会发现EasyNetQ处理connections有点奇怪。和关系数据库通讯一直都是通过client开始的。Client 打开一个连接, 发出一个SQL命令,如有必要时,处理结果,然后关闭连接。一般建议是你维持一个打开的连接,时间要尽可能短,通过A...

2018-02-21 12:13:41

阅读数:866

评论数:0

EasyNetQ使用(一)【介绍】

EasyNetQ 是一个容易使用,专门针对RabbitMQ的 .NET API。 假如你尽可能快的想去安装和运行RabbitMQ,请去看入门指南。 EasyNetQ是为了提供一个尽可能简洁的适用与RabbitMQ的.NET类库。为了实现这些目标,EasyNetQ提供一种自认为你会在.NET下使...

2018-02-21 11:48:51

阅读数:1527

评论数:0

Oracle常用数据类型说明

类型 含义 存储描述 备注 CHAR 固定长度字符串 最大长度2000bytes VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000byte...

2018-02-17 18:14:57

阅读数:234

评论数:0

.net通过ODP.NET Managed连接Oracle数据库

1、 Oralce官网 下载 安装 ODTforVS2015_121025 重启VS 2、项目引用 Oracle.ManagedDataAccess.dll 3、数据库连接字符串: user id=xxxx;password=xxxx;data source=192.168.0.x...

2018-02-17 17:12:25

阅读数:280

评论数:0

使用dbms_job包创建Oracle定时任务

在Oracle的包里面,有一个名字叫做DBMS_JOB的包,它的作用是安排和管理作业队列。通过作业队列,可以让Oracle数据库定期执行特定的任务。当使用DBMS_JOB管理作业的时候,必须确保设置了初始化参数JOB_QUEUE_PROCESSES(不能为0)。 1、 SUBMIT 该过程...

2018-02-17 12:36:07

阅读数:152

评论数:0

oracle数据库定时任务dbms_job的用法详解

一、dbms_job涉及到的知识点 1、创建job: variable jobno number; dbms_job.submit(:jobno, --job号 'your_procedure;',--执行的存储过程, ';'不能省略 next_date, --下次执行时间 'in...

2018-02-17 12:33:56

阅读数:197

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭