﻿<?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-同一个目标，同一个梦想</title><link>http://www.blogjava.net/J2EEHOME/</link><description>One Target,One Dream</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:01:42 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:01:42 GMT</pubDate><ttl>60</ttl><item><title>MySQL密码丢失解决和密码重置</title><link>http://www.blogjava.net/J2EEHOME/archive/2010/08/18/329283.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Wed, 18 Aug 2010 14:56:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2010/08/18/329283.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/329283.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2010/08/18/329283.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/329283.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/329283.html</trackback:ping><description><![CDATA[这个MySQL有点怪啊，突然间用原账号就登陆不上了（具体原因不详，有知道的告诉我）；所以决定修改下原密码。<br />1.停掉MySQL，然后用无权限验证的方式重新启动MySQL 命令：<br />Linux下，运行 /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &amp;<br />Windows下，在命令行下运行 X:/MySQL/bin/mysqld --skip-grant-tables<br />2.在命令行下用，mysql -u -root登陆<br />3.修改下密码吧，一位博主（<a href="http://blog.chinaunix.net/u/29134/showart_373855.html">http://blog.chinaunix.net/u/29134/showart_373855.html</a>）写的方法比较全，我就不罗嗦了。三种方法任何一个都行<br />新手在这个上往往容易范错误，导致不能进入MYSQL，整得非常郁闷。<br />我来做几个例子相信很快就明白了 。<br /><span style="COLOR: rgb(0,153,2)">1、原来的密码是123456</span><br /><span style="COLOR: rgb(0,1,255)">C:\&gt;type mysql5.bat</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">@echo off</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql -uroot -p123456 -P3306</span><br />正确的修改MYSQL用户密码的格式是：<br />我们这里用<br />用户：root（可以换成其他的）<br />密码：woshiduide<br />来演示新密码。 <br /><br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysqladmin -uroot -p password woshiduide</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">Enter password: ******</span><br />于是修改成功。<br />注意PASSWORD关键字后面的空格<br /><br />有好多人是这样修改的：<br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysqladmin -uroot -p password 'woshiduide'</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">Enter password: ******</span><br /><br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysqladmin -uroot -p password 'woshiduide'</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">Enter password: *********</span><br /><span style="COLOR: rgb(204,51,51)">Warning: single quotes were not trimmed from the password by your command</span><br style="COLOR: rgb(204,51,51)" /><span style="COLOR: rgb(204,51,51)">line client, as you might have expected.</span><br style="COLOR: rgb(204,51,51)" /><br />而这个时候真正的密码是'woshiduide'<br /><br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysql -uroot -p'woshiduide'</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Welcome to the MySQL monitor.  Commands end with ; or \g.</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Your MySQL connection id is 18</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Server version: 5.1.17-beta-community-nt-debug MySQL Community Server (GPL)</span><br style="COLOR: rgb(0,1,102)" /><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Type 'help;' or '\h' for help. Type '\c' to clear the buffer.</span><br style="COLOR: rgb(0,1,255)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt;</span><br /><br />而新手往往这样：<br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysql -uroot -pwoshiduide</span><br /><span style="COLOR: rgb(255,1,2)">ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y</span><br style="COLOR: rgb(255,1,2)" /><span style="COLOR: rgb(255,1,2)">ES)</span><br />所以非常郁闷，BAIDU、GOOGLE的搜了一大堆。<br /><br />我现在把密码改回去。<br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysqladmin -uroot -p'woshiduide' password 123456</span><br /><br /><span style="COLOR: rgb(0,153,2)">2、还有就是可以直接进入MYSQL，然后修改密码。</span><br /><br /><span style="COLOR: rgb(0,1,255)">mysql&gt; use mysql</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Database changed</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt; update user set PASSWORD = PASSWORD('woshiduide') where USER='root' and H</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">OST='localhost';</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Query OK, 1 row affected (0.05 sec)</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Rows matched: 1  Changed: 1  Warnings: 0</span><br style="COLOR: rgb(0,1,255)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt; flush privileges;</span><br style="COLOR: rgb(0,1,255)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt; exit</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Bye</span><br /><br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysql -uroot -pwoshiduide</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Welcome to the MySQL monitor.  Commands end with ; or \g.</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Your MySQL connection id is 23</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Server version: 5.1.17-beta-community-nt-debug MySQL Community Server (GPL)</span><br style="COLOR: rgb(0,1,102)" /><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Type 'help;' or '\h' for help. Type '\c' to clear the buffer.</span><br style="COLOR: rgb(0,1,255)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt;</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)"><span style="COLOR: rgb(0,1,102)">Query OK, 0 rows affected (0.02 sec)</span><br /><span style="COLOR: rgb(0,153,2)">3、还有一种就是用SET PASSWORD 命令修改：<br /><br /><span style="COLOR: rgb(0,1,255)">C:\&gt;mysql5.bat</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">Enter password: ******</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Welcome to the MySQL monitor.  Commands end with ; or \g.</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Your MySQL connection id is 8</span><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Server version: 5.1.17-beta-community-nt-debug-log MySQL Community Server (GPL)</span><br style="COLOR: rgb(0,1,102)" /><br style="COLOR: rgb(0,1,102)" /><span style="COLOR: rgb(0,1,102)">Type 'help;' or '\h' for help. Type '\c' to clear the buffer.</span><br style="COLOR: rgb(0,1,102)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt; set password for root@'localhost' = password('woshiduide');</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Query OK, 0 rows affected (0.02 sec)</span><br style="COLOR: rgb(0,1,255)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt; flush privileges;</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Query OK, 0 rows affected (0.09 sec)</span><br style="COLOR: rgb(0,1,255)" /><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,255)">mysql&gt; exit</span><br style="COLOR: rgb(0,1,255)" /><span style="COLOR: rgb(0,1,102)">Bye</span><br />4、GRANT 也可以，不过这里不介绍。因为涉及到权限的问题。<br /></span></span><img src ="http://www.blogjava.net/J2EEHOME/aggbug/329283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2010-08-18 22:56 <a href="http://www.blogjava.net/J2EEHOME/archive/2010/08/18/329283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java接口和抽象类的区别</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/11/30/304305.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Mon, 30 Nov 2009 11:46:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/11/30/304305.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/304305.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/11/30/304305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/304305.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/304305.html</trackback:ping><description><![CDATA[
		<p>java接口和抽象类的区别 收藏 <br />简单来说， 接口是公开的，里面不能有私有的方法或变量，是用于让别人使用的，而抽象类是可以有私有方法或私有变量的，另外，实现接口的一定要实现接口里定义的所有方法，而实现抽象类可以有选择地重写需要用到的方法。<br />一般的应用里，最顶级的是接口，然后是抽象类实现接口，最后才到具体类实现。<br />还有，接口可以实现多重继承，而一个类只能继承一个超类，但可以通过继承多个接口实现多重继承，接口还有标识（里面没有任何方法，如Remote接口）和数据共享（里面的变量全是常量）的作用. </p>
		<p>1.abstract class 在 Java 语言中表示的是一种继承关系，一个类只能使用一次继承关系。但是，一个类却可以实现多个interface.<br />2.在abstract class 中可以有自己的数据成员，也可以有非abstarct的成员方法，而在interface中，只能够有静态的不能被修改的数据成员（也就是必须是 static final的，不过在 interface中一般不定义数据成员），所有的成员方法都是abstract的。<br />3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系，interface表示的是"like-a"关系。<br />4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。<br />5.接口中定义的变量默认是public static final 型，且必须给其初值，所以实现类中不能重新定义，也不能改变其值。<br />6.抽象类中的变量默认是 friendly 型，其值可以在子类中重新定义，也可以重新赋值。<br />7.接口中的方法默认都是 public，abstract 类型的。</p>
		<p>
				<br />本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/lpdb2001/archive/2008/08/04/2765595.aspx">http://blog.csdn.net/lpdb2001/archive/2008/08/04/2765595.aspx</a></p>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/304305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-11-30 19:46 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/11/30/304305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window.open()的所有参数列表</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/08/26/292627.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Wed, 26 Aug 2009 04:05:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/08/26/292627.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/292627.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/08/26/292627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/292627.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/292627.html</trackback:ping><description><![CDATA[
		<table height="2694" width="100%">
				<tbody>
						<tr>
								<td>前言:经常上网的朋友可能会到过这样一些网站，一进入首页立刻会弹出一个窗口，或者按一个连接或按钮弹出，通常在这个窗口里会显示一些注意事项、版权信息 、警告、欢迎光顾之类的话或者作者想要特别提示的信息。其实制作这样的页面效果非常的容易，只要往该页面的HTML里加入几段Javascript代码即可实现。下面我就带您剖析它的奥秘。 <br /><br /></td>
						</tr>
						<tr>
								<td>　 【1、最基本的弹出窗口代码】</td>
						</tr>
						<tr>
								<td>
										<div align="left">　　<br />　　&lt;SCRIPT LANGUAGE="javascript"&gt; <br />　　&lt;!-- <br />　　window.open ('page.html') <br />　　--&gt; <br />　　&lt;/SCRIPT&gt; <br />　　<br />　　因为着是一段javascripts代码，所以它们应该放在&lt;SCRIPT LANGUAGE="javascript"&gt;标签和&lt;/script&gt;之间。&lt;!-- 和 --&gt;是对一些版本低的浏览器起作用，在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。window.open ('page.html') 用于控制弹出新的窗口page.html，如果page.html不与主窗口在同一路径下，前面应写明路径，绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以，只是不要混用。这一段代码可以加入HTML的任意位置，&lt;head&gt;和&lt;/head&gt;之间可以，&lt;body&gt;间&lt;/body&gt;也可以，越前越早执行，尤其是页面代码长，又想使页面早点弹出就尽量往前放。</div>
								</td>
						</tr>
						<tr>
								<td>　 </td>
						</tr>
						<tr>
								<td>　 【2、经过设置后的弹出窗口】</td>
						</tr>
						<tr>
								<td>　　<br />　　下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。 我们来定制这个弹出的窗口的外观，尺寸大小，弹出的位置以适应该页面的具体情况。</td>
						</tr>
						<tr>
								<td>　　<br />　　&lt;SCRIPT LANGUAGE="javascript"&gt; <br />　　&lt;!-- <br />　　window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行<br />　　--&gt; <br />　　&lt;/SCRIPT&gt; </td>
						</tr>
						<tr>
								<td>
										<p>　　<br />　　参数解释： <br />　　<br />　　&lt;SCRIPT LANGUAGE="javascript"&gt; js脚本开始； <br />　　window.open 弹出新窗口的命令； <br />　　'page.html' 弹出窗口的文件名； <br />　　'newwindow' 弹出窗口的名字（不是文件名），非必须，可用空''代替； <br />　　height=100 窗口高度； <br />　　width=400 窗口宽度； <br />　　top=0 窗口距离屏幕上方的象素值； <br />　　left=0 窗口距离屏幕左侧的象素值； <br />　　toolbar=no 是否显示工具栏，yes为显示； <br />　　menubar，scrollbars 表示菜单栏和滚动栏。 <br />　　resizable=no 是否允许改变窗口大小，yes为允许； <br />　　location=no 是否显示地址栏，yes为允许； <br />　　status=no 是否显示状态栏内的信息（通常是文件已经打开），yes为允许； <br />　　&lt;/SCRIPT&gt; js脚本结束</p>
								</td>
						</tr>
						<tr>
								<td>　　 </td>
						</tr>
						<tr>
								<td>　 【3、用函数控制弹出窗口】</td>
						</tr>
						<tr>
								<td>
										<p>　　<br />　　下面是一个完整的代码。 <br />　　&lt;html&gt; <br />　　&lt;head&gt; <br />　　&lt;script LANGUAGE="JavaScript"&gt; <br />　　&lt;!-- <br />　　function openwin() { <br />　　window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行<br />　　} <br />　　//--&gt; <br />　　&lt;/script&gt; <br />　　&lt;/head&gt; <br />　　&lt;body onload="openwin()"&gt; <br />　　任意的页面内容... <br />　　&lt;/body&gt; <br />　　&lt;/html&gt; </p>
										<p>　　这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢？ <br /><br />　　方法一：&lt;body onload="openwin()"&gt; 浏览器读页面时弹出窗口； <br />　　方法二：&lt;body onunload="openwin()"&gt; 浏览器离开页面时弹出窗口； <br />　　方法三：用一个连接调用： <br />　　&lt;a href="#" onclick="openwin()"&gt;打开一个窗口&lt;/a&gt; <br />　　注意：使用的“#”是虚连接。 <br />　　方法四：用一个按钮调用： <br />　　&lt;input type="button" onclick="openwin()" value="打开窗口"&gt; </p>
								</td>
						</tr>
						<tr>
								<td height="27">　 <br />　 </td>
						</tr>
						<tr>
								<td>　 【4、同时弹出2个窗口】</td>
						</tr>
						<tr>
								<td>　　<br />　　 对源代码稍微改动一下： <br />　　<br />　　&lt;script LANGUAGE="JavaScript"&gt; <br />　　&lt;!-- <br />　　function openwin() { <br />　　window.open ("page.html", "newwindow", "height=100, width=100, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")//写成一行 <br />　　window.open ("page2.html", "newwindow2", "height=100, width=100, top=1 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca tion=no, status=no")//写成一行 <br />　　} <br />　　//--&gt; <br />　　&lt;/script&gt;<br />　　为避免弹出的2个窗口覆盖，用top和left控制一下弹出的位置不要相互覆盖即可 。最后用上面说过的四种方法调用即可。 <br />　　注意：2个窗口的name(newwindows和newwindow2)不要相同，或者干脆全部为空。 </td>
						</tr>
						<tr>
								<td> </td>
						</tr>
						<tr>
								<td>　 【5、主窗口打开文件1.htm，同时弹出小窗口page.html】</td>
						</tr>
						<tr>
								<td>
										<br />　　如下代码加入主窗口&lt;head&gt;区： 
<p>　　&lt;script language="javascript"&gt; <br />　　&lt;!-- <br />　　function openwin() { <br />　　window.open("page.html","","width=200,height=200") <br />　　} <br />　　//--&gt; <br />　　&lt;/script&gt; <br />　　加入&lt;body&gt;区： <br />　　&lt;a href="1.htm" onclick="openwin()"&gt;open&lt;/a&gt;即可。 </p></td>
						</tr>
						<tr>
								<td> </td>
						</tr>
						<tr>
								<td>　 【6、弹出的窗口之定时关闭控制】</td>
						</tr>
						<tr>
								<td>　　<br />　　下面我们再对弹出的窗口进行一些控制，效果就更好了。如果我们再将一小段 代码加入弹出的页面(注意是加入page.html的HTML中，可不是主页面中，否则 ...)，让它10秒后自动关闭是不是更酷了？ <br />首先，将如下代码加入page.html文件的&lt;head&gt;区： <br />　　&lt;script language="JavaScript"&gt; <br />　　function closeit() <br />　　{ <br />　　setTimeout("self.close()",10000) //毫秒 <br />　　} <br />　　&lt;/script&gt; <br />　　然后，再用&lt;body onload="closeit()"&gt; 这一句话代替page.html中原有的&lt;BODY&gt;这一句就可以了。(这一句话千万不要忘记写啊！这一句的作用是调用关闭窗 口的代码，10秒钟后就自行关闭该窗口。) 
<p>　 【7、在弹出窗口中加上一个关闭按钮】 <br /><br />　　&lt;FORM&gt; <br />　　&lt;INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'&gt; <br />　　&lt;/FORM&gt; <br />　　呵呵，现在更加完美了！<br /><br />　 【8、内包含的弹出窗口-一个页面两个窗口】 </p><p>　　上面的例子都包含两个窗口，一个是主窗口，另一个是弹出的小窗口。通过下面的例子，你可以在一个页面内完成上面的效果。 <br /></p><p>　　&lt;html&gt; <br />　　&lt;head&gt; <br />　　&lt;SCRIPT LANGUAGE="JavaScript"&gt; <br />　　function openwin() <br />　　{ <br />　　OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no ,scrollbars="+scroll+",menubar=no"); <br />　　//写成一行 <br />　　OpenWindow.document.write("&lt;TITLE&gt;例子&lt;/TITLE&gt;") <br />　　OpenWindow.document.write("&lt;BODY BGCOLOR=#ffffff&gt;") <br />　　OpenWindow.document.write("&lt;h1&gt;Hello!&lt;/h1&gt;") <br />　　OpenWindow.document.write("New window opened!") <br />　　OpenWindow.document.write("&lt;/BODY&gt;") <br />　　OpenWindow.document.write("&lt;/HTML&gt;") <br />　　OpenWindow.document.close() <br />　　} <br />　　&lt;/SCRIPT&gt; <br />　　&lt;/head&gt; <br />　　&lt;body&gt; <br />　　&lt;a href="#" onclick="openwin()"&gt;打开一个窗口&lt;/a&gt; <br />　　&lt;input type="button" onclick="openwin()" value="打开窗口"&gt; <br />　　&lt;/body&gt; <br />　　&lt;/html&gt; </p><p>　　看看OpenWindow.document.write()里面的代码不就是标准的HTML吗？只要按照 格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用 OpenWindow.document.close()结束啊。 </p><p>　 【9、终极应用--弹出的窗口之Cookie控制】 </p><p>　　回想一下，上面的弹出窗口虽然酷，但是有一点小毛病(沉浸在喜悦之中，一定 没有发现吧？)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页)，那么每次刷新这个页面，窗口都会弹出一次，是不是非常烦人？:-(<br />　　有解决的办法吗？Yes! ;-) Follow me.我们使用cookie来控制一下就可以了。 <br />　　首先，将如下代码加入主页面HTML的&lt;HEAD&gt;区： </p><p>　　&lt;script&gt; <br />　　function openwin(){ <br />　　window.open("page.html","","width=200,height=200") <br />　　} <br />　　function get_cookie(Name) { <br />　　var search = Name + "=" <br />　　var returnvalue = ""; <br />　　if (document.cookie.length &gt; 0) { <br />　　offset = document.cookie.indexOf(search) <br />　　if (offset != -1) { <br />　　offset += search.length <br />　　end = document.cookie.indexOf(";", offset); <br />　　if (end == -1) <br />　　end = document.cookie.length; <br />　　returnvalue=unescape(document.cookie.substring(offset, end)) <br />　　} <br />　　} <br />　　return returnvalue; <br />　　} 　<br />　　function loadpopup(){ <br />　　if (get_cookie('popped')==''){ <br />　　openwin() <br />　　document.cookie="popped=yes" <br />　　} <br />　　} <br />　　&lt;/script&gt; </p><p>　　然后，用&lt;body onload="loadpopup()"&gt;（注意不是openwin而是loadpop啊！）替换主页面中原有的&lt;BODY&gt;这一句即可。你可以试着刷新一下这个页面或重新进 入该页面，窗口再也不会弹出了。真正的Pop-Only-Once！ </p><p>　　写到这里弹出窗口的制作和应用技巧基本上算是完成了</p></td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/292627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-08-26 12:05 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/08/26/292627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第三次Apache tomcat集群总结</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/08/04/289826.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Tue, 04 Aug 2009 10:32:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/08/04/289826.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/289826.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/08/04/289826.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/289826.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/289826.html</trackback:ping><description><![CDATA[
		<p style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan" class="MsoNormal" align="left">
				<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">    </span>
				<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">第一次做集群时架好后在启动<span lang="EN-US">tomcat</span>时报了一大堆错误：内存溢出呗。我就纳闷了怎么会出现这样错误，服务器配置是<span lang="EN-US">4G</span>内存，查了一通资料，发现原来<span lang="EN-US">tomcat</span>在启动时要加载已经编译好的<span lang="EN-US">.class</span>文件，默认内存区大小为<span lang="EN-US">128M</span>，如果文件较多，这个错误也是必然的。咋办？调内存呗，我的几个<span lang="EN-US">tomcat</span>都是以服务形式安装的，整得我要改注册表，就改这个地方，HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat62\Parameters\Java<br />然后调整里边<span lang="EN-US">JavaMs</span>和<span lang="EN-US">JavaMx</span>的值，前者表示运行时加载的最小内存，后者表示可利用的最大内存，单位是<span lang="EN-US">M</span>，要换到十进制下去改。这个问题搞了三个周才找到解决办法，第一次就败在此处！<span lang="EN-US"><br />    </span>第二次什么错误是其中一台机器上<span lang="EN-US">tomcat</span>启动报错<span lang="EN-US">Unable to start cluster. org.apache.catalina.tribes.ChannelException: java.net.SocketException: error set ting options; No faulty members identified. </span>，搞了一天没有找到解决办法，弃之；那位仁兄如果有解决办法欢迎赐教！<span lang="EN-US"><br />    </span>第三次集群方式和前两次没什么区别，都是采用<span lang="EN-US">http_proxy</span>形式作为<span lang="EN-US">Apache</span>和<span lang="EN-US">tomcat</span>之间连接的桥梁，这次把成功的配置详细的说明下：<span lang="EN-US"><br />1.</span>去掉<span lang="EN-US">apache</span>中<span lang="EN-US">httpd.conf</span>目录中以下几行的注释<span lang="EN-US"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></span>
		</p>
		<table style="WIDTH: 375pt; mso-cellspacing: 1.5pt; mso-padding-alt: 1.5pt 1.5pt 1.5pt 1.5pt" class="MsoNormalTable" border="0" cellpadding="0" width="500">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
								<td style="BORDER-BOTTOM: #d4d0c8; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 1.5pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 1.5pt; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: #d4d0c8; PADDING-TOP: 1.5pt">
										<p style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan" class="MsoNormal" align="left">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">#change here start <br />LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so<o:p></o:p></span>
										</p>
										<p style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan" class="MsoNormal" align="left">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US"> #end<o:p></o:p></span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: #d4d0c8; BORDER-LEFT: #d4d0c8; PADDING-BOTTOM: 1.5pt; BACKGROUND-COLOR: transparent; PADDING-LEFT: 1.5pt; PADDING-RIGHT: 1.5pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: #d4d0c8; PADDING-TOP: 1.5pt">
										<p style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan" class="MsoNormal" align="left">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US"># Virtual hosts <o:p></o:p></span>
										</p>
										<p style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt; mso-pagination: widow-orphan" class="MsoNormal" align="left">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US"># change here two step</span>
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">就是去掉了注释，主要用于配置虚拟机文件<span lang="EN-US"><br />Include conf/extra/httpd-vhosts.conf <o:p></o:p></span></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">2.</span>
				<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">在<span lang="EN-US">httpd.conf</span>最下边加上这些东东<span lang="EN-US"><br style="mso-special-character: line-break" /><br style="mso-special-character: line-break" /><o:p></o:p></span></span>
		</p>
		<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">ProxyRequests Off <o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;proxy balancer://cluster&gt; <o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">BalancerMember ajp://192.168.0.22:9001 loadfactor=1 route=jvm3<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">BalancerMember ajp://192.168.0.22:9003 loadfactor=1 route=jvm4<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">BalancerMember ajp://192.168.0.22:9090 loadfactor=1 route=jvm5<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;/proxy&gt;<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">ProxyRequests Off <o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;proxy balancer://cluster2&gt; <o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">BalancerMember ajp://192.168.0.1:8009 loadfactor=1 route=jvm1<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;/proxy&gt;<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">
														<o:p> </o:p>
												</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">ProxyRequests Off <o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;proxy balancer://cluster3&gt; <o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">BalancerMember ajp://192.168.0.1:9009 loadfactor=1 route=jvm2<o:p></o:p></span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;/proxy&gt;<o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">
						<br />
				</span>
				<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">具体什么意思就不说了，第一行表格是做集群用，下边两个仅作为负载均衡之用，可以说就没均衡负载，为啥？就一个<span lang="EN-US">tomcat</span>你做什么负载啊，呵呵。重点关注这里</span>
		</p>
		<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span style="FONT-FAMILY: 宋体; FONT-SIZE: 12pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体" lang="EN-US">&lt;proxy balancer://cluster2&gt; <o:p></o:p></span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span lang="EN-US">Cluster2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">才是关键所在，他表示了你的站点要在那个群集内做负载均衡或者集群，我们这里用到了集群和负载均衡，其实就是一回事说白了，上</span>
				<span lang="EN-US">cluster</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做集群，</span>
				<span lang="EN-US">cluster2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">cluster3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">仅做负载均衡之用，不做</span>
				<span lang="EN-US">session</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">复制和绘画保持。</span>
		</p>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span lang="EN-US">2</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下边我们看下</span>
				<span lang="EN-US">extra</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">目录中</span>
				<span lang="EN-US">httpd-vhosts.conf</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件的修改吧</span>
		</p>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上边说的</span>
				<span lang="EN-US">cluster,cluster2,cluster3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为例各配置一个虚拟机</span>
		</p>
		<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;VirtualHost *:80&gt;</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-tab-count: 1">       </span>
														<span style="mso-spacerun: yes"> </span>ServerAdmin cxccma@163.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-tab-count: 1">       </span>
														<span style="mso-spacerun: yes"> </span>ServerName *****.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-tab-count: 1">       </span>
														<span style="mso-spacerun: yes"> </span>ServerAlias www.*****.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ProxyPassReverse / balancer://cluster/</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;/VirtualHost&gt;</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 1">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;VirtualHost *:80&gt;</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ServerAdmin cxccma@163.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ServerName *****.cn</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ServerAlias www. *****.cn</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ProxyPass / balancer://cluster2/ </span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ProxyPassReverse / balancer://cluster2/</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;/VirtualHost&gt;</span>
										</p>
								</td>
						</tr>
						<tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;VirtualHost *:80&gt;</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ServerAdmin cxccma@163.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ServerName *****.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ServerAlias www. *****.com</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ProxyPass / balancer://cluster3/ </span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>ProxyPassReverse / balancer://cluster3/</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;/VirtualHost&gt;</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上明白了，就是说是三个站点分别在不同的群集内，为什么要这样做？主要是因为我们前期用的是</span>
				<span lang="EN-US">tomcat5.5</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本的，后期开发中友用到了</span>
				<span lang="EN-US">6.x</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本的，所以整了两个群集以兼容前期和后期的站点，当然如果你需要在</span>
				<span lang="EN-US">cluster2,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者</span>
				<span lang="EN-US">cluster3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中再加一台</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">做负载均衡用</span>
				<span lang="EN-US">,OK,</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很简单，直接复制下就可以</span>
		</p>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span lang="EN-US">3.apache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">说完了，接下来说下</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">吧</span>
		</p>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span lang="EN-US">Tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中不用做什么大的改动，首先在</span>
				<span lang="EN-US">server.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中部署你的虚拟主机啊</span>
		</p>
		<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;Host name="www.******.com" appBase="webapps"</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">    </span>
														<span style="mso-spacerun: yes">   </span>unpackWARs="true" autoDeploy="true"</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">       </span>xmlValidation="false" xmlNamespaceAware="false"&gt;</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">               </span>&lt;Context path="" docBase="D:\lejie"</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">         </span>debug= "0" reloadable="false" crossContext="false" verbosity="DEBUG"&gt;</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">
														<span style="mso-spacerun: yes">     </span>&lt;/Context&gt;</span>
										</p>
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt;/Host&gt;</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span lang="EN-US">OK</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如果需要做全局集群，那就修改</span>
				<span lang="EN-US">content.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中</span>
				<span lang="EN-US">Context</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">元素，加上这句就行</span>
		</p>
		<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">distributable="true"</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者在单独的文件中的</span>
				<span lang="EN-US">web.xml</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件中加入这句话</span>
		</p>
		<table style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0">
				<tbody>
						<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
								<td style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 426.1pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid windowtext .5pt" valign="top" width="568">
										<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
												<span lang="EN-US">&lt; distributable/&gt;</span>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到这应该都说完了吧，谈下个人的想法：</span>
				<span lang="EN-US">apache</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">tomcat</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有三种连接方法：</span>
				<span lang="EN-US">JK</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">mod_proxy,http_proxy</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，前两者的配置都是超繁琐，在可维护性和模块化上也没什么优点，我一直用第三种连接方法，采用</span>
				<span lang="EN-US">AJP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">直连，</span>
				<span lang="EN-US">AJP1.3</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在连接上表现出明显的优点，所以我也建议采用第三种连接。</span>
		</p>
		<p style="MARGIN: 0cm 0cm 0pt" class="MsoNormal">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">算是一个工作总结吧，欢迎各位不吝赐教！如果有什么疑问请通过以下方式联系本人</span>
		</p>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/289826.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-08-04 18:32 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/08/04/289826.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL查询优化讲座之管理员的优化措施</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/07/09/286012.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Thu, 09 Jul 2009 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/07/09/286012.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/286012.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/07/09/286012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/286012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/286012.html</trackback:ping><description><![CDATA[MySQL用户能够执行的。可以控制MySQL服务器或计算机的系统管理员能够执行额外的优化措施。例如，有些服务器参数附属于查询处理过程，并且是可以调整的，而且某些硬件配置因素对查询处理速度有直接的影响。在很多情况下，这些优化措施提高了整个服务器的性能，因此可以让所有的MySQL用户都受益。<br />
<br />
　　一般来说，当你执行管理员优化的时候，应该紧记以下规则：<br />
<br />
　　&#183; 访问内存中的数据快于访问磁盘上的数据。<br />
<br />
　　&#183; 尽量把数据保存在内存中可以减少磁盘操作。<br />
<br />
　　&#183; 保留索引中的信息比保留数据记录的内容更重要。<br />
<br />
　　我们在后面将讨论如何应用这些规则。<br />
<br />
　　增加服务器缓存的大小。服务器拥有很多参数（系统变量），你可以改变这些参数来影响服务器的操作。其中的几个参数直接地影响查询处理的速度。你可以改变的最重要的参数是数据表缓存的大小和存储引擎用于缓冲索引操作信息的缓存大小。如果你拥有可用的内存，就把它分配给服务器的缓存，以允许信息存储在内存中并减少磁盘操作。这会有很好的效果，因为访问内存中的信息比从磁盘读取信息的速度快得多。<br />
<br />
　　&#183; 当服务器打开表文件的时候，它试图保持这些文件的打开状态，以减少打开文件操作的数量。为了实现这样的功能，它在表缓存中维护打开文件的信息。table_cache系统变量控制着这个缓存的大小。如果服务器访问了大量的表，表缓存就会被填满，并且服务器会关闭那些有一段时间没有使用的表，为打开新表留出空间。你可以通过检查Opened_tables状态指示器来访问表缓存的效果：<br />
<br />
SHOW STATUS LIKE &#8217;Opened_tables&#8217;;<br />
<br />
　　Opened_tables显示了某个数据表必须打开的次数（因为它还没有打开）。这个值也显示为mysqladmin状态命令的输出信息中的Opens值。如果这个数字是稳定的或缓慢增长，那么它的设置可能是正确的。如果这个数字增长得很快，就意味着这个缓存太小了，必须经常关闭数据表来为打开其它的数据表留出空间。如果你拥有文件描述信息，增加表缓存大小将减少数据表打开操作的数量。<br />
<br />
　　&#183; MyISAM存储引擎使用键缓冲来保持与索引相关的操作的索引信息块。它的大小是由key_buffer_size系统变量控制的。这个值越大，MySQL就一次性在内存中保持更多的索引信息块，可以增加在内存中（而不用从磁盘上读取新的信息块）找到键值的可能性。键缓存的默认大小是8MB。如果你拥有很多的内存，这是一个很保守的值，你可以直接增加它的大小，并且会看到基于索引的检索、索引的建立和修改操作的性能有很大改善。<br />
<br />
　　在MySQL 4.1以上版本中，你可以为MyISAM数据表建立附加的键缓存，并指定某些表使用它们。这样可以帮助提高这些数据表上的查询处理速度。<br />
<br />
　　&#183; InnoDB和BDB引擎拥有自己的用于缓冲数据和索引值的缓存。它们的大小是由innodb_buffer_pool_size和bdb_cache_size变量控制的。InnoDB引擎还维护了一个日志缓冲。innodb_log_buffer_size变量可以控制它的大小。<br />
<br />
　　&#183; 另一个专用的缓存是查询缓存，我们在"使用查询缓存"部分中解释。<br />
<br />
　　当你改变这些参数值的时候，应该遵循下面一些原则：<br />
<br />
　　&#183; 每次只改变一个参数。如果你一次改变多个相互独立的变量，那么就很难评估每种改变的效果了。<br />
<br />
　　&#183; 逐渐地增加系统变量值。根据理论，数量越多，性能越好，但是如果你使某个变量变得太大了，有可能造成系统资源匮乏，导致逆向效果，降低速度。<br />
<br />
　　&#183; 不要在运行业务MySQL数据库的服务器上做调整参数的实验，最好建立一个独立的测试服务器。<br />
<br />
　　&#183; 为了大致了解哪种参数变量可能适合自己的系统，你可以查看MySQL发布文档中包含的<a class="bluekey" href="http://www.yesky.com/key/3948/3948.html" target="_blank" rel="nofollow">my</a>-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf选项文件（在Unix系统上，你可以在源发布文件的支持文件目录和二进制发布文件的共享目录总找到这些文件。在Windows上，它们位于基本的安装目录中，其扩展名可能是.<a class="bluekey" href="http://www.yesky.com/key/3903/593903.html" target="_blank" rel="nofollow">ini</a>）。这些文件可能让你知道最好改变服务器上的那些参数以适应不同的使用层次，并且为这些参数提供了一些典型值。<br />
<br />
　　用于提高服务器的操作性能的其它一些策略还包括：<br />
<br />
　　禁止不需要的存储引擎。服务器不会为禁止的引擎分配任何内存，因此我们可以利用这一点。如果从源文件建立MySQL，那么在配置的时候，大多数存储引擎就可以被排除在服务器之外。对于那些包含在服务器中的引擎来说，使用适当的<a class="bluekey" href="http://www.yesky.com/key/3163/463163.html" target="_blank" rel="nofollow">启动选项</a>可以在运行时禁止其中的大多数。<br />
保持授权表许可的简单性。尽管服务器在内存中缓存了授权表内容，但是如果你在tables_priv或columns_priv表中有一些数据行的话，服务器就必须为每个查询语句检查表层次和列层次的权限。如果这些表是空的，那么服务器就能优化自己的权限检查过程，略过这些层次。<br />
<br />
　　如果你从源文件建立MySQL，那么就把它配置为使用静态类库，而不要使用共享类库。使用共享类库的动态二进制文件节约磁盘空间，然而静态二进制文件速度更快。但是，如果你使用了用户自定义函数（UDF）机制，那么有些系统要求使用动态链接。在这类系统上，静态二进制文件不能工作。<br />
<br />
　　<strong>使用MyISAM键缓存</strong><br />
<br />
　　当MySQL执行某个利用了MyISAM数据表索引的语句的时候，它会使用键缓存来保持索引值。这种缓存减少了磁盘I/O：如果在缓存中找到了某个数据表需要的键值，就不需要再次从磁盘中读取。不幸的是，这种键缓存是有限的，并且在默认情况下，它是所有的MyISAM数据表共享使用的。如果在键缓存中没有找到键值并且键缓存是满的，争用将会导致：必须丢弃缓存中的某些值，为新值留出空间。如果下次需要那些已经被丢弃的值，就必须再次从磁盘上读取。<br />
<br />
　　如果你很倚重MyISAM数据表，那么把它的键保存在内存中效果会很好，但是缓存中的争用却会导致相反的效果。从同一张表或不同的表读取数据都可能引起争用。你可以通过把键缓存设置成足以保存某个特定数据表的全部索引，从而避免同一张数据表的争用，但是其它数据表的键仍然需要争用缓存空间。<br />
<br />
　　MySQL 4.1以上版本为这个问题提供了一种解决方案：它支持我们建立多个键缓存，并允许我们把某张数据表的索引指定并且预先装入某个缓存。如果你的数据表使用得很频繁，并且你有足够的内存，能够把它的索引载入缓存中，那么这种操作就是有用的。这种能力允许你同时避免同一张表和不同的表的争用：建立一个足够大的缓存，让它保存数据表的全部索引，并且指定该缓存专门用于那张数据表。在键被载入缓存之后，不在需要磁盘I/O操作。同时，键值永远不会被丢弃，对数据表的键的查看操作可以在内存中完成。<br />
<br />
　　下面的例子显示了如何为sampdb数据库的member数据表建立一个键缓存，该缓存的名称是member_cache，大小为1MB。执行这些指令的时候，你必须有超级（SUPER）权限。<br />
<br />
　　1.建立一个足够容纳数据表索引的独立的缓存：<br />
<br />
mysql&gt; SET GLOBAL member_cache.key_buffer_size = 1024*1024;<br />
<br />
　　2.给数据表指定键缓存：<br />
<br />
mysql&gt; CACHE INDEX member IN member_cache;<br />
+---------------+--------------------+----------+----------+<br />
| Table | <a class="bluekey" href="http://www.yesky.com/key/3115/563115.html" target="_blank" rel="nofollow">Op</a> | Msg_type | Msg_text |<br />
+---------------+--------------------+----------+----------+<br />
| sampdb.member | assign_to_keycache | status | OK |<br />
+---------------+--------------------+----------+----------+<br />
<br />
　　3.把数据表索引预先读入它的键缓存中：<br />
<br />
mysql&gt; LOAD INDEX INTO CACHE member;<br />
+---------------+--------------+----------+----------+<br />
| Table | Op | Msg_type | Msg_text |<br />
+---------------+--------------+----------+----------+<br />
| sampdb.member | preload_keys | status | OK |+---------------+--------------+----------+----------+<br />
<br />
　　如果你希望把其它的数据表载入同一个缓存中，或者为其它的数据表建立键缓存，上面的操作就足够了。<br />
<div class="guanggao"></div>
<div class="guanggao"></div>
　　<strong>使用查询缓存</strong><br />
<br />
　　MySQL服务器可以使用查询缓存来提高那些重复执行的SELECT语句的处理速度。它对性能的提高通常都是惊人的。查询缓存的工作方式如下所示：<br />
<br />
　　&#183; 第一次执行某条SELECT语句的时候，服务器记住该查询的文本内容和它返回的结果。<br />
<br />
　　&#183; 服务器下一次碰到这个语句的时候，它不会再次执行该语句。作为代替，它直接从查询缓存中的得到结果并把结果返回给客户端。<br />
<br />
　　&#183; 查询缓存是基于服务器所接收到的查询字符串的文本内容的。如果某些查询的文本完全相同，那些它就认为这些查询是相同的。如果某些查询的字符不同，或者来自那些使用了不同的字符集或通讯协议的客户端，那么它会认为这些查询是不同的。同样，如果某些查询采用其它的功能相当、但是实际上没有指向相同的数据表（例如引用了不同的数据库中的同名数据表），那么它们也是不同的。<br />
<br />
　　&#183; 当数据表被更新了之后，涉及到该数据表的任何缓存查询都变成无效的，并且会被丢弃。这可以防止服务器返回过期的结果。<br />
<br />
　　在默认情况下，MySQL对查询缓存的支持是内建的。如果你不希望使用这种缓存，并且想避免它所导致的性能开销，可以使用--without-query-cache选项来运行配置脚本建立服务器。<br />
<br />
　　如果需要检测某个服务器是否支持查询缓存，可以检查它的have_query_cache系统变量：<br />
<br />
mysql&gt; SHOW VARIABLES LIKE &#8217;have_query_cache&#8217;;<br />
+------------------+-------+<br />
| Variable_name | Value |<br />
+------------------+-------+<br />
| have_query_cache | YES |<br />
+------------------+-------+<br />
<br />
　　对于那些支持查询缓存的服务器来说，缓存的操作是基于三个系统变量值的：<br />
<br />
　　&#183; query_cache_type决定查询缓存的操作模式。下表显示了可以使用的模式值：<br />
<br />
<table cellspacing="0" cellpadding="2" width="90%" align="center" border="1">
    <tbody>
        <tr>
            <td>模式 </td>
            <td>含义 </td>
        </tr>
        <tr>
            <td>0 </td>
            <td>不要缓存查询结果或检索缓存的结果。 </td>
        </tr>
        <tr>
            <td>1 </td>
            <td>缓存查询，除非它们以SELECT SQL_NO_CACHE开头。 </td>
        </tr>
        <tr>
            <td>2 </td>
            <td>根据需要只缓存那些以SELECT SQL_CACHE开头的查询。 </td>
        </tr>
    </tbody>
</table>
<p><br />
　　&#183; query_cache_size决定分配给缓存的内存数量，单位是字节。<br />
<br />
　　&#183; query_cache_limit设置被缓存的最大结果集大小；比这个值大的查询结果不会被缓存。<br />
<br />
　　例如，为了激活查询缓存并为它分配16MB内存，在配置文件中使用下面的设置：<br />
<br />
[mysqld]<br />
query_cache_type=1<br />
query_cache_size=16M<br />
<br />
　　即使query_cache_type的值设置为零，query_cache_size指定内存数量也会被分配。为了避免浪费内存，只有在希望激活缓存的时候才把大小设置成大于零。同时，即使query_cache_type不为零，查询缓存的大小设置为零也会禁用缓存。<br />
<br />
　　使用了查询缓存的独立客户端会在服务器的默认缓存模式状态下操作。客户端可以使用下面的语句改变自己的查询的默认缓存模式：<br />
<br />
SET query_cache_type = val;<br />
<br />
　　其中的val可以是0、1或2，它的意义与设置服务器启动时的query_cache_type变量的意义是相同的。在SET语句中，OFF、ON和DEMAND这些符号值与0、1和2对应。<br />
<br />
　　客户端还可以通过在SELECT关键字后天添加调节符来控制个别查询的缓存操作。如果缓存模式是ON或DEMAND，那么SELECT SQL_CACHE语句会让查询结果被缓存。SELECT SQL_NO_CACHE语句会使查询结果不被缓存。<br />
<br />
　　如果某些查询从经常改变的数据表中检索信息，那么抑止对这些查询的缓存操作是有用的。在这种情况下，缓存未必有多大用处。假设你把Web服务器请求的日志存储在MySQL数据表中，同时周期性地运行该数据表上的一组统计查询。对于很繁忙的Web服务器来说，会频繁地出现新行插入该数据表的操作，因此该数据表的任何缓存了的查询结果很快就变成无效的了。其含义是，尽管你周期性地提交统计查询，但是查询缓存可能对这些查询没有什么价值。在这种情况下，最好使用SQL_NO_CACHE调节符告诉服务器不要缓存这些查询的结果。 </p>
<p>　　<strong>硬件问题</strong><br />
<br />
　　本文前面的部分中讨论的帮助你提高服务器性能的技术是没有考虑硬件配置的。你当然可以通过使用更好的硬件来让服务器运行地更快。但是并非所有的与硬件相关的改变都有相同的价值。当我们评估哪些硬件提高了性能的时候，最重要的原则与调整服务器参数的原则是相同的：尽可能地把最多的信息放在最快的存储中，并让这些信息尽可能地保持在该存储中。<br />
<br />
　　你可以改变几种硬件配置来提升服务器的性能：<br />
<br />
　　在计算机上安装更多的内存。这可以让你把服务器的缓存和缓冲区大小值配置成更大的，从而使数据保存在内存中的时间更长，从磁盘上读取信息的需要更少。<br />
<br />
　　重新配置系统，如果你拥有足够的内存，能够在内存文件系统中执行全部的交换操作，那么就删除所有的磁盘交换设备。否则，即使你拥有足够的用于交换操作的RAM，某些系统仍然会跟磁盘进行交换操作。<br />
<br />
　　增加更快的磁盘以改善I/O等待时间。在这种情况下，寻道时间是有代表性的主要的性能决定因素。横向移动磁头的速度比较慢，在磁头定位以后，从磁道上读取信息块的速度相对较快。但是，如果需要选择是添加更多的内存还是更快的磁盘，那么最好选择添加更多的内存。内存总是比磁盘快，而且添加内存可以让你使用更大的缓存，从而减少磁盘活动。<br />
<br />
　　通过在物理设备上划分磁盘活动来获取并行操作的优势。如果你可以在多个物理设备上划分读操作和写操作，那么其速度就会比从同一个设备读写要快一些。例如，如果你把数据库存储在一个设备上，把日志存储在另一个设备上，那么同时向两个设备写入信息的速度就比数据库和日志共享同一个设备的速度要快。请注意，使用同一个物理设备上的不同分区不算是并行操作。这是没有好处的，因为它们仍然需要争用相同的物理资源（磁头）。<br />
<br />
　　在把数据重新部署到另外一个设备之前，你要确保自己知道系统的负载状况。如果在某个特定的物理设备上正在运行一些重要的业务，那么把数据库放在该设备上有可能使性能更差。例如，如果你正在处理大量的Web业务，同时把数据库移动到Web服务器文档目录所在的设备上，就可能感觉不到任何优势。<br />
<br />
　　使用RAID设备可以让你获取并行操作的优势。<br />
<br />
　　使用多处理器硬件。对于类似MySQL服务器的多线程应用程序来说，多处理器硬件可以同时执行多个线程。</p>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/286012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-07-09 09:48 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/07/09/286012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows平台上的Apache+Tomcat配置指南</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/06/30/284733.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Tue, 30 Jun 2009 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/06/30/284733.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/284733.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/06/30/284733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/284733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/284733.html</trackback:ping><description><![CDATA[<p>本文主要讲述如何在windows平台上搭建一个用于java平台的web服务器过程。<br />
&nbsp;&nbsp;&nbsp; 整个过程中用到的软件包括：Apache的http服务器、JDK6、Tomcat 6、mod_jk。实现的目标是配置完成一个由Apache担当80端口的web服务器，Tomcat担任Java的Web应用容器，两者通过mod_jk的连接完成对外提供服务的工作。现在我们开始配置过程：<br />
&nbsp;&nbsp;&nbsp; 1、下载Apache的http服务器<br />
&nbsp;&nbsp;&nbsp; 下载地址：http://httpd.apache.org，在本文编写时，httpd的服务器当前最新发行版本是2.2.11（我们称2.2版本），我们选在windows平台的二进制版本下载，我们最好选择Win32 Binary including OpenSSL 0.9.8i (MSI Installer) ，因为这个版本只是SSL，也许你将来需要提供SSL的功能，所以这里有备无患。<br />
&nbsp;&nbsp;&nbsp; 2、安装Apache的http服务器<br />
&nbsp;&nbsp;&nbsp; 这个步骤的任务非常简单，对于windows平台，你只需要按照安装向导一步一步完成安装任务就可以了，在过程你可以会被要求填写一些信息，比如服务器的域名（你可以根据你的服务器实际的域名填写，如果你只是测试，并没有申请过域名的话，你可以随便填写一个），管理员的电子邮件等等。在这个过程中记住你的软件的安装目录，接下来的步骤中我们将会用到这个目录。我们将这个安装过程中的每一步截图记录如下：</p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-1.gif" /></p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-2.gif" /></p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-3.gif" /><br />
</p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-4.gif" /><br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-5.gif" /><br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-6.gif" /><br />
<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/apache-7.gif" /><br />
&nbsp;&nbsp;&nbsp; 3、下载安装JDK6<br />
&nbsp;&nbsp;&nbsp; 下载地址：http://java.sun.com/javase/downloads/?intcmp=1281，下载Java SE Development Kit (JDK) 6 Update 11。<br />
&nbsp;&nbsp;&nbsp; 安装JDK的过程非常简单，你只需要依次下一步就可以完成任务了，安装过程注意选择安装目录，我们这里假设安装目录为d:\java\jdk1.6。<br />
&nbsp;&nbsp;&nbsp; 4、下载Tomcat 6<br />
&nbsp;&nbsp;&nbsp; 下载地址：http://tomcat.apache.org/download-60.cgi，选择windows平台的tomcat软件，你可以选在Windows Service Installer 版本。<br />
&nbsp;&nbsp;&nbsp; 5、安装Tomcat 6<br />
&nbsp;&nbsp;&nbsp; 这个过程中也是近乎傻瓜型的，这里将Tomcat 6的安装过程截图如下：</p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/tomcat-1.gif" /></p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/tomcat-2.gif" /></p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/tomcat-3.gif" /></p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/tomcat-4.gif" /></p>
<p>&nbsp;<img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/tomcat-5.gif" /><br />
</p>
<p><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/stevencn76/EntryImages/20081222/tomcat-6.gif" /><br />
<br />
<br />
&nbsp;&nbsp;&nbsp; 6、下载和配置mod_jk<br />
&nbsp;&nbsp;&nbsp; 下载地址：http://apache.mirror.phpchina.com/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.27/mod_jk-1.2.27-httpd-2.2.10.so，这里大家需要注意一点，你应该更具你的apache的版本来选择mod_jk的版本。当你现在so文件之后，接下来的任务就是要将so模块配置到apache服务器当中去。<br />
&nbsp;&nbsp;&nbsp; 首先将mod_jk-1.2.27-httpd-2.2.10.so复制到apache的安装目录中modules目录中，你会在这个目录（C:\Program Files\Apache Software Foundation\Apache2.2\modules）中看到很多的so文件。然后打开apache的配置文件（C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf），在其中找到包含LoadModule字样的内容，在这些内容的下方添加一个新的LoadModule，其目的是为了给Apache增加一个新的模块功能，这个模块就是mod_jk，它的目的是为了让apache能够和tomcat进行协作。在LoadModule下方添加如下一行内容：<br />
&nbsp;&nbsp;&nbsp; LoadModule&nbsp;&nbsp; jk_module&nbsp;&nbsp; modules/mod_jk-1.2.27-httpd-2.2.10.so<br />
&nbsp;&nbsp;&nbsp; mod_jk模块要正确工作，必须知道被它操控的tomcat服务器在哪里，而这个内容需要被配置在另外一个文件中，现在我们将这个文件命名为workers.properties，将这个文件放在httpd.conf相同的地方（当然你可以放在任何你希望的地方），文件中的内容如下：<br />
ps=\<br />
worker.list=ojava<br />
worker.ojava.port=8009<br />
worker.ojava.type=ajp13<br />
worker.ojava.host=localhost<br />
worker.ojava.lbfactor=1<br />
&nbsp;&nbsp;&nbsp; 有了这个配置文件之后，我们必须要告诉mod_jk这个文件的存在，所以需要再次打开httpd.conf文件，在我们刚刚添加的LoadModule这一行的下方添加如下一行内容：<br />
&nbsp;&nbsp;&nbsp; JkworkersFile&nbsp; conf/workers.properties<br />
&nbsp;&nbsp;&nbsp; 好了，现在你已经完成了apache和tomcat的通讯方式和参数的配置，接下来需要做的就是配置哪个web应用需要由apache转交给tomcat进行处理，我们以虚拟主机为例：<br />
我们为apache增加新的虚拟主机的配置，首先修改httpd.conf的配置，找到#Include conf/extra/httpd-vhosts.conf，将这一行前面的#去除掉，让这一行的配置生效。然后我们找到配置文件中如下的内容：<br />
&lt;Directory /&gt;<br />
&nbsp;&nbsp;&nbsp; Options FollowSymLinks<br />
&nbsp;&nbsp;&nbsp; AllowOverride None<br />
&nbsp;&nbsp;&nbsp; Order deny,allow<br />
&nbsp;&nbsp;&nbsp; Deny from all<br />
&lt;/Directory&gt;<br />
将其修改为如下的内容：<br />
&lt;Directory /&gt;<br />
&nbsp;&nbsp;&nbsp; Options FollowSymLinks<br />
&nbsp;&nbsp;&nbsp; AllowOverride None<br />
&lt;/Directory&gt;<br />
其目的是为了给apache配置虚拟主机，指定其他目录作为web网站的目录时产生无权访问的错误。<br />
&nbsp;&nbsp;&nbsp; 接着打开C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf，去掉里面已经配置的虚拟主机部分的内容，如下所示：<br />
&lt;VirtualHost *:80&gt;<br />
&nbsp;&nbsp;&nbsp; ServerAdmin webmaster@dummy-host.ojava.net<br />
&nbsp;&nbsp;&nbsp; DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.ojava.net"<br />
&nbsp;&nbsp;&nbsp; ServerName dummy-host.ojava.net<br />
&nbsp;&nbsp;&nbsp; ServerAlias www.dummy-host.ojava.net<br />
&nbsp;&nbsp;&nbsp; ErrorLog "logs/dummy-host.ojava.net-error.log"<br />
&nbsp;&nbsp;&nbsp; CustomLog "logs/dummy-host.ojava.net-access.log" common<br />
&lt;/VirtualHost&gt;</p>
<p>&lt;VirtualHost *:80&gt;<br />
&nbsp;&nbsp;&nbsp; ServerAdmin webmaster@dummy-host2.ojava.net<br />
&nbsp;&nbsp;&nbsp; DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host2.ojava.net"<br />
&nbsp;&nbsp;&nbsp; ServerName dummy-host2.ojava.net<br />
&nbsp;&nbsp;&nbsp; ErrorLog "logs/dummy-host2.ojava.net-error.log"<br />
&nbsp;&nbsp;&nbsp; CustomLog "logs/dummy-host2.ojava.net-access.log" common<br />
&lt;/VirtualHost&gt;<br />
添加我们自己配置的信息，配置内容如下：<br />
&lt;VirtualHost *:80&gt;<br />
&nbsp;&nbsp;&nbsp; ServerAdmin steven@ojava.net<br />
&nbsp;&nbsp;&nbsp; DocumentRoot "e:/ojava/web_root"<br />
&nbsp;&nbsp;&nbsp; ServerName www.ojava.net</p>
<p>&nbsp;&nbsp;&nbsp; JkMount&nbsp; /*&nbsp; ojava</p>
<p>&nbsp;&nbsp;&nbsp; ErrorLog "logs/www.ojava.net-error.log"<br />
&nbsp;&nbsp;&nbsp; CustomLog "logs/www.ojava.net-access.log" common<br />
&lt;/VirtualHost&gt;<br />
到这里我们已经将对www.ojava.net域名网站的访问请求转交给了tomcat进行处理了。此时如果你需要在tomcat中进行虚拟主机的配置，那么你可以继续修改tomcat的配置文件，如果你不需要，那么到这里，你已经完成了所以的配置过程。恭喜你，现在重新启动apache和tomcat，可以测试了，成功了吗？有问题欢迎交流。</p>
<p>本文<a href="http://blog.csdn.net/stevencn76/archive/2008/12/22/3584925.aspx"><font color="#000000">转载</font>http://blog.csdn.net/stevencn76/archive/2008/12/22/3584925.aspx</a></p>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/284733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-06-30 10:51 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/06/30/284733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转载]VM中Linux虚拟机下安装VMware Tools</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284410.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Sat, 27 Jun 2009 08:51:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284410.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/284410.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/284410.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/284410.html</trackback:ping><description><![CDATA[<div>使用VMware 来安装Linux ,都会被那个VMware-Tools弄得晕头转向。现在详细向大家介绍如何安装Linux下的VMwareTools.
<div>1.安装工具。让虚拟机运行于窗口状态，不要全屏，按Ctrl+Alt让鼠标释放出来。在VMware的菜单栏上选择"虚拟机/安装虚拟机工具(VM/Install VMware Tools...)"。然后切换到客户操作系统，即Linux。 </div>
<div>2.挂载光盘。mount /dev/cdrom /mnt/cdrom</div>
<div>3.执行命令。进入虚拟光盘，可以看到有两个文件，一个是压缩包，一个为rpm包。直接运行rpm包安装，命令行也可。rpm -Uvh VMwareTools-版本号-版本号.i386.rpm</div>
<div>4.上述操作完成后，进入/usr/bin目录，查找vmware-config-tools.pl.找到后，运行它。</div>
<div>5.一路YES，直到让我们安装C编译器的时候选择NO就好。</div>
<div>6.完成配置。如果一切顺利，即会出现一个界面，让你选择当前屏幕的分辨率，当然我的kernel应为升级到了最新的版本，会有一些消息要你确认，应该直接确认就可以。选择一个分辨率。重新启动，即可。</div>
<div>&nbsp;</div>
<div>显示输出 重定向：</div>
<div>
<div>
<div>1.配置Linux&nbsp;OS的显示输出,将其重定向到远程的X-Server上,export DISPLAY=172.16.172.101:0.0,其中在172.16.172.101主机上安装了Xmanager并启动了'Xmanager - Passive'程序</div>
<div>&nbsp;</div>
<div>2.在console中,执行vmware-toolbox,在远程X-Server上将出现VMware Tools Properties窗口,就可以配置了...在配置中的第一标签页,就是关于Guest OS系统时间的选项,勾选该选项就可以使Guest OS与Host OS时间同步了.</div>
</div>
</div>
<div>&nbsp;</div>
<div>若不重新启动不要忘记卸载CDROM。 </div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><span style="display: none">uzPLinux联盟</span><br />
VMware Workstation 从软盘和/或 CD-ROM 直接安装未修改的操作系统。在构造一台虚拟机时，这个安装过程是第一步并且也是唯一必需的一步。</div>
<div>但是，VMware 强烈建议你在每一台虚拟机中完成操作系统安装之后立即安装 VMware Tools 套件。在客户操作系统中安装 VMware Tools 非常重要。如果你不安装 VMware Tools，虚拟机中的图形环境被限制为 VGA 模式图形(640x480，16 色)。</div>
<div>使用 VMware Tools，SVGA 驱动程序被安装，VMware Workstation 支持最高 32 位显示和高显示分辨率，显著提升总体的图形性能。 </div>
<div>工具包中的其他工具通过支持下面的增强，让你更方便地使用你的虚拟机。注意，只有正在运行 VMware Tools 时，这些增强才可用。</div>
<div>在主机和客户机之间时间同步 <span style="display: none">uzPLinux联盟</span><br />
注释: 只有当你在客户操作系统中设置时钟为一个比在主机中设置的时间更早的时间时，才可以在客户和主机操作系统之间同步时间。 <span style="display: none">uzPLinux联盟</span><br />
自动捕获和释放鼠标光标 <span style="display: none">uzPLinux联盟</span><br />
在主机和客户机之间或者从一台虚拟机到另一台虚拟机进行复制和粘贴操作 <span style="display: none">uzPLinux联盟</span><br />
改善的网络性能 <span style="display: none">uzPLinux联盟</span><br />
VMware Tools 工具包由两个组件组成: </div>
<div>一个为 VMware Workstation 虚拟图形卡优化的图形驱动程序。对于 Linux 客户操作系统，它包含我们自己的 XFree86 X server 版本。图形驱动程序由向导安装。安装之后，需要在重启动之后才可以使用。 <span style="display: none">uzPLinux联盟</span><br />
一个小的后台应用程序，允许你在虚拟机中更改配置设置。VMware Workstation 控制光标设置和可移动设备的连接状态，例如软盘和 CD-ROM 驱动器。<span style="display: none">uzPLinux联盟</span><br />
光标设置允许你在虚拟机和主机图形用户界面之间平滑移动鼠标光标。光标设置也允许你在虚拟机和主机之间以及从一台虚拟机到另一台虚拟机复制和粘贴文本缓存。注意，只有当应用程序正在运行时，这些增强才可用。<br />
设置 VMware Tools 参数<span style="display: none">uzPLinux联盟</span><br />
在一个 Windows 客户操作系统中为 VMware Tools 设置参数<span style="display: none">uzPLinux联盟</span><br />
打开 VMware Tools。双击系统托盘中的 VMware Tools 图标。 <span style="display: none">uzPLinux联盟</span><br />
VMware Tools 选项卡包含有关虚拟机的状态信息。单击链接按钮访问 VMware 主页。 <span style="display: none">uzPLinux联盟</span><br />
设备选项卡允许你启用或禁用可移动设备。(你也可以从 VMware Workstation 应用程序窗口的设备菜单中设置这些选项。) <span style="display: none">uzPLinux联盟</span><br />
压缩选项卡 允许你从你的虚拟磁盘中删除未使用的磁盘块，从而减少(压缩)由虚拟磁盘消耗的存储空间的数量。它也会重新安排你的虚拟磁盘，以使它的数据块相互邻接。 <span style="display: none">uzPLinux联盟</span><br />
其他选项卡显示其他选项: <span style="display: none">uzPLinux联盟</span><br />
在虚拟机和主机操作系统之间时间同步。 <span style="display: none">uzPLinux联盟</span><br />
注释: 只有当你在客户操作系统中设置时钟为一个比在主机中设置的时间更早的时间时，才可以在客户和主机操作系统之间同步时间。 <span style="display: none">uzPLinux联盟</span><br />
在工具栏中显示 VMware Tools。 <span style="display: none">uzPLinux联盟</span><br />
在一个 Linux 客户操作系统中为 VMware Tools 设置参数<span style="display: none">uzPLinux联盟</span><br />
打开 VMware Tools。在一个终端中运行下列命令: <span style="display: none">uzPLinux联盟</span><br />
vmware-toolbox. <span style="display: none">uzPLinux联盟</span><br />
设备选项卡允许你启用或禁用可移动设备。(你也可以从 VMware Workstation 应用程序窗口的设备菜单中设置这些选项。) <span style="display: none">uzPLinux联盟</span><br />
压缩选项卡 允许你从你的虚拟磁盘中删除未使用的磁盘块，从而减少(压缩)由虚拟磁盘消耗的存储空间的数量。它也会重新安排你的虚拟磁盘，以使它的数据块相互邻接。 <span style="display: none">uzPLinux联盟</span><br />
&#8220;选项&#8221;选项卡显示这些选项: <span style="display: none">uzPLinux联盟</span><br />
在虚拟机和主机操作系统之间时间同步。你可以在虚拟机和主机操作系统之间同步时间。 <span style="display: none">uzPLinux联盟</span><br />
注释: 只有当你在客户操作系统中设置时钟为一个比在主机中设置的时间更早的时间时，才可以在客户和主机操作系统之间同步时间。 </div>
<div>如果正在运行 VMware Tools，你可以在虚拟机和主机的应用程序之间或者在两台虚拟机之间复制和粘贴文本。</div>
<div>要进行复制和粘贴:</div>
<div>确保在你的虚拟机中已经安装并且启动 VMware Tools。 <span style="display: none">uzPLinux联盟</span><br />
使用来源窗口中的操作系统支持的方式在来源窗口中选择要复制的项目。 <span style="display: none">uzPLinux联盟</span><br />
更改光标和键盘控制到目标窗口，然后使用目标窗口中的操作系统支持的方式粘贴项目。 <span style="display: none">uzPLinux联盟</span><br />
你只能复制和粘贴文本，而不是图片或者其他项目。<span style="display: none">uzPLinux联盟</span></div>
</div>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/284410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-06-27 16:51 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat　非root启动</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284409.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Sat, 27 Jun 2009 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284409.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/284409.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/284409.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/284409.html</trackback:ping><description><![CDATA[<div class="bword" id="post_message_244"># addusr tomcat<br />
# chown -R tomcat:tomcat /usr/local/tomcat<br />
-------------------------------------<br />
#vi /etc/rc.local<br />
在最后加入：<br />
su - tomcat -c '/usr/local/tomcat/bin/startup.sh'<br />
------------------------------------<br />
REBOOT试试，JSP用ROOT启动不安全的问题解决了<br />
<br />
su - tomcat -c '/usr/local/tomcat/bin/shutdown.sh' &#8216;tomcat停止命令<br />
</div>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/284409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-06-27 16:47 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat 6.18 Virtual Host</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284408.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Sat, 27 Jun 2009 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284408.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/284408.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284408.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/284408.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/284408.html</trackback:ping><description><![CDATA[<div id="art" style="margin: 15px" width="100%">
<div>conf/server.xml</div>
<div>&nbsp;</div>
<div><span id="divDescArea2">&lt;Engine name="Catalina" defaultHost="localhost"&gt;</span></div>
<div>&nbsp;</div>
<div><span id="divDescArea1"><span id="divDescArea1">&lt;Host name="localhost" appBase="webapps"<br />
unpackWARs="true" autoDeploy="true"<br />
xmlValidation="false" xmlNamespaceAware="false"&gt;<br />
<br />
&lt;/Host&gt;<br />
<br />
&lt;Host name="<a href="http://www.host01.com/">www.host01.com</a>" appBase="/opt/host01"<br />
unpackWARs="true" autoDeploy="true"<br />
xmlValidation="false" xmlNamespaceAware="false"&gt;<br />
<br />
&lt;/Host&gt;<br />
<br />
&lt;Host name="<a href="http://www.host02.com/">www.host02.com</a>" appBase="/opt/host02"<br />
unpackWARs="true" autoDeploy="true"<br />
xmlValidation="false" xmlNamespaceAware="false"&gt;<br />
<br />
&lt;/Host&gt;</span></span></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><span id="divDescArea3">conf/Catalina/localhost/ROOT.xml:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path="" reloadable="false" docBase="" workDir="/tmp/tomcat" /&gt;</span></div>
<span>
<div><br />
</span><span><span id="divDescArea3">conf/Catalina/</span>www.host01.com/ROOT.xml<br />
&nbsp;&nbsp;&nbsp; &lt;Context path="" reloadable="false" docBase="" workDir="/tmp/host01" /&gt;</span></div>
<div><span><br />
<span><span id="divDescArea3">conf/Catalina/</span>www.host02.com/ROOT.xml</span><br />
&lt;Context path="" reloadable="false" docBase="" workDir="/tmp/host02" /&gt;</span></div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>参考:www.ex-parrot.com/~pete/tomcat-vhost.html</div>
<div></div>
</div>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/284408.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-06-27 16:46 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284408.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache Java Tomcat Proxy-ajp(Linux)整合</title><link>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284407.html</link><dc:creator>J2EE Home工作室</dc:creator><author>J2EE Home工作室</author><pubDate>Sat, 27 Jun 2009 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284407.html</guid><wfw:comment>http://www.blogjava.net/J2EEHOME/comments/284407.html</wfw:comment><comments>http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284407.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/J2EEHOME/comments/commentRss/284407.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/J2EEHOME/services/trackbacks/284407.html</trackback:ping><description><![CDATA[<div id="art" style="margin: 15px" width="100%">
<div>前言： <br />
安装软件：<br />
1. jdk-1_5_0_06-linux-i586.bin<br />
2. httpd-2.2.0.tar.gz <br />
3. apache-tomcat-6.0.13.tar.gz <br />
并且放置在/usr/local目录下。<br />
<br />
一、安装JDK<br />
大家从网上下载的JDK的LINUX版本一般是bin格式<br />
<br />
1. 使bin文件可执行。 <br />
[root@localhost local]# chmod +x jdk-1_5_0_06-linux-i586.bin <br />
<br />
2. 安装 <br />
[root@localhost loacl]# ./ jdk-1_5_0_06-linux-i586.bin <br />
<br />
3. 为了操作简单，有必要为刚刚安装的jdk1.5.0_06建立一个JDK的同步目录 <br />
[root@localhost local]# ln -s jdk1.5.0_06 jdk <br />
<br />
4. 设置环境变量JAVA_HOME（这个变量会在后面的Tomcat中用到）。 <br />
[root@localhost local]# vi /etc/profile <br />
在该文件的末尾加上下面两行 <br />
export JAVA_HOME=/usr/local/jdk <br />
export CLASSPATH=$JAVA_HOME/lib<br />
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH<br />
保存退出 <br />
<br />
5. 验证该变量的设置。如果感觉安装顺利的话，可以跳过此步。 <br />
[root@localhost local]# echo $JAVA_HOME <br />
大家会发现返回的是空行 <br />
不要惊慌，退出去重新登录系统就可以了<br />
或者执行命令是环境变量立即生效<br />
[root@localhost local]source /etc/profile<br />
[root@localhost /]# echo $JAVA_HOME <br />
/usr/ local /jdk <br />
[root@localhost /]java &#8211;version<br />
java version "1.5.0_06"<br />
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)<br />
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)<br />
如果返回这行，就说明设置成功。至此您的JDK安装完毕。 <br />
<br />
二、安装Tomcat <br />
Tomcat的安装比较简单，解压后运行即可。 <br />
<br />
1. 将安装包拷贝到/usr/local目录下安装， <br />
[root@localhost local]# tar -zxvf apache-tomcat-6.0.13.tar.gz <br />
<br />
2. 为解压后得到的apache-tomcat-6.0.13创建一个名为tomcat的同步目录。 <br />
[root@localhost local]# ln -s apache-tomcat-6.0.13 tomcat <br />
<br />
3. 设置环境变量CATALINA_HOME，并验证 <br />
[root@localhost local]# vi /etc/profile <br />
在文件最后加入如下一行 <br />
export CATALINA_HOME=/usr/local/tomcat<br />
保存退出 <br />
验证CATALINA_HOME的过程跟上面验证JAVA_HOME的过程相同。 <br />
<br />
4. 启动并测试安装结果 <br />
[root@localhost local]# cd ./tomcat/bin <br />
[root@localhost bin]# ./startup.sh <br />
Using CATALINA_BASE: /usr/local/tomcat <br />
Using CATALINA_HOME: /usr/local/tomcat <br />
Using CATALINA_TMPDIR: /usr/local/tomcat/temp <br />
Using JAVA_HOME: /usr/java/jdk<br />
[root@localhost bin]# netstat -tnl<br />
Active Internet connections (only servers)<br />
Proto Recv-Q Send-Q Local Address Foreign Address State <br />
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN <br />
tcp 0 0 192.168.1.254:53 0.0.0.0:* LISTEN <br />
tcp 0 0 192.168.2.254:53 0.0.0.0:* LISTEN <br />
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN <br />
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN <br />
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN <br />
tcp 0 0 :::8009 :::* LISTEN <br />
tcp 0 0 :::8080 :::* LISTEN <br />
tcp 0 0 :::22 :::* LISTEN <br />
<br />
port 8080 and 8009已经LISTEN了 <br />
<br />
6.打开浏览器，敲入主机地址和端口号8080,回车 <br />
如：<a href="http://192.168.1.254:8080/" target="_blank"><font color="#22229c">http://192.168.1.254:8080/</font></a> <br />
如果出现如下画面则说明，安装成功。</div>
<div>&nbsp;</div>
<div>从http://www.apache.org的网站上下载apache-2.2.0的源代码。apache-2.2.0的版本做了些改动大家需要注意一下。首先apr和apr-util需要单独的安装，还有配置文件由原来的一个变为现在的多个不过这样也好，可以清楚的知道那部分配置在那个配置文件里方便修改。安装步骤如下：<br />
<br />
解压apache的源代码<br />
# tar xvjf httpd-2.2.0.tar.bz2<br />
# cd httpd-2.2.0<br />
<br />
安装apr<br />
# cd srclib/apr<br />
# ./configure --prefix=/server/soft/apr<br />
# make<br />
# make install<br />
<br />
安装apr-util<br />
# cd ../apr-util/<br />
# ./configure --prefix=/server/soft/apr-util \<br />
&nbsp;&nbsp;&nbsp; --with-apr=/server/soft/apr<br />
# make<br />
# make install<br />
# cd ../../<br />
<br />
安装apache<br />
# ./configure --prefix=/server/soft/apache \<br />
&nbsp;&nbsp;&nbsp; --enable-so \<br />
&nbsp;&nbsp;&nbsp; --enable-rewrite=share \<br />
&nbsp;&nbsp;&nbsp; --enable-proxy=share \<br />
&nbsp;&nbsp;&nbsp; --enable-proxy-ajp=share \<br />
&nbsp;&nbsp;&nbsp; --enable-dav=share \<br />
&nbsp;&nbsp;&nbsp; --with-apr=/server/soft/apr \<br />
&nbsp;&nbsp;&nbsp; --with-apr-util=/server/soft/apr-util/<br />
# make <br />
# make install<br />
<br />
# /server/soft/apache/bin/httpd -l //看看是否有proxy-ajp这个模块<br />
如果有这个模块证明proxy-ajp模块安装成功，可以进行与tomcat的结合了。<br />
<br />
# vi /server/soft/apache/conf/httpd.conf<br />
把"#Include conf/extra/httpd-vhosts.conf" 前面的"#"去掉然后编辑<br />
/server/soft/apache/conf/extra/httpd-vhosts.conf<br />
<br />
编辑为如下的代码<br />
&lt;VirtualHost *:80&gt;<br />
&nbsp;&nbsp;&nbsp; ServerAdmin admin@easyea.com<br />
&nbsp;&nbsp;&nbsp; ProxyPass / ajp://localhost:8009/<br />
&nbsp;&nbsp;&nbsp; ProxyPassReverse / ajp://localhost:8009/<br />
&nbsp;&nbsp;&nbsp; ServerName localhost<br />
&nbsp;&nbsp;&nbsp; ServerAlias www.easyea.com<br />
&nbsp;&nbsp;&nbsp; ErrorLog logs/easyea.com-error_log<br />
&nbsp;&nbsp;&nbsp; CustomLog logs/easyea.com-access_log common<br />
&lt;/VirtualHost&gt;<br />
<br />
然后先启动tomcat，再启动apache <br />
# /server/soft/apache/bin/apachctl start <br />
打开浏览器看看是否看到了tomcat的欢迎页面，如果是说明apache和tomcat的结合成功 </div>
<div></div>
</div>
<img src ="http://www.blogjava.net/J2EEHOME/aggbug/284407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/J2EEHOME/" target="_blank">J2EE Home工作室</a> 2009-06-27 16:44 <a href="http://www.blogjava.net/J2EEHOME/archive/2009/06/27/284407.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>