??xml version="1.0" encoding="utf-8" standalone="yes"?>国产色91在线,99精品视频一区二区三区,免费av在线电影http://www.aygfsteel.com/itstarting/category/16182.html惌己所惻I做自己所?/description>zh-cnThu, 25 Mar 2010 03:17:17 GMTThu, 25 Mar 2010 03:17:17 GMT60如何在WebLogic 8.1.6环境中查找有q接池泄漏的代码http://www.aygfsteel.com/itstarting/archive/2008/11/13/240196.htmlITq行?/dc:creator>ITq行?/author>Wed, 12 Nov 2008 16:41:00 GMThttp://www.aygfsteel.com/itstarting/archive/2008/11/13/240196.htmlhttp://www.aygfsteel.com/itstarting/comments/240196.htmlhttp://www.aygfsteel.com/itstarting/archive/2008/11/13/240196.html#Feedback0http://www.aygfsteel.com/itstarting/comments/commentRss/240196.htmlhttp://www.aygfsteel.com/itstarting/services/trackbacks/240196.html解决q接池泄漏步?/span>

dweblogic console,  %Domain% -> Services -> JDBC -> Connection Pools -> jdbc/ioa

 

Configuration?/span> -> Connection, 点开Advanced Options, 修改以下配置状态:

 

配置名U?/span>

默认?/span>

修改?/span>

说明

Enable Connection Leak Profiling

启用

开启连接池泄漏的监控?/span>

Enable Connection Profiling

启用

开启连接池监控?/span>

Inactive Connection Timeout

0

100

q接在指定时间内Q单位:U)没有zd的话Q?/span>WebLogic会将之释攑ƈ回收到连接池?/span>

 

    以上配置修改后不媄响在跑的应用Q不需要重启服务器或应用(配置前没有黄色图?/span> <!--[if !vml]--><!--[endif]-->Q?/span>WebLogic很明的告诉我们q个配置是不需要重启的Q,所以大可放心设|。只是启用监控后会对性能有一些媄响,具体影响会有多大Q我没有试q,但开启这些设|只是暂时的Q得到日志后我们可以把配置q原会默认倹{?br />

在没有解册接池泄漏问题之前Q如果没有请求时q接池将一直保持ؓ0Q不会再有连接池满造成h无法响应的问题,我们也不用担心再挨客户骂Q也为我们解决问题争取了宝贵到时间?/span>

 

       好了Q下面才是关键?/span>

 

       q一D|间后Q在bea\user_projects\domains\%domainname%\%servername%目录下,打开%servername%.logQ查找,"A JDBC pool connection leak was detected"Q如?/span>WebLogic已经监控到有q接池泄漏的话,可以找C下日志,q且很清楚的告诉我们在哪一个类的哪行代码创Zq接Q但没有关闭Q注意红色加_字体)Q?/span>


 

2008-5-22 上午11?/span>47?/span>20U?/span> CST       Warning     JDBC                A JDBC pool connection leak was detected. A connection leak occurs when a connection obtained from the pool was not closed explicitly by calling close() and then was disposed by the garbage collector and returned to the connection pool. The following stack trace at create shows where the leaked connection was created. Stack trace at connection create:

       at weblogic.jdbc.wrapper.PoolConnection.init(PoolConnection.java:75)

       at weblogic.jdbc.pool.Driver.allocateConnection(Driver.java:254)

       at weblogic.jdbc.pool.Driver.connect(Driver.java:84)

       at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:546)

       at weblogic.jdbc.jts.Driver.connect(Driver.java:140)

       at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:344)

       at com.cp.fw.dao.BaseDAO.getConnection(BaseDAO.java:78)

       at com.cp.fw.dao.dataset.DataSetOp.init(DataSetOp.java:78)

       at com.cp.fw.dao.dataset.DataSetOp.<init>(DataSetOp.java:45)

       at com.cp.ia.util.WorkFlowUtil.getNextWrokFlowId(WorkFlowUtil.java:93)

       at

 

……

      

 

       另外一U方法:

?/span>WebLogic ConsoleQ展开 %DomainName% -> Servers -> %ServerName%Q选到Logging – Server,在页面最下方点击 "View server log"Q同h?/span> "A JDBC pool connection leak was detected"Q也可以扑ֈ同样的日志?/span>

 

WebLogic对于日志事g的说明:

 

Message ID

BEA-001074

Subsystem

JDBC

Message

A JDBC pool connection leak was detected. A

connection leak occurs when a connection obtained

from the pool was not closed explicitly by calling

close() and then was disposed by the garbage

collector and returned to the connection pool. The

following stack trace at create shows where the

leaked connection was created.  Stack trace at

connection create:

Detail

A JDBC pool connection leak was detected. A

connection leak occurs when a connection obtained

from the pool was not closed explicitly by calling

close() and then was disposed by the garbage

collector and returned to the connection pool. A

stack trace is printed indicating where the leaked

connection was created.

Cause

A JDBC pool connection leak was detected. A

connection leak occurs when a connection obtained

from the pool was not closed explicitly by calling

close() and then was disposed by the garbage

collector and returned to the connection pool. A

stack trace is printed indicating where the leaked

connection was created.

Action

Close the connection appropriately.



原文Qhttp://blog.csdn.net/esky2000/archive/2008/07/22/2689929.aspx

]]>
Spring2.x与ActiveMQ5.0成功集成的心得(配置)http://www.aygfsteel.com/itstarting/archive/2008/01/20/176642.htmlITq行?/dc:creator>ITq行?/author>Sun, 20 Jan 2008 15:41:00 GMThttp://www.aygfsteel.com/itstarting/archive/2008/01/20/176642.htmlhttp://www.aygfsteel.com/itstarting/comments/176642.htmlhttp://www.aygfsteel.com/itstarting/archive/2008/01/20/176642.html#Feedback3http://www.aygfsteel.com/itstarting/comments/commentRss/176642.htmlhttp://www.aygfsteel.com/itstarting/services/trackbacks/176642.htmlActiveMQ 5.0的文档实在是太少了,其是集成Spring2.x斚w更少?br />
        下面是配|方面的心得Q?br />         一、服务器端配|:

 M参考官方网站进行整合,差点x人,不停的出现各U配|错误,后来l过google查询各种邮g列表Q才发现xsd使用不当?/span>        

<?xml version="1.0" encoding="UTF-8"?>
<beans 
  
xmlns="http://www.springframework.org/schema/beans" 
  xmlns:amq
="http://activemq.org/config/1.0"
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.org/config/1.0 http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd"
>


</beans>

q个才是正确的,两点Q?/span>

1、去掉:

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

2、用q个而不是那个:

q个Q?/span>

           http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd

那个Q?/span>     
     http://activemq.apache.org/snapshot-schema/activemq-core-5.0-SNAPSHOT.xsd


        完整的配|如下:        
        applicationContext-activeMQ.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans 
  
xmlns="http://www.springframework.org/schema/beans" 
  xmlns:amq
="http://activemq.org/config/1.0"
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.org/config/1.0 http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd"
>

  
<amq:broker useJmx="true" persistent="true"> 
    
<amq:persistenceAdapter> 
        
<amq:jdbcPersistenceAdapter dataSource="#mysql-ds"/> 
      
</amq:persistenceAdapter> 
    
<amq:transportConnectors> 
       
<amq:transportConnector uri="tcp://localhost:0"/> 
    
</amq:transportConnectors> 
   
</amq:broker>
  
  
<!-- MySql DataSource Setup -->
  
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    
<property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
    
<property name="username" value="activemq"/>
    
<property name="password" value="activemq"/>
    
<!--
    <property name="poolPreparedStatements" value="true"/>
-->
  
</bean>
</beans>


        二?strong>web.xml配置Q?/strong> 

    <!--activeMQ-->
    
<context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>
            /WEB-INF/applicationContext-activeMQ.xml 
            /WEB-INF/applicationContext-jms.xml 
        
</param-value>
    
</context-param>

    
<listener>
        
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    
</listener>



        三、客L配置Q?strong>此处仅供参考,q未曑օ体实战确?/span>Q:
        applicationContext-jms.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans 
  
xmlns="http://www.springframework.org/schema/beans" 
  xmlns:amq
="http://activemq.org/config/1.0"
  xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.org/config/1.0 http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd"
>
  
<!-- ActiveMQ destinations to use  -->
  
<amq:queue id="destination"  physicalName="org.apache.activemq.spring.Test.spring.embedded"/>

  
<!-- JMS ConnectionFactory to use, configuring the embedded broker using XML -->
  
<amq:connectionFactory id="jmsFactory" brokerURL="vm://localhost"/>  
  
<!-- Spring JMS Template -->
  
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    
<property name="connectionFactory">
      
<!-- lets wrap in a pool to avoid creating a connection per send -->
      
<bean class="org.springframework.jms.connection.SingleConnectionFactory">
        
<property name="targetConnectionFactory">
          
<ref bean="jmsFactory" />
        
</property>
      
</bean>
    
</property>
    
<property name="messageConverter">
        
<ref bean="dynamicMessageConverter"/>
    
</property>
  
</bean>
  
  
<bean id="dynamicMessageConverter" class="com.tuanzi.message.mq.impl.DynamicMessageConverter"/>  

  
<bean id="consumerJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    
<property name="connectionFactory">
        
<ref bean="jmsFactory"/>
    
</property>
    
<property name="messageConverter">
        
<ref bean="dynamicMessageConverter"/>
    
</property>
    
<property name="receiveTimeout">
        
<value>10000</value>
    
</property>
  
</bean>

  
<!-- a sample POJO which uses a Spring JmsTemplate -->
  
<bean id="simpleMessageProducer" class="com.tuanzi.message.mq.impl.SimpleMessageProducer">
    
<property name="jmsTemplate">
      
<ref bean="jmsTemplate"></ref>
    
</property>
    
<property name="destination">
      
<ref bean="destination" />
    
</property>
  
</bean>

  
<!-- a sample POJO consumer -->
  
<bean id="simpleMessageConsumer" class="com.tuanzi.message.mq.impl.SimpleMessageConsumer">
    
<property name="jmsTemplate" ref="consumerJmsTemplate"/>
    
<property name="destination" ref="destination"/>
  
</bean>
</beans>


    TODO:
    1、客L的配|需要实战后q行q一步的认、更斎ͼ
    2、后期视情况增加一《Spring2.x与ActiveMQ5.0成功集成的心得(实战)?br />

    主要参考:

http://activemq.apache.org/spring-support.html

http://activemq.apache.org/xml-reference.html



]]>
Jmagick的安装和使用http://www.aygfsteel.com/itstarting/archive/2007/07/26/132499.htmlITq行?/dc:creator>ITq行?/author>Thu, 26 Jul 2007 04:53:00 GMThttp://www.aygfsteel.com/itstarting/archive/2007/07/26/132499.htmlhttp://www.aygfsteel.com/itstarting/comments/132499.htmlhttp://www.aygfsteel.com/itstarting/archive/2007/07/26/132499.html#Feedback4http://www.aygfsteel.com/itstarting/comments/commentRss/132499.htmlhttp://www.aygfsteel.com/itstarting/services/trackbacks/132499.html
jmagick的安装(ZwindowsQ,_版步骤:
1、下载j(lu)magick-win-5.5.7-Q8.zipQƈ把jmagick.jar攑ֈ应用的lib下,jmagick.dll拯到SYSTEM32下;
2、安装ImageMagick-5.5.7-Q8-windows-dll.exe软g
3、重新启动机?br>ȝ点,但对囄的处理能力,实乎惌的(不过?.2.6版本频频出现JVM CrachQ吓死)

jmagick的用,我只用了囄~放Q还可以?br>代码如下Q?br>   System.setProperty("jmagick.systemclassloader", "no");//q个没什么好说的Q照办就是了
   ImageInfo info = new ImageInfo(fromFileName);
   MagickImage fromImage = new MagickImage(info);
   Dimension dim = fromImage.getDimension();
   double w = dim.getWidth();
   double h = dim.getHeight();
   int toHeight = (int)(h*toWidth/w);//按宽度比例羃?br>      
   MagickImage toImage = fromImage.scaleImage(toWidth, toHeight);//~放操作
   toImage.setFileName(toFileName);//讄输出的文件名
   toImage.writeImage(info); //保存


q程中发现最新版本的诸多问题Q要么NoClassDefFoundError要么Can't find dependent librariesQ简直不胜其烦?br>
后来降?.5.7Q就好了Q说明IT人唯最新版本是从的x不一定正?br>
说心里话Q过E中曄出现q多ơJVM crachQ现在还有心理阴影?

]]>
Tips:如何q程调试Tomcat或者WeblogicQ解放我们脆qW记?/title><link>http://www.aygfsteel.com/itstarting/archive/2007/06/13/123890.html</link><dc:creator>ITq行?/dc:creator><author>ITq行?/author><pubDate>Wed, 13 Jun 2007 08:22:00 GMT</pubDate><guid>http://www.aygfsteel.com/itstarting/archive/2007/06/13/123890.html</guid><wfw:comment>http://www.aygfsteel.com/itstarting/comments/123890.html</wfw:comment><comments>http://www.aygfsteel.com/itstarting/archive/2007/06/13/123890.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/itstarting/comments/commentRss/123890.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/itstarting/services/trackbacks/123890.html</trackback:ping><description><![CDATA[<p>    对于开发和实施人员来说Q也许大家经怼到q样的对话:</p> <p>    实施工程师:pȝ有问题了Q是哪里哪里Q省略字若干+若干界面截图Q?br />     开发工E师Q不可能Q我q边q原了整个环境,包括数据库、代码和中间?#8230;…<br />     实施工程师:q边是weblogicQ你那边是?<br />     开发工E师Q我的是TomcatQ但Tomcat和weblogic的差异呢Q不知道……</p> <p>    然后没有结果,因ؓ我们的个人电(sh)脑真的无法或者难以承受weblogic或者websphere之重?/p> <p>    怎么办呢Q其实我们可以用q程调试的方法:<br />     <br />     三步配置q程调试Q?br />     一、对于TOMCATQ?br />       1、打开catalina.batQƈ加入Q?br />         SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5555<br />       2、配|EclipseQ如下图Q此时Port与上面的address一_?555Q:<br /> <img src="http://www.aygfsteel.com/images/blogjava_net/itstarting/debug_1.JPG" border="0" alt="" /><br />  <br />     3、如果Tocat已经hQ注意,可能在另外的机器上)Q那点击debugQ即可进行与本地服务一L调试q程?/p> <p>    二、对于WeblogicQ?br />       1、打开startWebLogic.cmdQƈ调整执行java命o的地方:<br /> %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server<br /> 调整?br /> @REM ORG : %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server<br /> @REM Surport Remote Debug :<br /> set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_Socket,address=4000,server=y,suspend=n<br /> %JAVA_HOME%\bin\java %JAVA_VM% %JAVA_DEBUG% %MEM_ARGS% %JAVA_OPTIONS% -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server<br />       2、其他配|类似TomcatQ如下:<br />     <img src="http://www.aygfsteel.com/images/blogjava_net/itstarting/debug_2.JPG" border="0" alt="" /><br />     3、同P如果weblogic已经hQ注意,我上面的例子是weblogic不在本机上,而在于另外的机器上)Q那点击debugQ即可进行与本地服务一L调试q程Q如下:</p> <p><img style="width: 737px; height: 535px" height="535" src="http://www.aygfsteel.com/images/blogjava_net/itstarting/debug_3.JPG" width="737" border="0" alt="" /></p> <p>    大家也许会问Q这栯试会不会影响客户使用Q当然会影响Q如果一旦hit了断点,则整个应用会被挂赗那怎么h能尽可能的进行调试呢Q方法还是有的:<br />     1、如果是tomcatQ重新复制一份tomcatQ修改一下端口,然后h后调试,此时整个环境都类gQ调试v来非常方便;<br />     2、如果是weblogicQ重新徏立一个新的domain卛_Q互不干扎ͼ<br />     3、如果是websphereQ呵呵,没试q,留给大家的作业?/p> <p>    原理Q好奇的会问Q其实就是jdwp(Java(tm) Debug Wire Protocol)Q有兴趣google一下吧?/p> <img src ="http://www.aygfsteel.com/itstarting/aggbug/123890.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/itstarting/" target="_blank">ITq行?/a> 2007-06-13 16:22 <a href="http://www.aygfsteel.com/itstarting/archive/2007/06/13/123890.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FCKeditor的几炚w要改q和使用心得Q值得分nhttp://www.aygfsteel.com/itstarting/archive/2007/03/11/103142.htmlITq行?/dc:creator>ITq行?/author>Sun, 11 Mar 2007 12:20:00 GMThttp://www.aygfsteel.com/itstarting/archive/2007/03/11/103142.htmlhttp://www.aygfsteel.com/itstarting/comments/103142.htmlhttp://www.aygfsteel.com/itstarting/archive/2007/03/11/103142.html#Feedback11http://www.aygfsteel.com/itstarting/comments/commentRss/103142.htmlhttp://www.aygfsteel.com/itstarting/services/trackbacks/103142.html阅读全文

]]>
关于Apache+Tomcat的Cluster的郁闷问题,l于得到解决http://www.aygfsteel.com/itstarting/archive/2007/03/07/102335.htmlITq行?/dc:creator>ITq行?/author>Wed, 07 Mar 2007 02:51:00 GMThttp://www.aygfsteel.com/itstarting/archive/2007/03/07/102335.htmlhttp://www.aygfsteel.com/itstarting/comments/102335.htmlhttp://www.aygfsteel.com/itstarting/archive/2007/03/07/102335.html#Feedback5http://www.aygfsteel.com/itstarting/comments/commentRss/102335.htmlhttp://www.aygfsteel.com/itstarting/services/trackbacks/102335.html此类话题已经很多Q可以参考的文档也不,我是参考这个blog的文档做的:
http://blogger.org.cn/blog/blog.asp?name=lhwork

1Q环境和版本Q?br />Apache2.0.59+Tomcat5.5.15Q两个)Q一开始用的是Tomcat5.0.28Q一直有问题Q在后面ȝQ,升U到5.5d试验了,冤枉5.0.28兄弟?)

步骤结为:
1、安装(忽略Q;
2、配|TomcatQ?br />   1Q第一个TomcatQ?br />      A.启用jvmRoute      
    <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">          
    <!-- Define the top level container in our container hierarchy
    <Engine name="Catalina" defaultHost="localhost">-->
      B.启用原来用的Cluster讄
      
        <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">

            <Membership
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastBindAddress="127.0.0.1"
                mcastAddr="224.1.2.3"
                mcastPort="2525"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver
                className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="auto"
                tcpListenPort="4001"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>

            <Sender
                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="pooled"
                ackTimeout="15000"/>

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
                  
            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>
                     
            <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
        </Cluster>
      C.搞定
   2Q配|第二个TomcatQ要注意端口冲突了)Q?br />      A.变更端口
      <Server port="8005" shutdown="SHUTDOWN">
      Q?br />      <Server port="8004" shutdown="SHUTDOWN">
      B.变更端口
      <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
      Q?br />      <Connector port="9009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
      C.启用jvmRoute      
    <!-- You should set jvmRoute to support load-balancing via AJP ie :-->
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat2">          
    <!-- Define the top level container in our container hierarchy
    <Engine name="Catalina" defaultHost="localhost">-->
      D.启用原来用的Cluster讄      
        <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">

            <Membership
                className="org.apache.catalina.cluster.mcast.McastService"
                mcastBindAddress="127.0.0.1"
                mcastAddr="224.1.2.3"
                mcastPort="2525"
                mcastFrequency="500"
                mcastDropTime="3000"/>

            <Receiver
                className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="auto"
                tcpListenPort="4002"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>

            <Sender
                className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="pooled"
                ackTimeout="15000"/>

            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
                   filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
                  
            <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>
                     
            <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
        </Cluster>
      E.搞定
3、配|a(chn)pacheQ?br />   1Q修订conf/httpd.conf      
      #add by zhengxq
      LoadModule jk2_module modules/mod_jk2.so
   2Q新增worders2.propertiesq放到conf?br />      [shm]
info=Scoreboard. Requried for reconfiguration and status with multiprocess servers.
file=anon

# Defines a load balancer named lb. Use even if you only have one machine.
[lb:lb]
worker=ajp13:tomcat1
worker=ajp13:tomcat2

# Example socket channel, override port and host.
[channel.socket:localhost:9009]
port=9009
host=127.0.0.1

# define the worker
[ajp13:localhost:9009]
channel=channel.socket:localhost:9009
group=lb

# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1

# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
group=lb

# Map the Tomcat examples webapp to the Web server uri space
[uri:/clusterapp/*]
group=lb
      3Q搞?br />
3.试E序Q请参考上q参考文档,如下Q?br /><%@ page contentType="text/html; charset=GBK" import="java.util.*"%>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info: <%out.print(request.getLocalAddr() + " : " + request.getLocalPort());%>
<%
out.println("<br> ID " + session.getId());

// 如果有新?Session 属性设|?br />String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
  String dataValue = request.getParameter("dataValue");
  session.setAttribute(dataName, dataValue);
}

out.print("<b>Session 列表</b>");

Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
  String name = (String)e.nextElement();
  String value = session.getAttribute(name).toString();
  out.println( name + " = " + value);
  }
%>
<form action="index.jsp" method="POST">
  名称:<input type=text size=20 name="dataName">
  <br>
  ?<input type=text size=20 name="dataValue">
  <br>
  <input type=submit>
  </form>
</body>
</html>



   所需要注意的是:
   1、测试应用的web.xml必须加上Q?lt;distributable/>
   2、我搞了很久Q发C个东西v来后Q可以访问,但只能做到负载均衡,不能session复制Q这Ҏ(gu)重复配置了一ơ,是不行Q郁闷之下找了tomcat的邮件列表,q样做:
      1Q测试广播是否正?br />         A. download this jar
            http://cvs.apache.org/~fhanik/tomcat-replication.jar

         B. Open two terminals 
            a) Terminal one run
               java -cp tomcat-replication.jar MCaster 239.255.10.10 2525 Terminal1
            b) Terminal two run
               java -cp tomcat-replication.jar MCaster 239.255.10.10 2525 Terminal2
         发现l果如下Q?br />         C:\>java -cp tomcat-replication.jar MCaster 224.1.2.3 2525 Terminal1
Usage MCaster [address port message]
BEGIN TO RECEIVE
SENT:Terminal11
SENT:Terminal12
SENT:Terminal13
SENT:Terminal14
SENT:Terminal15
SENT:Terminal16
SENT:Terminal17
SENT:Terminal18

         表明q播有问题,气死了,难怪TomcatL在启动的时候提C:
         信息: Manager [/clusterapp]: skipping state transfer. No members active in cluster group.

      后来l于发现猫腻Q必L意在server.xml?lt;Cluster ..<Membership里面加上mcastBindAddress="127.0.0.1"?br />       Z么呢Q很单,因ؓ我安装了VPNQ这家伙会设|一个虚拟网卡,Dl定p|Q没地方责怪了Q只好让它垫背)Q!q是通过邮g列表里面所描述的多|卡l定问题举一反三得到的判断。具体请参考:http://www.servlets.com/archive/servlet/ReadMsg?msgId=475067&listName=tomcat-user

      




]]>
վ֩ģ壺 ϻ| | | | ɽ| | ̩| | ƽ| | °| | ȷɽ| Ӽ| | ī| | ݳ| | Դ| | | ˫| ͡| ͬ| | Ұ| | | ƽ| ʡ| | | | | | Ԫı| Ϋ| | | ¡|