﻿<?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-Struts2+Spring2.x+Hibernate3.x 学习资料</title><link>http://www.blogjava.net/ssh2/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 07 Jun 2026 03:29:37 GMT</lastBuildDate><pubDate>Sun, 07 Jun 2026 03:29:37 GMT</pubDate><ttl>60</ttl><item><title>设置apache2 httpd的最大连接数</title><link>http://www.blogjava.net/ssh2/articles/249836.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Mon, 05 Jan 2009 02:02:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/249836.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/249836.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/249836.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/249836.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/249836.html</trackback:ping><description><![CDATA[<p>在/usr/local/etc/apache22/httpd.conf中加载MPM配置（去掉前面的注释）：<br />
# Server-pool management (MPM specific)<br />
Include etc/apache22/extra/httpd-mpm.conf</p>
<p>可见的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf，但里面根据httpd的工作模式分了很多块，哪一部才是当前httpd的工作模式呢？可通过执行 apachectl -l 来查看：<br />
Compiled in modules:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; core.c<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prefork.c<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http_core.c<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_so.c</p>
<p>看到prefork 字眼，因此可见当前httpd应该是工作在prefork模式，prefork模式的默认配置是：<br />
&lt;IfModule mpm_prefork_module&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StartServers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MinSpareServers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxSpareServers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxClients&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 150<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxRequestsPerChild&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
&lt;/IfModule&gt;</p>
<p>2.要加到多少？</p>
<p>连接数理论上当然是支持越大越好，但要在服务器的能力范围内，这跟服务器的CPU、内存、带宽等都有关系。</p>
<p>查看当前的连接数可以用：<br />
ps aux | grep httpd | wc -l</p>
<p>或：<br />
pgrep httpd|wc -l</p>
<p>计算httpd占用内存的平均数:<br />
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'</p>
<p>由于基本都是静态页面，CPU消耗很低，每进程占用内存也不算多，大约200K。</p>
<p>服务器内存有2G，除去常规启动的服务大约需要500M（保守估计），还剩1.5G可用，那么理论上可以支持1.5*1024*1024*1024/200000 = 8053.06368</p>
<p>约8K个进程，支持2W人同时访问应该是没有问题的（能保证其中8K的人访问很快，其他的可能需要等待1、2秒才能连上，而一旦连上就会很流畅）</p>
<p>控制最大连接数的MaxClients ，因此可以尝试配置为：<br />
&lt;IfModule mpm_prefork_module&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StartServers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MinSpareServers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxSpareServers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServerLimit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5500<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxClients&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MaxRequestsPerChild&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100<br />
&lt;/IfModule&gt;</p>
<p>注意，MaxClients默认最大为250，若要超过这个值就要显式设置ServerLimit，且ServerLimit要放在MaxClients之前，值要不小于MaxClients，不然重启httpd时会有提示。</p>
<p>重启httpd后，通过反复执行pgrep httpd|wc -l 来观察连接数，可以看到连接数在达到MaxClients的设值后不再增加，但此时访问网站也很流畅，那就不用贪心再设置更高的值了，不然以后如果网站访 问突增不小心就会耗光服务器内存，可根据以后访问压力趋势及内存的占用变化再逐渐调整，直到找到一个最优的设置值。</p>
<p>(MaxRequestsPerChild不能设置为0，可能会因内存泄露导致服务器崩溃）</p>
<p><a href="http://www.chedong.com/tech/apache_install.html#scale" target="_blank">更佳最大值计算的公式</a>：</p>
<p>apache_max_process_with_good_perfermance &lt; (total_hardware_memory / apache_memory_per_process ) * 2<br />
apache_max_process = apache_max_process_with_good_perfermance * 1.5</p>
<p>&nbsp;</p>
<p>参考：</p>
<p><u><font color="#0000ff"><a href="http://hi.baidu.com/thinkinginlamp/blog/item/6f969f3d8965d601bba1676f.html" target="_blank">apache的参数设置</a></font></u></p>
<p><a href="http://bbs.chinaunix.net/viewthread.php?tid=544063" target="_blank">Apache 2.0性能优化—MPM的选择与配置</a></p>
<p><a href="http://hi.baidu.com/acquiesce/blog/item/6875e710821115ffc2ce7961.html" target="_blank">如何避免apache的httpd进程占用比较多的内存</a></p>
<p><a href="http://www.php-oa.com/2008/02/22/prefork/" target="_blank">对apache中并发控制参数prefork理解和调优</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>附：</p>
<p>实时检测HTTPD连接数：<br />
watch -n 1 -d "pgrep httpd|wc -l"</p>
<img src ="http://www.blogjava.net/ssh2/aggbug/249836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2009-01-05 10:02 <a href="http://www.blogjava.net/ssh2/articles/249836.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring 配置多个数据源</title><link>http://www.blogjava.net/ssh2/articles/247687.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Mon, 22 Dec 2008 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/247687.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/247687.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/247687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/247687.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/247687.html</trackback:ping><description><![CDATA[<p>&lt;?xml version="1.0" encoding="GBK"?&gt;<br />
&lt;beans xmlns="http://www.springframework.org/schema/beans"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;!-- ************************************************************************************************************************* --&gt;<br />
&nbsp;&lt;!-- 定义数据源Bean，使用C3P0数据源实现 --&gt;<br />
&nbsp;&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库的驱动 --&gt;<br />
&nbsp;&nbsp;&lt;property name="driverClass" value="com.mysql.jdbc.Driver"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库的URL --&gt;<br />
&nbsp;&nbsp;&lt;property name="jdbcUrl" value="jdbc:mysql://localhost/a0121"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库的用户名 --&gt;<br />
&nbsp;&nbsp;&lt;property name="user" value="a"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库的密码 --&gt;<br />
&nbsp;&nbsp;&lt;property name="password" value="a"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库连接池的最大连接数 --&gt;<br />
&nbsp;&nbsp;&lt;property name="maxPoolSize" value="20"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库连接池的最小连接数 --&gt;<br />
&nbsp;&nbsp;&lt;property name="minPoolSize" value="1"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库连接池的初始化连接数 --&gt;<br />
&nbsp;&nbsp;&lt;property name="initialPoolSize" value="1"/&gt;<br />
&nbsp;&nbsp;&lt;!-- 指定连接数据库连接池的连接的最大空闲时间 --&gt;<br />
&nbsp;&nbsp;&lt;property name="maxIdleTime" value="20"/&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;!--定义了Hibernate的SessionFactory --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="dataSource" ref="dataSource"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/hibernate-map-xml/AripBaseinfoOrg.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/hibernate-map-xml/Tlorrybaseinfo.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/hibernate-map-xml/Tlorrypp.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/hibernate-map-xml/Tlorrysjinfo.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/hibernate-map-xml/Tlorrystate.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="hibernateProperties"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="show_sql"&gt;true&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.hbm2ddl.auto"&gt;update&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.jdbc.batch_size"&gt;20&lt;/prop&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="sessionFactory" ref="sessionFactory"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;</p>
<p><br />
&nbsp;&nbsp;&nbsp; &lt;bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; 事务拦截器bean需要依赖注入一个事务管理器 --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="transactionManager" ref="transactionManager"/&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="transactionAttributes"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; 下面定义事务传播属性--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="get*"&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;<br />
&nbsp;&lt;!-- ****************************************************************************************************************************** --&gt;<br />
&nbsp;&lt;!-- 定义连接 GPS 服务器数据库&nbsp; --&gt;<br />
&nbsp;&lt;bean id="dataSourceGPS" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;<br />
&nbsp;&nbsp;&lt;property name="driverClass" &nbsp;&nbsp;value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/&gt;<br />
&nbsp;&nbsp;&lt;property name="jdbcUrl"&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;value="jdbc:microsoft:sqlserver://111.225.0.21:1433"/&gt;<br />
&nbsp;&nbsp;&lt;property name="user"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;value="wt"/&gt;<br />
&nbsp;&nbsp;&lt;property name="password"&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;value="w13"/&gt;<br />
&nbsp;&nbsp;&lt;property name="maxPoolSize" &nbsp;&nbsp;value="20"/&gt;<br />
&nbsp;&nbsp;&lt;property name="minPoolSize" &nbsp;&nbsp;value="1"/&gt;<br />
&nbsp;&nbsp;&lt;property name="initialPoolSize" &nbsp;value="1"/&gt;<br />
&nbsp;&nbsp;&lt;property name="maxIdleTime"&nbsp; &nbsp;&nbsp;value="20"/&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;<br />
&nbsp;&lt;!--定义了Hibernate的SessionFactoryGPS --&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;bean id="sessionFactoryGPS" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="dataSource" ref="dataSourceGPS"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="mappingResources"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;value&gt;/hibernate-map-xml/CarGjall.hbm.xml&lt;/value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="hibernateProperties"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.SQLServerDialect&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="show_sql"&gt;true&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.hbm2ddl.auto"&gt;update&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="hibernate.jdbc.batch_size"&gt;20&lt;/prop&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;<br />
&nbsp;<br />
&nbsp;&lt;bean id="transactionManagerGPS" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="sessionFactory" ref="sessionFactoryGPS"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/bean&gt;</p>
<p><br />
&nbsp;&nbsp;&nbsp; &lt;bean id="transactionInterceptorGPS" class="org.springframework.transaction.interceptor.TransactionInterceptor"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; 事务拦截器bean需要依赖注入一个事务管理器 --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="transactionManager" ref="transactionManagerGPS"/&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&lt;property name="transactionAttributes"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--&nbsp; 下面定义事务传播属性--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;prop key="get*"&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;<br />
&lt;!--车辆管理 ****************************************************************************************************************************** --&gt;&nbsp;<br />
&nbsp;<br />
&nbsp;&lt;!-- 定义了 DAO dtbi&nbsp; dao&nbsp; tlorrybaseinfo imp&nbsp; --&gt;<br />
&nbsp;&lt;bean id="dtbi" class="cn.arip.vm.dao.imp.imp_tlorrybaseinfo"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory" ref="sessionFactory"/&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;&lt;!-- 定义了 DAO b_istate&nbsp; 通过id获取状态 ,比如: 机构代码 车辆品牌代码 车辆使用状态 代码&nbsp; --&gt;<br />
&nbsp;&lt;bean id="b_istate" class="cn.arip.vm.dao.imp.imp_tlorrystate"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory" ref="sessionFactory"/&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&lt;!-- 定义 公共 分页 程序 ********************************************************************************************************* --&gt;<br />
&nbsp;&lt;bean id="pagerService" class="cn.arip.page.PagerService"/&gt;<br />
&lt;!-- GPS管理 ********************************************************************************************************* --&gt;<br />
&nbsp;&lt;bean id="dgps" class="cn.arip.gps.dao.imp.imp_gps"&gt;<br />
&nbsp;&lt;property name="sessionFactory" ref="sessionFactoryGPS" /&gt;<br />
&nbsp;&lt;/bean&gt;</p>
<p>&lt;!-- 司机管理 --&gt;<br />
&nbsp;&lt;bean id="dtsi" class="cn.arip.driver.dao.imp.imp_driver"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory" ref="sessionFactory"/&gt;<br />
&nbsp;&lt;/bean&gt;</p>
<p><br />
&lt;/beans&gt;</p>
<img src ="http://www.blogjava.net/ssh2/aggbug/247687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-22 09:33 <a href="http://www.blogjava.net/ssh2/articles/247687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>APACHE 2.2.8+TOMCAT6.0.14配置负载均衡</title><link>http://www.blogjava.net/ssh2/articles/247682.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Mon, 22 Dec 2008 01:15:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/247682.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/247682.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/247682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/247682.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/247682.html</trackback:ping><description><![CDATA[<div class="blog_content" style="font-size: 8pt">APACHE 2.2.8+TOMCAT6.0.14配置负载均衡 <br />
目标: <br />
使用 apache 和 tomcat 配置一个可以应用的 web 网站，要达到以下要求： <br />
1、 Apache 做为 HttpServer ，后面连接多个 tomcat 应用实例，并进行负载均衡。 <br />
2、 为系统设定 Session 超时时间，包括 Apache 和 tomcat <br />
3、 为系统屏蔽文件列表，包括 Apache 和 tomcat <br />
注：本例程以一台机器为例子，即同一台机器上装一个apache和4个Tomcat。 <br />
一、前期准备工作：安装用的程序（前提保证已安装了JDK1.5以上的版本） <br />
APAHCE 2.2.8下载：apache_2.2.8-win32-x86-no_ssl.msi <br />
TOMCAT6.0.14下载：apache-tomcat-6.0.14.zip直接解压。 <br />
二、安装过程 <br />
APAHCE安装目录：D:\Apache。 <br />
四个TOMCAT目录：自行解压到(D:\Tomcat集群服务器\)下。分别为 tomcat6.0，tomcat6.01，tomcat6.02，tomcat6.03 <br />
这几个安装过程就不详细说明了。 <br />
三、配置 <br />
1、Apache配置 <br />
1.1、httpd.conf配置 <br />
修改APACHE的配置文件D:\Apache \conf\httpd.conf <br />
将以下Module的注释去掉，这里并没有使用mod_jk.so进行apache和tomcat的链接，从2.X以后apache自身已集成了 mod_jk.so的功能。只需简单的把下面几行去掉注释，就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用了代理的方法，就这么简单。 <br />
LoadModule proxy_module modules/mod_proxy.so <br />
LoadModule proxy_connect_module modules/mod_proxy_connect.so <br />
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so <br />
LoadModule proxy_http_module modules/mod_proxy_http.so <br />
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so <br />
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so <br />
再找到&lt;IfModule dir_module&gt;&lt;/IfModule&gt;加上index.jsp修改成 <br />
&lt;IfModule dir_module&gt; <br />
DirectoryIndex index.html index.jsp <br />
&lt;/IfModule&gt; <br />
1.1.1、 在最下面加入 <br />
ProxyRequests Off <br />
&lt;proxy balancer://cluster&gt; <br />
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 <br />
BalancerMember ajp:// 127.0.0.1:9009 loadfactor=1 route=jvm2 <br />
BalancerMember ajp:// 127.0.0.1:9001 loadfactor=1 route=jvm3 <br />
BalancerMember ajp:// 127.0.0.1:9003 loadfactor=1 route=jvm4 <br />
&lt;/proxy&gt; <br />
上面的四个BalancerMember成员是我们配置的tomcat集群。后面会说明的。 <br />
1.2、httpd-vhosts.conf设置 <br />
接下来进行虚拟主机的设置。APACHE的虚拟主机设置如下： <br />
首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf) <br />
把注释去掉。 <br />
# Virtual hosts <br />
Include conf/extra/httpd-vhosts.conf <br />
在文件（extra/httpd-vhosts.conf）最下面加入 <br />
&lt;VirtualHost *:80&gt; <br />
ServerAdmin weijie@126.com <br />
ServerName localhost <br />
ServerAlias localhost <br />
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On <br />
ProxyPassReverse / balancer://cluster/ <br />
&lt;/VirtualHost&gt; <br />
其中的域名和路径根据你自己情况设置 <br />
然后再设置TOMCAT虚拟主机 <br />
2 配置 tomcat <br />
2.1. 配置 server 的关闭 <br />
我们需要在一台机器上跑 4 个不同的 tomcat ，需要修改不同的 tomcat 的关闭口，避免出现端口被占用的情况。其中tomcat6.0用默认值，不修改。其他三个修改。在tomcat6.01\conf, tomcat6.02\conf下和tomcat6.03\conf下的 server.xml 中找到 server, 将： <br />
&lt;Server port="8005" shutdown="SHUTDOWN"&gt; <br />
改为 <br />
&lt;Server port="XXXX" shutdown="SHUTDOWN"&gt; <br />
XXXX 在这里表示不同的端口：我的其它三个 tomcat 分别使用 9005，8006 ， 9007 <br />
2.2. 配置 Engine <br />
把原来的配置注释掉，把下面一句去掉注释。并标明jvmRoute="jvm2". <br />
&lt;Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2"&gt; <br />
以下是原来的配置。 <br />
&lt;!-- &lt;Engine name="Catalina" defaultHost="localhost"&gt; --&gt; <br />
其他（tomcat6.02和tomcat6.03）也要同样 配置。注意：jvmRoute配置不要一样。 <br />
&lt;Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm3"&gt; <br />
&lt;Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm4"&gt; <br />
2.3. 配置 Connector <br />
原来的默认配置。 <br />
&lt;!-- Define an AJP 1.3 Connector on port 8009 --&gt; <br />
&lt;Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /&gt; <br />
这里是apache和tomcat链接的关键，前台apache就是通过AJP协议与tomcat进行通信的，以完成负载均衡的作用。也可以用HTTP协议。大家注意它们是如何连接通信的，上面的红色部分（port="8009"）就是连接的接口了。 <br />
把其他三个tomcat的&lt;Connector port="XXX" /&gt;port分别改成与上面 <br />
&lt;proxy balancer://cluster&gt; <br />
#与tomcat6.0对应，route与&lt;Engine jvmRoute="jvm1"&gt;对应。 <br />
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 <br />
#与tomcat6.01对应，route与&lt;Engine jvmRoute="jvm2"&gt;对应。 <br />
BalancerMember ajp:// 127.0.0.1:9009 loadfactor=1 route=jvm2 <br />
#与tomcat6.02对应，route与&lt;Engine jvmRoute="jvm3"&gt;对应。 <br />
BalancerMember ajp:// 127.0.0.1:9001 loadfactor=1 route=jvm3 <br />
#与tomcat6.03对应，route与&lt;Engine jvmRoute="jvm4"&gt;对应。 <br />
BalancerMember ajp:// 127.0.0.1:9003 loadfactor=1 route=jvm4 <br />
&lt;/proxy&gt; <br />
中的端口对应，tomcat6.01 的ajp端口port:9009. tomcat6.02 的ajp端口port:9001。tomcat6.03 的ajp端口port:9003.一定要与上面的一致。同时也要把redirectPort的值改成唯一的，确保四个tomcat的都不一样。 <br />
2.5.配置Cluster(每个tomcat中都要修改) <br />
原来的配置。 <br />
&lt;Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/&gt; <br />
修改为以下的代码：&lt;Receiver port=&#8221;XX&#8221;/&gt;port也要保证唯一性。 <br />
&lt;Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"&gt; <br />
&lt;Manager className="org.apache.catalina.ha.session.BackupManager" <br />
expireSessionsOnShutdown="false" <br />
notifyListenersOnReplication="true" <br />
mapSendOptions="6"/&gt; <br />
&lt;!-- <br />
&lt;Manager className="org.apache.catalina.ha.session.DeltaManager" <br />
expireSessionsOnShutdown="false" <br />
notifyListenersOnReplication="true"/&gt; <br />
--&gt; <br />
&lt;Channel className="org.apache.catalina.tribes.group.GroupChannel"&gt; <br />
&lt;Membership className="org.apache.catalina.tribes.membership.McastService" <br />
address="228.0.0.4" <br />
port="45564" <br />
frequency="500" <br />
dropTime="3000"/&gt; <br />
&lt;Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" <br />
address="auto" <br />
port="5001" <br />
selectorTimeout="100" <br />
maxThreads="6"/&gt; <br />
&lt;Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"&gt; <br />
&lt;Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/&gt; <br />
&lt;/Sender&gt; <br />
&lt;Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/&gt; <br />
&lt;Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/&gt; <br />
&lt;Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/&gt; <br />
&lt;/Channel&gt; <br />
&lt;Valve className="org.apache.catalina.ha.tcp.ReplicationValve" <br />
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/&gt; <br />
&lt;Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" <br />
tempDir="/tmp/war-temp/" <br />
deployDir="/tmp/war-deploy/" <br />
watchDir="/tmp/war-listen/" <br />
watchEnabled="false"/&gt; <br />
&lt;ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/&gt; <br />
&lt;/Cluster&gt; <br />
这个设置是主要用以tomcat的集群。 <br />
四、启动服务，测试tomcat自带的例子 <br />
1、测试apache和tomcat协作。 <br />
先在每个tomcat中的\webapps\ROOT下的index.jsp下面加上以下的测试代码部分：(X代表不同的tomcat的输出不同的信息)，把index.html删除，以免影响测试效果。在最后面的加上.即&lt;/table&gt;&lt;/body&gt;之间。 <br />
&lt;% <br />
System.out.println("tomcat6.0X deal with request"); <br />
%&gt; <br />
然后再通过http:// 127.0.0.1来访问一下，就会出现大家熟悉的猫猫。 <br />
然后再通过分别访问 <br />
http:// 127.0.0.1:8080， http:// 127.0.0.1:9080，http:// 127.0.0.1:8081，http:// 127.0.0.1:9002它们访问的内容和上面的http:// 127.0.0.1是一样的。 <br />
这样就说明apache和TOMCAT整合成功！ <br />
2、测试均衡器 <br />
通过http:// 127.0.0.1多次访问，要想看到真正的效果，必须用一些压力测试工具，可用微软Microsoft Web Application Stress Tool进行简单压力测试，不然你靠不停刷新是体现不出来的，你只会在一个tomcat的控制台有输出结果。只用用压力测试工具模拟大量用户同时访问，你会发现四个tomcat控制台均有打出控制信息，说明均衡器工作正常。 </div>
<img src ="http://www.blogjava.net/ssh2/aggbug/247682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-22 09:15 <a href="http://www.blogjava.net/ssh2/articles/247682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux enterprise 5 vsftpd</title><link>http://www.blogjava.net/ssh2/articles/247201.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Thu, 18 Dec 2008 11:47:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/247201.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/247201.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/247201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/247201.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/247201.html</trackback:ping><description><![CDATA[<p>我默认 安装了 vsftpd ,并且添加到自启动。<br />
发现 本地用户还是无法登陆，提示：<br />
500 OOPS: cannot change directory:/home/lqp<br />
<br />
最后 在 网上查询结果：<br />
<br />
setsebool -P ftpd_disable_trans 1<br />
service vsftpd restart <br />
<br />
成功解决。</p>
<img src ="http://www.blogjava.net/ssh2/aggbug/247201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-18 19:47 <a href="http://www.blogjava.net/ssh2/articles/247201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 标签使用</title><link>http://www.blogjava.net/ssh2/articles/246685.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Tue, 16 Dec 2008 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/246685.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/246685.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/246685.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/246685.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/246685.html</trackback:ping><description><![CDATA[&nbsp;&lt;s:iterator value="#attr.allLuser"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td height="30px" width="50px" align="center"&gt;&lt;s:property value ="id" /&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="200px"&gt;${username} &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="200px"&gt;${password} &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="60px" align="center"&gt;&lt;a href='&lt;s:url action="delete"&gt;&lt;s:param name="id" value="id" /&gt;&lt;/s:url&gt;'&gt;&lt;img src="images/actionCancel.gif"&nbsp; border="0"&gt;&lt;/a&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td width="60px" align="center"&gt;&lt;a href='&lt;s:url action="edit"&gt;&lt;s:param name="id" value="id" /&gt;&lt;/s:url&gt;'&gt;&lt;img src="images/actionEdit.gif"&nbsp; border="0"&gt;&lt;/a&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/s:iterator&gt;
<img src ="http://www.blogjava.net/ssh2/aggbug/246685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-16 17:45 <a href="http://www.blogjava.net/ssh2/articles/246685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Navicat for MySQL 8.0.27  注册号</title><link>http://www.blogjava.net/ssh2/articles/246653.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Tue, 16 Dec 2008 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/246653.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/246653.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/246653.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/246653.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/246653.html</trackback:ping><description><![CDATA[<div class="softintro-content">Navicat是一个强大的MySQL数据库管理和开发ぞ摺avicat为专业开发者提供了一套强大的足够尖端的工具，但它对于新用户仍然是易于学习。Navicat,使用了极好的图形用户界面（GUI），可以让你用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。<br />
PremiumSoft Navicat for MySQL Enterprise Edition v8.0.27<br />
姓名(Name)：3ddown.com<br />
组织(Organization)：3ddown.com<br />
注册码(Serial)：NAVJ-W56S-3YUU-MVHV</div>
<img src ="http://www.blogjava.net/ssh2/aggbug/246653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-16 16:11 <a href="http://www.blogjava.net/ssh2/articles/246653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate 分页代码</title><link>http://www.blogjava.net/ssh2/articles/246638.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Tue, 16 Dec 2008 07:22:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/246638.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/246638.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/246638.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/246638.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/246638.html</trackback:ping><description><![CDATA[<span style="font-family: Verdana">
<p>&nbsp;<span style="font-family: Impact">//使用hibernate分页 pageSize 每页显示数， startRow 为 从第几个记录开始读取</span></p>
<p><span style="font-family: Impact"><span style="font-family: Arial"><span style="font-family: Times New Roman"><span style="font-size: 12pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp; public List findAllLuser(int pageSize, int startRow) throws HibernateException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final int pageSize1 = pageSize;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final int startRow1 = startRow;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(pageSize1 &amp; startRow1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.getHibernateTemplate().executeFind(new HibernateCallback() {</span></span></span></span></span></p>
<p><span style="font-family: Impact"><span style="font-family: Arial"><span style="font-family: Times New Roman"><span style="font-size: 12pt"><span style="font-size: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public List doInHibernate(Session session) throws HibernateException, SQLException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // TODO 自动生成方法存根<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Query query = session.createQuery("from luser order by id");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query.setFirstResult(startRow1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query.setMaxResults(pageSize1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //System.out.println(query.list().size());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return query.list();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />
&nbsp;&nbsp;&nbsp; }</span></span></span></span></span></p>
<br />
返回为 List 对象</span>
<img src ="http://www.blogjava.net/ssh2/aggbug/246638.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-16 15:22 <a href="http://www.blogjava.net/ssh2/articles/246638.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu8.04 安装 firestarter 启动失败 </title><link>http://www.blogjava.net/ssh2/articles/246309.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Mon, 15 Dec 2008 01:14:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/246309.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/246309.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/246309.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/246309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/246309.html</trackback:ping><description><![CDATA[记得我的电脑是在一次升级之后出现的这种情况，之前都使用得非常好，<span class="postbody">觉得可能是安装了一些中文汉化升级包，防火墙的一些英文参数发生了变化。不过还好，本人从网上找到了一些相关的帖子，解决了问题，本人验证过。<br />
<br />
在终端中输入：</span><span class="postbody"> sudo gedit /etc/firestarter/firestarter.sh <br />
<br />
在</span><span class="postbody"> # External network interface data<br />
</span><span class="postbody">这行注释的上面，添加一行： <br />
LANG=en_US <br />
<br />
保存后（不须重启），firestarter就可以顺利启动，正常工作了，再也没有那烦人的提示。<br />
<br />
<div forimg="1"><a target="_blank" href="http://hiphotos.baidu.com/liziliyeh/pic/item/745ca582e1084eb96c8119bd.jpg"><br />
</a></div>
</span> 注意：在加入LANG=en_US之后，如果再运行firestarter的运行向导，则先前加入的LANG=en_US会消失，错误问题会和以前一样出现，防火墙不能用，你须要再一次加入LANG=en_US<br />
<img src ="http://www.blogjava.net/ssh2/aggbug/246309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-15 09:14 <a href="http://www.blogjava.net/ssh2/articles/246309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NetBeans 6.5  解决内存溢出</title><link>http://www.blogjava.net/ssh2/articles/246145.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Sat, 13 Dec 2008 09:53:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/246145.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/246145.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/246145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/246145.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/246145.html</trackback:ping><description><![CDATA[<p>1，修改英文netbeans界面字体大小，修改%Netbeans_home%\etc\netbeans.conf<br />
在netbeans_default_options里加上 --fontsize 13</p>
<p>2，修改JVM内存配置（本机内存1G，不同内存大小不同设置）<br />
在netbeans_default_options里加上 -J-Xmx512m，同时修改-J-Xms256m。<br />
【说明】-J-Xms32m <br />
此设置用于通知 Java 虚拟机将其初始堆大小设置为 32 MB。通过通知 JVM 它最初应该为堆分配多少内存，我们可以防止它随着 IDE 使用更多的内存而将堆增大。 <br />
【说明】-J-Xmx128m <br />
此设置用于指定 Java 虚拟机应该用于堆的最大内存。对此数值设置硬性上限意味着 Java 进程不能使用比可用的物理 RAM
更多的内存。对于具有更多内存的系统可以提升此限制 - 128 MB 设置有助于确保 IDE 在 256MB
的系统上可靠地执行操作。注意：不要将此值设置为接近或大于系统中的物理 RAM 数，否则在主要回收过程中将导致频繁的交换空间操作。</p>
<p>3，在netbeans_default_options里修改 -J-XX:PermSize=20m <br />
这是一个较特殊的 JVM 开关，但它也缩短了启动时间。此设置用于调整内存中&#8220;永久区域&#8221;（在这里保存类）的大小。由于我们知道所有 IDE
类均占用特定数量的内存，因此我们向 JVM 提示它将需要的内存数量。此设置消除了许多系统上启动过程中的主要垃圾回收事件。SunONE
Studio 或包括更多模块的其他 IDE 的用户可能希望将此数值设置得更高些。</p>
<p>4，在netbeans_default_options里加上-J-Xverify:none<br />
此开关用于关闭 Java 字节码验证，从而加快类加载，以及消除在启动过程中仅为验证目的而加载类的需要。此开关将显著缩短启动时间。</p>
<p>5，在Tools-Plugins-installed里面把不需要的模块去掉<br />
我这里去掉了 Glashfish；JSF；CVS；Subversion等。速度就得到很大提高了。当然如果你的开发需要这些模块就不需要去掉了。</p>
<p>6，修改编辑器配置<br />
把所有的Javadoc自动弹出窗口去掉，把所有自动完成延时设置为0，把所有自动完成大小写敏感去掉。<br />
注：在netbeans6的JAVA代码编辑器设置里面默认没有设置代码自动完成的延时设置了。可以自己手动加入到配置文件C:\Documents
and
Settings\%USER_NAME%\.netbeans\6.0beta2\config\Editors\text\x-java下的
properties.xml，加入<br />
&lt;property class="java.lang.Integer" name="completion-auto-popup-delay" value="1"/&gt;<br />
【说明】 preperties.xml文件默认不存在，只有在你修改了编辑器配置以后才会出现这个文件。</p>
<p><font size="2" color="#993300">根据经验，Xmx应设为物理内存的一半，初始堆大小Xms是Xmx的1/2，比如1G内存的机器，Xms256m, Xmx512m<br />
Netbeans5.5.1默认的PermSize是160m，如果在开发中经常遇到</font><font size="2" color="#993300"> java.lang.OutOfMemoryError: PermGen space的异常，可以将此PermSize设大一些。<br />
</font>下面列出了一些其他的 JVM 开关，在一些系统（而不是所有系统）上，这些开关会或多或少地影响 NetBeans 性能。尽管使用它们会产生一定的影响，但仍值得一试。</p>
<ul>
    <li><strong>-J-XX:CompileThreshold=100</strong><br />
    此开关将会延长启动时间，原因是：与不使用此开关的情况相比，HotSpot JVM
    会以更快的速度将更多的方法编译到本地代码中。其结果是提高了IDE 运行时的性能，这是因为更多的 UI
    代码将被编译而不是被解释。此值表示在编译一个方法之前必须调用它的次数。</li>
    <li>-J-XX:+UseConcMarkSweepGC -J-XX:+UseParNewGC<br />
    如果出现垃圾回收意外中断的问题，则请尝试使用这些开关。此开关导致 JVM 对主要垃圾回收事件（如果在多处理器工作站上运行，则也适用于次要回收事件）使用不同的算法，这些算法不会影响整个垃圾回收进程。如果使用了 PermSize 开关，则还应向 <em>netbeans.conf</em> 文件中添加行<strong> <em>-J-XX:+CMSClassUnloadingEnabled</em></strong>，以便启用类卸载（使用此回收器时，缺省情况下不启用类卸载）。<strong>注意：</strong>目前尚不确定此回收器是提高还是降低单处理器计算机的性能。</li>
    <li>-J-XX:+UseParallelGC<br />
    某些测试表明，至少在内存配置相当好的单处理器系统中，使用此回收算法可以将次要垃圾回收的持续时间减少一半。请注意，这是一个矛盾的问题 - 事实上此回收器主要适用于具有千兆字节堆的多处理器系统。尚无可用数据表明它对主要垃圾回收的影响。注意：此回收器与 <em>-J-XX:+UseConcMarkSweepGC</em> 是互斥的。可以在性能 Web 站点上找到支持使用此算法的度量数据。</li>
    <li><span> </span><br />
    </li>
    <li>-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled，是优化垃圾回收的</li>
</ul>
<img src ="http://www.blogjava.net/ssh2/aggbug/246145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-13 17:53 <a href="http://www.blogjava.net/ssh2/articles/246145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用 s:action 返回本页面值</title><link>http://www.blogjava.net/ssh2/articles/246108.html</link><dc:creator>阿鹏鹏</dc:creator><author>阿鹏鹏</author><pubDate>Sat, 13 Dec 2008 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/ssh2/articles/246108.html</guid><wfw:comment>http://www.blogjava.net/ssh2/comments/246108.html</wfw:comment><comments>http://www.blogjava.net/ssh2/articles/246108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ssh2/comments/commentRss/246108.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ssh2/services/trackbacks/246108.html</trackback:ping><description><![CDATA[在action 类 中 需要 把 传入的值 写入：<br />
<br />
Object aa[]= {"aaa","bbb","ccc"};<br />
ServletActionContext.getRequest().setAttribute("temp", aa);<br />
<br />
//<br />
<br />
&nbsp;&lt;s:action name="login" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;s:iterator&nbsp; value="#attr.temp" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;s:property/&gt;<br />
&lt;/s:iterator&gt;
 <img src ="http://www.blogjava.net/ssh2/aggbug/246108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ssh2/" target="_blank">阿鹏鹏</a> 2008-12-13 11:51 <a href="http://www.blogjava.net/ssh2/articles/246108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>