﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-落Nicety的博客-随笔分类-基础</title><link>http://www.blogjava.net/hunter129/category/29124.html</link><description>&lt;a href="http://xiegq.cn" target="_blank"&gt;xiegq.cn&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 02 Nov 2010 07:21:25 GMT</lastBuildDate><pubDate>Tue, 02 Nov 2010 07:21:25 GMT</pubDate><ttl>60</ttl><item><title>Java获取系统时间不正确</title><link>http://www.blogjava.net/hunter129/archive/2010/01/10/308878.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Sat, 09 Jan 2010 16:10:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2010/01/10/308878.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/308878.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2010/01/10/308878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/308878.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/308878.html</trackback:ping><description><![CDATA[<p>今天调试系统发现从java输出的时间和系统时间不同。总是差8个小时。代码如下：</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">SimpleDateFormat&nbsp;format&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SimpleDateFormat(</span><span style="color: #000000;">"</span><span style="color: #000000;">yyyy-MM-dd&nbsp;HH:mm:ss</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
System.out.println(format.format(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Date()));</span></div>
<p>&nbsp;</p>
<p>感觉可能是时区不对，确实了下操作系统的时区设置的也正确。重启电脑看了下BIOS的时间也是对的。无奈上网查找。</p>
<p>终于找到原来是注册表时区设置不正确。</p>
<p>看这里：<a href="http://huiy.javaeye.com/blog/200512" target="_blank">http://huiy.javaeye.com/blog/200512</a></p>
<p>注册表对应项：HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones <br />
解决之道： <br />
1.备份Time Zones这一项 <br />
2.从正常的并且是相同系统的机器中导出该项，然后倒入到自己机器中</p>
<p>下载：<a href="http://www.blogjava.net/Files/hunter129/Time_Zones_XP.rar">注册表信息</a></p>

<img src ="http://www.blogjava.net/hunter129/aggbug/308878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2010-01-10 00:10 <a href="http://www.blogjava.net/hunter129/archive/2010/01/10/308878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在CuteFTP中显示隐藏文件（如.htaccess）</title><link>http://www.blogjava.net/hunter129/archive/2009/10/11/297748.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Sun, 11 Oct 2009 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2009/10/11/297748.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/297748.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2009/10/11/297748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/297748.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/297748.html</trackback:ping><description><![CDATA[显示隐藏文件和文件夹<br />
通常情况下, 一些服务器上会隐藏着一些以点开始的的文件名, 常见的如 ".htaccess" 或 ".profile".<br />
想要在远程服务器上显示这些隐藏文件<br />
1、选择界面上的 [站点管理器] 标签<br />
2、选择想要看到隐藏文件的远程服务器站点<br />
3、右键,选择 [属性]<br />
4、选择 [操作] 标签<br />
5、选择最下面的 [过滤]<br />
6、选中 [启用过滤(E)] 和 [启用服务器端过滤(服务器应用过滤)(S)]<br />
7、在 [远程过滤(M)] 右侧的输入框中输入:<br />
-a<br />
8、单击 [确定]<br />
9、完成...<br />
<img src ="http://www.blogjava.net/hunter129/aggbug/297748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2009-10-11 09:56 <a href="http://www.blogjava.net/hunter129/archive/2009/10/11/297748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL配置文件my.cnf 例子最详细翻译</title><link>http://www.blogjava.net/hunter129/archive/2009/01/18/251744.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Sat, 17 Jan 2009 16:35:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2009/01/18/251744.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/251744.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2009/01/18/251744.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/251744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/251744.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">转的<br />
<br />
MySQL配置文件my.cnf&nbsp;例子最详细翻译</span><span style="color: #000000;">,</span><span style="color: #000000;">可以保存做笔记用。<br />
<br />
#BEGIN&nbsp;CONFIG&nbsp;INFO<br />
#DESCR:&nbsp;4GB&nbsp;RAM</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;只使用InnoDB</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;ACID</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;少量的连接</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;队列负载大<br />
#TYPE:&nbsp;SYSTEM<br />
#END&nbsp;CONFIG&nbsp;INFO<br />
&nbsp;<br />
#<br />
#&nbsp;此mysql配置文件例子针对4G内存</span><span style="color: #000000;">。&nbsp;<br />
#&nbsp;主要使用INNODB<br />
#处理复杂队列并且连接数量较少的mysql服务器<br />
#<br />
#&nbsp;将此文件复制到/etc/my.cnf&nbsp;作为全局设置</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;mysql-data-dir/my.cnf&nbsp;作为服务器指定设置<br />
#&nbsp;(@localstatedir@&nbsp;for&nbsp;this&nbsp;installation)&nbsp;或者放入<br />
#&nbsp;~/.my.cnf&nbsp;作为用户设置.<br />
#<br />
#&nbsp;在此配置文件中</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;你可以使用所有程序支持的长选项.<br />
#&nbsp;如果想获悉程序支持的所有选项<br />
#&nbsp;请在程序后加上</span><span style="color: #000000;">"</span><span style="color: #000000;">--help</span><span style="color: #000000;">"</span><span style="color: #000000;">参数运行程序.<br />
#<br />
#&nbsp;关于独立选项更多的细节信息可以在手册内找到<br />
#<br />
&nbsp;<br />
#<br />
#&nbsp;以下选项会被MySQL客户端应用读取.<br />
#&nbsp;注意只有MySQL附带的客户端应用程序保证可以读取这段内容.<br />
#&nbsp;如果你想你自己的MySQL应用程序获取这些值<br />
#&nbsp;需要在MySQL客户端库初始化的时候指定这些选项<br />
&nbsp;<br />
#<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">client</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
#password&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">your_password</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
port&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;@MYSQL_TCP_PORT@<br />
socket&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;@MYSQL_UNIX_ADDR@<br />
&nbsp;<br />
#&nbsp;***&nbsp;应用定制选项&nbsp;***<br />
&nbsp;<br />
#<br />
#&nbsp;&nbsp;MySQL&nbsp;服务端<br />
#<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">mysqld</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;一般配置选项<br />
port&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;@MYSQL_TCP_PORT@<br />
socket&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;@MYSQL_UNIX_ADDR@<br />
&nbsp;<br />
#&nbsp;back_log&nbsp;是操作系统在监听队列中所能保持的连接数</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;队列保存了在MySQL连接管理器线程处理之前的连接.<br />
#&nbsp;如果你有非常高的连接率并且出现</span><span style="color: #000000;">"</span><span style="color: #000000;">connection&nbsp;refused</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;报错</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;你就应该增加此处的值.<br />
#&nbsp;检查你的操作系统文档来获取这个变量的最大值.<br />
#&nbsp;如果将back_log设定到比你操作系统限制更高的值</span><span style="color: #000000;">,</span><span style="color: #000000;">将会没有效果<br />
back_log&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">50</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;不在TCP/IP端口上进行监听.<br />
#&nbsp;如果所有的进程都是在同一台服务器连接到本地的mysqld</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;这样设置将是增强安全的方法<br />
#&nbsp;所有mysqld的连接都是通过Unix&nbsp;sockets&nbsp;或者命名管道进行的.<br />
#&nbsp;注意在windows下如果没有打开命名管道选项而只是用此项<br />
#&nbsp;(通过&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">enable-named-pipe</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;选项)&nbsp;将会导致mysql服务没有任何作用!<br />
#skip-networking<br />
&nbsp;<br />
#&nbsp;MySQL&nbsp;服务所允许的同时会话数的上限<br />
#&nbsp;其中一个连接将被SUPER权限保留作为管理员登录.<br />
#&nbsp;即便已经达到了连接数的上限.<br />
max_connections&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;"><br />
#&nbsp;每个客户端连接最大的错误允许数量</span><span style="color: #000000;">,</span><span style="color: #000000;">如果达到了此限制.<br />
#&nbsp;这个客户端将会被MySQL服务阻止直到执行了</span><span style="color: #000000;">"</span><span style="color: #000000;">FLUSH&nbsp;HOSTS</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;或者服务重启<br />
#&nbsp;非法的密码以及其他在链接时的错误会增加此值.<br />
#&nbsp;查看&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Aborted_connects</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;状态来获取全局计数器.<br />
max_connect_errors&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">10</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;所有线程所打开表的数量.<br />
#&nbsp;增加此值就增加了mysqld所需要的文件描述符的数量<br />
#&nbsp;这样你需要确认在</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">mysqld_safe</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;">中&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">open-files-limit</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;变量设置打开文件数量允许至少4096<br />
table_cache&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2048</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;允许外部文件级别的锁.&nbsp;打开文件锁会对性能造成负面影响<br />
#&nbsp;所以只有在你在同样的文件上运行多个数据库实例时才使用此选项(注意仍会有其他约束!)<br />
#&nbsp;或者你在文件层面上使用了其他一些软件依赖来锁定MyISAM表<br />
#external-locking<br />
&nbsp;<br />
#&nbsp;服务所能处理的请求包的最大大小以及服务所能处理的最大的请求大小(当与大的BLOB字段一起工作时相当必要)<br />
#&nbsp;每个连接独立的大小.大小动态增加<br />
max_allowed_packet&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;16M<br />
&nbsp;<br />
#&nbsp;在一个事务中binlog为了记录SQL状态所持有的cache大小<br />
#&nbsp;如果你经常使用大的</span><span style="color: #000000;">,</span><span style="color: #000000;">多声明的事务</span><span style="color: #000000;">,</span><span style="color: #000000;">你可以增加此值来获取更大的性能.<br />
#&nbsp;所有从事务来的状态都将被缓冲在binlog缓冲中然后在提交后一次性写入到binlog中<br />
#&nbsp;如果事务比此值大</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;会使用磁盘上的临时文件来替代.<br />
#&nbsp;此缓冲在每个连接的事务第一次更新状态时被创建<br />
binlog_cache_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;1M<br />
&nbsp;<br />
#&nbsp;独立的内存表所允许的最大容量.<br />
#&nbsp;此选项为了防止意外创建一个超大的内存表导致永尽所有的内存资源.<br />
max_heap_table_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;64M<br />
&nbsp;<br />
#&nbsp;排序缓冲被用来处理类似ORDER&nbsp;BY以及GROUP&nbsp;BY队列所引起的排序<br />
#&nbsp;如果排序后的数据无法放入排序缓冲</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;一个用来替代的基于磁盘的合并分类会被使用<br />
#&nbsp;查看&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Sort_merge_passes</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;状态变量.<br />
#&nbsp;在排序发生时由每个线程分配<br />
sort_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
&nbsp;<br />
#&nbsp;此缓冲被使用来优化全联合(full&nbsp;JOINs&nbsp;不带索引的联合).<br />
#&nbsp;类似的联合在极大多数情况下有非常糟糕的性能表现</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;但是将此值设大能够减轻性能影响.<br />
#&nbsp;通过&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Select_full_join</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;状态变量查看全联合的数量<br />
#&nbsp;当全联合发生时</span><span style="color: #000000;">,</span><span style="color: #000000;">在每个线程中分配<br />
join_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
&nbsp;<br />
#&nbsp;我们在cache中保留多少线程用于重用<br />
#&nbsp;当一个客户端断开连接后</span><span style="color: #000000;">,</span><span style="color: #000000;">如果cache中的线程还少于thread_cache_size</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;则客户端线程被放入cache中.<br />
#&nbsp;这可以在你需要大量新连接的时候极大的减少线程创建的开销<br />
#&nbsp;(一般来说如果你有好的线程模型的话</span><span style="color: #000000;">,</span><span style="color: #000000;">这不会有明显的性能提升.)<br />
thread_cache_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">8</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.<br />
#&nbsp;此值只对于支持&nbsp;thread_concurrency()&nbsp;函数的系统有意义(&nbsp;例如Sun&nbsp;Solaris).<br />
#&nbsp;你可可以尝试使用&nbsp;</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">CPU数量</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;">*(</span><span style="color: #000000;">2</span><span style="color: #000000;">.</span><span style="color: #000000;">.4</span><span style="color: #000000;">)&nbsp;来作为thread_concurrency的值<br />
thread_concurrency&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">8</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;查询缓冲常被用来缓冲&nbsp;SELECT&nbsp;的结果并且在下一次同样查询的时候不再执行直接返回结果.<br />
#&nbsp;打开查询缓冲可以极大的提高服务器速度</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;如果你有大量的相同的查询并且很少修改表.<br />
#&nbsp;查看&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Qcache_lowmem_prunes</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;状态变量来检查是否当前值对于你的负载来说是否足够高.<br />
#&nbsp;注意:&nbsp;在你表经常变化的情况下或者如果你的查询原文每次都不同</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;查询缓冲也许引起性能下降而不是性能提升.<br />
query_cache_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;64M<br />
&nbsp;<br />
#&nbsp;只有小于此设定值的结果才会被缓冲<br />
#&nbsp;此设置用来保护查询缓冲</span><span style="color: #000000;">,</span><span style="color: #000000;">防止一个极大的结果集将其他所有的查询结果都覆盖.<br />
query_cache_limit&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;2M<br />
&nbsp;<br />
#&nbsp;被全文检索索引的最小的字长.<br />
#&nbsp;你也许希望减少它</span><span style="color: #000000;">,</span><span style="color: #000000;">如果你需要搜索更短字的时候.<br />
#&nbsp;注意在你修改此值之后</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;你需要重建你的&nbsp;FULLTEXT&nbsp;索引<br />
ft_min_word_len&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;如果你的系统支持&nbsp;memlock()&nbsp;函数</span><span style="color: #000000;">,</span><span style="color: #000000;">你也许希望打开此选项用以让运行中的mysql在在内存高度紧张的时候</span><span style="color: #000000;">,</span><span style="color: #000000;">数据在内存中保持锁定并且防止可能被swapping&nbsp;out<br />
#&nbsp;此选项对于性能有益<br />
#memlock<br />
&nbsp;<br />
#&nbsp;当创建新表时作为默认使用的表类型</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;如果在创建表示没有特别执行表类型</span><span style="color: #000000;">,</span><span style="color: #000000;">将会使用此值<br />
default_table_type&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;MYISAM<br />
&nbsp;<br />
#&nbsp;线程使用的堆大小.&nbsp;此容量的内存在每次连接时被预留.<br />
#&nbsp;MySQL&nbsp;本身常不会需要超过64K的内存<br />
#&nbsp;如果你使用你自己的需要大量堆的UDF函数<br />
#&nbsp;或者你的操作系统对于某些操作需要更多的堆</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;你也许需要将其设置的更高一点.<br />
thread_stack&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;192K<br />
&nbsp;<br />
#&nbsp;设定默认的事务隔离级别.可用的级别如下:<br />
#&nbsp;READ-UNCOMMITTED</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;READ-COMMITTED</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;REPEATABLE-READ</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;SERIALIZABLE<br />
transaction_isolation&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;REPEATABLE-READ<br />
&nbsp;<br />
#&nbsp;内部(内存中)临时表的最大大小<br />
#&nbsp;如果一个表增长到比此值更大</span><span style="color: #000000;">,</span><span style="color: #000000;">将会自动转换为基于磁盘的表.<br />
#&nbsp;此限制是针对单个表的</span><span style="color: #000000;">,</span><span style="color: #000000;">而不是总和.<br />
tmp_table_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;64M<br />
&nbsp;<br />
#&nbsp;打开二进制日志功能.<br />
#&nbsp;在复制(replication)配置中</span><span style="color: #000000;">,</span><span style="color: #000000;">作为MASTER主服务器必须打开此项<br />
#&nbsp;如果你需要从你最后的备份中做基于时间点的恢复</span><span style="color: #000000;">,</span><span style="color: #000000;">你也同样需要二进制日志.<br />
log-bin</span><span style="color: #000000;">=</span><span style="color: #000000;">mysql-bin<br />
&nbsp;<br />
#&nbsp;如果你在使用链式从服务器结构的复制模式&nbsp;(A-&gt;B-&gt;C)</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;你需要在服务器B上打开此项.<br />
#&nbsp;此选项打开在从线程上重做过的更新的日志</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;并将其写入从服务器的二进制日志.<br />
#log_slave_updates<br />
&nbsp;<br />
#&nbsp;打开全查询日志.&nbsp;所有的由服务器接收到的查询&nbsp;(甚至对于一个错误语法的查询)<br />
#&nbsp;都会被记录下来.&nbsp;这对于调试非常有用</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;在生产环境中常常关闭此项.<br />
#log<br />
&nbsp;<br />
#&nbsp;将警告打印输出到错误log文件.&nbsp;&nbsp;如果你对于MySQL有任何问题<br />
#&nbsp;你应该打开警告log并且仔细审查错误日志</span><span style="color: #000000;">,</span><span style="color: #000000;">查出可能的原因.<br />
#log_warnings<br />
&nbsp;<br />
#&nbsp;记录慢速查询.&nbsp;慢速查询是指消耗了比&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">long_query_time</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;定义的更多时间的查询.<br />
#&nbsp;如果&nbsp;log_long_format&nbsp;被打开</span><span style="color: #000000;">,</span><span style="color: #000000;">那些没有使用索引的查询也会被记录.<br />
#&nbsp;如果你经常增加新查询到已有的系统内的话.&nbsp;一般来说这是一个好主意</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
log_slow_queries<br />
&nbsp;<br />
#&nbsp;所有的使用了比这个时间(以秒为单位)更多的查询会被认为是慢速查询.<br />
#&nbsp;不要在这里使用</span><span style="color: #000000;">"</span><span style="color: #000000;">1</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;否则会导致所有的查询</span><span style="color: #000000;">,</span><span style="color: #000000;">甚至非常快的查询页被记录下来(由于MySQL&nbsp;目前时间的精确度只能达到秒的级别).<br />
long_query_time&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;在慢速日志中记录更多的信息.<br />
#&nbsp;一般此项最好打开.<br />
#&nbsp;打开此项会记录使得那些没有使用索引的查询也被作为到慢速查询附加到慢速日志里<br />
log_long_format<br />
&nbsp;<br />
#&nbsp;此目录被MySQL用来保存临时文件.例如</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;它被用来处理基于磁盘的大型排序</span><span style="color: #000000;">,</span><span style="color: #000000;">和内部排序一样.<br />
#&nbsp;以及简单的临时表.<br />
#&nbsp;如果你不创建非常大的临时文件</span><span style="color: #000000;">,</span><span style="color: #000000;">将其放置到&nbsp;swapfs/tmpfs&nbsp;文件系统上也许比较好<br />
#&nbsp;另一种选择是你也可以将其放置在独立的磁盘上.<br />
#&nbsp;你可以使用</span><span style="color: #000000;">"</span><span style="color: #000000;">;</span><span style="color: #000000;">"</span><span style="color: #000000;">来放置多个路径<br />
#&nbsp;他们会按照roud-robin方法被轮询使用.<br />
#tmpdir&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;/tmp<br />
&nbsp;<br />
&nbsp;<br />
#&nbsp;***&nbsp;&nbsp;复制有关的设置<br />
&nbsp;<br />
&nbsp;<br />
#&nbsp;唯一的服务辨识号</span><span style="color: #000000;">,</span><span style="color: #000000;">数值位于&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;到&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">^</span><span style="color: #000000;">32</span><span style="color: #000000;">-1之间.<br />
#&nbsp;此值在master和slave上都需要设置.<br />
#&nbsp;如果&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">master-host</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;没有被设置</span><span style="color: #000000;">,</span><span style="color: #000000;">则默认为1</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;但是如果忽略此选项</span><span style="color: #000000;">,</span><span style="color: #000000;">MySQL不会作为master生效.<br />
server-id&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;复制的Slave&nbsp;(去掉master段的注释来使其生效)<br />
#<br />
#&nbsp;为了配置此主机作为复制的slave服务器</span><span style="color: #000000;">,</span><span style="color: #000000;">你可以选择两种方法:<br />
#<br />
#&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;使用&nbsp;CHANGE&nbsp;MASTER&nbsp;TO&nbsp;命令&nbsp;(在我们的手册中有完整描述)&nbsp;-<br />
#&nbsp;&nbsp;&nbsp;&nbsp;语法如下:<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;CHANGE&nbsp;MASTER&nbsp;TO&nbsp;MASTER_HOST</span><span style="color: #000000;">=</span><span style="color: #000000;">&lt;host&gt;</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;MASTER_PORT</span><span style="color: #000000;">=</span><span style="color: #000000;">&lt;port&gt;</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;&nbsp;&nbsp;&nbsp;MASTER_USER</span><span style="color: #000000;">=</span><span style="color: #000000;">&lt;user&gt;</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;MASTER_PASSWORD</span><span style="color: #000000;">=</span><span style="color: #000000;">&lt;password&gt;&nbsp;</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;你需要替换掉&nbsp;&lt;host&gt;</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;&lt;user&gt;</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;&lt;password&gt;&nbsp;等被尖括号包围的字段以及使用master的端口号替换&lt;port&gt;&nbsp;(默认3306).<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;例子:<br />
#<br />
#&nbsp;&nbsp;&nbsp;&nbsp;CHANGE&nbsp;MASTER&nbsp;TO&nbsp;MASTER_HOST</span><span style="color: #000000;">=</span><span style="color: #000000;">'</span><span style="color: #000000;">125.564.12.1</span><span style="color: #000000;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;MASTER_PORT</span><span style="color: #000000;">=</span><span style="color: #000000;">3306</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;&nbsp;&nbsp;&nbsp;MASTER_USER</span><span style="color: #000000;">=</span><span style="color: #000000;">'joe'</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;MASTER_PASSWORD</span><span style="color: #000000;">=</span><span style="color: #000000;">'secret'</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">#<br />
#&nbsp;或者<br />
#<br />
#&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">)&nbsp;设置以下的变量.&nbsp;不论如何</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;在你选择这种方法的情况下</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;然后第一次启动复制(甚至不成功的情况下</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例如如果你输入错密码在master-password字段并且slave无法连接)</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;&nbsp;&nbsp;&nbsp;slave会创建一个&nbsp;master.info&nbsp;文件</span><span style="color: #000000;">,</span><span style="color: #000000;">并且之后任何对于包含在此文件内的参数的变化都会被忽略<br />
#&nbsp;&nbsp;&nbsp;&nbsp;并且由&nbsp;master.info&nbsp;文件内的内容覆盖</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;除非你关闭slave服务</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;删除&nbsp;master.info&nbsp;并且重启slave&nbsp;服务.<br />
#&nbsp;&nbsp;&nbsp;&nbsp;由于这个原因</span><span style="color: #000000;">,</span><span style="color: #000000;">你也许不想碰一下的配置(注释掉的)&nbsp;并且使用&nbsp;CHANGE&nbsp;MASTER&nbsp;TO&nbsp;(查看上面)&nbsp;来代替<br />
#<br />
#&nbsp;所需要的唯一id号位于&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;和&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">^</span><span style="color: #000000;">32</span><span style="color: #000000;">&nbsp;-&nbsp;1之间<br />
#&nbsp;(并且和master不同)<br />
#&nbsp;如果master-host被设置了.则默认值是2<br />
#&nbsp;但是如果省略</span><span style="color: #000000;">,</span><span style="color: #000000;">则不会生效<br />
#server-id&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;"><br />
#<br />
#&nbsp;复制结构中的master&nbsp;-&nbsp;必须<br />
#master-host&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&lt;hostname&gt;<br />
#<br />
#&nbsp;当连接到master上时slave所用来认证的用户名&nbsp;-&nbsp;必须<br />
#master-user&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&lt;username&gt;<br />
#<br />
#&nbsp;当连接到master上时slave所用来认证的密码&nbsp;-&nbsp;必须<br />
#master-password&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&lt;password&gt;<br />
#<br />
#&nbsp;master监听的端口.<br />
#&nbsp;可选&nbsp;-&nbsp;默认是3306<br />
#master-port&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&lt;port&gt;<br />
&nbsp;<br />
#&nbsp;使得slave只读.只有用户拥有SUPER权限和在上面的slave线程能够修改数据.<br />
#&nbsp;你可以使用此项去保证没有应用程序会意外的修改slave而不是master上的数据<br />
#read_only<br />
&nbsp;<br />
&nbsp;<br />
#***&nbsp;MyISAM&nbsp;相关选项<br />
&nbsp;<br />
&nbsp;<br />
#&nbsp;关键词缓冲的大小</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;一般用来缓冲MyISAM表的索引块.<br />
#&nbsp;不要将其设置大于你可用内存的30%</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;因为一部分内存同样被OS用来缓冲行数据<br />
#&nbsp;甚至在你并不使用MyISAM&nbsp;表的情况下</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;你也需要仍旧设置起&nbsp;</span><span style="color: #000000;">8</span><span style="color: #000000;">-64M&nbsp;内存由于它同样会被内部临时磁盘表使用.<br />
key_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;32M<br />
&nbsp;<br />
#&nbsp;用来做MyISAM表全表扫描的缓冲大小.<br />
#&nbsp;当全表扫描需要时</span><span style="color: #000000;">,</span><span style="color: #000000;">在对应线程中分配.<br />
read_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;2M<br />
&nbsp;<br />
#&nbsp;当在排序之后</span><span style="color: #000000;">,</span><span style="color: #000000;">从一个已经排序好的序列中读取行时</span><span style="color: #000000;">,</span><span style="color: #000000;">行数据将从这个缓冲中读取来防止磁盘寻道.<br />
#&nbsp;如果你增高此值</span><span style="color: #000000;">,</span><span style="color: #000000;">可以提高很多ORDER&nbsp;BY的性能.<br />
#&nbsp;当需要时由每个线程分配<br />
read_rnd_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;16M<br />
&nbsp;<br />
#&nbsp;MyISAM&nbsp;使用特殊的类似树的cache来使得突发插入<br />
#&nbsp;(这些插入是</span><span style="color: #000000;">,</span><span style="color: #000000;">INSERT&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" />&nbsp;SELECT</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;INSERT&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" />&nbsp;VALUES&nbsp;(<img src="http://www.blogjava.net/Images/dot.gif" alt="" />)</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;(<img src="http://www.blogjava.net/Images/dot.gif" alt="" />)</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;以及&nbsp;LOAD&nbsp;DATA<br />
#&nbsp;INFILE)&nbsp;更快.&nbsp;此变量限制每个进程中缓冲树的字节数.<br />
#&nbsp;设置为&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;会关闭此优化.<br />
#&nbsp;为了最优化不要将此值设置大于&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">key_buffer_size</span><span style="color: #000000;">"</span><span style="color: #000000;">.<br />
#&nbsp;当突发插入被检测到时此缓冲将被分配.<br />
bulk_insert_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;64M<br />
&nbsp;<br />
#&nbsp;此缓冲当MySQL需要在&nbsp;REPAIR</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;OPTIMIZE</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;ALTER&nbsp;以及&nbsp;LOAD&nbsp;DATA&nbsp;INFILE&nbsp;到一个空表中引起重建索引时被分配.<br />
#&nbsp;这在每个线程中被分配.所以在设置大值时需要小心.<br />
myisam_sort_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;128M<br />
&nbsp;<br />
#&nbsp;MySQL重建索引时所允许的最大临时文件的大小&nbsp;(当&nbsp;REPAIR</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;ALTER&nbsp;TABLE&nbsp;或者&nbsp;LOAD&nbsp;DATA&nbsp;INFILE).<br />
#&nbsp;如果文件大小比此值更大</span><span style="color: #000000;">,</span><span style="color: #000000;">索引会通过键值缓冲创建(更慢)<br />
myisam_max_sort_file_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;10G<br />
&nbsp;<br />
#&nbsp;如果被用来更快的索引创建索引所使用临时文件大于制定的值</span><span style="color: #000000;">,</span><span style="color: #000000;">那就使用键值缓冲方法.<br />
#&nbsp;这主要用来强制在大表中长字串键去使用慢速的键值缓冲方法来创建索引.<br />
myisam_max_extra_sort_file_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;10G<br />
&nbsp;<br />
#&nbsp;如果一个表拥有超过一个索引</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;MyISAM&nbsp;可以通过并行排序使用超过一个线程去修复他们.<br />
#&nbsp;这对于拥有多个CPU以及大量内存情况的用户</span><span style="color: #000000;">,</span><span style="color: #000000;">是一个很好的选择.<br />
myisam_repair_threads&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;自动检查和修复没有适当关闭的&nbsp;MyISAM&nbsp;表.<br />
myisam_recover<br />
&nbsp;<br />
&nbsp;<br />
#&nbsp;默认关闭&nbsp;Federated<br />
skip-federated<br />
&nbsp;<br />
#&nbsp;***&nbsp;BDB&nbsp;相关选项&nbsp;***<br />
&nbsp;<br />
#&nbsp;如果你运行的MySQL服务有BDB支持但是你不准备使用的时候使用此选项.&nbsp;这会节省内存并且可能加速一些事.<br />
skip-bdb<br />
&nbsp;<br />
&nbsp;<br />
#&nbsp;***&nbsp;INNODB&nbsp;相关选项&nbsp;***<br />
&nbsp;<br />
#&nbsp;如果你的MySQL服务包含InnoDB支持但是并不打算使用的话</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;使用此选项会节省内存以及磁盘空间</span><span style="color: #000000;">,</span><span style="color: #000000;">并且加速某些部分<br />
#skip-innodb<br />
&nbsp;<br />
#&nbsp;附加的内存池被InnoDB用来保存&nbsp;metadata&nbsp;信息<br />
#&nbsp;如果InnoDB为此目的需要更多的内存</span><span style="color: #000000;">,</span><span style="color: #000000;">它会开始从OS这里申请内存.<br />
#&nbsp;由于这个操作在大多数现代操作系统上已经足够快</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;你一般不需要修改此值.<br />
#&nbsp;SHOW&nbsp;INNODB&nbsp;STATUS&nbsp;命令会显示当先使用的数量.<br />
innodb_additional_mem_pool_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;16M<br />
&nbsp;<br />
#&nbsp;InnoDB使用一个缓冲池来保存索引和原始数据</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;不像&nbsp;MyISAM.<br />
#&nbsp;这里你设置越大</span><span style="color: #000000;">,</span><span style="color: #000000;">你在存取表里面数据时所需要的磁盘I/O越少.<br />
#&nbsp;在一个独立使用的数据库服务器上</span><span style="color: #000000;">,</span><span style="color: #000000;">你可以设置这个变量到服务器物理内存大小的80%<br />
#&nbsp;不要设置过大</span><span style="color: #000000;">,</span><span style="color: #000000;">否则</span><span style="color: #000000;">,</span><span style="color: #000000;">由于物理内存的竞争可能导致操作系统的换页颠簸.<br />
#&nbsp;注意在32位系统上你每个进程可能被限制在&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">-</span><span style="color: #000000;">3</span><span style="color: #000000;">.5G&nbsp;用户层面内存限制</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;所以不要设置的太高.<br />
innodb_buffer_pool_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;2G<br />
&nbsp;<br />
#&nbsp;InnoDB&nbsp;将数据保存在一个或者多个数据文件中成为表空间.<br />
#&nbsp;如果你只有单个逻辑驱动保存你的数据</span><span style="color: #000000;">,</span><span style="color: #000000;">一个单个的自增文件就足够好了.<br />
#&nbsp;其他情况下.每个设备一个文件一般都是个好的选择.<br />
#&nbsp;你也可以配置InnoDB来使用裸盘分区&nbsp;-&nbsp;请参考手册来获取更多相关内容<br />
innodb_data_file_path&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ibdata1:10M:autoextend<br />
&nbsp;<br />
#&nbsp;设置此选项如果你希望InnoDB表空间文件被保存在其他分区.<br />
#&nbsp;默认保存在MySQL的datadir中.<br />
#innodb_data_home_dir&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&lt;directory&gt;<br />
&nbsp;<br />
#&nbsp;用来同步IO操作的IO线程的数量.&nbsp;This&nbsp;value&nbsp;is<br />
#&nbsp;此值在Unix下被硬编码为4</span><span style="color: #000000;">,</span><span style="color: #000000;">但是在Windows磁盘I/O可能在一个大数值下表现的更好.<br />
innodb_file_io_threads&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;如果你发现InnoDB表空间损坏</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;设置此值为一个非零值可能帮助你导出你的表.<br />
#&nbsp;从1开始并且增加此值知道你能够成功的导出表.<br />
#innodb_force_recovery</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;在InnoDb核心内的允许线程数量.<br />
#&nbsp;最优值依赖于应用程序</span><span style="color: #000000;">,</span><span style="color: #000000;">硬件以及操作系统的调度方式.<br />
#&nbsp;过高的值可能导致线程的互斥颠簸.<br />
innodb_thread_concurrency&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">16</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;如果设置为1&nbsp;</span><span style="color: #000000;">,</span><span style="color: #000000;">InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上</span><span style="color: #000000;">,</span><span style="color: #000000;"><br />
#&nbsp;这提供了完整的ACID行为.<br />
#&nbsp;如果你愿意对事务安全折衷</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;并且你正在运行一个小的食物</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;你可以设置此值到0或者2来减少由事务日志引起的磁盘I/O<br />
#&nbsp;0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘.<br />
#&nbsp;2代表日志写入日志文件在每次提交后</span><span style="color: #000000;">,</span><span style="color: #000000;">但是日志文件只有大约每秒才会刷新到磁盘上.<br />
innodb_flush_log_at_trx_commit&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;加速InnoDB的关闭.&nbsp;这会阻止InnoDB在关闭时做全清除以及插入缓冲合并.<br />
#&nbsp;这可能极大增加关机时间</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;但是取而代之的是InnoDB可能在下次启动时做这些操作.<br />
#innodb_fast_shutdown<br />
&nbsp;<br />
#&nbsp;用来缓冲日志数据的缓冲区的大小.<br />
#&nbsp;当此值快满时</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;InnoDB将必须刷新数据到磁盘上.<br />
#&nbsp;由于基本上每秒都会刷新一次</span><span style="color: #000000;">,</span><span style="color: #000000;">所以没有必要将此值设置的太大(甚至对于长事务而言)<br />
&nbsp;<br />
innodb_log_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
&nbsp;<br />
#&nbsp;在日志组中每个日志文件的大小.<br />
#&nbsp;你应该设置日志文件总合大小到你缓冲池大小的25%~</span><span style="color: #000000;">100</span><span style="color: #000000;">%<br />
#&nbsp;来避免在日志文件覆写上不必要的缓冲池刷新行为.<br />
#&nbsp;不论如何</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;请注意一个大的日志文件大小会增加恢复进程所需要的时间.<br />
innodb_log_file_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;256M<br />
&nbsp;<br />
#&nbsp;在日志组中的文件总数.<br />
#&nbsp;通常来说2~3是比较好的.<br />
innodb_log_files_in_group&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;InnoDB的日志文件所在位置.&nbsp;默认是MySQL的datadir.<br />
#&nbsp;你可以将其指定到一个独立的硬盘上或者一个RAID1卷上来提高其性能<br />
#innodb_log_group_home_dir<br />
&nbsp;<br />
#&nbsp;在InnoDB缓冲池中最大允许的脏页面的比例.<br />
#&nbsp;如果达到限额</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;InnoDB会开始刷新他们防止他们妨碍到干净数据页面.<br />
#&nbsp;这是一个软限制</span><span style="color: #000000;">,</span><span style="color: #000000;">不被保证绝对执行.<br />
innodb_max_dirty_pages_pct&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">90</span><span style="color: #000000;"><br />
&nbsp;<br />
#&nbsp;InnoDB用来刷新日志的方法.<br />
#&nbsp;表空间总是使用双重写入刷新方法<br />
#&nbsp;默认值是&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">fdatasync</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;另一个是&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">O_DSYNC</span><span style="color: #000000;">"</span><span style="color: #000000;">.<br />
#innodb_flush_method</span><span style="color: #000000;">=</span><span style="color: #000000;">O_DSYNC<br />
&nbsp;<br />
#&nbsp;在被回滚前</span><span style="color: #000000;">,</span><span style="color: #000000;">一个InnoDB的事务应该等待一个锁被批准多久.<br />
#&nbsp;InnoDB在其拥有的锁表中自动检测事务死锁并且回滚事务.<br />
#&nbsp;如果你使用&nbsp;LOCK&nbsp;TABLES&nbsp;指令</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;或者在同样事务中使用除了InnoDB以外的其他事务安全的存储引擎<br />
#&nbsp;那么一个死锁可能发生而InnoDB无法注意到.<br />
#&nbsp;这种情况下这个timeout值对于解决这种问题就非常有帮助.<br />
innodb_lock_wait_timeout&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">120</span><span style="color: #000000;"><br />
&nbsp;<br />
&nbsp;<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">mysqldump</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
#&nbsp;不要在将内存中的整个结果写入磁盘之前缓存.&nbsp;在导出非常巨大的表时需要此项<br />
quick<br />
&nbsp;<br />
max_allowed_packet&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;16M<br />
&nbsp;<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">mysql</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
no-auto-rehash<br />
&nbsp;<br />
#&nbsp;仅仅允许使用键值的&nbsp;UPDATEs&nbsp;和&nbsp;DELETEs&nbsp;.<br />
#safe-updates<br />
&nbsp;<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">isamchk</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
key_buffer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;512M<br />
sort_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;512M<br />
read_buffer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
write_buffer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
&nbsp;<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">myisamchk</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
key_buffer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;512M<br />
sort_buffer_size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;512M<br />
read_buffer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
write_buffer&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;8M<br />
&nbsp;<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">mysqlhotcopy</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
interactive-timeout<br />
&nbsp;<br />
</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">mysqld_safe</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;"><br />
#&nbsp;增加每个进程的可打开文件数量.<br />
#&nbsp;警告:&nbsp;确认你已经将全系统限制设定的足够高!<br />
#&nbsp;打开大量表需要将此值设b<br />
open-files-limit&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">8192</span><span style="color: #000000;"><br />
</span></div>
<img src ="http://www.blogjava.net/hunter129/aggbug/251744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2009-01-18 00:35 <a href="http://www.blogjava.net/hunter129/archive/2009/01/18/251744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>正确显示textarea中输入的回车和空格</title><link>http://www.blogjava.net/hunter129/archive/2008/10/09/233444.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Thu, 09 Oct 2008 13:19:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/10/09/233444.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/233444.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/10/09/233444.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/233444.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/233444.html</trackback:ping><description><![CDATA[&nbsp;
在textarea中输入的文本。如果含有回车或空格。在界面上显示的时候则不哪么正常。回车消失了，空格变短了。<br />
如何解决这个问题呢。有2种方法。<br />
1.使用&lt;pre&gt;标签<br />
&nbsp;&nbsp; w3c对pre元素是这样定义的：pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。<br />
&nbsp;&nbsp; 更详细的内容请参考 <a target="_blank" title="http://www.w3school.com.cn/tags/tag_pre.asp" href="http://www.w3school.com.cn/tags/tag_pre.asp">http://www.w3school.com.cn/tags/tag_pre.asp</a><br />
&nbsp;&nbsp; 也就是说包含在pre标签中的回车和空格会正常的显示出来。包括你在页面代码中输入的。所以如果使用pre元素你需要这样写：<br />
&nbsp;&nbsp; <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">pre</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">要输出的文本</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">pre</span><span style="color: #0000ff;">&gt;</span></div>
&nbsp;&nbsp; ，而不是这样：<br />
&nbsp;&nbsp; <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">pre</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要输出的文本<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">pre</span><span style="color: #0000ff;">&gt;</span></div>
&nbsp;&nbsp; 后一种写法 文本前的空白也会被显示的。除非你真的希望这样:)<br />
2.对文本内容进行替换。<br />
&nbsp; 回车和空格不能正确显示，究其原因是他们各自的表示方式不同。在textarea里面输入的回车是字符"\r"，html中的回车(换行)是"&lt;br/&gt;"。<br />
&nbsp; textarea中输入的空格是空白" "，而html中的一个空格是"&amp;nbsp;"。理所当然不能正确显示。好了现在知道了原因就有了第二种解决方案了。<br />
&nbsp; 只要我们将输入的文本中相应的"元素"替换成html认识的就ok了。因此下面一行代码即可解决问题：<br />
&nbsp; <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">"</span><span style="color: #000000;">要输出的文本</span><span style="color: #000000;">"</span><span style="color: #000000;">.replaceAll(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">&amp;nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">).replaceAll(</span><span style="color: #000000;">"\</span><span style="color: #000000;">r</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">br</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span></div>
&nbsp; 等等。这里还有一点小问题。把一个空格替换成一个"&amp;nbsp;"空格看上去仍然要少些。如果你喜欢可以替换成2个。<br />
&nbsp; <br />
&nbsp; 最后，除了回车和空格以外还有很多空白字符如tab等，如果你喜欢可以一并处理了^_^<br />
&nbsp; <br />
&nbsp; 最后的最后，如果本来的文本是很长的一行，使用pre标签后就不会自动换行。结果页面出现横向滚动条。不知道有没有好的解决方法？<br />
&nbsp; 而将第二种方法处理过的文本放在&lt;p&gt;标签中显示，就可以显示正常。<br />
&nbsp; <br />
<img src ="http://www.blogjava.net/hunter129/aggbug/233444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-10-09 21:19 <a href="http://www.blogjava.net/hunter129/archive/2008/10/09/233444.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件编码导致的sun.io.MalformedInputException异常</title><link>http://www.blogjava.net/hunter129/archive/2008/05/21/202046.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Wed, 21 May 2008 14:22:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/05/21/202046.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/202046.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/05/21/202046.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/202046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/202046.html</trackback:ping><description><![CDATA[文件编码导致的sun.io.MalformedInputException异常<br />
如果你没有使用ibm的jdk，却依然遇到了这个问题。<br />
如果你的异常是在解析xml的时候出现的，如果你的异常是某些地方有某些地方没有。<br />
例如tomcat里面没有，weblogic上有。抑或这个domain有那个domain却没有。而确实是同一个应用。<br />
哪么你遇到的可能和笔者要讲的是同一个问题。<br />
<br />
你的xml文件本身是UTF-8编码(注意是文件是UTF-8编码，不是xml文件里面指定的文件内容是UTF-8编码)？<br />
你的xml文件里面含有中文？<br />
你使用UltraEdit编辑xml文件？<br />
删掉中文，问题依旧？<br />
<br />
那么可以肯定你的问题就是笔者要讲的问题<br />
<br />
首先给出解决方案：<br />
方案一：<br />
1.xml用记事本打开，删除里面的中文。<br />
2.在windows 本地新建一个txt文件，用记事本(注意不能用UltraEdit)打开。<br />
3.将xml里面的内容复制到新建的txt文件中。<br />
4.将txt文件重名为xml文件的名称。覆盖原来的xml文件<br />
5.看看问题是不是解决了，咔咔 神奇吧。<br />
<br />
方案二：(适用于使用eclipse ide的程序员们，其他的能更改文件编码的程序也行，不过没测试过)<br />
1.将xml文件的内容剪切出来，保存在别处，什么文件都行，最后是txt中。留下一个空的xml文件<br />
2.将空的xml文件的编码修改成GBK。注意是文件的编码，不是xml的那个声明。当然这里已经删了。<br />
3.这时候是否看到文件的头部有乱码? 删之!<br />
4.将原来文件的内容烤回来<br />
5.ok问题解决，这种方法不用删除中文。<br />
<br />
问题的根源：<br />
估计有些人已经明白是什么原因了。呵呵，那就是xml文件那个BOM的头导致的这个问题！<br />
哦？还有没明白的？下面详细说明下：<br />
xml文件分为两种，一种是有BOM信息的，它表示文件是xml格式<br />
另外还有没有BOM信息的xml文件。<br />
就是这个特殊的BOM信息导致了解析xml出错。<br />
那跟UltraEdit有什么关系？UltraEdit在编辑xml文件的时候会自动加上这个可恶的BOM信息。
<img src ="http://www.blogjava.net/hunter129/aggbug/202046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-05-21 22:22 <a href="http://www.blogjava.net/hunter129/archive/2008/05/21/202046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>详细的log4j配置说明</title><link>http://www.blogjava.net/hunter129/archive/2008/05/19/201443.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Mon, 19 May 2008 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/05/19/201443.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/201443.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/05/19/201443.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/201443.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/201443.html</trackback:ping><description><![CDATA[详细的log4j配置说明<br />
<br />
一直没有认真研究过log4j的配置，这几天比较闲，认真的看了看。现在总结下。<br />
Log4j有三个主要的组件：Loggers(记录器)，Appenders(输出源)和Layouts(布局)。<br />
log4j的配置文件也可以是多种格式的，但主要是xml文件和properties文件<br />
1.配置根logger:<br />
语法：log4j.rootLogger =[level],appenderName1,appenderName2,...<br />
level ：OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL的其中一个。<br />
appenderName：日志输入的目的地，可以有多个地方<br />
根logger是一定存在的，根logger指定了默认的日志配置。<br />
2.配置日志输入的目的地(appender)<br />
语法：log4j.appender.appenderName = fully.qualified.name.of.appender.class<br />
&nbsp;&nbsp;&nbsp; fully.qualified.name.of.appender.class 可以是以下的几种:<br />
&nbsp;&nbsp;&nbsp; (1).org.apache.log4j.ConsoleAppender（控制台）<br />
&nbsp;&nbsp;&nbsp; (2).org.apache.log4j.FileAppender（文件）<br />
&nbsp;&nbsp;&nbsp; (3).org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件）<br />
&nbsp;&nbsp;&nbsp; (4).org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件）<br />
&nbsp;&nbsp;&nbsp; (5).org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）<br />
其中每一个又有不同的配置选项:<br />
(1).org.apache.log4j.ConsoleAppender（控制台）的选项<br />
Threshold=WARN:指定日志消息的输出最低层次。<br />
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
Target=System.err：默认情况下是：System.out,指定输出控制台<br />
(2).org.apache.log4j.FileAppender的选项<br />
Threshold=WARN:指定日志消息的输出最低层次。<br />
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
File=mylog.txt:指定消息输出到mylog.txt文件。<br />
Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。<br />
(3).org.apache.log4j.DailyRollingFileAppender的选项<br />
Threshold=WARN:指定日志消息的输出最低层次。<br />
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
File=mylog.txt:指定消息输出到mylog.txt文件。<br />
Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。<br />
DatePattern='.'yyyy-ww:每周滚动一次文件，即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下：<br />
&nbsp;&nbsp;&nbsp; 1)'.'yyyy-MM: 每月<br />
&nbsp;&nbsp;&nbsp; 2)'.'yyyy-ww: 每周 <br />
&nbsp;&nbsp;&nbsp; 3)'.'yyyy-MM-dd: 每天<br />
&nbsp;&nbsp;&nbsp; 4)'.'yyyy-MM-dd-a: 每天两次<br />
&nbsp;&nbsp;&nbsp; 5)'.'yyyy-MM-dd-HH: 每小时<br />
&nbsp;&nbsp;&nbsp; 6)'.'yyyy-MM-dd-HH-mm: 每分钟<br />
(4).org.apache.log4j.RollingFileAppender<br />
Threshold=WARN:指定日志消息的输出最低层次。<br />
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。<br />
File=mylog.txt:指定消息输出到mylog.txt文件。<br />
Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。<br />
MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时，将会自动滚动，即将原来的内容移到mylog.log.1文件。<br />
MaxBackupIndex=2:指定可以产生的滚动文件的最大数。<br />
<br />
3.配置日志输入的格式<br />
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n<br />
这里需要说明的就是日志信息格式中几个符号所代表的含义：<br />
-: 信息输出时左对齐；<br />
&nbsp;&nbsp; %p: 输出日志信息优先级，即DEBUG，INFO，WARN，ERROR，FATAL,<br />
&nbsp;&nbsp; %d: 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似：2002年10月18日 22：10：28，921<br />
&nbsp;&nbsp; %r: 输出自应用启动到输出该log信息耗费的毫秒数<br />
&nbsp;&nbsp; %c: 输出日志信息所属的类目，通常就是所在类的全名<br />
&nbsp;&nbsp; %t: 输出产生该日志事件的线程名<br />
&nbsp;&nbsp; %l: 输出日志事件的发生位置，相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10)<br />
&nbsp;&nbsp; %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。<br />
&nbsp;&nbsp; %%: 输出一个"%"字符<br />
&nbsp;&nbsp; %F: 输出日志消息产生时所在的文件名称<br />
&nbsp;&nbsp; %L: 输出代码中的行号<br />
&nbsp;&nbsp; %m: 输出代码中指定的消息,产生的日志具体信息<br />
&nbsp;&nbsp; %n: 输出一个回车换行符，Windows平台为"rn"，Unix平台为"n"输出日志信息换行<br />
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)%20c：指定输出category的名称，最小的宽度是20，如果category的名称小于20的话，默认的情况下右对齐。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)%-20c:指定输出category的名称，最小的宽度是20，如果category的名称小于20的话，"-"号指定左对齐。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)%.30c:指定输出category的名称，最大的宽度是30，如果category的名称大于30的话，就会将左边多出的字符截掉，但小于30的话也不会有空格。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)%20.30c:如果category的名称小于20就补空格，并且右对齐，如果其名称长于30字符，就从左边交远销出的字符截掉。<br />
下面是一个详细的配置样例<br />
<br />
og4j.rootLogger=DEBUG,CONSOLE,A1,im<br />
#DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASE<br />
log4j.addivity.org.apache=true<br />
###################<br />
# Console Appender(输出到控制台)<br />
###################<br />
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender<br />
log4j.appender.Threshold=DEBUG<br />
log4j.appender.CONSOLE.Target=System.out<br />
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n<br />
<br />
<br />
#####################<br />
# File Appender 输出到文件<br />
#####################<br />
log4j.appender.FILE=org.apache.log4j.FileAppender<br />
log4j.appender.FILE.File=file.log<br />
log4j.appender.FILE.Append=false<br />
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
# Use this layout for LogFactor 5 analysis<br />
<br />
<br />
########################<br />
# Rolling File<br />
########################<br />
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender<br />
log4j.appender.ROLLING_FILE.Threshold=ERROR<br />
log4j.appender.ROLLING_FILE.File=rolling.log<br />
log4j.appender.ROLLING_FILE.Append=true<br />
log4j.appender.ROLLING_FILE.MaxFileSize=10KB<br />
log4j.appender.ROLLING_FILE.MaxBackupIndex=1<br />
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
<br />
<br />
####################<br />
# Socket Appender<br />
####################<br />
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender<br />
log4j.appender.SOCKET.RemoteHost=localhost<br />
log4j.appender.SOCKET.Port=5001<br />
log4j.appender.SOCKET.LocationInfo=true<br />
# Set up for Log Facter 5<br />
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.SOCET.layout.ConversionPattern=[start]%d[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n<br />
<br />
<br />
########################<br />
# Log Factor 5 Appender<br />
########################<br />
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender<br />
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000<br />
<br />
<br />
########################<br />
# SMTP Appender 发送邮件<br />
#######################<br />
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender<br />
log4j.appender.MAIL.Threshold=FATAL<br />
log4j.appender.MAIL.BufferSize=10<br />
log4j.appender.MAIL.From=chenyl@hollycrm.com<br />
log4j.appender.MAIL.SMTPHost=mail.hollycrm.com<br />
log4j.appender.MAIL.Subject=Log4J Message<br />
log4j.appender.MAIL.To=chenyl@hollycrm.com<br />
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
<br />
<br />
########################<br />
# JDBC Appender 输出到数据库<br />
#######################<br />
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender<br />
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test<br />
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver<br />
log4j.appender.DATABASE.user=root<br />
log4j.appender.DATABASE.password=<br />
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')<br />
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
<br />
<br />
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender<br />
log4j.appender.A1.File=SampleMessages.log4j<br />
log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'<br />
log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout<br />
<br />
###################<br />
#自定义Appender<br />
###################<br />
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender<br />
log4j.appender.im.host = mail.cybercorlin.net<br />
log4j.appender.im.username = username<br />
log4j.appender.im.password = password<br />
log4j.appender.im.recipient = corlin@cybercorlin.net<br />
log4j.appender.im.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n<br />
<br />
参考：http://www.builder.com.cn/2008/0517/866964.shtml
<img src ="http://www.blogjava.net/hunter129/aggbug/201443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-05-19 17:31 <a href="http://www.blogjava.net/hunter129/archive/2008/05/19/201443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在不插网线的情况下启用网卡的TCP/IP协议</title><link>http://www.blogjava.net/hunter129/archive/2008/04/23/195063.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Wed, 23 Apr 2008 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/04/23/195063.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/195063.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/04/23/195063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/195063.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/195063.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当采用Windows&nbsp; &nbsp;2000/XP/2003系统的局域网用户拔掉连接本机网卡的网线时，或该用户的网卡与局域网中的网络设备没有正常连接时，桌面上的&#8220;任务栏&#8221;中会显示&#8220;本地连接，网络电缆没有插好&#8221;的提示。为什么<span class="t_tag" onclick="tagshow(event)" href="http://www.blogjava.net/CuteSoft_Client/CuteEditor/tag.php?name=Windows">Windows</span>系统能够自动检测出客户机与网络设备的连通情况呢？这是因为Windows&nbsp; &nbsp;2000/XP/2003系统中内置了&#8220;媒体感知（Media&nbsp; &nbsp;Sense）&#8221;功能。&nbsp;&nbsp;<br />
认清&#8220;媒体感知&#8221;功能&nbsp;&nbsp;<br />
　　对于一般的局域网用户来说，&#8220;媒体感知&#8221;功能确实起到了非常重要的作用。当网卡或网线出现问题时，客户机不能与局域网中的网络设备正常连通，这时&#8220;媒体感知&#8221;功能就能立刻检测出问题，并发出警告，方便了大家对网络的故障的排查。&nbsp;&nbsp;<br />
　　但大家在进行某些特殊的调试工作时，智能化的&#8220;媒体感知&#8221;功能反而会影响正常工作。&nbsp;&nbsp;<br />
　　例如程序员使用便携设备（如笔记本电脑）调试某些TCP/IP应用程序，而TCP/IP程序在测试过程中需要脱离局域网环境，程序员需要拔掉测试机器上的网线。这时聪明的&#8220;媒体感知&#8221;功能就立刻检测出本机和局域网设备没有正常连通，接着就会禁用捆绑在网卡上的某些网络协议，其中就包括TCP/IP协议。由于TCP/IP协议被禁用了，这样该TCP/IP应用程序就无法进行调试了，因此大家在某些特殊情况下必须禁用Windows系统的&#8220;媒体感知&#8221;功能。 &nbsp;&nbsp;<br />
　　提示：当网卡与网络设备没有正常连通时，&#8220;媒体感知&#8221;功能不会禁用所有的网络协议，如NetBEUI和IPX/SPX协议就不受影响，本机的环路测试也可正常进行。&nbsp;&nbsp;<br />
禁用&#8220;媒体感知&#8221;功能&nbsp;&nbsp;<br />
　　如何为TCP/IP协议禁用Windows系统内置的&#8220;媒体感知&#8221;功能呢？通过修改注册表就能实现。下面笔者以Windows&nbsp; &nbsp;XP系统为例，介绍实现&#8220;禁用&#8221;的方法。&nbsp;&nbsp;<br />
　　进入注册表编辑器，展开&#8220;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters&#8221;项，新建一个&#8220;DisableDHCPMediaSense&#8221;&nbsp;&nbsp;<br />
　　，<span class="t_tag" onclick="tagshow(event)" href="http://www.blogjava.net/CuteSoft_Client/CuteEditor/tag.php?name=%CA%FD%BE%DD">数据</span>类型为&#8220;DWORD值&#8221;，将该值设置为&#8220;1&#8221;。重新启动Windows&nbsp; &nbsp;XP系统后，就禁用了&#8220;媒体感知&#8221;功能。&nbsp;&nbsp;<br />
　　现在，即使拔掉网线，TCP/IP协议也不会被禁用，TCP/IP应用程序的调试工作可以照常进行。要想恢复&#8220;媒体感知&#8221;功能，也很简单，只要将注册表中&nbsp; &nbsp;&#8220;DisableDHCPMediaSense&#8221;的值修改为&#8220;0&#8221;，或者删除&#8220;DisableDHCPMediaSense&#8221;，重新启动<span class="t_tag" onclick="tagshow(event)" href="http://www.blogjava.net/CuteSoft_Client/CuteEditor/tag.php?name=%CF%B5%CD%B3">系统</span>即可。
<img src ="http://www.blogjava.net/hunter129/aggbug/195063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-04-23 13:54 <a href="http://www.blogjava.net/hunter129/archive/2008/04/23/195063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate延迟加载配置</title><link>http://www.blogjava.net/hunter129/archive/2008/04/18/193964.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Fri, 18 Apr 2008 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/04/18/193964.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/193964.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/04/18/193964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/193964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/193964.html</trackback:ping><description><![CDATA[<br />
由于Spring控制的Hibernate的生命周期只针对数据层和服务层，而未管理到表现层，所以在表现层使用延时加载会出现the owning Session was closed或者no session or session was closed的异常信息。针对这一点，可以通过hibernate filter的方式来解决。<br />
<br />
在WEB.xml文件中配置filter.<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;hibernate&nbsp;session&nbsp;filter&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">OpenSessionInViewFilter</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">OpenSessionInViewFilter</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">*.do</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter-mapping</span><span style="color: #0000ff;">&gt;</span></div>
我们的系统架构是struts+spring+hibernate，struts跟spring的整合是在struts-config.xml里加了个plugin<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">plug-in<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000;">className</span><span style="color: #0000ff;">="org.springframework.WEB.struts.ContextLoaderPlugIn"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">set-property&nbsp;</span><span style="color: #ff0000;">property</span><span style="color: #0000ff;">="contextConfigLocation"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000ff;">="/WEB-INF/classes/applicationContext.xml"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">plug-in</span><span style="color: #0000ff;">&gt;</span></div>
<br />
在WEB.xml中配置hibernateFilter 后，还需要在struts-config.xml里把plugin去掉，在WEB.xml里加上如下代码：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">Spring&nbsp;ApplicationContext</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">context-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">contextConfigLocation</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/WEB-INF/classes/applicationContext.xml</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">context-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">listener</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">listener-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.springframework.web.context.ContextLoaderListener<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">listener-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">listener</span><span style="color: #0000ff;">&gt;</span></div>
<br />
这样配置之后如果没有配置事务，是有问题的。不能进行update和insert操作了。<br />
怎么办呢？只需要在filter中加入一个参数<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp; &lt;</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">singleSession</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp; &lt;</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">true</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">param-value</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">init-param</span><span style="color: #0000ff;">&gt;</span></div>
就可以了，当然这样 每次访问dao都会新开个session，对性能的影响还是比较大的。最好的办法当然是配置事务了。<br />
<img src ="http://www.blogjava.net/hunter129/aggbug/193964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-04-18 10:12 <a href="http://www.blogjava.net/hunter129/archive/2008/04/18/193964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>介绍几个web开发工具</title><link>http://www.blogjava.net/hunter129/archive/2008/03/29/189548.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Sat, 29 Mar 2008 15:24:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/03/29/189548.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/189548.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/03/29/189548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/189548.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/189548.html</trackback:ping><description><![CDATA[做web开发总要有点像样的工具，下面就介绍一下我用到的工具。<br />
1.当然是浏览器，由于ie对插件的支持不好，而且对w3c的标准也支持不好。所以做web开发还是选择firfox吧。不过话说回来，国内目前ie浏览器的市场仍然占据绝对优势，所以在FF(firfox)中调试好的网页最好还是在拿回ie瞅瞅。<br />
2.接下来就是FF的各种插件啦，他们可都是我的好帮手。<br />
首先要说的是firebug,相信很多人都对他都很熟悉了。可以说是我见过的最好用的html、css和js调试工具了。提供了点选功能，可以很方便的查看网页上各个元素的css样式，并可以时时更改。js方面可以在js的控制台里面可以显示js的log，在应用中使用log4js产生日志就可以在这里看见了，可给js代码设置断点进行调试。还有一个script视图，可以查看当前页面的js对象。在net视图里面则可以看到各种资源加载的时间，方便性能调试。官方网站http://www.getfirebug.com/。firebug 还有一个插件YSlow（插件的插件？^_^） 是基于一下14条提高效率的原则来评价你的网页http://www.yahooapis.com/performance/index.html#rules YSlow的下载地址http://www.yahooapis.com/yslow/<br />
3.ColorZilla 颜色拾取器，不用多说，就是可以快速的获取web页面上颜色的rgb十六进制，方便web设计，看见别人的网站颜色好看，直接一点拿来己用，咔咔。还可方便的缩放页面。下载地址http://www.iosart.com/firefox/colorzilla/<br />
4.fasterfox&nbsp; 其实这个是个fiefox的性能优化器，不过它还可以计算网页整体的加载时间和清除ff的缓存。用来消除缓存的影响还是很有用地。地址： http://fasterfox.mozdev.org/<br />
5.说到缓存，下面这个可以查看ff的缓存并可进行搜索和排序 CacheViewer 地址：https://addons.mozilla.org/en-US/firefox/addon/2489<br />
6.IE Tab 可以在ff使用ie核心打开标签页，地址：https://addons.mozilla.org/en-US/firefox/addon/1419 <br />
<br czcolor-0="1" />
<img src ="http://www.blogjava.net/hunter129/aggbug/189548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-03-29 23:24 <a href="http://www.blogjava.net/hunter129/archive/2008/03/29/189548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate 映射 clob字段</title><link>http://www.blogjava.net/hunter129/archive/2008/01/28/178199.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Mon, 28 Jan 2008 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/01/28/178199.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/178199.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/01/28/178199.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/178199.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/178199.html</trackback:ping><description><![CDATA[<div id="postmessage_10575" class="t_msgfont">项目中用到 长文本作为内容 <br />
pojo中使用 string 类型 <span href="http://devmaster/dev/bbs/tag.php?name=%CA%FD%BE%DD%BF%E2" onclick="tagshow(event)" class="t_tag"><span href="http://devmaster/dev/bbs/tag.php?name=%CA%FD%BE%DD" onclick="tagshow(event)" class="t_tag">数据</span>库</span> oracle9i 用的的clob字段<br />
pojo:<code><br />
<br />
</code>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;String&nbsp;content;<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;setContent(String&nbsp;content){<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.content&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;content;<br />
}</span></div>
hibernate配置 <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="content"</span><span style="color: #ff0000;">&nbsp;column</span><span style="color: #0000ff;">="C_Content"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;">&nbsp;length</span><span style="color: #0000ff;">="10000"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">property</span><span style="color: #0000ff;">&gt;</span></div>
<br />
发现当content 字段的内容在 1000~2000 字符长度中间的时候出现 <span href="http://devmaster/dev/bbs/tag.php?name=sql" onclick="tagshow(event)" class="t_tag">sql</span><span href="http://devmaster/dev/bbs/tag.php?name=%B4%ED%CE%F3" onclick="tagshow(event)" class="t_tag">错误</span><br />
而文本长度小于1000 长于2000 都没有<span href="http://devmaster/dev/bbs/tag.php?name=%CE%CA%CC%E2" onclick="tagshow(event)" class="t_tag">问题</span>。<br />
问题：hibernate配置中length="10000"属性是做什么用的？我尝试过 将他配置成1000，5000，1w或者不配置 最后执行的结果都一样<br />
<br />
查<span href="http://devmaster/dev/bbs/tag.php?name=%D7%CA%C1%CF" onclick="tagshow(event)" class="t_tag">资料</span> google baidu。。。<br />
一般认为 length指定的是text的最大长度，这里显然不是<br />
又有认为 是将java中string 值当作clob处理的最小长度，也就是当string长度小于这个值的时候
当string处理，当string大于这个长度的时候当text(clob)处理。但是我将length设置为1000时，输入1k+文本
依然有sql错误。超过2000却没有问题。<br />
so..这两个都不是答案.<br />
又有人说，介个是<span href="http://devmaster/dev/bbs/tag.php?name=jdbc" onclick="tagshow(event)" class="t_tag">jdbc</span>的<span href="http://devmaster/dev/bbs/tag.php?name=bug" onclick="tagshow(event)" class="t_tag">bug</span> 换成10g的就米有问题了。遂尝试..未果，问题依旧。<br />
finally..这个length属性到底干嘛用 没搞清楚.. 抑或 不该这么配置？<br />
<br />
继续寻找，找到另外一种解决办法。可以通过spring来解决这个问题<br />
hibernate配置<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="content"</span><span style="color: #ff0000;">&nbsp;column</span><span style="color: #0000ff;">="C_Content"</span><span style="color: #ff0000;">&nbsp;type</span><span style="color: #0000ff;">="org.springframework.orm.hibernate3.support.ClobStringType"</span><span style="color: #ff0000;"> <br />
length</span><span style="color: #0000ff;">="10000"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">property</span><span style="color: #0000ff;">&gt;</span></div>
<br />
spring配置<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="oracleLobHandler"</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">="org.springframework.jdbc.support.lob.OracleLobHandler"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="nativeJdbcExtractor"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ref&nbsp;</span><span style="color: #ff0000;">local</span><span style="color: #0000ff;">="nativeJdbcExtractor"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">property</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp; <br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="nativeJdbcExtractor"</span><span style="color: #ff0000;">&nbsp;class</span><span style="color: #0000ff;">="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">&gt;</span></div>
上面2个bean是关键<br />
然后在sessionFactory的bean中加入<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">bean&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="sessionFactory"</span><span style="color: #ff0000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff;">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">property&nbsp;</span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="lobHandler"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">ref&nbsp;</span><span style="color: #ff0000;">bean</span><span style="color: #0000ff;">="oracleLobHandler"</span><span style="color: #ff0000;">&nbsp;</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">property</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;。。。其他<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">bean</span><span style="color: #0000ff;">&gt;</span></div>
<br />
<br />
问题解决，但是length="10000" 属性依然无用，可正常插入 任意长度的字符串<br />
但是这样的话 数据库就不能跨平台了..so 期待跨数据库平台的 方案~~</div>
<img src ="http://www.blogjava.net/hunter129/aggbug/178199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-01-28 15:48 <a href="http://www.blogjava.net/hunter129/archive/2008/01/28/178199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决oracle的xdb和tomcat的8080端口冲突问题</title><link>http://www.blogjava.net/hunter129/archive/2008/01/23/177355.html</link><dc:creator>落Nicety</dc:creator><author>落Nicety</author><pubDate>Wed, 23 Jan 2008 11:56:00 GMT</pubDate><guid>http://www.blogjava.net/hunter129/archive/2008/01/23/177355.html</guid><wfw:comment>http://www.blogjava.net/hunter129/comments/177355.html</wfw:comment><comments>http://www.blogjava.net/hunter129/archive/2008/01/23/177355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hunter129/comments/commentRss/177355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hunter129/services/trackbacks/177355.html</trackback:ping><description><![CDATA[tomcat与oracle xdb 的http服务都是使用8080端口，这个我们这些web开发人员带来了不少麻烦。<br />
解决xdb和tomcat的8080端口冲突问题<br />
1.改变xdb的http和ftp服务端口<br />
使用sys登录sqlplus<br />
sqlplus sys/syspassword as sysdba<br />
然后执行如下的脚本<br />
------------------------------<br />
--&nbsp; Change&nbsp; the&nbsp; HTTP/WEBDAV&nbsp; port&nbsp; from&nbsp; 8080&nbsp; to&nbsp; 8081<br />
call&nbsp; dbms_xdb.cfg_update(updateXML(<br />
&nbsp;&nbsp; dbms_xdb.cfg_get()<br />
&nbsp;&nbsp; ,&nbsp; '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'<br />
&nbsp;&nbsp; ,&nbsp; 8081))<br />
/<br />
--&nbsp; Change&nbsp; the&nbsp; FTP&nbsp; port&nbsp; from&nbsp; 2100&nbsp; to&nbsp; 2111<br />
call&nbsp; dbms_xdb.cfg_update(updateXML(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbms_xdb.cfg_get()<br />
&nbsp;&nbsp; ,&nbsp; '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'<br />
&nbsp;&nbsp; ,&nbsp; 2111))<br />
/<br />
COMMIT;<br />
EXEC&nbsp; dbms_xdb.cfg_refresh; <br />
<br />
2.当然是改变tomvat的端口啦~<br />
打开tomcat安装目录 /conf/server.xml 文件 将其中的所有服务端口都改了就ok了~~<br />
<br />
<br />
<img src ="http://www.blogjava.net/hunter129/aggbug/177355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hunter129/" target="_blank">落Nicety</a> 2008-01-23 19:56 <a href="http://www.blogjava.net/hunter129/archive/2008/01/23/177355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>