<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AnySQL.net &#187; Developer</title>
	<atom:link href="http://www.anysql.net/category/developer/feed" rel="self" type="application/rss+xml" />
	<link>http://www.anysql.net</link>
	<description>SQLULDR2, DataCopy, DataSync, WebChart, OraMon, AUL/MyDUL, 性能优化及容量分析</description>
	<lastBuildDate>Wed, 14 Jul 2010 09:27:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>发布SQLULDR2 Windows SDK</title>
		<link>http://www.anysql.net/developer/sqluldr2-windows-sdk-released.html</link>
		<comments>http://www.anysql.net/developer/sqluldr2-windows-sdk-released.html#comments</comments>
		<pubDate>Mon, 19 Apr 2010 12:20:59 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=757</guid>
		<description><![CDATA[&#160; &#160; 一直有人建议我开发图形界面的工具, 好象大部份人已经不太会用命令行了, 也不喜欢命令行了. 只是一个人的精力有限, 并且我也不热忠于图形界面的开发, 就萌发出让别人在我的基础上去开发图形界面的想法, 先将文本导出工具SQLULDR2中的核心逻辑封装成几个API调用, 并编译成DLL库, 提供下载(sqluldr2sdk.zip). &#160; &#160; 在下载的包中, 包含一个简单的Demo程序, 当然也是命令行的, 以说明一下如何调用SQLULDR2库. #include &#60;stdio.h&#62; #include &#8220;sqluldr2.h&#8221; void main() { &#160; void *h = NULL; &#160; SQLULDR2HandleAlloc(&#38;h); &#160; if (h != NULL) &#160; { &#160; &#160; &#160; SQLULDR2HandleSetAttr(h, &#8220;USER=SYS&#8221;); &#160; &#160; &#160; SQLULDR2HandleSetAttr(h, &#8220;QUERY=SELECT * FROM TAB&#8221;); &#160; &#160; &#160; SQLULDR2HandleExecute(h); [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 一直有人建议我开发图形界面的工具, 好象大部份人已经不太会用命令行了, 也不喜欢命令行了. 只是一个人的精力有限, 并且我也不热忠于图形界面的开发, 就萌发出让别人在我的基础上去开发图形界面的想法, 先将文本导出工具SQLULDR2中的核心逻辑封装成几个API调用, 并编译成DLL库, 提供下载(<a href="http://www.anysql.net/software/sqluldr2sdk.zip">sqluldr2sdk.zip</a>).</p>
<p>&nbsp; &nbsp; 在下载的包中, 包含一个简单的Demo程序, 当然也是命令行的, 以说明一下如何调用SQLULDR2库. </p>
<blockquote class="prefont"><p>
#include &lt;stdio.h&gt;<br />
#include &#8220;sqluldr2.h&#8221;</p>
<p>void main()<br />
{<br />
&nbsp;  void *h = NULL;<br />
&nbsp;  SQLULDR2HandleAlloc(&amp;h);<br />
&nbsp;  if (h != NULL)<br />
&nbsp;  {<br />
&nbsp; &nbsp; &nbsp;  SQLULDR2HandleSetAttr(h, &#8220;USER=SYS&#8221;);<br />
&nbsp; &nbsp; &nbsp;  SQLULDR2HandleSetAttr(h, &#8220;QUERY=SELECT * FROM TAB&#8221;);<br />
&nbsp; &nbsp; &nbsp;  SQLULDR2HandleExecute(h);<br />
&nbsp; &nbsp; &nbsp;  SQLULDR2HandleFree(h);<br />
&nbsp;  }<br />
}
</p></blockquote>
<p>&nbsp; &nbsp; 如果有人对Windows图形程序开发有兴趣, 或者正在学习Windows图形程序开发, 不如为SQLULDR2开发一个GUI版本吧. </p>
<p>&nbsp; &nbsp; 过几天将发布DataCopy程序的Windows SDK, 可以用来编写简单的ETL工具.</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/04/18 -- <a href="http://www.anysql.net/tools/parallel-inside-sqluldr2.html" title="SQLULDR2 : Parallel Inside Now!">SQLULDR2 : Parallel Inside Now!</a> (12)</li><li>2010/04/15 -- <a href="http://www.anysql.net/tools/parallel-datacopy-datasync.html" title="并行SQLULDR2和DataCopy操作">并行SQLULDR2和DataCopy操作</a> (4)</li><li>2010/03/15 -- <a href="http://www.anysql.net/tools/datacopy-utility.html" title="学习OCI之DataCopy程序">学习OCI之DataCopy程序</a> (5)</li><li>2009/04/02 -- <a href="http://www.anysql.net/tools/sqluldr2_license.html" title="给SQLULDR2加上Key保护">给SQLULDR2加上Key保护</a> (6)</li><li>2008/10/04 -- <a href="http://www.anysql.net/tools/ociuldr2_source_code.html" title="ociuldr2源代码">ociuldr2源代码</a> (8)</li><li>2007/08/08 -- <a href="http://www.anysql.net/developer/windows_vc_multi_thread.html" title="Windows Visual C++多线程(Thread)编程示例">Windows Visual C++多线程(Thread)编程示例</a> (0)</li><li>2010/06/24 -- <a href="http://www.anysql.net/tools/sqluldr2-charset-option.html" title="控制SQLULDR2的字符集">控制SQLULDR2的字符集</a> (1)</li><li>2010/06/19 -- <a href="http://www.anysql.net/tools/sqluldr2-non-free-features.html" title="2011年起SQLULDR2中的收费功能">2011年起SQLULDR2中的收费功能</a> (3)</li><li>2010/05/28 -- <a href="http://www.anysql.net/dba/unsafe-exp-internet-backup.html" title="不可靠的EXP远程备份">不可靠的EXP远程备份</a> (2)</li><li>2010/05/12 -- <a href="http://www.anysql.net/tools/datacopy-gui-version.html" title="图形版Oracle数据迁移工具">图形版Oracle数据迁移工具</a> (11)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/sqluldr2-windows-sdk-released.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>一次简单C程序的性能优化</title>
		<link>http://www.anysql.net/developer/simple-c-program-tuning.html</link>
		<comments>http://www.anysql.net/developer/simple-c-program-tuning.html#comments</comments>
		<pubDate>Tue, 27 Oct 2009 08:53:17 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=711</guid>
		<description><![CDATA[&#160; &#160; 下面这段简单的程序, 如何优化? #include &#60;stdio.h&#62; void main () { &#160; int i; &#160; for (i=0;i&#60;20000000;i++) &#160; { &#160; &#160; &#160; printf(&#8220;%012d\n&#8221;,i); &#160; } } &#160; &#160; 下午居然想到要来优化这段程序, 并且写出了更好的程序, 性能提升了30%, 从18秒提升到了12秒. #include &#60;stdio.h&#62; typedef struct _NUMERLIST { &#160; &#160; int len; &#160; &#160; char buf[5]; } NUMBERLIST; void printNumber(int num, NUMBERLIST numlist[]) { &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 下面这段简单的程序, 如何优化?  </p>
<blockquote class="prefont"><p>
#include &lt;stdio.h&gt;</p>
<p>void main ()<br />
{<br />
&nbsp;  int i;<br />
&nbsp;  for (i=0;i&lt;20000000;i++)<br />
&nbsp;  {<br />
&nbsp; &nbsp; &nbsp;  printf(&#8220;%012d\n&#8221;,i);<br />
&nbsp;  }<br />
}
</p></blockquote>
<p>&nbsp; &nbsp; 下午居然想到要来优化这段程序, 并且写出了更好的程序, <strong>性能提升了30%, 从18秒提升到了12秒</strong>. </p>
<blockquote class="prefont"><p>
#include &lt;stdio.h&gt;</p>
<p>typedef struct _NUMERLIST<br />
{<br />
&nbsp; &nbsp; int len;<br />
&nbsp; &nbsp; char buf[5];<br />
} NUMBERLIST;</p>
<p>void printNumber(int num, NUMBERLIST numlist[])<br />
{<br />
&nbsp; &nbsp; int v_num,i,j,k,pos=0;<br />
&nbsp; &nbsp; char tmpbuf[32];<br />
&nbsp; &nbsp; memset(tmpbuf,0,32);<br />
&nbsp; &nbsp; v_num=num;<br />
&nbsp; &nbsp; for(i=3;i&gt;=0;i&#8211;)<br />
&nbsp; &nbsp; {<br />
&nbsp; v_num = num;<br />
&nbsp; for(k=0;k&lt;i;k++) v_num = v_num/1000;<br />
&nbsp; v_num = v_num % 1000;<br />
&nbsp; if (v_num &gt; 999)<br />
&nbsp; &nbsp; &nbsp; pos = pos + sprintf(tmpbuf+pos,&#8221;%03d&#8221;, v_num);<br />
&nbsp; &nbsp; &nbsp; &nbsp; else<br />
&nbsp; {<br />
&nbsp; &nbsp; &nbsp; memcpy(tmpbuf+pos, numlist[v_num].buf,3);<br />
&nbsp; &nbsp; &nbsp; pos = pos + 3;<br />
&nbsp; }<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; printf(&#8220;%s\n&#8221;, tmpbuf);<br />
}</p>
<p>void main ()<br />
{<br />
&nbsp;  NUMBERLIST numlist[1000];<br />
&nbsp;  int i;<br />
&nbsp;  for (i=0;i&lt;1000;i++)<br />
&nbsp;  {<br />
&nbsp; &nbsp; &nbsp;  sprintf(numlist[i].buf, &#8220;%03d&#8221;, i);<br />
&nbsp;  }<br />
&nbsp;  for (i=0;i&lt;20000000;i++)<br />
&nbsp;  {<br />
&nbsp; &nbsp; &nbsp;  printNumber(i, numlist);<br />
&nbsp;  }<br />
}
</p></blockquote>
<p>&nbsp; &nbsp; 如果优化一下两个程序的IO, 采用缓冲输出, 估计第二段程序更显优势. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/07/14 -- <a href="http://www.anysql.net/dba/get-aix-hba-iostat.html" title="AIX下获得HBA卡的IO流量信息">AIX下获得HBA卡的IO流量信息</a> (0)</li><li>2010/06/18 -- <a href="http://www.anysql.net/dba/get-linux-iostat.html" title="Linux下获取IO压力数据">Linux下获取IO压力数据</a> (4)</li><li>2010/04/19 -- <a href="http://www.anysql.net/developer/sqluldr2-windows-sdk-released.html" title="发布SQLULDR2 Windows SDK">发布SQLULDR2 Windows SDK</a> (2)</li><li>2009/11/05 -- <a href="http://www.anysql.net/tools/oramon-arclog-undo-logfilesync.html" title="oramon新增三个性能数据">oramon新增三个性能数据</a> (3)</li><li>2009/07/09 -- <a href="http://www.anysql.net/dba/oracle-where-filter-order.html" title="SQL执行filter条件的顺序问题">SQL执行filter条件的顺序问题</a> (2)</li><li>2009/07/01 -- <a href="http://www.anysql.net/dba/partition-table-statistics-choose.html" title="分区表用哪个级别的统计信息?">分区表用哪个级别的统计信息?</a> (2)</li><li>2009/06/25 -- <a href="http://www.anysql.net/tools/oramon-system-event.html" title="oramon如何收集V$SYSTEM_EVENT数据?">oramon如何收集V$SYSTEM_EVENT数据?</a> (3)</li><li>2009/06/25 -- <a href="http://www.anysql.net/tools/oramon-session-history.html" title="oramon如何从V$SESSION收集性能数据?">oramon如何从V$SESSION收集性能数据?</a> (0)</li><li>2009/06/24 -- <a href="http://www.anysql.net/oracle/oramon-system-statistics.html" title="oramon如何从V$SYSSTAT收集性能数据?">oramon如何从V$SYSSTAT收集性能数据?</a> (1)</li><li>2009/05/22 -- <a href="http://www.anysql.net/dba/benefit-from-oramon-perf-alert.html" title="从oramon新报警中受益">从oramon新报警中受益</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/simple-c-program-tuning.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>后台脚本挂起的几种原因</title>
		<link>http://www.anysql.net/developer/few-crontab-hang-cases.html</link>
		<comments>http://www.anysql.net/developer/few-crontab-hang-cases.html#comments</comments>
		<pubDate>Fri, 04 Sep 2009 08:41:00 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=704</guid>
		<description><![CDATA[&#160; &#160; 或多或少我们都会在crontab中放置几个定时任务, 这些任务的监控是个问题, 最严重的当属脚本执行到一半挂起, 大部份情况下还是由于脚本写得不够强壮, 要检查一下. &#160; &#160; 我经历过以下三种情况下的挂起, 第一种是在调用sqlplus时, 由于连接信息不对, 导致第一次不能登录数据库, sqlplus处于等待输入密码的阶段, 引起脚本挂起. 解决方法如下, 使用&#8221;-L&#8221;选项禁止出现密码输入提示. sqlplus -L -s &#8220;/ as sysdba&#8221; &#60;&#60; EOF &#8230; exit; EOF &#160; &#160; 第二个情况是, 用ssh去远程主机执行命令时, 和远程主机的ssh没有打通, 导致ssh也出现等待输出密码阶段, 引起程序挂起. 解决方法也是用选择禁用密码输入. ssh -n -a -q -o NumberOfPasswordPrompts=0 … &#160; &#160; 第三种情况是, 由于网络路由问题, 或其他网络服务问题, 引起网络IO一直等待. 解决的方法是要选择可控性比较强的脚本语言, 比如在Perl中(Linux/Unix)中, 就可以通过信号中断机制来处理挂起情形. eval { &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 或多或少我们都会在crontab中放置几个定时任务, 这些任务的监控是个问题, 最严重的当属脚本执行到一半挂起, 大部份情况下还是由于脚本写得不够强壮, 要检查一下. </p>
<p>&nbsp; &nbsp; 我经历过以下三种情况下的挂起, 第一种是在调用sqlplus时, 由于连接信息不对, 导致第一次不能登录数据库, sqlplus处于等待输入密码的阶段, 引起脚本挂起. 解决方法如下, 使用&#8221;-L&#8221;选项禁止出现密码输入提示. </p>
<blockquote class="prefont"><p>
sqlplus -L -s &#8220;/ as sysdba&#8221; &lt;&lt; EOF<br />
&#8230;<br />
exit;<br />
EOF
</p></blockquote>
<p>&nbsp; &nbsp; 第二个情况是, 用ssh去远程主机执行命令时, 和远程主机的ssh没有打通, 导致ssh也出现等待输出密码阶段, 引起程序挂起. 解决方法也是用选择禁用密码输入. </p>
<blockquote class="prefont"><p>
ssh -n -a -q -o NumberOfPasswordPrompts=0 …
</p></blockquote>
<p>&nbsp; &nbsp; 第三种情况是, 由于网络路由问题, 或其他网络服务问题, 引起网络IO一直等待. 解决的方法是要选择可控性比较强的脚本语言, 比如在Perl中(Linux/Unix)中, 就可以通过信号中断机制来处理挂起情形. </p>
<blockquote class="prefont"><p>
eval {<br />
&nbsp; local $SIG{ALRM} = sub { die &#8220;???\n&#8221; }; <br />
&nbsp; alarm 20;<br />
&nbsp; 可能会超时的任务代码;<br />
&nbsp; alarm 0;<br />
};
</p></blockquote>
<p>&nbsp; &nbsp; 有其他的情况, 请共享出来, 好让大家少走弯路, 助人为快乐之本. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/06/24 -- <a href="http://www.anysql.net/tools/sqluldr2-charset-option.html" title="控制SQLULDR2的字符集">控制SQLULDR2的字符集</a> (1)</li><li>2010/06/19 -- <a href="http://www.anysql.net/tools/sqluldr2-non-free-features.html" title="2011年起SQLULDR2中的收费功能">2011年起SQLULDR2中的收费功能</a> (3)</li><li>2010/05/12 -- <a href="http://www.anysql.net/tools/datacopy-gui-version.html" title="图形版Oracle数据迁移工具">图形版Oracle数据迁移工具</a> (11)</li><li>2010/05/11 -- <a href="http://www.anysql.net/tools/sqluldr2-gui-version.html" title="图形版Oracle文本导出工具">图形版Oracle文本导出工具</a> (10)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/04/23 -- <a href="http://www.anysql.net/tools/new-getddl-script.html" title="新GetDDL, 生成建表语句">新GetDDL, 生成建表语句</a> (6)</li><li>2010/04/18 -- <a href="http://www.anysql.net/tools/parallel-inside-sqluldr2.html" title="SQLULDR2 : Parallel Inside Now!">SQLULDR2 : Parallel Inside Now!</a> (12)</li><li>2010/04/16 -- <a href="http://www.anysql.net/tools/parallel-inside-datacopy.html" title="DataCopy : Parallel Inside Now!">DataCopy : Parallel Inside Now!</a> (2)</li><li>2010/04/15 -- <a href="http://www.anysql.net/tools/parallel-datacopy-datasync.html" title="并行SQLULDR2和DataCopy操作">并行SQLULDR2和DataCopy操作</a> (4)</li><li>2010/04/10 -- <a href="http://www.anysql.net/tools/datacopy-datasync-nls-lang.html" title="不同字符集的数据迁移">不同字符集的数据迁移</a> (6)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/few-crontab-hang-cases.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用户行为概率曲线</title>
		<link>http://www.anysql.net/developer/user-daily-action-curve.html</link>
		<comments>http://www.anysql.net/developer/user-daily-action-curve.html#comments</comments>
		<pubDate>Fri, 24 Jul 2009 05:27:37 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=691</guid>
		<description><![CDATA[&#160; &#160; 去年在公司做了一个业务量监控与预测的模型, 一直觉得那个模型很复杂, 需要简化了才能在更多的场合使用. 经过认真及长时间的思考, 觉得可以提出用户行为概率曲线的概念, 在这过程中, 真的体会到了自已数学水平的不足, 高等数学, 线性代数, 以及运筹学等. &#160; &#160; 我们来看一下下面这张图, X轴是一天的范围, Y轴没有说明是什么数据, 用一定频率收集的某个数据画成的. &#160; &#160; 假设Y轴是网上成交的笔数, 可以理解成最近一个月或几个月的平均晚易笔数, 那么这个图可以用来进行交易报警和预测. 只要计算一下, 现在的交易水平和平均值之间的增长比例, 就可以用来预测现在的交易笔数了, 如果真实的低于预测的, 那表示有什么事情影响了交易, 这是交易预测的基本模型. &#160; &#160; 如果Y轴是页面的PV数量, 如果隐藏掉Y轴的坐标, 就会发现这两条曲线形状可能一样. 如果现在要对PV数量进行预测, 则可能需要统计一下最近一个月或几个月的平均PV数量, 然后计算一下现在的PV数量和平均值之间的增长比例, 就可以用来预测和监控PV了. &#160; &#160; 如果Y轴是搜索的次数, 如果隐藏掉Y轴的坐标, 就会发现这三条曲线形状也可能一样. 要对这个再做一个监控和预测呢? 再计算一下平均值&#8230;&#8230; &#160; &#160; 当然我们还有更多的需要预测和分析的行为数据, 如用户登录数, 如何使得分析变得简单, 我们需要将Y轴变成一个无意义的数值, 不能是交易笔数, 不能是PV数, 不能是搜索数, 也不能是登录数. [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 去年在公司做了一个业务量监控与预测的模型, 一直觉得那个模型很复杂, 需要简化了才能在更多的场合使用. 经过认真及长时间的思考, 觉得可以提出用户行为概率曲线的概念, 在这过程中, 真的体会到了自已数学水平的不足, 高等数学, 线性代数, 以及运筹学等. </p>
<p>&nbsp; &nbsp; 我们来看一下下面这张图, X轴是一天的范围, Y轴没有说明是什么数据, 用一定频率收集的某个数据画成的. </p>
<blockquote><p>
<img src="http://www.anysql.net/images/user_action_daily.gif" border="0" />
</p></blockquote>
<p>&nbsp; &nbsp; 假设Y轴是网上成交的笔数, 可以理解成最近一个月或几个月的平均晚易笔数, 那么这个图可以用来进行交易报警和预测. 只要计算一下, 现在的交易水平和平均值之间的增长比例, 就可以用来预测现在的交易笔数了, 如果真实的低于预测的, 那表示有什么事情影响了交易, 这是交易预测的基本模型. </p>
<p>&nbsp; &nbsp; 如果Y轴是页面的PV数量, 如果隐藏掉Y轴的坐标, 就会发现这两条曲线形状可能一样. 如果现在要对PV数量进行预测, 则可能需要统计一下最近一个月或几个月的平均PV数量, 然后计算一下现在的PV数量和平均值之间的增长比例, 就可以用来预测和监控PV了. </p>
<p>&nbsp; &nbsp; 如果Y轴是搜索的次数, 如果隐藏掉Y轴的坐标, 就会发现这三条曲线形状也可能一样. 要对这个再做一个监控和预测呢? 再计算一下平均值&#8230;&#8230;</p>
<p>&nbsp; &nbsp; 当然我们还有更多的需要预测和分析的行为数据, 如用户登录数, 如何使得分析变得简单, 我们需要将Y轴变成一个无意义的数值, 不能是交易笔数, 不能是PV数, 不能是搜索数, 也不能是登录数. 要将Y轴变为在某一天里, 所有用户动作落在这个时间段的概率, 比如有0.02%的用户行为会落在早上8点的间隔内, 就可以使分析和预测变得简单了. </p>
<p>&nbsp; &nbsp; 以用户登录数为例, 假设昨天用户的登录数是5000万次, 那么今天某个时间点的用户登录数为多少呢? 5000万乘以这个时间点的概率就可以了; 对于搜索量呢? 对于PV数量呢? 同样的道理, 一个时间点发生的概率乘以昨天的行为总数就可以了. </p>
<p>&nbsp; &nbsp; 我们大量的分析工作, 只要着重于分析各种用户行为, 找出具有不同特征的用户行为曲线就可以了, 当然不同的时间段, 如周一和周末, 用户行为概率曲线可能是不同的, 但在大多数场合, 用户行为是很稳定的, 也是很难去改变的. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/04/05 -- <a href="http://www.anysql.net/life/dtcc-2010-dcba-topic.html" title="2010数据库技术大会 及 我的主题">2010数据库技术大会 及 我的主题</a> (2)</li><li>2010/01/28 -- <a href="http://www.anysql.net/life/history-problems.html" title="谈谈历史遗留问题">谈谈历史遗留问题</a> (2)</li><li>2010/01/04 -- <a href="http://www.anysql.net/life/my-first-book-content.html" title="最近在整理的几篇文档">最近在整理的几篇文档</a> (2)</li><li>2009/09/11 -- <a href="http://www.anysql.net/dba/where-is-dba-future.html" title="DBA有什么个人前途?">DBA有什么个人前途?</a> (18)</li><li>2009/09/08 -- <a href="http://www.anysql.net/life/why-we-buy-apartment.html" title="因丈母娘的需求而买房?">因丈母娘的需求而买房?</a> (5)</li><li>2009/09/03 -- <a href="http://www.anysql.net/life/build-online-trade-credit.html" title="收费有助于网购信用">收费有助于网购信用</a> (1)</li><li>2009/08/25 -- <a href="http://www.anysql.net/dba/dba-experience-growth.html" title="关于技术积累的几点想法">关于技术积累的几点想法</a> (6)</li><li>2009/08/17 -- <a href="http://www.anysql.net/life/create-dba-extra-values.html" title="努力创造DBA额外价值">努力创造DBA额外价值</a> (27)</li><li>2009/08/12 -- <a href="http://www.anysql.net/life/with-value-based-life.html" title="个人价值决定个人回报">个人价值决定个人回报</a> (13)</li><li>2009/08/04 -- <a href="http://www.anysql.net/dba/dba-most-important-things.html" title="DBA最缺的不是技术">DBA最缺的不是技术</a> (8)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/user-daily-action-curve.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Crontab中调度Perl程序</title>
		<link>http://www.anysql.net/developer/perl-script-crontab-schedule.html</link>
		<comments>http://www.anysql.net/developer/perl-script-crontab-schedule.html#comments</comments>
		<pubDate>Tue, 07 Jul 2009 22:56:08 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.anysql.net/?p=679</guid>
		<description><![CDATA[&#160; &#160; 用Perl写了不少脚本, 例如收集数据的程序(gatherdata.pl), 需要在Crontab中进行任务设置, 这时就会发现原本在命令行下手工可以执行的Perl程序, 放到Crontab中就不能执行了, 原因是因为手工跑时, 已经设置了很多的环境变量, 而由Crontab启动程序时通常没有设置如下环境变量. ORACLE_HOME=&#8230;&#8230; ORACLE_SID=&#8230;&#8230; LD_LIBRARY_PATH=$ORACLE_HOME/lib NLS_LANG=.ZHS26GBK &#160; &#160; 为解决这个问题, 常常会写一个Shell脚本来调用Perl脚本, 在Shell脚本中进行环境变量设置. 其实这个工作可以放到Perl脚本中, 省去编写Shell脚本这一步. 在数据收集脚本中, 通过命令行传入ORACLE_SID, 然后Perl脚本从特定目录的配置文件中, 得到与ORACLE_SID相对应的ORACLE_HOME (getOracleHome函数), 然后在Perl打开数据库连接前进行环境变量设置. $ENV{&#8220;ORACLE_SID&#8221;} = $sid; $ENV{&#8220;ORACLE_HOME&#8221;} = getOracleHome($sid); $ENV{&#8220;LD_LIBRARY_PATH&#8221;} = getOracleHome($sid).&#8221;/lib&#8221;; $ENV{&#8220;NLS_LANG&#8221;} = &#8220;.ZHS16GBK&#8221;; &#160; &#160; 接下来就可以在Crontab中直接进行任务调度了. 1 1 * * * /home/oracle/admin/bin/gatherdata.pl -S test &#8230;&#8230; &#160; &#160; 据说有公司的解决方法是将Oracle的客户端库文件(libclntsh.so)复制到系统库目录(/usr/lib), 但我个人不是很喜欢这种做法, [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 用Perl写了不少脚本, 例如收集数据的程序(gatherdata.pl), 需要在Crontab中进行任务设置, 这时就会发现原本在命令行下手工可以执行的Perl程序, 放到Crontab中就不能执行了, 原因是因为手工跑时, 已经设置了很多的环境变量, 而由Crontab启动程序时通常没有设置如下环境变量. </p>
<blockquote class="prefont"><p>
ORACLE_HOME=&#8230;&#8230;<br />
ORACLE_SID=&#8230;&#8230;<br />
LD_LIBRARY_PATH=$ORACLE_HOME/lib <br />
NLS_LANG=.ZHS26GBK
</p></blockquote>
<p>&nbsp; &nbsp; 为解决这个问题, 常常会写一个Shell脚本来调用Perl脚本, 在Shell脚本中进行环境变量设置. 其实这个工作可以放到Perl脚本中, 省去编写Shell脚本这一步. 在数据收集脚本中, 通过命令行传入ORACLE_SID, 然后Perl脚本从特定目录的配置文件中, 得到与ORACLE_SID相对应的ORACLE_HOME (getOracleHome函数), 然后在Perl打开数据库连接前进行环境变量设置. </p>
<blockquote class="prefont"><p>
$ENV{&#8220;ORACLE_SID&#8221;} = $sid; <br />
$ENV{&#8220;ORACLE_HOME&#8221;} = getOracleHome($sid); <br />
$ENV{&#8220;LD_LIBRARY_PATH&#8221;} = getOracleHome($sid).&#8221;/lib&#8221;; <br />
$ENV{&#8220;NLS_LANG&#8221;} = &#8220;.ZHS16GBK&#8221;;
</p></blockquote>
<p>&nbsp; &nbsp; 接下来就可以在Crontab中直接进行任务调度了. </p>
<blockquote class="prefont"><p>
1 1 * * * /home/oracle/admin/bin/gatherdata.pl -S test &#8230;&#8230;
</p></blockquote>
<p>&nbsp; &nbsp; 据说有公司的解决方法是将Oracle的客户端库文件(libclntsh.so)复制到系统库目录(/usr/lib), 但我个人不是很喜欢这种做法, 所以去想出这个方法. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/02/12 -- <a href="http://www.anysql.net/developer/get_aix_net_traffic.html" title="准确获取AIX的网络流量">准确获取AIX的网络流量</a> (0)</li><li>2008/12/04 -- <a href="http://www.anysql.net/developer/perl_get_disk_space.html" title="Perl取Linux/Unix磁盘空间">Perl取Linux/Unix磁盘空间</a> (4)</li><li>2008/11/28 -- <a href="http://www.anysql.net/developer/perl_is_tcp_port_alive.html" title="用Perl进行TCP端口确认">用Perl进行TCP端口确认</a> (0)</li><li>2008/11/25 -- <a href="http://www.anysql.net/developer/purge_archivelog_by_space.html" title="指定保留多少GB的归档">指定保留多少GB的归档</a> (1)</li><li>2008/11/25 -- <a href="http://www.anysql.net/developer/find_log_by_sequence.html" title="按Sequence查找归档日志">按Sequence查找归档日志</a> (0)</li><li>2008/11/20 -- <a href="http://www.anysql.net/dba/perl_purge_primary_archivelog.html" title="用Perl写Primary维护脚本">用Perl写Primary维护脚本</a> (1)</li><li>2008/11/15 -- <a href="http://www.anysql.net/dba/perl_purge_standby_archivelog.html" title="用Perl写Standby维护脚本">用Perl写Standby维护脚本</a> (1)</li><li>2008/08/28 -- <a href="http://www.anysql.net/developer/perl_aix_perfstat_script.html" title="Perl AIX-Perfstat-0.03编程">Perl AIX-Perfstat-0.03编程</a> (0)</li><li>2008/08/28 -- <a href="http://www.anysql.net/developer/install_perl_aix_perfstat.html" title="安装Perl AIX-Perfstat-0.03">安装Perl AIX-Perfstat-0.03</a> (1)</li><li>2010/07/14 -- <a href="http://www.anysql.net/dba/get-aix-hba-iostat.html" title="AIX下获得HBA卡的IO流量信息">AIX下获得HBA卡的IO流量信息</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/perl-script-crontab-schedule.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>C程序的64位IO支持</title>
		<link>http://www.anysql.net/developer/gcc_aix_64bit_io.html</link>
		<comments>http://www.anysql.net/developer/gcc_aix_64bit_io.html#comments</comments>
		<pubDate>Wed, 18 Mar 2009 19:06:33 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[IO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/c%e7%a8%8b%e5%ba%8f%e7%9a%8464%e4%bd%8dio%e6%94%af%e6%8c%81.html</guid>
		<description><![CDATA[&#160; &#160; 今天发现编译的AIX版本的ociuldr导出时, 文件生成到2GB后就不增长了, 看来是没有启用64位的IO支持. 去搜索了一下, 发现要支持这个功能, 用的编译选项是不一样的, AIX下的为: gcc -D_LARGE_FILES &#8230;&#8230; &#160; &#160; 而Linux下则是: gcc -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 &#8230;&#8230; &#160; &#160; 以为AIX下和Linux下是一样的, 就用了Linux一样的编译选项, 以为就支持64位IO了, 还好从没有人用过AIX下的AUL去恢复过. Windows下, 用Visual C++编译时是默认支持的. 不用加什么选项. Borland C++编译器据说在代码优化方面效率很高, 但不知道如何支持64位的IO. &#160; &#160; 其他Unix平台的就不知道是什么选项了, 由此看来主流的Unix平台之间可能还是不一样的, 有环境时一个一个试过来吧. 经常发现以为自已懂了, 最后却错了. Relative Posts:2007/08/09 -- Unix/Linux下C语言POSIX多线程程序示例 (3)2007/08/08 -- Unix/Linux上C语言fork多个进程的代码示例 (0)2009/02/13 -- Linux获取主要Load信息 (4)2008/12/04 -- Perl取Linux/Unix磁盘空间 (4)2008/11/28 -- 用Perl进行TCP端口确认 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 今天发现编译的AIX版本的ociuldr导出时, 文件生成到2GB后就不增长了, 看来是没有启用64位的IO支持. 去搜索了一下, 发现要支持这个功能, 用的编译选项是不一样的, AIX下的为: </p>
<blockquote class="prefont"><p>
gcc -D_LARGE_FILES &#8230;&#8230;
</p></blockquote>
<p>&nbsp; &nbsp; 而Linux下则是: </p>
<blockquote class="prefont"><p>
gcc -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 &#8230;&#8230;
</p></blockquote>
<p>&nbsp; &nbsp; 以为AIX下和Linux下是一样的, 就用了Linux一样的编译选项, 以为就支持64位IO了, 还好从没有人用过AIX下的AUL去恢复过. Windows下, 用Visual C++编译时是默认支持的. 不用加什么选项. Borland C++编译器据说在代码优化方面效率很高, 但不知道如何支持64位的IO. </p>
<p>&nbsp; &nbsp; 其他Unix平台的就不知道是什么选项了, 由此看来主流的Unix平台之间可能还是不一样的, 有环境时一个一个试过来吧. 经常发现以为自已懂了, 最后却错了.</p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2007/08/09 -- <a href="http://www.anysql.net/developer/unix_posix_thread.html" title="Unix/Linux下C语言POSIX多线程程序示例">Unix/Linux下C语言POSIX多线程程序示例</a> (3)</li><li>2007/08/08 -- <a href="http://www.anysql.net/developer/unix_fork_thread.html" title="Unix/Linux上C语言fork多个进程的代码示例">Unix/Linux上C语言fork多个进程的代码示例</a> (0)</li><li>2009/02/13 -- <a href="http://www.anysql.net/dba/get_linux_load_metrics.html" title="Linux获取主要Load信息">Linux获取主要Load信息</a> (4)</li><li>2008/12/04 -- <a href="http://www.anysql.net/developer/perl_get_disk_space.html" title="Perl取Linux/Unix磁盘空间">Perl取Linux/Unix磁盘空间</a> (4)</li><li>2008/11/28 -- <a href="http://www.anysql.net/developer/perl_is_tcp_port_alive.html" title="用Perl进行TCP端口确认">用Perl进行TCP端口确认</a> (0)</li><li>2008/07/11 -- <a href="http://www.anysql.net/developer/sqlplus_strict_comment.html" title="用C取得Linux负荷值?">用C取得Linux负荷值?</a> (9)</li><li>2008/05/03 -- <a href="http://www.anysql.net/developer/alipay_first_one_week.html" title="AIX下C语言取得Load值">AIX下C语言取得Load值</a> (2)</li><li>2006/11/16 -- <a href="http://www.anysql.net/dba/visual_screen.html" title="Linux/Unix下的虚拟屏幕, 你开始用了吗?">Linux/Unix下的虚拟屏幕, 你开始用了吗?</a> (2)</li><li>2010/07/14 -- <a href="http://www.anysql.net/dba/get-aix-hba-iostat.html" title="AIX下获得HBA卡的IO流量信息">AIX下获得HBA卡的IO流量信息</a> (0)</li><li>2010/06/18 -- <a href="http://www.anysql.net/dba/get-linux-iostat.html" title="Linux下获取IO压力数据">Linux下获取IO压力数据</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/gcc_aix_64bit_io.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>该死的Java Full GC</title>
		<link>http://www.anysql.net/developer/java_free_memory.html</link>
		<comments>http://www.anysql.net/developer/java_free_memory.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 17:23:35 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Memory]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/%e8%af%a5%e6%ad%bb%e7%9a%84java-full-gc.html</guid>
		<description><![CDATA[&#160; &#160; 某一天, 在oramon的监控日志中, 突然看到数据库的事务数和日志生成量出现下跌的情况, 持续时间长达30秒, 这个原因得好好查查. 在oramon的Active SQL日志中发现了大量的锁等待, 被等待的语句发生在两个相对比较忙的表中. www.AnySQL.net Cmmt Redo 02/xx-13:03:04&#160; 13K&#160; 39M 02/xx-13:03:14 3389&#160; 9M 02/xx-13:03:24 3597&#160; 8M 02/xx-13:03:34 5500&#160; 17M 02/xx-13:03:44&#160; 15K&#160; 54M 02/xx-13:03:54&#160; 15K&#160; 43M &#160; &#160; 锁等待一般要请应用开发人员协助分析了, 分析了应用服务器端日志后, 基本确定是因为有几台应用服务器在那个时间点做了比较多的Full GC, 当用优化的GC算法失效时, Java会挂起所有线程, 进行Full GC操作. 如果这时刚巧应用服务器上有一个事务没有提交或回滚, 而锁定了某条关键记录, 就引起了上面问题. 还好是数据库顶过去了, 否则会需要重启所有应用服务器, 或重起数据库才能解决. &#160; &#160; Java让很多的应用开发人员高兴, 但并没有让系统维护人员高兴, 不需要管理内存的分配和释放, 是件好事, 但只是在中小应用中是好事, 如果并发率高了, [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 某一天, 在oramon的监控日志中, 突然看到数据库的事务数和日志生成量出现下跌的情况, 持续时间长达30秒, 这个原因得好好查查. 在oramon的Active SQL日志中发现了大量的锁等待, 被等待的语句发生在两个相对比较忙的表中. </p>
<blockquote class="prefont"><p>
www.AnySQL.net Cmmt Redo<br />
02/xx-13:03:04&nbsp; 13K&nbsp; 39M<br />
02/xx-13:03:14 3389&nbsp;  9M<br />
02/xx-13:03:24 3597&nbsp;  8M<br />
02/xx-13:03:34 5500&nbsp; 17M<br />
02/xx-13:03:44&nbsp; 15K&nbsp; 54M<br />
02/xx-13:03:54&nbsp; 15K&nbsp; 43M
</p></blockquote>
<p>&nbsp; &nbsp; 锁等待一般要请应用开发人员协助分析了, 分析了应用服务器端日志后, 基本确定是因为有几台应用服务器在那个时间点做了比较多的Full GC, 当用优化的GC算法失效时, Java会挂起所有线程, 进行Full GC操作. 如果这时刚巧应用服务器上有一个事务没有提交或回滚, 而锁定了某条关键记录, 就引起了上面问题. 还好是数据库顶过去了, 否则会需要重启所有应用服务器, 或重起数据库才能解决. </p>
<p>&nbsp; &nbsp; Java让很多的应用开发人员高兴, 但并没有让系统维护人员高兴, 不需要管理内存的分配和释放, 是件好事, 但只是在中小应用中是好事, 如果并发率高了, 自带的垃圾回收就成问题了, 不回收则会报内存溢出. 如果分配的内存大, 垃圾回收的速度会很慢, 这一点可能是限制了Java在64位操作系统上大规模使用的主要原因, 用32位的就算有足够多的内存, 也用不到, 然后就搞虚拟化, 结果是应用服务器的数量急增, 也造成了数据库宝贵的连接资源的大量浪费. </p>
<p>&nbsp; &nbsp; C语言中的指针及内存分配, 虽然复杂, 但用好了就不会有这方面的问题, 比如oramon程序, 跑了三四个月, 内存总是不变的. Java的解决之道也许是要引进一个free的操作, 让应用程序开发人员, 可以指定对象释放一些内存, 还一点控制操作给程序开发人员. </p>
<p>&nbsp; &nbsp; 如果一定要追求开发的速度, 如果没有高的并发, Java也许是首选. 但其他情况, Java也许不是, 昨天前天看Java的内存回收机制, 看得吐血也没有搞明白. 上面说的问题, 也不是我们独有的问题, 很多地方都会有. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/26 -- <a href="http://www.anysql.net/tools/webchart-dbconn-config2.html" title="WebChart的DB连接配置2">WebChart的DB连接配置2</a> (0)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/02/04 -- <a href="http://www.anysql.net/tools/webchart-form-data-display.html" title="DataReport的Form格式显示">DataReport的Form格式显示</a> (0)</li><li>2010/01/26 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess2.html" title="逻辑连接层与物理连接层(2)">逻辑连接层与物理连接层(2)</a> (1)</li><li>2010/01/21 -- <a href="http://www.anysql.net/tools/anysql-jdbc-driver.html" title="AnySQL JDBC Driver">AnySQL JDBC Driver</a> (1)</li><li>2010/01/20 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess.html" title="逻辑连接层与物理连接层">逻辑连接层与物理连接层</a> (4)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-super-expression.html" title="DataReport中的超级表达式">DataReport中的超级表达式</a> (0)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-merge-dup-values.html" title="DataReport的重复值合并">DataReport的重复值合并</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/java_free_memory.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>准确获取AIX的网络流量</title>
		<link>http://www.anysql.net/developer/get_aix_net_traffic.html</link>
		<comments>http://www.anysql.net/developer/get_aix_net_traffic.html#comments</comments>
		<pubDate>Fri, 13 Feb 2009 03:19:20 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Load]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/%e5%87%86%e7%a1%ae%e8%8e%b7%e5%8f%96aix%e7%9a%84%e7%bd%91%e7%bb%9c%e6%b5%81%e9%87%8f.html</guid>
		<description><![CDATA[&#160; &#160; 在任何操作系统(包括AIX)的内核中, 都会有很多关于性能的计数器, 例如关于网络的, 可以想象得到的就有下面几个. 1, Input Packets 2, Input Bytes 3, Output Packets 4, Output Bytes &#160; &#160; 要监控一个系统的负荷, 网络流量也是一个很重要的因素, 但在AIX中要取得准确的网络流量, 却不容易, 虽然有Perfstat API可以用, 但按照Demo中代码去做时, 发现过二到三分钟就会出现一个异常流量值, 大到天文数字, 很明显是因为内核中的计数器溢出(Overflow)了. &#160; &#160; 要解决这个问题, 先要理解为什么那么快会溢出, 假设平均每秒钟的网络流量为30MB, 在AIX 5.3及以前版本的内核计数器还是一个32位的数字, 因此多长时间, 就会溢出呢? 可以用如下计算公式. (2**32) = 4096M/30M = 136秒 &#160; &#160; 大约136秒钟就会出现溢出, 这个频率和Demo中报的一致, 因此更确定了是这个原因. 然后看Perfstat函数说明, 发现接口中用的是64位的类型去映谢这个值的. The perfstat_netinterface_total_t structure [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 在任何操作系统(包括AIX)的内核中, 都会有很多关于性能的计数器, 例如关于网络的, 可以想象得到的就有下面几个. </p>
<blockquote class="prefont"><p>
1, Input Packets<br />
2, Input Bytes<br />
3, Output Packets<br />
4, Output Bytes
</p></blockquote>
<p>&nbsp; &nbsp; 要监控一个系统的负荷, 网络流量也是一个很重要的因素, 但在AIX中要取得准确的网络流量, 却不容易, 虽然有<a href="http://www.anysql.net/doc/perfstatapi.html" target="_blank">Perfstat API</a>可以用, 但按照Demo中代码去做时, 发现过二到三分钟就会出现一个异常流量值, 大到天文数字, 很明显是因为内核中的计数器溢出(Overflow)了. </p>
<p>&nbsp; &nbsp; 要解决这个问题, 先要理解为什么那么快会溢出, 假设平均每秒钟的网络流量为30MB, 在AIX 5.3及以前版本的内核计数器还是一个32位的数字, 因此多长时间, 就会溢出呢? 可以用如下计算公式. </p>
<blockquote class="prefont"><p>
(2**32) = 4096M/30M = 136秒
</p></blockquote>
<p>&nbsp; &nbsp; 大约136秒钟就会出现溢出, 这个频率和Demo中报的一致, 因此更确定了是这个原因. 然后看<a href="http://www.anysql.net/doc/libperfstat.html" target="_blank">Perfstat函数说明</a>, 发现接口中用的是64位的类型去映谢这个值的. </p>
<blockquote class="prefont"><p>
The perfstat_netinterface_total_t structure contains the following members:</p>
<p>int&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; number&nbsp; &nbsp; &nbsp; number of network interfaces <br />
u_longlong_t ipackets&nbsp; &nbsp; number of packets received on interface<br />
u_longlong_t ibytes&nbsp; &nbsp; &nbsp; number of bytes received on interface<br />
u_longlong_t ierrors&nbsp; &nbsp;  number of input errors on interface<br />
u_longlong_t opackets&nbsp; &nbsp; number of packets sent on interface<br />
u_longlong_t obytes&nbsp; &nbsp; &nbsp; number of bytes sent on interface<br />
u_longlong_t oerrors&nbsp; &nbsp;  number of output errors on interface<br />
u_longlong_t collisions&nbsp; number of collisions on csma interface
</p></blockquote>
<p>&nbsp; &nbsp; 问题应当出在这个映射这儿, 于是就试试将这个64位值做了以下转换. </p>
<blockquote class="prefont"><p>
int net_obytes1, net_obytes2;<br />
&#8230;&#8230;<br />
net_obytes1 = (int)(netstats.obytes &amp; 0xffffffff);<br />
&#8230;&#8230;<br />
while(1)<br />
{<br />
&nbsp;  sleep(10);<br />
&nbsp;  net_obytes2 = (int)(netstats.obytes &amp; 0xffffffff);<br />
&nbsp;  print(net_obytes2 &#8211; net_obytes1);<br />
&nbsp;  net_obytes1 = net_obytes2;<br />
}
</p></blockquote>
<p>&nbsp; &nbsp; 然后改了改oramon程序, 得到了以下的OS信息输出. </p>
<blockquote class="prefont"><p>
www.AnySQL.net&nbsp; Load SY/WT/US&nbsp; Net Pgio <br />
02/12-18:29:30&nbsp; 3.55&nbsp; 7/23/20 276M&nbsp; &nbsp; 0 <br />
02/12-18:29:40&nbsp; 3.63&nbsp; 8/23/19 374M&nbsp; &nbsp; 0 <br />
02/12-18:29:50&nbsp; 3.37&nbsp; 8/22/20 339M&nbsp; &nbsp; 0 <br />
02/12-18:30:00&nbsp; 3.39&nbsp; 8/24/19 311M&nbsp; &nbsp; 1 <br />
02/12-18:30:10&nbsp; 3.39 10/21/32 366M&nbsp; &nbsp; 2 <br />
02/12-18:30:20&nbsp; 3.26&nbsp; 8/25/22 349M&nbsp; &nbsp; 0 <br />
02/12-18:30:30&nbsp; 3.44&nbsp; 9/26/21 406M&nbsp; &nbsp; 0 <br />
02/12-18:30:40&nbsp; 3.31&nbsp; 7/26/21 185M&nbsp; &nbsp; 0 <br />
02/12-18:30:50&nbsp; 3.50&nbsp; 8/23/23 286M&nbsp; &nbsp; 2 <br />
02/12-18:31:00&nbsp; 3.63&nbsp; 9/24/22 399M&nbsp; &nbsp; 0
</p></blockquote>
<p>&nbsp; &nbsp; Perl的<a href="http://www.anysql.net/developer/install_perl_aix_perfstat.html">Perfstat包</a>也有这个问题, 改天去Fix一下试试了. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2008/08/28 -- <a href="http://www.anysql.net/developer/perl_aix_perfstat_script.html" title="Perl AIX-Perfstat-0.03编程">Perl AIX-Perfstat-0.03编程</a> (0)</li><li>2008/08/28 -- <a href="http://www.anysql.net/developer/install_perl_aix_perfstat.html" title="安装Perl AIX-Perfstat-0.03">安装Perl AIX-Perfstat-0.03</a> (1)</li><li>2008/12/04 -- <a href="http://www.anysql.net/developer/perl_get_disk_space.html" title="Perl取Linux/Unix磁盘空间">Perl取Linux/Unix磁盘空间</a> (4)</li><li>2008/11/28 -- <a href="http://www.anysql.net/developer/perl_is_tcp_port_alive.html" title="用Perl进行TCP端口确认">用Perl进行TCP端口确认</a> (0)</li><li>2009/07/08 -- <a href="http://www.anysql.net/developer/perl-script-crontab-schedule.html" title="在Crontab中调度Perl程序">在Crontab中调度Perl程序</a> (2)</li><li>2009/04/06 -- <a href="http://www.anysql.net/tools/oramon_windows_osload.html" title="Windows主机性能数据">Windows主机性能数据</a> (2)</li><li>2008/11/25 -- <a href="http://www.anysql.net/developer/purge_archivelog_by_space.html" title="指定保留多少GB的归档">指定保留多少GB的归档</a> (1)</li><li>2008/11/25 -- <a href="http://www.anysql.net/developer/find_log_by_sequence.html" title="按Sequence查找归档日志">按Sequence查找归档日志</a> (0)</li><li>2008/11/20 -- <a href="http://www.anysql.net/dba/perl_purge_primary_archivelog.html" title="用Perl写Primary维护脚本">用Perl写Primary维护脚本</a> (1)</li><li>2008/11/15 -- <a href="http://www.anysql.net/dba/perl_purge_standby_archivelog.html" title="用Perl写Standby维护脚本">用Perl写Standby维护脚本</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/get_aix_net_traffic.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebChart的表格例子</title>
		<link>http://www.anysql.net/developer/webchart_table_demo.html</link>
		<comments>http://www.anysql.net/developer/webchart_table_demo.html#comments</comments>
		<pubDate>Wed, 04 Feb 2009 02:36:18 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/webchart%e7%9a%84%e8%a1%a8%e6%a0%bc%e4%be%8b%e5%ad%90.html</guid>
		<description><![CDATA[&#160; &#160; 在WebChart的功能简介页面中, 总共举了七个例子, 一共分为两类, 前三个是以表格方式显示数据的, 下面来看一下这三个例子的实现. &#160; &#160; 假设我们有一个按月统计的交易汇总表, 表结构如下所示. CREATE TABLE TRADE_SUMMARY_MONTHLY ( &#160; TRADE_MONTH DATE, &#160; TRADE_COUNT NUMBER(12) ); &#160; &#160; 首先要创建后缀为wcml的文本文件, 在如下目录下创建这些文件: c:\TomcatWebChart\webapps\webchart /TomcatWebChart/webapps/webchart &#160; &#160; 第一个示例(demo1.wcml)中包括如下几行. WEBCHART.XSLDOC=xsl/default.xsl WEBCHART.QUERY_1=select \ &#160; &#160; &#160; to_char(trade_month,&#8217;yyyy/mm&#8217;) month , \ &#160; &#160; &#160; trade_count count \ &#160; from trade_monthly_summary \ &#160; where to_char(trade_month,&#8217;yyyy&#8217;)=&#8217;2008&#8242; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 在WebChart的<a href="http://www.dbatools.net/mytools/webchart_feature_overview.html" target="_blank">功能简介</a>页面中, 总共举了七个例子, 一共分为两类, 前三个是以表格方式显示数据的, 下面来看一下这三个例子的实现. </p>
<p>&nbsp; &nbsp; 假设我们有一个按月统计的交易汇总表, 表结构如下所示. </p>
<blockquote class="prefont"><p>
CREATE TABLE TRADE_SUMMARY_MONTHLY<br />
(<br />
&nbsp;  TRADE_MONTH DATE,<br />
&nbsp;  TRADE_COUNT NUMBER(12)<br />
);
</p></blockquote>
<p>&nbsp; &nbsp; 首先要创建后缀为wcml的文本文件, 在如下目录下创建这些文件:<br />
<blockquote class="prefont"><p>
c:\TomcatWebChart\webapps\webchart<br />
/TomcatWebChart/webapps/webchart
</p></blockquote>
<p>&nbsp; &nbsp; 第一个示例(demo1.wcml)中包括如下几行. </p>
<blockquote class="prefont"><p>
WEBCHART.XSLDOC=xsl/default.xsl<br />
WEBCHART.QUERY_1=select \<br />
&nbsp; &nbsp; &nbsp; to_char(trade_month,&#8217;yyyy/mm&#8217;) month , \<br />
&nbsp; &nbsp; &nbsp; trade_count count \<br />
&nbsp; from trade_monthly_summary \<br />
&nbsp; where to_char(trade_month,&#8217;yyyy&#8217;)=&#8217;2008&#8242;
</p></blockquote>
<blockquote><p>
<img src="http://www.anysql.net/images/owc_demo1.gif" border="0">
</p></blockquote>
<p>&nbsp; &nbsp; 第二个示例(demo2.wcml)中包括如下几行. </p>
<blockquote class="prefont"><p>
WEBCHART.XSLDOC=xsl/default.xsl<br />
WEBCHART.QUERY_1=select \<br />
&nbsp; &nbsp; &nbsp; to_char(trade_month,&#8217;&#8221;Q&#8221;q&#8217;) quater , \<br />
&nbsp; &nbsp; &nbsp; to_char(trade_month,&#8217;mm&#8217;) month , \<br />
&nbsp; &nbsp; &nbsp; trade_count count \<br />
&nbsp; from trade_monthly_summary \<br />
&nbsp; where to_char(trade_month,&#8217;yyyy&#8217;)=&#8217;2008&#8242; \<br />
&nbsp; ORDER BY 1,2 <br />
WEBCHART.GROUP_1=1
</p></blockquote>
<blockquote><p>
<img src="http://www.anysql.net/images/owc_demo2.gif" border="0">
</p></blockquote>
<p>&nbsp; &nbsp; 第三个示例(demo3.wcml)中包括如下几行. </p>
<blockquote class="prefont"><p>
WEBCHART.XSLDOC=xsl/default.xsl<br />
WEBCHART.QUERY_1=select to_char(trade_month,&#8217;mm&#8217;) month , \<br />
&nbsp; &nbsp; &nbsp; to_char(trade_month,&#8217;yyyy&#8217;) year , \<br />
&nbsp; &nbsp; &nbsp; trade_count count \<br />
&nbsp; from trade_monthly_summary \<br />
&nbsp; order by 1,2 <br />
WEBCHART.CROSSTAB_1=on
</p></blockquote>
<blockquote><p>
<img src="http://www.anysql.net/images/owc_demo3.gif" border="0">
</p></blockquote>
<p>&nbsp; &nbsp; 在这三个例子中, SQL语句比较复杂, 写成了多行, 用反斜杆进行续行. 可以分别访问如下的URL来访问这三个例子. </p>
<blockquote class="prefont"><p>
http://localhost:8080/webchart/demo1.wcml<br />
http://localhost:8080/webchart/demo2.wcml<br />
http://localhost:8080/webchart/demo3.wcml
</p></blockquote>
<p>&nbsp; &nbsp; 可以看到显示表格数据是相当地简单. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/26 -- <a href="http://www.anysql.net/tools/webchart-dbconn-config2.html" title="WebChart的DB连接配置2">WebChart的DB连接配置2</a> (0)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li><li>2010/01/20 -- <a href="http://www.anysql.net/tools/webchart-logical-dbaccess.html" title="逻辑连接层与物理连接层">逻辑连接层与物理连接层</a> (4)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-super-expression.html" title="DataReport中的超级表达式">DataReport中的超级表达式</a> (0)</li><li>2010/01/08 -- <a href="http://www.anysql.net/tools/webchart-merge-dup-values.html" title="DataReport的重复值合并">DataReport的重复值合并</a> (0)</li><li>2010/01/05 -- <a href="http://www.anysql.net/tools/webchart-forall-loop.html" title="DataReport中的FORALL循环">DataReport中的FORALL循环</a> (0)</li><li>2009/12/29 -- <a href="http://www.anysql.net/tools/webchart-page-cache.html" title="DataReport中的Cache为王">DataReport中的Cache为王</a> (4)</li><li>2009/12/28 -- <a href="http://www.anysql.net/tools/webchart-one-java-servlet.html" title="统一DataReport的Servlet">统一DataReport的Servlet</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/webchart_table_demo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebChart的Excel导出</title>
		<link>http://www.anysql.net/developer/webchart_excel.html</link>
		<comments>http://www.anysql.net/developer/webchart_excel.html#comments</comments>
		<pubDate>Thu, 15 Jan 2009 03:23:59 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[Chart]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/webchart%e7%9a%84excel%e5%af%bc%e5%87%ba.html</guid>
		<description><![CDATA[&#160; &#160; WebChart虽然方便, 但画图功能和Excel比起来, 还是差多了, 在Apache POI开源项目的基础上, 增加了将数据导出到Excel的功能. SELECT Dname, empno, ename, job, &#160; &#160; &#160; to_char(hiredate,&#8217;yyyy/mm/dd&#8217;) hiredate &#160; from dept, emp &#160; where dept.deptno = emp.deptno order by dname &#160; &#160; 将上面的SQL语句查询的结果数据导出到Excel的结果如下. &#160; &#160; 这个功能当初花了我不少时间, 调查研究最后才完成. Relative Posts:2009/02/02 -- WebChart的DB连接配置 (6)2009/01/13 -- WebChart的安装与配置 (22)2009/01/12 -- WebChart在线编辑功能 (0)2009/07/28 -- DataReport增加JfreeChart支持 (7)2009/02/26 -- AnySQL DB查询组件 (0)2009/02/07 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; WebChart虽然方便, 但画图功能和Excel比起来, 还是差多了, 在<a href="http://poi.apache.org/" target="_blank">Apache POI</a>开源项目的基础上, 增加了将数据导出到Excel的功能. </p>
<blockquote class="prefont"><p>
SELECT Dname, empno, ename, job, <br />
&nbsp; &nbsp; &nbsp; to_char(hiredate,&#8217;yyyy/mm/dd&#8217;) hiredate <br />
&nbsp;  from dept, emp <br />
&nbsp;  where dept.deptno = emp.deptno order by dname
</p></blockquote>
<p>&nbsp; &nbsp; 将上面的SQL语句查询的结果数据导出到<a href="http://www.anysql.net/doc/employee_list.xls">Excel的结果</a>如下. </p>
<blockquote><p>
<img src="http://www.anysql.net/images/webchart_excel.gif" border="0" />
</p></blockquote>
<p>&nbsp; &nbsp; 这个功能当初花了我不少时间, 调查研究最后才完成. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/02/02 -- <a href="http://www.anysql.net/tools/webchart_dbconn_config.html" title="WebChart的DB连接配置">WebChart的DB连接配置</a> (6)</li><li>2009/01/13 -- <a href="http://www.anysql.net/tools/webchart_install_windows.html" title="WebChart的安装与配置">WebChart的安装与配置</a> (22)</li><li>2009/01/12 -- <a href="http://www.anysql.net/developer/webchart_online_editor.html" title="WebChart在线编辑功能">WebChart在线编辑功能</a> (0)</li><li>2009/07/28 -- <a href="http://www.anysql.net/tools/webchart-jfreechart-support.html" title="DataReport增加JfreeChart支持">DataReport增加JfreeChart支持</a> (7)</li><li>2009/02/26 -- <a href="http://www.anysql.net/anysql/anysql_db_query.html" title="AnySQL DB查询组件">AnySQL DB查询组件</a> (0)</li><li>2009/02/07 -- <a href="http://www.anysql.net/tools/webchart_chart_demo.html" title="WebChart的图形例子">WebChart的图形例子</a> (4)</li><li>2009/01/13 -- <a href="http://www.anysql.net/developer/webchart_framework.html" title="WebChart的技术结构">WebChart的技术结构</a> (1)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/26 -- <a href="http://www.anysql.net/tools/webchart-dbconn-config2.html" title="WebChart的DB连接配置2">WebChart的DB连接配置2</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/webchart_excel.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WebChart的技术结构</title>
		<link>http://www.anysql.net/developer/webchart_framework.html</link>
		<comments>http://www.anysql.net/developer/webchart_framework.html#comments</comments>
		<pubDate>Tue, 13 Jan 2009 17:04:04 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Chart]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/webchart%e7%9a%84%e6%8a%80%e6%9c%af%e7%bb%93%e6%9e%84.html</guid>
		<description><![CDATA[&#160; &#160; 想要说明WebChart的技术结构, 光用文字描述还真有些复杂, 先看一个图好了. &#160; &#160; WebChart是一个三层结构的应用, 最左边是浏览器能看到的页面, 默认下载的版本中是禁掉PDF的支持的, 原因是因为PDF这块03年时还不成熟, 占了太多的内存, 所以就禁掉了, 有空会再研究一下看看是否可以放开的. 因此客户端不需要任何安装的. &#160; &#160; WebChart全部都在中间层上, 首先有一个J2EE Servlet容器, 在容器里面编写了几个Servlet程序, 结合Oracle的画图包和AnySQL中的数据库查询组件来实现功能. 整个结构中有一个配置文件, 主要是配置到数据库的连接, 使用XSL文件控制数据到浏览器上的输出格式, WCML文件是WebChart Mark Language的缩写, 用来定义一个页面, 其实是一个用来定义页面或图表各种属性的文本文件. &#160; &#160; 最右边是数据层, 基于JDBC的Java程序, 使得可以连接各种不同的数据库, 获取数据进行展示. &#160; &#160; 从结构可以看出, 要使用WebChart, 你需要一台服务器, 上面需要安装JDK, 并需要一个Servlet容器, 如Tomcat. 在我的笔记本上, JDK和Tomcat的安装目录分别为: JAVA_HOME=c:\jdk TOMCAT_HOME=d:\TomcatWebChart &#160; &#160; 然后, 下载WebChart, 解压到Tomcat的webapps子目录, 安装就完成了, 接下来修改一下配置文件中的数据库连接信息, [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 想要说明WebChart的技术结构, 光用文字描述还真有些复杂, 先看一个图好了. </p>
<blockquote><p>
<img src="http://www.anysql.net/images/webchart_framework.gif" border="0">
</p></blockquote>
<p>&nbsp; &nbsp; WebChart是一个三层结构的应用, 最左边是浏览器能看到的页面, 默认下载的版本中是禁掉PDF的支持的, 原因是因为PDF这块03年时还不成熟, 占了太多的内存, 所以就禁掉了, 有空会再研究一下看看是否可以放开的. 因此客户端不需要任何安装的.</p>
<p>&nbsp; &nbsp; WebChart全部都在中间层上, 首先有一个J2EE Servlet容器, 在容器里面编写了几个Servlet程序, 结合<a href="http://download.oracle.com/docs/html/A96127_01/jcb_intro.htm" target="_blank">Oracle的画图包</a>和<a href="http://www.anysql.net/tag/AnySQL">AnySQL</a>中的数据库查询组件来实现功能. 整个结构中有一个配置文件, 主要是配置到数据库的连接, 使用XSL文件控制数据到浏览器上的输出格式, WCML文件是WebChart Mark Language的缩写, 用来定义一个页面, 其实是一个用来定义页面或图表各种属性的文本文件. </p>
<p>&nbsp; &nbsp; 最右边是数据层, 基于JDBC的Java程序, 使得可以连接各种不同的数据库, 获取数据进行展示. </p>
<p>&nbsp; &nbsp; 从结构可以看出, 要使用WebChart, 你需要一台服务器, 上面需要<a href="http://java.sun.com/j2se/1.4.2/download.html" target="_blank">安装JDK</a>, 并需要一个Servlet容器, 如<a href="http://tomcat.apache.org/download-41.cgi" target="_blank">Tomcat</a>. 在我的笔记本上, JDK和Tomcat的安装目录分别为: </p>
<blockquote class="prefont"><p>
JAVA_HOME=c:\jdk<br />
TOMCAT_HOME=d:\TomcatWebChart
</p></blockquote>
<p>&nbsp; &nbsp; 然后, <a href="http://www.anysql.net/software/webchart.zip">下载WebChart</a>, 解压到Tomcat的webapps子目录, 安装就完成了, 接下来修改一下配置文件中的数据库连接信息, 起动Tomcat就可以工作了. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/02/02 -- <a href="http://www.anysql.net/tools/webchart_dbconn_config.html" title="WebChart的DB连接配置">WebChart的DB连接配置</a> (6)</li><li>2009/01/13 -- <a href="http://www.anysql.net/tools/webchart_install_windows.html" title="WebChart的安装与配置">WebChart的安装与配置</a> (22)</li><li>2009/01/12 -- <a href="http://www.anysql.net/developer/webchart_online_editor.html" title="WebChart在线编辑功能">WebChart在线编辑功能</a> (0)</li><li>2009/07/28 -- <a href="http://www.anysql.net/tools/webchart-jfreechart-support.html" title="DataReport增加JfreeChart支持">DataReport增加JfreeChart支持</a> (7)</li><li>2009/02/07 -- <a href="http://www.anysql.net/tools/webchart_chart_demo.html" title="WebChart的图形例子">WebChart的图形例子</a> (4)</li><li>2009/01/14 -- <a href="http://www.anysql.net/developer/webchart_excel.html" title="WebChart的Excel导出">WebChart的Excel导出</a> (4)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li><li>2010/02/26 -- <a href="http://www.anysql.net/tools/webchart-dbconn-config2.html" title="WebChart的DB连接配置2">WebChart的DB连接配置2</a> (0)</li><li>2010/02/20 -- <a href="http://www.anysql.net/tools/webchart-multidb-support.html" title="定义不同数据源的SQL">定义不同数据源的SQL</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/webchart_framework.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebChart在线编辑功能</title>
		<link>http://www.anysql.net/developer/webchart_online_editor.html</link>
		<comments>http://www.anysql.net/developer/webchart_online_editor.html#comments</comments>
		<pubDate>Mon, 12 Jan 2009 23:14:46 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[Chart]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/webchart%e5%9c%a8%e7%ba%bf%e7%bc%96%e8%be%91%e5%8a%9f%e8%83%bd.html</guid>
		<description><![CDATA[&#160; &#160; WebChart算是一个不错的Web图表平台了, 它承担了我收集的性能数据及业务数据展现的任务, 开发新图表的速度让开发部门的许多人惊叹, 已经用它给同事共享了很多的数据. 不过它的编辑功能却不怎么方便, 需要登录到Web服务器上进行编辑页面, 不过周末已经结束了这种现状, 为它做了一个最简单的编辑页面. 如下所示: &#160; &#160; 当然只有登录的用户才可以进行编辑操作. 具有这个功能后, 如果有人不会制图, 只要能访问你的网站, 我就可以帮你制图了, 面向全球都行, 准备在英文Blog上宣传一下这个软件, 看看能不能卖出一两个服务. Relative Posts:2009/02/02 -- WebChart的DB连接配置 (6)2009/01/13 -- WebChart的安装与配置 (22)2009/01/14 -- WebChart的Excel导出 (4)2009/01/13 -- WebChart的技术结构 (1)2009/07/28 -- DataReport增加JfreeChart支持 (7)2009/02/07 -- WebChart的图形例子 (4)2008/12/13 -- 如何画一个SubChart图? (3)2008/12/11 -- 画一个Web图表有多难? (0)2008/12/11 -- 画图? WebChart够用了! (1)2008/08/05 -- WebChart监控系统 (6)]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; <a href="http://www.anysql.net/tag/Chart">WebChart</a>算是一个不错的Web图表平台了, 它承担了我收集的性能数据及业务数据展现的任务, 开发新图表的速度让开发部门的许多人惊叹, 已经用它给同事共享了很多的数据. 不过它的编辑功能却不怎么方便, 需要登录到Web服务器上进行编辑页面, 不过周末已经结束了这种现状, 为它做了一个最简单的编辑页面. 如下所示: </p>
<blockquote><p>
<img src="http://www.anysql.net/images/webchart_online_edit.gif" border="0">
</p></blockquote>
<p>&nbsp; &nbsp; 当然只有登录的用户才可以进行编辑操作. 具有这个功能后, 如果有人不会制图, 只要能访问你的网站, 我就可以帮你制图了, 面向全球都行, 准备在英文Blog上宣传一下这个软件, 看看能不能卖出一两个服务. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/02/02 -- <a href="http://www.anysql.net/tools/webchart_dbconn_config.html" title="WebChart的DB连接配置">WebChart的DB连接配置</a> (6)</li><li>2009/01/13 -- <a href="http://www.anysql.net/tools/webchart_install_windows.html" title="WebChart的安装与配置">WebChart的安装与配置</a> (22)</li><li>2009/01/14 -- <a href="http://www.anysql.net/developer/webchart_excel.html" title="WebChart的Excel导出">WebChart的Excel导出</a> (4)</li><li>2009/01/13 -- <a href="http://www.anysql.net/developer/webchart_framework.html" title="WebChart的技术结构">WebChart的技术结构</a> (1)</li><li>2009/07/28 -- <a href="http://www.anysql.net/tools/webchart-jfreechart-support.html" title="DataReport增加JfreeChart支持">DataReport增加JfreeChart支持</a> (7)</li><li>2009/02/07 -- <a href="http://www.anysql.net/tools/webchart_chart_demo.html" title="WebChart的图形例子">WebChart的图形例子</a> (4)</li><li>2008/12/13 -- <a href="http://www.anysql.net/developer/owc_sub_chart_demo.html" title="如何画一个SubChart图?">如何画一个SubChart图?</a> (3)</li><li>2008/12/11 -- <a href="http://www.anysql.net/developer/owc_sparse_data_chart.html" title="画一个Web图表有多难?">画一个Web图表有多难?</a> (0)</li><li>2008/12/11 -- <a href="http://www.anysql.net/developer/web_tow_axis_chart.html" title="画图? WebChart够用了!">画图? WebChart够用了!</a> (1)</li><li>2008/08/05 -- <a href="http://www.anysql.net/developer/webchart_business_monitor.html" title="WebChart监控系统">WebChart监控系统</a> (6)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/webchart_online_editor.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tomcat [427  prunsrv.c] [error]</title>
		<link>http://www.anysql.net/developer/register_tomcat_service.html</link>
		<comments>http://www.anysql.net/developer/register_tomcat_service.html#comments</comments>
		<pubDate>Sat, 20 Dec 2008 16:53:40 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Chart]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/tomcat-427-prunsrv-c-error.html</guid>
		<description><![CDATA[&#160; &#160; Tomcat是一个很好的Java Bean容器, 几年前开发的WebChart就可以跑在它上面, 当年我用的是Tomcat 4.1.19版本, 可以成功用如下命令将Tomcat注册为服务. set CATALINA_HOME=d:\tomcatwebchart set JAVA_HOME=d:\sunjdk %CATALINA_HOME%\bin\tomcat.exe -uninstall &#8220;Apache Tomcat&#8221; %CATALINA_HOME%\bin\tomcat.exe&#160; &#160; &#160; -install &#8220;Apache Tomcat&#8221; &#160; &#160; %JAVA_HOME%\jre\bin\server\jvm.dll &#160; &#160; -Djava.class.path=%ATALINA_HOME%\bin\bootstrap.jar &#160; &#160; -Dcatalina.home=%CATALINA_HOME%&#160; &#160; &#160; -server -Xms32m -Xrs &#160; &#160; -start org.apache.catalina.startup.BootstrapService &#160; &#160; -params start&#160; &#160; &#160; -stop org.apache.catalina.startup.BootstrapService &#160; &#160; -params stop&#160; -out %CATALINA_HOME%\logs\stdout.log&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; Tomcat是一个很好的Java Bean容器, 几年前开发的WebChart就可以跑在它上面, 当年我用的是Tomcat 4.1.19版本, 可以成功用如下命令将Tomcat注册为服务. </p>
<blockquote class="prefont"><p>
set CATALINA_HOME=d:\tomcatwebchart<br />
set JAVA_HOME=d:\sunjdk<br />
%CATALINA_HOME%\bin\tomcat.exe -uninstall &#8220;Apache Tomcat&#8221;<br />
%CATALINA_HOME%\bin\tomcat.exe&nbsp; <br />
&nbsp; &nbsp; -install &#8220;Apache Tomcat&#8221; <br />
&nbsp; &nbsp; %JAVA_HOME%\jre\bin\server\jvm.dll <br />
&nbsp; &nbsp; -Djava.class.path=%ATALINA_HOME%\bin\bootstrap.jar <br />
&nbsp; &nbsp; -Dcatalina.home=%CATALINA_HOME%&nbsp; <br />
&nbsp; &nbsp; -server -Xms32m -Xrs <br />
&nbsp; &nbsp; -start org.apache.catalina.startup.BootstrapService <br />
&nbsp; &nbsp; -params start&nbsp;  <br />
&nbsp; &nbsp; -stop org.apache.catalina.startup.BootstrapService <br />
&nbsp; &nbsp; -params stop&nbsp;  -out %CATALINA_HOME%\logs\stdout.log&nbsp; <br />
&nbsp; &nbsp; -err %CATALINA_HOME%\logs\stderr.log
</p></blockquote>
<p>&nbsp; &nbsp; 今天重新下载和配置WebChart时, 开载了Tomcat 4.1.39版本, 里面没有了tomcat.exe, 而多了一个tomcat4.exe, 但用它来注册服务时, 总是遇到下面的错误. </p>
<blockquote class="prefont"><p>
[2008-12-20 09:22:18] [427&nbsp; prunsrv.c] [error]<br />
操作成功完成。<br />
[2008-12-20 09:22:18] [1336 prunsrv.c] [error]<br />
Load configuration failed
</p></blockquote>
<p>&nbsp; &nbsp; 后来重新下载一个老版本的<a href="http://www.anysql.net/software/tomcat.zip">tomcat.exe</a>, 将它放到新版本的软件中, 再用它注册一下服务就成功了. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2009/07/28 -- <a href="http://www.anysql.net/tools/webchart-jfreechart-support.html" title="DataReport增加JfreeChart支持">DataReport增加JfreeChart支持</a> (7)</li><li>2009/02/07 -- <a href="http://www.anysql.net/tools/webchart_chart_demo.html" title="WebChart的图形例子">WebChart的图形例子</a> (4)</li><li>2009/02/02 -- <a href="http://www.anysql.net/tools/webchart_dbconn_config.html" title="WebChart的DB连接配置">WebChart的DB连接配置</a> (6)</li><li>2009/01/14 -- <a href="http://www.anysql.net/developer/webchart_excel.html" title="WebChart的Excel导出">WebChart的Excel导出</a> (4)</li><li>2009/01/13 -- <a href="http://www.anysql.net/tools/webchart_install_windows.html" title="WebChart的安装与配置">WebChart的安装与配置</a> (22)</li><li>2009/01/13 -- <a href="http://www.anysql.net/developer/webchart_framework.html" title="WebChart的技术结构">WebChart的技术结构</a> (1)</li><li>2009/01/12 -- <a href="http://www.anysql.net/developer/webchart_online_editor.html" title="WebChart在线编辑功能">WebChart在线编辑功能</a> (0)</li><li>2008/06/19 -- <a href="http://www.anysql.net/developer/get_126_password_back.html" title="整合Apache和Tomcat">整合Apache和Tomcat</a> (0)</li><li>2010/05/07 -- <a href="http://www.anysql.net/tools/webchart-batch-query.html" title="批量数据查询需求">批量数据查询需求</a> (0)</li><li>2010/03/04 -- <a href="http://www.anysql.net/tools/webchart-rows-filter.html" title="为DataReport增加条件过滤功能">为DataReport增加条件过滤功能</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/register_tomcat_service.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何画一个SubChart图?</title>
		<link>http://www.anysql.net/developer/owc_sub_chart_demo.html</link>
		<comments>http://www.anysql.net/developer/owc_sub_chart_demo.html#comments</comments>
		<pubDate>Sat, 13 Dec 2008 20:59:23 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[Chart]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/%e5%a6%82%e4%bd%95%e7%94%bb%e4%b8%80%e4%b8%aasubchart%e5%9b%be.html</guid>
		<description><![CDATA[&#160; &#160; 再次回忆了一下WebChart中的画图功能, 画出了一个子图, 这种方式可能更适合于Load及活动会话数的显示. &#160; &#160; 在WebChart中多了几行子图的定义. WEBCHART.TYPE_1=AREA WEBCHART.SUBTYPE_1=LINE_SOLID WEBCHART.XSLDOC=xsl/defchart.xsl WEBCHART.BACKCOLOR_1=white WEBCHART.EDGECOLOR_1=white WEBCHART.YMAX_1=20&#124;50&#124;5 WEBCHART.XCOL_1=DAY WEBCHART.YCOL_1=VAL1 WEBCHART.SUBCHARTCOL_1=VAL2 WEBCHART.SUBCHARTHEIGHT_1=0.3 WEBCHART.SUBCHARTTYPE_1=LINE WEBCHART.SUBCHARTSUBTYPE_1=LIND_SOLID WEBCHART.SUBCHARTSUBTYPE2_1=MARKER_NONE WEBCHART.WIDTH_1=500 WEBCHART.HEIGHT_1=250 WEBCHART.QUERY_1= SELECT SYSDATE + rownum/1440 DAY, \ &#160; &#160; DBMS_RANDOM.VALUE(25,40) VAL1, \ &#160; &#160; DECODE(TRUNC(ROWNUM/20), 0, NULL,4, NULL , \ &#160; &#160; DBMS_RANDOM.VALUE(5,20)) VAL2 \ &#160; FROM ALL_TABLES WHERE ROWNUM &#60; 100 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 再次回忆了一下WebChart中的画图功能, 画出了一个子图, 这种方式可能更适合于Load及活动会话数的显示. </p>
<p>
<img src="http://www.anysql.net/images/owc_sub_chart.gif" border="0" />
</p>
<p>&nbsp; &nbsp; 在WebChart中多了几行子图的定义. </p>
<blockquote class="prefont"><p>
WEBCHART.TYPE_1=AREA<br />
WEBCHART.SUBTYPE_1=LINE_SOLID<br />
WEBCHART.XSLDOC=xsl/defchart.xsl<br />
WEBCHART.BACKCOLOR_1=white<br />
WEBCHART.EDGECOLOR_1=white<br />
WEBCHART.YMAX_1=20|50|5<br />
WEBCHART.XCOL_1=DAY <br />
WEBCHART.YCOL_1=VAL1<br />
WEBCHART.SUBCHARTCOL_1=VAL2<br />
WEBCHART.SUBCHARTHEIGHT_1=0.3<br />
WEBCHART.SUBCHARTTYPE_1=LINE<br />
WEBCHART.SUBCHARTSUBTYPE_1=LIND_SOLID<br />
WEBCHART.SUBCHARTSUBTYPE2_1=MARKER_NONE<br />
WEBCHART.WIDTH_1=500<br />
WEBCHART.HEIGHT_1=250<br />
WEBCHART.QUERY_1= SELECT SYSDATE + rownum/1440 DAY, \<br />
&nbsp; &nbsp; DBMS_RANDOM.VALUE(25,40) VAL1, \<br />
&nbsp; &nbsp; DECODE(TRUNC(ROWNUM/20), 0, NULL,4, NULL , \<br />
&nbsp; &nbsp; DBMS_RANDOM.VALUE(5,20)) VAL2 \<br />
&nbsp; FROM ALL_TABLES WHERE ROWNUM &lt; 100 order by 1
</p></blockquote>
<p>&nbsp; &nbsp; 脱离画图的技术细节, 将WebChart打造成一个方便的Web画图平台. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2008/12/11 -- <a href="http://www.anysql.net/developer/owc_sparse_data_chart.html" title="画一个Web图表有多难?">画一个Web图表有多难?</a> (0)</li><li>2008/12/11 -- <a href="http://www.anysql.net/developer/web_tow_axis_chart.html" title="画图? WebChart够用了!">画图? WebChart够用了!</a> (1)</li><li>2009/02/02 -- <a href="http://www.anysql.net/tools/webchart_dbconn_config.html" title="WebChart的DB连接配置">WebChart的DB连接配置</a> (6)</li><li>2009/01/13 -- <a href="http://www.anysql.net/tools/webchart_install_windows.html" title="WebChart的安装与配置">WebChart的安装与配置</a> (22)</li><li>2009/01/12 -- <a href="http://www.anysql.net/developer/webchart_online_editor.html" title="WebChart在线编辑功能">WebChart在线编辑功能</a> (0)</li><li>2009/04/05 -- <a href="http://www.anysql.net/dba/oramon_webchart_solution.html" title="轻量级Oracle性能监控">轻量级Oracle性能监控</a> (3)</li><li>2009/01/14 -- <a href="http://www.anysql.net/developer/webchart_excel.html" title="WebChart的Excel导出">WebChart的Excel导出</a> (4)</li><li>2009/01/13 -- <a href="http://www.anysql.net/developer/webchart_framework.html" title="WebChart的技术结构">WebChart的技术结构</a> (1)</li><li>2008/08/05 -- <a href="http://www.anysql.net/developer/webchart_business_monitor.html" title="WebChart监控系统">WebChart监控系统</a> (6)</li><li>2007/05/17 -- <a href="http://www.anysql.net/developer/oracle_chart_builder.html" title="使用Oracle Chart Builder在页面上画图">使用Oracle Chart Builder在页面上画图</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/owc_sub_chart_demo.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>画一个Web图表有多难?</title>
		<link>http://www.anysql.net/developer/owc_sparse_data_chart.html</link>
		<comments>http://www.anysql.net/developer/owc_sparse_data_chart.html#comments</comments>
		<pubDate>Fri, 12 Dec 2008 03:32:59 +0000</pubDate>
		<dc:creator>anysql</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Builder]]></category>
		<category><![CDATA[Chart]]></category>
		<category><![CDATA[DBA]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[WebChart]]></category>

		<guid isPermaLink="false">http://www.anysql.net/wordpress/uncategorized/%e7%94%bb%e4%b8%80%e4%b8%aaweb%e5%9b%be%e8%a1%a8%e6%9c%89%e5%a4%9a%e9%9a%be.html</guid>
		<description><![CDATA[&#160; &#160; 在网页上画一个图并不是很难, 将Oracle Chart Builder包装后形成的WebChart, 就很容易画出一个图来. 如下面的图: &#160; &#160; 在WebChart中只有这么几行文本代码, 存成一个文本文件就行了. WEBCHART.TYPE_1=BAR&#124;BAR WEBCHART.SUBTYPE_1=BAR_3D&#124;BAR_3D WEBCHART.XSLDOC=xsl/defchart.xsl WEBCHART.WIDTH_1=500 WEBCHART.HEIGHT_1=250 WEBCHART.QUERY_1= SELECT SYSDATE + ROWNUM, \ &#160; &#160; &#160; ROWNUM VAL1, \ &#160; &#160; &#160; DECODE(ROWNUM,5,NULL,10-ROWNUM) VAL2 \ &#160; &#160; FROM ALL_TABLES WHERE ROWNUM &#60; 10 &#160; &#160; 最近这个用得比较历害, 越来越有心得, 几年没增强了, 又翻出代码来改善了一下. Relative Posts:2008/12/13 -- 如何画一个SubChart图? (3)2008/12/11 -- [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp; &nbsp; 在网页上画一个图并不是很难, 将<a href="http://download.oracle.com/docs/html/A96127_01/jcb_intro.htm" target="_blank">Oracle Chart Builder</a>包装后形成的WebChart, 就很容易画出一个图来. 如下面的图: </p>
<p>
<img src="http://www.anysql.net/images/owc_sparse_data.gif" border="0" />
</p>
<p>&nbsp; &nbsp; 在WebChart中只有这么几行文本代码, 存成一个文本文件就行了. </p>
<blockquote class="prefont"><p>
WEBCHART.TYPE_1=BAR|BAR<br />
WEBCHART.SUBTYPE_1=BAR_3D|BAR_3D<br />
WEBCHART.XSLDOC=xsl/defchart.xsl<br />
WEBCHART.WIDTH_1=500<br />
WEBCHART.HEIGHT_1=250<br />
WEBCHART.QUERY_1= SELECT SYSDATE + ROWNUM, \<br />
&nbsp; &nbsp; &nbsp;  ROWNUM VAL1, \<br />
&nbsp; &nbsp; &nbsp;  DECODE(ROWNUM,5,NULL,10-ROWNUM) VAL2 \<br />
&nbsp; &nbsp; FROM ALL_TABLES WHERE ROWNUM &lt; 10
</p></blockquote>
<p>&nbsp; &nbsp; 最近这个用得比较历害, 越来越有心得, 几年没增强了, 又翻出代码来改善了一下. </p>
<h3  class="related_post_title">Relative Posts:</h3><ul class="related_post"><li>2008/12/13 -- <a href="http://www.anysql.net/developer/owc_sub_chart_demo.html" title="如何画一个SubChart图?">如何画一个SubChart图?</a> (3)</li><li>2008/12/11 -- <a href="http://www.anysql.net/developer/web_tow_axis_chart.html" title="画图? WebChart够用了!">画图? WebChart够用了!</a> (1)</li><li>2009/02/02 -- <a href="http://www.anysql.net/tools/webchart_dbconn_config.html" title="WebChart的DB连接配置">WebChart的DB连接配置</a> (6)</li><li>2009/01/13 -- <a href="http://www.anysql.net/tools/webchart_install_windows.html" title="WebChart的安装与配置">WebChart的安装与配置</a> (22)</li><li>2009/01/12 -- <a href="http://www.anysql.net/developer/webchart_online_editor.html" title="WebChart在线编辑功能">WebChart在线编辑功能</a> (0)</li><li>2009/04/05 -- <a href="http://www.anysql.net/dba/oramon_webchart_solution.html" title="轻量级Oracle性能监控">轻量级Oracle性能监控</a> (3)</li><li>2009/01/14 -- <a href="http://www.anysql.net/developer/webchart_excel.html" title="WebChart的Excel导出">WebChart的Excel导出</a> (4)</li><li>2009/01/13 -- <a href="http://www.anysql.net/developer/webchart_framework.html" title="WebChart的技术结构">WebChart的技术结构</a> (1)</li><li>2008/08/05 -- <a href="http://www.anysql.net/developer/webchart_business_monitor.html" title="WebChart监控系统">WebChart监控系统</a> (6)</li><li>2007/05/17 -- <a href="http://www.anysql.net/developer/oracle_chart_builder.html" title="使用Oracle Chart Builder在页面上画图">使用Oracle Chart Builder在页面上画图</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.anysql.net/developer/owc_sparse_data_chart.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
