datasnap的restful服务器
说真话,这玩意真的简单好用。但你要控制好:
1、内存泄漏和异常处理好;
2、有没有发现,通过服务器对数据库进行读写时,在资源管理器中,如果是sql server,就会看到连接1433的连接一直挂在那里。好闹心。
说主题:因为采用get or post链接,将LifeCycle设置为'Invocation'。每次客户端获取数据时,就会产生读写数据库。在DSServerModuleDestroy的方法中加上
try
FDManager.Active := False;
// FDConnection1.Connected := False; // 尝试关闭数据库连接 一定要关闭,否则连接一直存在
// FDManager.Active := False; // 尝试停止 FireDAC 管理器 一定要关闭,否则链接时会出错
except
on E: Exception do
begin
if Var_Log then
PostLog(llError, 'Error closing connections or manager: ' + E.Message);
end;
end;
if Var_Log then
begin
PostLog(llHint, 'FDConnection:close');
end;
如此简单,就会在资源管理器TCP中,再也看不到1433的链接了。

GOODLUCK!!!
补充:
在TServerContainer中,不要随随便便增加方法。
procedure TServerContainer.DSServerClass1DestroyInstance(
DSDestroyInstanceEventObject: TDSDestroyInstanceEventObject);
begin
if Var_Log then
begin
PostLog(llHint, 'DSDestroyInstanceEventObject.free');
end;
end;
就因为增加了追踪日记,导致流程跑偏了。
自以为聪明,在这里又追加执行DSDestroyInstanceEventObject的Destroy。晕透了。记得有人提出这个体会:不要随随便便增加代码,不要随随便便和陌生人说话
datasnap的restful服务器的更多相关文章
- WCF Restful 服务器配置文件
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSec ...
- UE4 WCF RestFul 服务器 读取JSON 数据并解析 简单实例
Note:不知道为什么通过Txt读取的JsonString,如果TXT 不是ANSI编码的话,会报JsonArrayStringToUStruct Unable to parse. bool UWg ...
- Jersey搭建Restful服务器 on Ubuntu
自己试着在Ubuntu上搭建一个 1.首先安装eclipse和tomcat sudo apt-get install eclipse tomcat7 -y 2.把tomcat的group assign ...
- AngularJS Resource:与 RESTful API 交互
REST(表征性状态传输,Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格.RESTful风格的设计不仅 ...
- DataSnap 2009 系列之三 (生命周期篇)
DataSnap 2009 系列之三 (生命周期篇) DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置 当DSServer启动时从DSServerClass组 ...
- 【转】基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案)
转载:http://www.cnblogs.com/windwithlife/archive/2013/03/03/2942157.html 一,选择一个合适的,Web开发环境: 我选择的是Eclip ...
- C# 服务端篇之实现RestFul Service开发(简单实用)
一.RestFul简介 REST(Representational State Transfer 通常被翻译为“表述性状态传输”或者“表述性状态转移”)是RoyFielding提出的一个描述互联系统架 ...
- 黄聪:AngularJS中的$resource使用与Restful资源交互(转)
原文:http://blog.csdn.net/he90227/article/details/50525836 1.AngularJS中的 $resource 这个服务可以创建一个资源对象,我们可以 ...
- Restful Web Service初识
一.Web Services Web Services 是一种基于组件的软件平台,是面向服务的Internet 应用.Web Services 框架的核心技术包括SOAP ,WSDL 和UDDI ,它 ...
- 3.2 配置构建Angular应用——简单的笔记存储应用
本节我们会通过构建一个简单的笔记存储应用(可以载入并修改一组简单的笔记)来学习如何应用Angular的特性.这个应用用到的特性有: 在JSON文件中存储笔记 展示.创建.修改和删除笔记 在笔记中使用M ...
随机推荐
- 第四五章 (Nginx+Lua)Lua模块开发
在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发:而且模块化是高性能Lua应用的关键.使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每 ...
- RSA 小规模演算
原理 秘钥生成 加解密 解密验证 小规模演算
- frida 解决一些报错问题
遇到的一些问题 第一个问题 Unable to start: Error binding to address 127.0.0.1:27042: Address already in use 解决方法 ...
- 0415-File类和FileFilter接口
package demoFile; import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; imp ...
- uni-app组件 信息列表组件
之前我一直在,要想提高自己的代码质量, 就一定要封装自己的组件, 所以我就尽量使用自己的组件.这样可以提高自己的效率 写组件的好处:减少代码的冗余 封装组件的时候,为了不让子元素的padding, 影 ...
- 管理虚拟机(virsh)
[root@kvm1 qemu]# virsh --help 开启和关闭 [root@kvm1 qemu]# virsh virsh # help list virsh # list virsh # ...
- 鸿蒙开发 - 数据持久化 Preferences (内存存储) (封装)
这篇文章介绍鸿蒙中的 Preferences,它是一种轻量级存储方式,数据存储在内存中,用于存储少量的数据. 可以执行 flush() 方法将内存中的数据写入到磁盘文件,保证下次重启后数据可以继续使用 ...
- [BZOJ5093] 图的价值 题解
考虑计算一个点的贡献,最后 \(\times n\) 即为所求. 显然一个点的贡献为 \(\sum\limits_{i=0}^{n-1}\binom{n-1}ii^k2^{\frac{(n-1)(n- ...
- autMan奥特曼机器人-代理池配置教程
一.优势: 全可视化 稳如老牛(从2.8.6开始) 隧道代理和接口获取,使用灵活 代理池运行状态指令可查:代理池 二.启用代理池并设置服务端口 代理池的启用与关闭,均为重启autMan生效 设置隧道代 ...
- PHP实现随机小姐姐扭一扭、学英语短视频Api接口搭建详细教程
图片API的文章:图片API制作,教大家制作一个自己的 图片Api ,再记录一下PHP制作视频api的方法.原理上与图片api的制作方法类似. 1.准备工作 准备一个域名,一个服务器(虚拟主机也可以) ...