如何强制删除或恢复SQLServer正在使用的数据库
[ 2006/11/14 12:48 | by ipaddr ]
通常情况睛,SQLServer2000正在使用的数据库(有数据库连接),是不能删除或被恢复的,可以将数据库设置为单用户模式,即可删除:
[code]
ALTER DATABASE IpaddrDB SET SINGLE_USER with ROLLBACK IMMEDIATE
GO
DROP DATABASE IpaddrDB
[/code]>>>>>>
[code]
ALTER DATABASE IpaddrDB SET SINGLE_USER with ROLLBACK IMMEDIATE
GO
DROP DATABASE IpaddrDB
[/code]>>>>>>
自从Gmail,Hotmail推出免费企业邮局后,偶就盼星星盼月亮,希望网易能够也推出个类似服务.
不是不相信Gmail,Hotmail,而是实在不放心这网络,国内经常封锁Gmail,Hotmail,他们的邮箱服务是很好用,但给封了的话,那就没啥意义了.
终于等到网易的免费企业邮局了:
http://ym.126.com
>>>>>>>
不是不相信Gmail,Hotmail,而是实在不放心这网络,国内经常封锁Gmail,Hotmail,他们的邮箱服务是很好用,但给封了的话,那就没啥意义了.
终于等到网易的免费企业邮局了:
http://ym.126.com
>>>>>>>
清除SQLServer日志的两种方法
[ 2006/11/13 10:01 | by ipaddr ]
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery simple
另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True Auto shrink定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。>>>>>>>>>>>>>>>>>>>>>>>
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
另一种方法有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1: 删除LOG
分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。
如果以后,不想要它变大。
SQL2000下使用:
在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:
alter database 数据库名 set recovery simple
另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True Auto shrink定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
注意:一般立成建立的数据库默认属性已设好,但碰到意外情况使数据库属性被更改,请用户清空日志后,检查数据库的以上属性,以防事务日志再次充满。>>>>>>>>>>>>>>>>>>>>>>>
方便的IE源代码工具Instant Source
[ 2006/11/13 09:56 | by ipaddr ]
网页源代码时,都是利用IE浏览器调出记事本或网页编辑软件来查看,使用十分不便。今天,我给大家介绍一款IE的插件,因为它是插件,所以它整合在IE中,使用就显得灵活、方便。
软件名称:Instant Source
为了叙述的方便,我以Instant Source v1.44汉化版为例向大家介绍该软件的使用方法。
一、安装和界面
Instant Source是专为IE开发的插件,所以,安装后你在开始菜单找不到启动它的程序。它整合在IE中,如果在你的IE浏览器工具栏上没有发现它的图标,可以通过“查看→工具栏→自定义”添加。
点击IE浏览器工具栏上的Instant Source图标,如图1所示,Instant Source会在IE窗口的下面露出它的真面目,Instant Source几乎所有的功能,都要通过整合在IE中的这个窗口才能完成。
二、查看源代码
Instant Source提供了多种源代码的查看方式,它可以查看整个页面的源代码,也可以查看选定文本的源代码,甚至还可以查看鼠标所指网页元素的源代码。点击工具栏上的“显示”按钮,如图2所示,在菜单上选择“鼠标所指元素”,这样,在IE中,鼠标所指网页元素的源代码就实时地显示在Instant Source窗口中了。
三、编辑源代码
首先需要说明的是,Instant Source对网页源代码的编辑,只适合于本地的HTML网页文件。
在IE中打开一个本地网页文件,在图2中选择“整个页面(原始)”,这时,你会发现,在Instant Source工具栏上的“应用”按钮已变为可用状态,现在,你就可以在Instant Source窗口中编辑该网页的源代码了。编辑完成后,点击“应用”,Instant Source会自动保存该网页并在IE中实时显示。这一功能,对于那些习惯于使用源代码编辑网页的朋友,无疑是一大福音。
四、保存外部对象
在IE中打开“新浪网”首面,在Instant Source工具栏上点击“对象”,打开“页面对象”对话框,你看到了什么?没错,“新浪网”首页中链接到的所有外部对象,包括图像、Flash电影、js脚本、样式表以及链接到的其它网页文件都一览无余
选定一个对象,点击对话框上的“查看”,可以在默认的浏览器中打开该对象;点击“保存”,可以在本地保存该对象,当然了,点击“保存全部”,可以保存所有对象;点击“复制URL”,可以把选定对象的绝对地址复制到剪贴板。不是有很多朋友老问我,怎样才能保存网页上的Flash动画吗,今天把这个软件介绍给你,希望再不要问我这样的问题。
在Instant Source的窗口中,我们可以复制选定的源代码,也可以点击工具栏上的“查找”,在网页源代码中查找你需要的内容。总之,Instant Source是一款对网页制作爱好者非常实用的工具,对于其它网民,你也可以利用它查找并保存网页上的资源。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
软件名称:Instant Source
为了叙述的方便,我以Instant Source v1.44汉化版为例向大家介绍该软件的使用方法。
一、安装和界面
Instant Source是专为IE开发的插件,所以,安装后你在开始菜单找不到启动它的程序。它整合在IE中,如果在你的IE浏览器工具栏上没有发现它的图标,可以通过“查看→工具栏→自定义”添加。
点击IE浏览器工具栏上的Instant Source图标,如图1所示,Instant Source会在IE窗口的下面露出它的真面目,Instant Source几乎所有的功能,都要通过整合在IE中的这个窗口才能完成。
二、查看源代码
Instant Source提供了多种源代码的查看方式,它可以查看整个页面的源代码,也可以查看选定文本的源代码,甚至还可以查看鼠标所指网页元素的源代码。点击工具栏上的“显示”按钮,如图2所示,在菜单上选择“鼠标所指元素”,这样,在IE中,鼠标所指网页元素的源代码就实时地显示在Instant Source窗口中了。
三、编辑源代码
首先需要说明的是,Instant Source对网页源代码的编辑,只适合于本地的HTML网页文件。
在IE中打开一个本地网页文件,在图2中选择“整个页面(原始)”,这时,你会发现,在Instant Source工具栏上的“应用”按钮已变为可用状态,现在,你就可以在Instant Source窗口中编辑该网页的源代码了。编辑完成后,点击“应用”,Instant Source会自动保存该网页并在IE中实时显示。这一功能,对于那些习惯于使用源代码编辑网页的朋友,无疑是一大福音。
四、保存外部对象
在IE中打开“新浪网”首面,在Instant Source工具栏上点击“对象”,打开“页面对象”对话框,你看到了什么?没错,“新浪网”首页中链接到的所有外部对象,包括图像、Flash电影、js脚本、样式表以及链接到的其它网页文件都一览无余
选定一个对象,点击对话框上的“查看”,可以在默认的浏览器中打开该对象;点击“保存”,可以在本地保存该对象,当然了,点击“保存全部”,可以保存所有对象;点击“复制URL”,可以把选定对象的绝对地址复制到剪贴板。不是有很多朋友老问我,怎样才能保存网页上的Flash动画吗,今天把这个软件介绍给你,希望再不要问我这样的问题。
在Instant Source的窗口中,我们可以复制选定的源代码,也可以点击工具栏上的“查找”,在网页源代码中查找你需要的内容。总之,Instant Source是一款对网页制作爱好者非常实用的工具,对于其它网民,你也可以利用它查找并保存网页上的资源。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Javascript读写Cookies
[ 2006/10/29 23:33 | by ipaddr ]
[code]
<script type="text/javascript">
// 写 cookie
function setCookie(sName, sValue, iTime)
{
var date = new Date();
date.setTime(date.getTime()+iTime*1000);
document.cookie = escape(sName) + "=" + escape(sValue) + "; expires=" + date.toGMTString();
}
// 读 cookie
function getCookie(sName)
{
var aCookie = document.cookie.split("; ");
for (var i=0; i < aCookie.length; i++)
{
var aCrumb = aCookie[i].split("=");
if (escape(sName) == aCrumb[0])
return unescape(aCrumb[1]);
}
return null;
}
// 删 cookie
function delCookie(sName){
var date = new Date();
document.cookie = sName + "= ; expires=" + date.toGMTString();
}
// 测试函数
function trace(){
alert(document.cookie);
}
</script>
[/code]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<script type="text/javascript">
// 写 cookie
function setCookie(sName, sValue, iTime)
{
var date = new Date();
date.setTime(date.getTime()+iTime*1000);
document.cookie = escape(sName) + "=" + escape(sValue) + "; expires=" + date.toGMTString();
}
// 读 cookie
function getCookie(sName)
{
var aCookie = document.cookie.split("; ");
for (var i=0; i < aCookie.length; i++)
{
var aCrumb = aCookie[i].split("=");
if (escape(sName) == aCrumb[0])
return unescape(aCrumb[1]);
}
return null;
}
// 删 cookie
function delCookie(sName){
var date = new Date();
document.cookie = sName + "= ; expires=" + date.toGMTString();
}
// 测试函数
function trace(){
alert(document.cookie);
}
</script>
[/code]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
用IE打开一个有图片的网站,最好是多一些小图片的网页,
再在地址栏输入以下内容,就可以看到图片在飞舞了:
[code]
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);
[/code]>>>>>>>>>
今天到公司,屁股还没坐稳,就收到监控系统发来的通知,某台服务器中毒了,远程登录,使用ProceXP看了一下,发现是小病毒,直接Kill,再删除就OK了.
本以为很简单的解决,但发现病毒会一直出现,看来问题不是那么简单,通过ProceXP发现C:\wincodws\Logo1_.exe,Dll.dll,rundl132.exe(注意了,第一个是字母l,第二个是数字1)有问题,而且一直删除不成功.
其它病毒都由几个文件下载,看来这是病毒的主体的,每次删除,清掉注册表相关项,重启或重新Login后,病毒又回来了,实在没办法,
更要命的是,由于服务器共用一个DomainUser登录,该User都是其它服务器的Administrators,所以,几乎所有内部服务器都中毒,看来情况很严峻.
在网上找了金山的专杀工具,什么也没查到,而且,这病毒会干扰一些程序的执行,也会把其它杀毒软件关掉,看来是厉害角色.把服务器网关换了,不能上网,病毒还是会出来,真是奇怪了.
经过一上午的处理,终于找到办法对付,这病毒不能直接删除,方法如下:
首先,把所有能手工杀的病毒都杀掉,一般有Windows下面的0Sy.exe之类的,还有windows/command program files/microsoft/等等,这些可以直接杀.
a.首先查看Explorer.exe有没有调用C:\windows\Dll.dll,这个可以用ProceXP查看,如果有调用Dll.dll的话,使用ProceXP Kill Explorer.exe,再Kill rundl132.exe,kill Logo1_.exe,
b.使用Cygwin运行
cd c:
cd windows
rm -f rundl132.exe
touch rundl132.exe
chmod 000 rundl132.exe
rm -f Dll.dll
touch Dll.dll
chmod 000 Dll.dll
rm -f Logo1_.exe
touch Logo1_.exe
chmod 000 Logo1_.exe
c.删除注册表中所有包含rundl132.exe的项(注意不是两个l)
d.删除系统中所有_desktop.ini
e.重启,再使用杀毒软件杀一次毒.
上面的命令都是基于Cygwin,后来在网上发现有别人写的Dos命令,加强了一下:
[code]
@echo off
if exist %windir%\rundl132.exe echo Found Virus!
pause
taskkill /f /im rundl132.exe
taskkill /f /im logo_1.exe
taskkill /f /im explorer.exe
taskkill /f /im logo1_.exe
taskkill /f /im Ravmon.exe
taskkill /f /im Eghost.exe
taskkill /f /im Mailmon.exe
taskkill /f /im KAVPFW.EXE
taskkill /f /im IPARMOR.EXE
taskkill /f /im Ravmond.exe
taskkill /f /im 0sy.exe
taskkill /f /im 1sy.exe
taskkill /f /im 2sy.exe
taskkill /f /im 3sy.exe
taskkill /f /im 4sy.exe
taskkill /f /im 5sy.exe
taskkill /f /im 6sy.exe
taskkill /f /im 7sy.exe
taskkill /f /im 8sy.exe
taskkill /f /im 9sy.exe
taskkill /f /im 10sy.exe
taskkill /f /im 11sy.exe
taskkill /f /im 12sy.exe
taskkill /f /im 13sy.exe
taskkill /f /im 15sy.exe
taskkill /f /im 25sy.exe
del /f /s /q /a s h %systemdrive%\rundl132.exe
del /f /s /q /a s h %systemdrive%\Dll.dll
del /f /s /q /a s h %systemdrive%\vdll.dll
del /f /s /q /a s h %systemdrive%\logo_1.exe
del /f /s /q /a s h %systemdrive%\Logo1_.exe
del /f /s /q /a s h %systemdrive%\Logo1.exe
del /f /s /q /a s h %systemdrive%\?sy.exe
del /f /s /q /a s h c:\_desktop.ini> cleanvirus.log
del /f /s /q /a s h d:\_desktop.ini>>cleanvirus.log
del /f /s /q /a s h e:\_desktop.ini>>cleanvirus.log
del /f /s /q /a s h f:\_desktop.ini>>cleanvirus.log
IF EXIST %WINDIR%\logo1_.exe attrib %WINDIR%\logo1_.exe -r -h
IF EXIST %WINDIR%\logo1_.exe del %WINDIR%\logo1_.exe
IF EXIST %WINDIR%\logo_1.exe attrib %WINDIR%\logo_1.exe -r -h
IF EXIST %WINDIR%\logo_1.exe del %WINDIR%\logo_1.exe
IF EXIST %WINDIR%\logo1.exe attrib %WINDIR%\logo1.exe -r -h
IF EXIST %WINDIR%\logo1.exe del %WINDIR%\logo1.exe
echo > %WINDIR%\Logo1_.exe
echo > %WINDIR%\logo_1.exe
echo > %WINDIR%\logo1.exe
echo > %WINDIR%\rundl132.exe
echo > %WINDIR%\0Sy.exe
echo > %WINDIR%\vDll.dll
echo > %WINDIR%\1.com
echo > %WINDIR%\exerouter.exe
echo > %WINDIR%\EXP10RER.com
echo > %WINDIR%\finders.com
echo > %WINDIR%\Shell.sys
echo > %WINDIR%\smss.exe
echo > %WINDIR%\kill.exe
echo > %WINDIR%\sws.dll
echo > %WINDIR%\sws32.dll
attrib %WINDIR%\Logo1_.exe +s +r +h
attrib %WINDIR%\Logo_1.exe +s +r +h
attrib %WINDIR%\Logo1.exe +s +r +h
attrib %WINDIR%\rundl132.exe +s +r +h
attrib %WINDIR%\0Sy.exe +s +r +h
attrib %WINDIR%\vDll.dll +s +r +h
attrib %WINDIR%\1.com +s +r +h
attrib %WINDIR%\exerouter.exe +s +r +h
attrib %WINDIR%\EXP10RER.com +s +r +h
attrib %WINDIR%\finders.com +s +r +h
attrib %WINDIR%\Shell.sys +s +r +h
attrib %WINDIR%\smss.exe +s +r +h
attrib %WINDIR%\kill.exe +s +r +h
attrib %WINDIR%\sws.dll +s +r +h
attrib %WINDIR%\sws32.dll +s +r +h
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
net share admin$ /del
net share ipc$ /del
taskkill /f /im cmd.exe
shutdown -r
[/code]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
LoadRunner中查找一个列表存到数组
[ 2006/10/10 19:22 | by ipaddr ]
LoadRunner中查找一个列表存到数组
LoadRunner可以通过函数web_reg_save_param查找一个网页的内容,指定左右边界,把中间的值取出来,供程序调用,但通常每次只取一个值,如果网页上有一个列表,需要将整个列表读入数组的话,可以在这个函数中带上ORD=All参数,告诉LR取出所有取值,返回在一个数组当中,用法如下:
web_reg_save_param("IPADDR",
"LB=XXXX",
"RB=YYYY",
"NotFound=warning",
"Search=Body",
"ORD=All",
LAST);
LR将在IPADDR_count里存放数组长度,每个元素可以IPADDR_n的格式来引用,下面举例说明.
//函数,传入tProductId为要查找的ID值,tIDArray为输出的数组,tArrayLength为该数组长度.
searchProductRelease(int tProductId,int * tIdArray,int tArrayLength)
{
char strProductId[20];
char strTmp[50],strTmp2[50];
int tALen=0;
int tmpi=0;
//将传入的C变量tProductId转换为LR变量strProductId
itoa(tProductId,strProductId,10);
lr_save_string(strProductId,"strProductId");
lr_start_transaction("searchProductRelease");
//查找与ProductID有关的列表,并将结果放在LR的数组tIDArray当中
web_reg_save_param("tIdArray",
"LB=XXXXXX",
"RB=YYYYYY",
"NotFound=warning",
"Search=Body",
"ORD=All",
LAST);
//以下语句为LR录制.
web_url("IPADDR",
"URL=http://elizabeth/maintain/product/productVersion.do?method=doShowList&productId={strProductId}&isPopUp=false",
"TargetFrame=_self",
"Resource=0",
"RecContentType=text/html",
"Referer=http://elizabeth/maintain/product/product.do?method=doShowInfo&productId={strProductId}&beforeMethod=null",
"Snapshot=t61.inf",
"Mode=HTML",
EXTRARES,
LAST);
lr_end_transaction("searchProductRelease", LR_AUTO);
strcpy(strTmp,lr_eval_string("{tIdArray_count}"));
tALen=atoi(strTmp);
if (tALen>tArrayLength)
{
tALen=tArrayLength;
}
for (tmpi=0;tmpi<tALen;tmpi++)
{
sprintf(strTmp2,"{tIdArray_%d}",tmpi+1);
strcpy(strTmp,lr_eval_string(strTmp2));
tIdArray[tmpi]=atoi(strTmp);
}
while (tmpi<tArrayLength)
{
tIdArray[tmpi]=0;
tmpi++;
}
return tALen;
}
可以如下调用
int productReleaseNum;
int releaseArray[20];
productReleaseNum=searchProductRelease(productId,releaseArray,20);
productReleaseNum里面存储ID数量.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
LoadRunner可以通过函数web_reg_save_param查找一个网页的内容,指定左右边界,把中间的值取出来,供程序调用,但通常每次只取一个值,如果网页上有一个列表,需要将整个列表读入数组的话,可以在这个函数中带上ORD=All参数,告诉LR取出所有取值,返回在一个数组当中,用法如下:
web_reg_save_param("IPADDR",
"LB=XXXX",
"RB=YYYY",
"NotFound=warning",
"Search=Body",
"ORD=All",
LAST);
LR将在IPADDR_count里存放数组长度,每个元素可以IPADDR_n的格式来引用,下面举例说明.
//函数,传入tProductId为要查找的ID值,tIDArray为输出的数组,tArrayLength为该数组长度.
searchProductRelease(int tProductId,int * tIdArray,int tArrayLength)
{
char strProductId[20];
char strTmp[50],strTmp2[50];
int tALen=0;
int tmpi=0;
//将传入的C变量tProductId转换为LR变量strProductId
itoa(tProductId,strProductId,10);
lr_save_string(strProductId,"strProductId");
lr_start_transaction("searchProductRelease");
//查找与ProductID有关的列表,并将结果放在LR的数组tIDArray当中
web_reg_save_param("tIdArray",
"LB=XXXXXX",
"RB=YYYYYY",
"NotFound=warning",
"Search=Body",
"ORD=All",
LAST);
//以下语句为LR录制.
web_url("IPADDR",
"URL=http://elizabeth/maintain/product/productVersion.do?method=doShowList&productId={strProductId}&isPopUp=false",
"TargetFrame=_self",
"Resource=0",
"RecContentType=text/html",
"Referer=http://elizabeth/maintain/product/product.do?method=doShowInfo&productId={strProductId}&beforeMethod=null",
"Snapshot=t61.inf",
"Mode=HTML",
EXTRARES,
LAST);
lr_end_transaction("searchProductRelease", LR_AUTO);
strcpy(strTmp,lr_eval_string("{tIdArray_count}"));
tALen=atoi(strTmp);
if (tALen>tArrayLength)
{
tALen=tArrayLength;
}
for (tmpi=0;tmpi<tALen;tmpi++)
{
sprintf(strTmp2,"{tIdArray_%d}",tmpi+1);
strcpy(strTmp,lr_eval_string(strTmp2));
tIdArray[tmpi]=atoi(strTmp);
}
while (tmpi<tArrayLength)
{
tIdArray[tmpi]=0;
tmpi++;
}
return tALen;
}
可以如下调用
int productReleaseNum;
int releaseArray[20];
productReleaseNum=searchProductRelease(productId,releaseArray,20);
productReleaseNum里面存储ID数量.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Linux命令:comm
[ 2006/10/08 15:13 | by ipaddr ]
功能说明:比较两个已排过序的文件。
语 法:comm [-123][--help][--version][第1个文件][第2个文件]
补充说明:这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3行显示:第1行仅是在第1个文件中出现过的列,第2行是仅在第2个文件中出现过的列,第3行则是在第1与第2个文件里都出现过的列。若给予的文件名称为"-",则comm指令会从标准输入设备读取数据。
参 数:
-1 不显示只在第1个文件里出现过的列。
-2 不显示只在第2个文件里出现过的列。
-3 不显示只在第1和第2个文件里出现过的列。
--help 在线帮助。
--version 显示版本信息。
>>>>>>>>>>
语 法:comm [-123][--help][--version][第1个文件][第2个文件]
补充说明:这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3行显示:第1行仅是在第1个文件中出现过的列,第2行是仅在第2个文件中出现过的列,第3行则是在第1与第2个文件里都出现过的列。若给予的文件名称为"-",则comm指令会从标准输入设备读取数据。
参 数:
-1 不显示只在第1个文件里出现过的列。
-2 不显示只在第2个文件里出现过的列。
-3 不显示只在第1和第2个文件里出现过的列。
--help 在线帮助。
--version 显示版本信息。
>>>>>>>>>>
使用mod_cband管理Apache 2带宽和流量
[ 2006/10/02 13:31 | by ipaddr ]
mod_cband是一个通过Apache 2模块来解决限制用户和虚拟主机带宽问题的应用,当前版本可以调整虚拟主机和用户带宽限额,最高下载速度(like in mod_bandwidth),每秒访问请求速度和最高并发访问ip连接数(like in mod_limitipconn)。
"我告诉主机服务提供商使用mod_cband,想要限制他们用户数据传输,像“每月10 Gb流量”这样。但已有了mod_curb模块,可以限制流量,但无法工作在虚拟主机和Apache 2下,所以我写了自己的模块完全适合于Apache 2 API同时支持每用户和每虚拟主机带宽限制。"(此段翻译自官方网站)
FreeBSD ports path and pkg-descr info
/usr/ports/www/mod_cband
mod_cband is an Apache 2 module provided to solve the problem of limiting virtualhosts bandwidth usage. When the configured virtualhost’s transfer limit is exceeded, mod_cband will redirect all further requests to a location specified in the configuration file.
好了,说道这里我想这个模块的精髓之处在于完美的支持Apache 2并实现了原有两个模块的全部功能(2in1)且支持每用户和每虚拟主机带宽限制。这在进行web平台应用与整合之时给我们提供了又一易用的方法。准备动手吧!文中实例与系统平台均基于freebsd6.1平台。
提示:
在进行实际操作之前请确保你的ports tree已经同步到当前版本。具体方法请参考http://cnsnap.cn.freebsd.org/doc ... ok/ports-using.html,关于freebsd和apache2的安装本文不予介绍,同时假定你已经安装并配置了所需环境。
安装:
#cd /usr/ports/www/mod_cband
#make install clean
安装结束后末尾输出:
chmod 755 /usr/local/libexec/apache2/mod_cband.so
[activating module `cband’ in /usr/local/etc/apache2/httpd.conf]
===> Registering installation for mod_cband-0.9.7.3
此时cband_module已经自动添加到你的httpd.conf文件中并开启了。
LoadModule cband_module libexec/apache2/mod_cband.so
至此mod_cband安装已经完成,让我们继续后面的操作。之前说mod_cband易用是相对的,主要是看你如何配置让他为你所用。一些基础配置还是很容易完成,但是要发挥它的强大和灵活配置还是要好好看看documentation,充分理解良好驾驭。不啰嗦了,下面看看如何进行基本配置和使用并观测实际效果。以我这个blog为实例,看看基本情况:
DocumentRoot “/other/blog/wordpress”
ServerName blog.citygrit.cn
allow from all
Options +Indexes
# 100MB virtualhost bandwidth limit
CBandLimit 100M
# Maximal 1024kbps speed for this virtualhost
# Maximal 10 requests per second for this virtualhost
# Maximal 30 open connections for this virtualhost
CBandSpeed 1024 10 30
# Maximal 10kB/s speed, 3 requests/s and 2 open connections for any remote client
CBandRemoteSpeed 10kb/s 3 2
# a period of time after which the scoreboard will be cleared (4 weeks)
CBandPeriod 4W
#Then you can access the status page with a URL like:http://server_name/cband-status
SetHandler cband-status
#Then you can access the status page with a URL like:http://server_name/cband-status-me
SetHandler cband-status-me
为了便于理解将上面内容里与mod_cband相关设置予以说明,(约定“#”为注释标记)。
# 100MB virtualhost bandwidth limit
CBandLimit 100M
限制虚拟主机总访问带宽为100Mb。
# Maximal 1024kbps speed for this virtualhost
# Maximal 10 requests per second for this virtualhost
# Maximal 30 open connections for this virtualhost
CBandSpeed 1024 10 30
限制此虚拟主机最高访问速度1024kbps
限制此虚拟主机每秒最高接受请求数10个
限制此虚拟主机最高并发连接30个
# Maximal 10kB/s speed, 3 requests/s and 2 open connections for any remote client
CBandRemoteSpeed 10kb/s 3 2
限制来自远端访问速度10kB每秒,3个请求每秒,2个连接。
# a period of time after which the scoreboard will be cleared (4 weeks)
CBandPeriod 4W
设定多久对所记录的全局访问带宽进行重设(清零)。
4W=4 weeks 4周(一个月)
#Then you can access the status page with a URL like:http://server_name/cband-status
SetHandler cband-status
开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status进行直观的观测。(全局监测)
#Then you can access the status page with a URL like:http://server_name/cband-status-me
SetHandler cband-status-me
开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status-me进行直观的观测。(单一监测)
通过上文简单介绍了mod_cband在freebsd平台下与apache2进行整合及基本配置,整个过程属于理论结合实际操作并得以真实应用,保证其可实施性但不承诺由于其他原因造成的配置与使用问题。如果希望详细了解mod_cband的更加强大的功能和高级配置请访问其网站。本文中部分实例参考了官方网站和Manage Apache Download Speed And Traffic Limits With mod_cband这里的文章。
通告:本文系作者原创,并未抄袭互联网及其他已发表的类似文章。文中所引用
系官方网站实例及说明。欢迎转载但请注明出处已示对作者劳动成果的尊重,谢谢。如果您发现文中的表述有误请联络我,我会及时做出修正。(但不包括由于系统平台及应用软件发生变化而产生的问题)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
"我告诉主机服务提供商使用mod_cband,想要限制他们用户数据传输,像“每月10 Gb流量”这样。但已有了mod_curb模块,可以限制流量,但无法工作在虚拟主机和Apache 2下,所以我写了自己的模块完全适合于Apache 2 API同时支持每用户和每虚拟主机带宽限制。"(此段翻译自官方网站)
FreeBSD ports path and pkg-descr info
/usr/ports/www/mod_cband
mod_cband is an Apache 2 module provided to solve the problem of limiting virtualhosts bandwidth usage. When the configured virtualhost’s transfer limit is exceeded, mod_cband will redirect all further requests to a location specified in the configuration file.
好了,说道这里我想这个模块的精髓之处在于完美的支持Apache 2并实现了原有两个模块的全部功能(2in1)且支持每用户和每虚拟主机带宽限制。这在进行web平台应用与整合之时给我们提供了又一易用的方法。准备动手吧!文中实例与系统平台均基于freebsd6.1平台。
提示:
在进行实际操作之前请确保你的ports tree已经同步到当前版本。具体方法请参考http://cnsnap.cn.freebsd.org/doc ... ok/ports-using.html,关于freebsd和apache2的安装本文不予介绍,同时假定你已经安装并配置了所需环境。
安装:
#cd /usr/ports/www/mod_cband
#make install clean
安装结束后末尾输出:
chmod 755 /usr/local/libexec/apache2/mod_cband.so
[activating module `cband’ in /usr/local/etc/apache2/httpd.conf]
===> Registering installation for mod_cband-0.9.7.3
此时cband_module已经自动添加到你的httpd.conf文件中并开启了。
LoadModule cband_module libexec/apache2/mod_cband.so
至此mod_cband安装已经完成,让我们继续后面的操作。之前说mod_cband易用是相对的,主要是看你如何配置让他为你所用。一些基础配置还是很容易完成,但是要发挥它的强大和灵活配置还是要好好看看documentation,充分理解良好驾驭。不啰嗦了,下面看看如何进行基本配置和使用并观测实际效果。以我这个blog为实例,看看基本情况:
DocumentRoot “/other/blog/wordpress”
ServerName blog.citygrit.cn
allow from all
Options +Indexes
# 100MB virtualhost bandwidth limit
CBandLimit 100M
# Maximal 1024kbps speed for this virtualhost
# Maximal 10 requests per second for this virtualhost
# Maximal 30 open connections for this virtualhost
CBandSpeed 1024 10 30
# Maximal 10kB/s speed, 3 requests/s and 2 open connections for any remote client
CBandRemoteSpeed 10kb/s 3 2
# a period of time after which the scoreboard will be cleared (4 weeks)
CBandPeriod 4W
#Then you can access the status page with a URL like:http://server_name/cband-status
SetHandler cband-status
#Then you can access the status page with a URL like:http://server_name/cband-status-me
SetHandler cband-status-me
为了便于理解将上面内容里与mod_cband相关设置予以说明,(约定“#”为注释标记)。
# 100MB virtualhost bandwidth limit
CBandLimit 100M
限制虚拟主机总访问带宽为100Mb。
# Maximal 1024kbps speed for this virtualhost
# Maximal 10 requests per second for this virtualhost
# Maximal 30 open connections for this virtualhost
CBandSpeed 1024 10 30
限制此虚拟主机最高访问速度1024kbps
限制此虚拟主机每秒最高接受请求数10个
限制此虚拟主机最高并发连接30个
# Maximal 10kB/s speed, 3 requests/s and 2 open connections for any remote client
CBandRemoteSpeed 10kb/s 3 2
限制来自远端访问速度10kB每秒,3个请求每秒,2个连接。
# a period of time after which the scoreboard will be cleared (4 weeks)
CBandPeriod 4W
设定多久对所记录的全局访问带宽进行重设(清零)。
4W=4 weeks 4周(一个月)
#Then you can access the status page with a URL like:http://server_name/cband-status
SetHandler cband-status
开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status进行直观的观测。(全局监测)
#Then you can access the status page with a URL like:http://server_name/cband-status-me
SetHandler cband-status-me
开启了mod_cband的实时监测功能,可以通过http://server_name/cband-status-me进行直观的观测。(单一监测)
通过上文简单介绍了mod_cband在freebsd平台下与apache2进行整合及基本配置,整个过程属于理论结合实际操作并得以真实应用,保证其可实施性但不承诺由于其他原因造成的配置与使用问题。如果希望详细了解mod_cband的更加强大的功能和高级配置请访问其网站。本文中部分实例参考了官方网站和Manage Apache Download Speed And Traffic Limits With mod_cband这里的文章。
通告:本文系作者原创,并未抄袭互联网及其他已发表的类似文章。文中所引用
系官方网站实例及说明。欢迎转载但请注明出处已示对作者劳动成果的尊重,谢谢。如果您发现文中的表述有误请联络我,我会及时做出修正。(但不包括由于系统平台及应用软件发生变化而产生的问题)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>