摘要:
标准的Socket的应用程序框架如下:Server方: Socket()[ 新建一个Socket]--Bind()[ 同服务器地址邦定 ]--Listen() --Accept()--block wait--read()[接受消息,在windows平台中,方法为send(TCP),或者是sendto(UDP)]--处理服务请求--Write()[发送消息,在windows平台中,方法为send(TCP), 或者为sendto(UDP)。Client方相对简单:Socket()--Connect()[通过一定的port连接特定的服务器,这是与服务器建立连接]--Write()--Read()。 阅读全文
摘要:
带均衡策略的服务器群集 如今,服务器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信 量超出了服务器能承受的范围,那么其结果必然是——宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的 处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个 系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就 是利用服务器群集实现负载均衡的最初基本设计思想。 早期的服务器群集通常以光纤镜像卡进行主从... 阅读全文
摘要:
大家都知道TClientDataSet的Delta属性保存数据集的变化,但是Delta是OleVariant类型的属性,这样如果用Delphi写Webservice,就有需要把它转成XML,特别是其他语言也要用这个Webservice的时候,因为如果Delta能和XML相互转换,Delta包的结构就是透明的了。而TClientDataSet却没有提供DeltaXML这样的属性,之前在网上找了一下,发现网上的都是把Delta赋给另一个TClientDataSet的Data,然后再通过XMLData返回XML,但这样为了一个简单的功能就得多创建一个对象实例,感觉很不好,于是研究一下TClientD 阅读全文
摘要:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,ADODB,DBClient,db;type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}function vartosql(value: variant): st 阅读全文
摘要:
所有的负载均衡产品都需要一定的负载均衡策略来实现,负载均衡策略也被称为负载均衡算法。目前,最常用的负载均衡算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First)和快速响应优先(Faster Response Precedence)。² 轮循算法,就是将来自网络的请求依次分配给集群中的服务器进行处理。² 最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。这要比“轮循算法”好很多,因为在有些场合中,简单的轮循不能判断哪个服务器的负载更低,也 阅读全文
摘要:
基于DELPHI XE开发的应用服务器 全插件式的客户端快速应用开发框架 阅读全文
摘要:
{author:cxg断网自动检查并提示,自动重连}unit ClientTestConnected;interfaceuses SysUtils, Classes, SqlExpr,uNetCommon;type TWaitThread = class(TThread) private { Private declarations } fNetConnect:Boolean; FCheckInterval: Integer; FMsg: string; protected procedure ShowMsg; procedure Execute; override; procedure Se 阅读全文
摘要:
SQLList := TStringList.Create; SQLList.Add('100001=select * from customer'); SQLList.Add('200001=update customer set customer=current_time where cust_no=1012');SQLList.Values['200001'] 阅读全文
摘要:
我不知道你是否知道ADOQuery的工作原理,如果知道的话,请不要怪我啰嗦,ADOQuery有几个重要的属性决定了它的工作模式和工作效率。CursorLocation、CacheSize、CursorType。 CursorLocation决定了ADOQuery的数据存取模式,它分为Server-side和Client-side两种模式,如果你选择的是Server-side(将CursorLocation属性设为clUseServer)那么当你使用ADOQuery查询数据时,查询的结果将保存在数据源的ADO缓存中或者是存储在数据源本身的缓存中,(如果你的数据源是SQL Server那... 阅读全文
摘要:
function ConnRemoteSvr(cn:TSQLConnection;const hostname,UserName,password:string; const port:Integer):Boolean;begin try cn.Close; cn.DriverName := 'DataSnap'; cn.LoginPrompt :=False; Cn.ConnectionName := 'DataSnapCONNECTION'; cn.Params.Clear; cn.Params.Add('DriverName=DataSnap 阅读全文