??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕亚洲精品无码,亚洲综合色区中文字幕,亚洲成AV人片高潮喷水http://www.tkk7.com/fiele/archive/2011/12/13/366240.html半导?/dc:creator>半导?/author>Tue, 13 Dec 2011 06:58:00 GMThttp://www.tkk7.com/fiele/archive/2011/12/13/366240.htmlhttp://www.tkk7.com/fiele/comments/366240.htmlhttp://www.tkk7.com/fiele/archive/2011/12/13/366240.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/366240.htmlhttp://www.tkk7.com/fiele/services/trackbacks/366240.html

文章来源:http://dzq2008.iteye.com/blog/627078
一台机器运行多?/span> jboss

环境Q一Q: jboss4·0·1sp1 ?/span> JDK1.5

步骤一?/span>

打开 $JBOSS_HOME/server/default/conf/jboss-service.xml

       1?span>  查找刎ͼ mbean - ServiceBindingManager Q将其注释去掉?/span>

       2?span>  修改 8083 Q?/span> 1098 Q?/span> 1099 Q?/span> 4444 Q?/span> 4445 端口倹{?/span>

步骤二?/span>

打开 $JBOSS_HOME/server/default/conf/jboss-minimal.xml
      
修改 1099 Q?/span> 1098 端口|与“步骤一”中保持一致?/span>

步骤三?/span>

打开 $JBOSS_HOME/docs/examples/binding-manager/sample-bindings.xml

修改 ports-01 端口Q避免出?/span> port 冲突的问题?/span>

步骤四?/span>

打开 $JBOSS_HOME/server/default/deploy/jbossweb-tomcat50.sar/server.xml
      
修改 8080 Q?/span> 8009 Q?/span> 8443 端口倹{?/span>

步骤五?/span>

打开 $JBOSS_HOME/server/default/deploy/jms/uil2-service.xml
      
修改 8093 端口倹{?/span>

环境 Q二Q?/span> Q?/span> jboss-4.2.3.GA ?/span> JDK1.5 Q配|如下:

步骤一?/span>

打开 $JBOSS_HOME/server/default/conf/jboss-service.xml

       1?span>  查找刎ͼmbean - ServiceBindingManagerQ将其注释去掉?/span>

       2?span>  修改8083Q?/span>1098Q?/span>1099Q?/span>4444Q?/span>4445Q?/span>4446端口倹{?/span>

步骤二?/span>

打开 $JBOSS_HOME/server/default/conf/jboss-minimal.xml
      
修改 1099 Q?/span> 1098 端口|与“步骤一”中保持一致?/span>

步骤三?/span>

打开 $JBOSS_HOME/docs/examples/binding-manager/sample-bindings.xml

修改 ports-01 端口Q避免出?/span> port 冲突的问题?/span>

步骤四?/span>

打开 $JBOSS_HOME/server/default/deploy/jboss-web.deployer /server.xml
      
修改 8080 Q?/span> 8009 Q?/span> 8443 端口倹{?/span>

步骤五?/span>

打开 $JBOSS_HOME/server/default/deploy/jms/uil2-service.xml
      
修改 8093 端口倹{?/span>

步骤六?/span>

打开 $JBoss_home/server/default/deploy/ejb3.deployer/META-INF/jboss-service.xml

修改 3873 端口的?/span>

JBoss 官方文档如下q接Q?/span>

http://www.jboss.org/community/docs/DOC-9384



]]>
I/O exception http://www.tkk7.com/fiele/archive/2011/04/27/349134.html半导?/dc:creator>半导?/author>Wed, 27 Apr 2011 09:38:00 GMThttp://www.tkk7.com/fiele/archive/2011/04/27/349134.htmlhttp://www.tkk7.com/fiele/comments/349134.htmlhttp://www.tkk7.com/fiele/archive/2011/04/27/349134.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/349134.htmlhttp://www.tkk7.com/fiele/services/trackbacks/349134.html        在测试webservice上报?本机与服务器E序及Y件版本一?但本试不报错,服务器报错信息如?
18:45:09,110 INFO  [HttpMethodDirector] I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
18:45:09,110 INFO  [HttpMethodDirector] Retrying request
18:45:10,673 WARN  [RequestProcessor] Unhandled Exception thrown: class org.apache.catalina.connector.ClientAbortException
只有info信息,没有error信息,首先排除是程序或配置文g引v的错误信?
再仔l查?发现服务器上安装了一个hp network 工具,听说q个工具可以拿来配置双卡成一卡,处理负蝲均衡,
本h直接在本地连接中取消了此属?再测试上?问题解决!

]]>
WebLogic内存溢出问题配置http://www.tkk7.com/fiele/archive/2010/11/25/339019.html半导?/dc:creator>半导?/author>Thu, 25 Nov 2010 06:11:00 GMThttp://www.tkk7.com/fiele/archive/2010/11/25/339019.htmlhttp://www.tkk7.com/fiele/comments/339019.htmlhttp://www.tkk7.com/fiele/archive/2010/11/25/339019.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/339019.htmlhttp://www.tkk7.com/fiele/services/trackbacks/339019.html在weblogic/common/bin/commEnv.sh中配|?

  MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m"

  -XmsQ内存初始?

  -XmxQ内存最大|不要过内存?0%Q?

  MaxPermSizeQPermGenQClass和Meta存放区域Q区域内存最大倹{?

  可调整ؓQ?

  MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=256m"

   -XX:MaxPermSize改ؓ256?12



]]>
license错误解决办法http://www.tkk7.com/fiele/archive/2010/09/26/332951.html半导?/dc:creator>半导?/author>Sun, 26 Sep 2010 06:06:00 GMThttp://www.tkk7.com/fiele/archive/2010/09/26/332951.htmlhttp://www.tkk7.com/fiele/comments/332951.htmlhttp://www.tkk7.com/fiele/archive/2010/09/26/332951.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/332951.htmlhttp://www.tkk7.com/fiele/services/trackbacks/332951.html 可是生成新的密钥?q是报license错误,最后的解决办法为更改Microsoft Loopback Adapterq接物理地址.

]]>
Tomcat内存溢出的三U情况及解决办法分析 来源Qhttp://developer.51cto.com/art/200908/144653.htmhttp://www.tkk7.com/fiele/archive/2009/12/18/306573.html半导?/dc:creator>半导?/author>Fri, 18 Dec 2009 08:06:00 GMThttp://www.tkk7.com/fiele/archive/2009/12/18/306573.htmlhttp://www.tkk7.com/fiele/comments/306573.htmlhttp://www.tkk7.com/fiele/archive/2009/12/18/306573.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/306573.htmlhttp://www.tkk7.com/fiele/services/trackbacks/306573.html
    在生产环境中tomcat内存讄不好很容易出现内存溢出。本文分析了三种造成Tomcat内存溢出的原因,q分别进行了分析?/ul>

      Tomcat内存溢出的原?/strong>

      在生产环境中tomcat内存讄不好很容易出现内存溢出。造成内存原因是不一LQ当然处理方式也不一栗?/p>

      q里Ҏqx遇到的情况和相关资料q行一个ȝ。常见的一般会有下面三U情况:

      1.OutOfMemoryError: Java heap space

      2.OutOfMemoryError: PermGen space

      3.OutOfMemoryError: unable to create new native thread.

      Tomcat内存溢出解决Ҏ

      对于前两U情况,在应用本w没有内存泄露的情况下可以用讄tomcat jvm参数来解冟뀂(-Xms -Xmx -XX:PermSize  -XX:MaxPermSizeQ?/p>

      最后一U可能需要调整操作系l和tomcat jvm参数同时调整才能辑ֈ目的?/p>

      W一U:是堆溢出?/strong>

      在JVM中如?8Q的旉是用于GC且可用的 Heap size 不2Q的时候将抛出此异怿息?/p>

      没有内存泄露的情况下Q调?Xms -Xmx参数可以解决?/p>

      -Xms:初始堆大?

      -Xmx:最大堆大小

      但堆的大受下面三方面媄响:

      1.相关操作pȝ的数据模型(32-btq是64-bitQ限ӞQ?2位系l下Q一般限制在1.5G~2GQ我?003 server pȝ下(物理内存Q?G?GQjdkQ?.6Q测?1612MQ?4为操作系l对内存无限制。)

      2.pȝ的可用虚拟内存限Ӟ

      3.pȝ的可用物理内存限制?/p>

      堆的大小可以使用 java -Xmx***M  version 命o来测试。支持的话会出现jdk的版本号Q不支持会报错?/p>

      -Xms -Xmx一般配|成一h较好比如set JAVA_OPTS= -Xms1024m -Xmx1024m

      W二U:怹保存区域溢出

      PermGen space的全U是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信?Class在被 Load的时候被攑օPermGen space区域Q它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主E序q行期对PermGen spaceq行清理Q所以如果你的APP会LOAD很多CLASS的话,很可能出现PermGen space错误。这U错误常见在web服务器对JSPq行pre compile的时候。但目前的hibernate和spring目中也很容易出现这L问题?a >http://www.javaeye.com/topic/80620?page=1 的帖子有讨论的这个问题。可能是׃q些框架会动态classQ而且jvm的gc是不会清理PemGen space的,D内存溢出?/p>

      q一个一般是加大-XX:PermSize  -XX:MaxPermSize 来解决问题?/p>

      -XX:PermSize 怹保存区域初始大小

      -XX:PermSize 怹保存区域初始最大?/p>

      q一般结合第一条用,比如 set JAVA_OPTS= -Xms1024m -Xmx1024m  -XX:PermSize=128M -XX:PermSize=256M

      有一炚w要注意:java -Xmx***M  version 命o来测试的最大堆内存?-Xmx?-XX:PermSize??比如pȝ支持最大的jvm堆大事1.5GQ那  -Xmx1024m  -XX:PermSize=768M 是无法运行的?/p>

      W三U:无法创徏新的U程?/strong>

      q种现象比较见Q也比较奇怪,主要是和jvm与系l内存的比例有关?/p>

      q种怪事是因为JVM已经被系l分配了大量的内?比如1.5G)Qƈ且它臛_要占用可用内存的一半。有人发玎ͼ在线E个数很多的情况下,你分配给JVM的内存越多,那么Q上q错误发生的可能性就大?/p>

      产生q种现象的原因如下(从这个blog中了解到原因Q?a >http://hi.baidu.com/hexiong/blog/item/16dc9e518fb10c2542a75b3c.htmlQ:

      每一?2位的q程最多可以?G的可用内存,因ؓ另外2G被操作系l保留。这里假设?.5GlJVMQ那么还余下500M可用内存。这500M内存中的一部分必须用于pȝdll的加载,那么真正剩下的也许只?00MQ现在关键的地方出现了:当你使用Java创徏一个线E,在JVM的内存里也会创徏一个Thread对象Q但是同时也会在操作pȝ里创Z个真正的物理U程(参考JVM规范)Q操作系l会在余下的400兆内存里创徏q个物理U程Q而不是在JVM?500M的内存堆里创建。在jdk1.4里头Q默认的栈大是256KBQ但是在jdk1.5里头Q默认的栈大ؓ1M每线E,因此Q在余下400M的可用内存里Ҏ们最多也只能创徏400个可用线E?/p>

      q样l论出来了Q要惛_建更多的U程Q你必须减少分配lJVM的最大内存。还有一U做法是让JVM宿主在你的JNI代码里边?/p>

      l出一个有兌够创建线E的最大个数的估算公式Q?/p>

      (MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads

      对于jdk1.5而言Q假设操作系l保?20M内存Q?/p>

      1.5GB JVM: (2GB-1.5Gb-120MB)/(1MB) = ~380 threads

      1.0GB JVM: (2GB-1.0Gb-120MB)/(1MB) = ~880 threads

      ?000/XP/2003的boot.ini里头有一个启动选项Q好像是Q?PAE /3G Q可以让用户q程最大内存扩充至3GQ这时操作系l只能占用最?G的虚存。那样应该可以让JVM创徏更多的线E?/p>

      因此q种情况需要结合操作系l进行相兌整?/p>

      因此Q我们需要结合不同情况对tomcat内存分配q行不同的诊断才能从Ҏ上解决问题?/p>

      以上是针对Tomcat内存溢出的几U解x案。本文来自George的博客:《tomcat内存溢出ȝ?/p>



    ]]>TOMCAT?JBOSS HTTPS应用配置Ҏ http://zhdf.blog.sohu.com/78389522.htmlhttp://www.tkk7.com/fiele/archive/2009/10/21/299225.html半导?/dc:creator>半导?/author>Wed, 21 Oct 2009 09:12:00 GMThttp://www.tkk7.com/fiele/archive/2009/10/21/299225.htmlhttp://www.tkk7.com/fiele/comments/299225.htmlhttp://www.tkk7.com/fiele/archive/2009/10/21/299225.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/299225.htmlhttp://www.tkk7.com/fiele/services/trackbacks/299225.html参考网站,
    CA证书Q?a >http://hi.baidu.com/pipilong03305/blog/item/89c9d6efdaf592e9cf1b3e76.html
    EVSSL服务器:http://verisign.itrus.com.cn/Service/Print.asp?ArticleID=31
    TOMCAT?JBOSS HTTPS应用配置Ҏ:http://zhdf.blog.sohu.com/78389522.html
    http://thawte.wotrust.cn/Support/java_signing_guide.htm

    TOMCAT?JBOSS HTTPS应用配置Ҏ

    SSL
     或者Secure Socket LayerQ是一U允许web览器和web服务器通过一个安全的q接q行交流的技术。这意味着被发送的数据在一端被译成密码,传送出去,然后在另一端解开密码Q再q行处理。这是一个双向的q程Q也是览器和服务器都需要在发送数据之前对它们q行加密?/p>

    SSL协定的另一个重要方面是认证(Authentication)。这是_在你开始试N过一个安全连接与一个web服务器交的时候,q个服务器会要求你的览器出CZl证Ӟ通过“鉴定”的方式来证明q就是你所声明的网站?/p>

    在某些情况下Q服务器q会要求你的web览器的认证书,证明你就是你所说的那个人。这是所知的“客户认证”Q尽实际情况中Q更多地用在商务-?商务(B2B)交易Q而不是对个h用户?/p>

    但大多数有SSL功能的web服务器不要求客户认证(Client Authentication)?/p>

    证书
    Z能实施SSLQ一个web服务器对每个接受安全q接的外部接?IP 地址)必须要有相应的证?Certificate)。关于这个设计的理论是一个服务器必须提供某种合理的保证以证明q个服务器的Mh是你所认ؓ的那个h。这个证书要陈述与这个网站相兌的公司,以及q个|站的所有者或pȝ理员的一些基本联pM息?/p>

    q个证书由所有h以密码方式签字,其他人非帔R伪造。对于进行电子商?e-commerce)的网站,或其他n份认证至关重要的M商业交易Q认证书要向大家所熟知的认证权?Certificate Authority (CA))如VeriSign或Thawte来购买。这L证书可用电子技术证明属实。实际上Q认证权威单位会担保它发出的认证书的真实性,如果你信d证书的认证权威单位的话,你就可以怿q个认证书是有效的?/p>

     

    Java 生成证书
    在许多情况下Q认证ƈ不是真正使h担忧的事。系l管理员或许只想要保证被服务器传送和接收的数据是U密的,不会被连接线上的L者盗H到。庆q的是,Java提供相对单的被称为keytool的命令行工具Q可以简单地产生“自己{֐”的证书。自q名的证书只是用户产生的证书,没有正式在大家所熟知的认证权威那里注册过Q因此不能确保它的真实性。但却能保证数据传输的安全性?/p>

    keytool生非签发证?br /> keytool -genkey -alias tomcat -keyalg RSA -keystore d:\tomcat.keystore

    在此命o中,keytool是JDK自带的生证书的工具。把RSAq算法则作ؓ主要安全q算法则Q这保证了与其它服务器和lg的兼Ҏ?/p>

    q个命o会在用户的d:\tomcat.keystore产生一个叫?tomcat.keystore" 的新文g。你会被要求出示关于q个认证书的一般性信息,如公司,联系人名Uͼ{等。这些信息会昄l那些试图访问你E序里安全网늚用户Q以保q里提供的信息与他们期望的相对应。你会被要求出示密钥(key)密码Q也是q个认证书所Ҏ的密?与其它的储存在同一个keystore文g里的认证书不?。你必须在这里用与keystore密码相同的密码?目前Qkeytool会提CZ按ENTER键会自动帮你做这??/p>

     

    如果一切顺利,你现在就拥有了一个可以被你的服务器用的有认证书的keystore文g?/p>

    甌{֏证书
    自己生q签名的证书相对用户使不可信的,也是不安全的Q所以一般我们需要向证书发放机构去购买证书,或者获取免费证书,下面是正式的甌程和在tomcat中的配置Qjboss或者apache请参阅相关配|?/p>

    1) 生成U钥和公钥对(Keystore) Create a Keystore

    keytool -genkey -keyalg rsa -keystore <keystore_filename> -alias <alias_name>

    Keytool 会提C您输入U钥密码、您的姓?Your nameQ填单位|址)、您的部门名U、单位名U、所在城市、所在省份和国家~写(中国填:CNQ其他国家填其羃?Q单位名UC定要与证明文件上的名UC_部门名称(OU)可以不填。除国家~写必须填CN外,其余都可以是英文或中文。请一定要保存好您的私钥和U钥密码。WoTrust不会要求您提供私钥文Ӟ

    (2) 生成证书h文g(CSR) Generate a CSR

    keytool –certreq –file certreq.csr –keystore <keystore_filename> -alias <alias_name>

    h生成的certreq.csr 文g复制和粘贴到Thawte证书在线甌面的CSR文本框中Q或直接发给WoTrustQ请{待1-2个工作日后颁发证书?/p>

     

    (3) 导入{֐证书 Import Thawte Codesigning Certificate

    一旦Thawte验证了您的真实n份,会颁发证书l您。您需要到Thawte|站下蝲您的证书Q请选择 PKCS #7 格式证书(PKCS #7 Certificate Chain)Q此证书格式含有您的证书和根证书链,Keytool要求此格式证?Q请把证书保存到您的电脑中?/p>

    请用如下命令导入您的证书到keystore 中,q里假设您的证书名称为:cert.cerQ请同时指明详细路径Q一旦成功导入证书,请及时备份您的keystore文gQ?/p>

    c:\jdk1.5\bin\keytool –import –trustcacerts –keystore <keystore_filename> -alias <alias_name> -file cert.cer

     

     

    tomcat 和jboss配置
    不管你用的是keytool生的非正式证书q是甌的正式证书,tomcat和jboss的配|都是一L?/p>

    Tomcat配置
    L$CATALINA_HOME/conf/server.xmlq个文g中这D代码的注释Q红色部分ؓd部分。请先copy tomcat.keystore文g到tomcatȝ录?/p>


    < -- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector port="8443" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" disableUploadTimeout="true"
                   acceptCount="100" scheme="https" secure="true"
                   clientAuth="false" sslProtocol="TLS"
            keystoreFile="tomcat.keystore" keystorePass="123456"
            keystoreType="jks"/>

    Connector元素本nQ其默认形式是被注释掉的(commented out)Q所以需要把它周围的注释标志删除掉。然后,可以Ҏ需要客户化(自己讄)特定的属性。一般需要增加一下keystoreFile和keystorePass两个属性,指定你存放证书的路径Q如QkeystoreFile="C:/.keystore"Q和刚才讄的密码(如:keystorePass="123456"Q。在完成q些配置更改后,必须象重新启动TomcatQ然后你可以通过SSL讉KTomcat支持的Q何web应用E序。只不过指o需要像下面q样Q?/p>

    https://localhost:8443

     

    JBOSS配置
    1)把keystore文g拯到jboss安装目录\server\default\conf?/p>

    2)和tomcacMQ找到jboss安装目录\server\default\deploy\jboss-web.deployer\server.xml文g

    https配置已经有了Q不q被注释掉了Q按如下配置卛_

    L注释W号 <!-- ?-->

    <Connector port="8443" address="${jboss.bind.address}"
               maxThreads="100" strategy="ms" maxHttpHeaderSize="8192"
               emptySessionPath="true"
               scheme="https" secure="true" clientAuth="false"
               keystoreFile="${jboss.server.home.dir}/conf/tomcat.keystore"
               keystorePass="123456" sslProtocol = "TLS" />

     
    本h操作步骤Q?br />

    -重新生成jks
    -重新生成jks
    E:\jdk1.4\bin>keytool -genkey -alias tomcat -keyalg RSA -keystore d:\mykeystore.jks  -validity 1000000
    会生成一个tomcat.keystoreQ再配置server.xml便可以用https讉KQ但q样生成的属自己生q签名的证书相对用户使不可信的,也是不安全的
    甌{֏证书
    E:\jdk1.4\bin>keytool -genkey -keyalg rsa -keystore mykeystore.jks -alias jboss
    在当前目录生成mykeystore.jks文gQ别名ؓjboss


    E:\jdk1.4\bin>keytool -export -alias tomcat -keypass MyPassword -file certreq.csr
    keystore密码: 
    保存在文件的认证 <certreq.csr>


    E:\jdk1.4\bin>keytool -list -keystore mykeystore.jks
    输入keystore密码: 
    Keystore cd: jks
    Keystore 提供? SUN

    你的 keystore 包含 2 个输?/p>

    jboss, 2009-10-22, keyEntry,
    指纹认证 (MD5): B6:FC:0F:71:98:75:5C:F6:96:02:78:E1:C1:A1:94:EA
    myalias, 2004-3-29, keyEntry,
    指纹认证 (MD5): 52:11:86:0F:D1:B0:2B:1E:64:76:C5:BD:99:E4:CF:0A



    ]]>
    Java入门Q-漫谈JavaE序的性能优化http://www.tkk7.com/fiele/archive/2009/08/14/291178.html半导?/dc:creator>半导?/author>Fri, 14 Aug 2009 08:22:00 GMThttp://www.tkk7.com/fiele/archive/2009/08/14/291178.htmlhttp://www.tkk7.com/fiele/comments/291178.htmlhttp://www.tkk7.com/fiele/archive/2009/08/14/291178.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/291178.htmlhttp://www.tkk7.com/fiele/services/trackbacks/291178.htmlJava入门Q-漫谈JavaE序的性能优化
    2008-03-14 11:06 作者:shenkai 来源Q赛q网
    [摘要] 在java中,使用最频繁、同时也是滥用最多的一个类或许是java.lang.StringQ它也是D代码性能低下最主要的原因之一?br /> [关键字] Java E序 性能优化
      Java使得复杂应用的开发变得相对简单。毫无疑问,它的q种易用性对Java的大范围行功不可没。然而,q种易用性实际上是一把双刃剑。一个设计良好的JavaE序Q性能表现往往不如一个同栯计良好的C++E序。在JavaE序中,性能问题的大部分原因q不在于Java语言Q而是在于E序本n。养成好的代码编写习惯非帔R要,比如正确地、y妙地q用java.lang.Stringcdjava.util.Vectorc,它能够显著地提高E序的性能。下面我们就来具体地分析一下这斚w的问题?

      在java中,使用最频繁、同时也是滥用最多的一个类或许是java.lang.StringQ它也是D代码性能低下最主要的原因之一。请考虑下面q个例子Q?

      String s1 = "Testing String";

      String s2 = "Concatenation Performance";

      String s3 = s1 + " " + s2;

      几乎所有的JavaE序员都知道上面的代码效率不高。那么,我们应该怎么办呢Q也许可以试试下面这U代码:

      StringBuffer s = new StringBuffer();

      s.append("Testing String");

      s.append(" ");

      s.append("Concatenation Performance");

      String s3 = s.toString();

      q些代码会比W一个代码片D|率更高吗Q答案是否定的。这里的代码实际上正是编译器~译W一个代码片D之后的l果。既然与使用多个独立的String对象相比QStringBufferq没有代码有Q何效率上的提高,那ؓ什么有那么多的Java书籍批评W一U方法、推荐用第二种ҎQ?

      W二个代码片D는CStringBufferc(~译器在W一个片D中也将使用StringBufferc)Q我们来分析一下StringBuffercȝ默认构造函敎ͼ下面是它的代码:

      public StringBuffer() { this(16); }

      默认构造函数预设了16个字W的~存定w。现在我们再来看看StringBuffercȝappend()ҎQ?

      public synchronized StringBuffer append(String str) {

      if (str == null) {

      str = String.valueOf(str);

      }

      int len = str.length();

      int newcount = count + len;

      if (newcount > value.length) expandCapacity(newcount);

      str.getChars(0, len, value, count);

      count = newcount; return this;

      }

      append()Ҏ首先计算字符串追加完成后的总长度,如果q个总长度大于StringBuffer的存储能力,append()Ҏ调用U有的expandCapacity()Ҏ。expandCapacity()Ҏ在每ơ被调用时StringBuffer存储能力加倍,q把现有的字W数l内容复制到新的存储I间?

      在第二个代码片段中(以及在第一个代码片D늚~译l果中)Q由于字W串q加操作的最后结果是“Testing String Concatenation Performance”Q它?0个字W,StringBuffer的存储能力必L展两ơ,从而导致了两次代h昂贵的复制操作。因此,我们臛_有一点可以做得比~译器更好,q就是分配一个初始存储容量大于或者等?0个字W的StringBufferQ如下所C:

      StringBuffer s = new StringBuffer(45);

      s.append("Testing String");

      s.append(" ");

      s.append("Concatenation Performance");

      String s3 = s.toString();

      再考虑下面q个例子Q?

      String s = "";

      int sum = 0;

      for(int I=1; I<10; I++) {

      sum += I;

      s = s + "+" +I ;

      }

      s = s + "=" + sum;

      分析一下ؓ何前面的代码比下面的代码效率低:

      StringBuffer sb = new StringBuffer();

      int sum = 0;

      for(int I=1;

      I<10; I++){

      sum + = I;

      sb.append(I).append("+");

      }

      String s = sb.append("=").append(sum).toString();

      原因在于每个s = s + "+" + I操作都要创徏q拆除一个StringBuffer对象以及一个String对象。这完全是一U浪费,而在W二个例子中我们避免了这U情c?

      我们再来看看另外一个常用的Javac??java.util.Vector。简单地_一个Vector是一个java.lang.Object实例的数l。Vector与数l相|它的元素可以通过整数形式的烦引访问。但是,Vectorcd的对象在创徏之后Q对象的大小能够Ҏ元素的增加或者删除而扩展、羃。请考虑下面q个向Vector加入元素的例子:

      Object obj = new Object();

      Vector v = new Vector(100000);

      for(int I=0;

      I<100000; I++) { v.add(0,obj); }

      除非有绝对充的理由要求每次都把新元素插入到Vector的前面,否则上面的代码对性能不利。在默认构造函CQVector的初始存储能力是10个元素,如果新元素加入时存储能力不Q则以后存储能力每次加倍。Vectorcd象StringBuffercMP每次扩展存储能力Ӟ所有现有的元素都要复制到新的存储空间之中。下面的代码片段要比前面的例子快几个数量U:

      Object obj = new Object();

      Vector v = new Vector(100000);

      for(int I=0; I<100000; I++) { v.add(obj); }

      同样的规则也适用于Vectorcȝremove()Ҏ。由于Vector中各个元素之间不能含?#8220;I隙”Q删除除最后一个元素之外的L其他元素都导致被删除元素之后的元素向前移动。也是_从Vector删除最后一个元素要比删除第一个元?#8220;开销”低好几倍?

      假设要从前面的Vector删除所有元素,我们可以使用q种代码Q?

      for(int I=0; I<100000; I++){ v.remove(0); }

      但是Q与下面的代码相比,前面的代码要慢几个数量Q?

      for(int I=0; I<100000; I++){ v.remove(v.size()-1); }

      从Vectorcd的对象v删除所有元素的最好方法是Q?

      v.removeAllElements();

      假设Vectorcd的对象v包含字符?#8220;Hello”。考虑下面的代码,它要从这个Vector中删?#8220;Hello”字符Ԍ

      String s = "Hello"; int i = v.indexOf(s); if(I != -1) v.remove(s);

      q些代码看v来没什么错误,但它同样Ҏ能不利。在q段代码中,indexOf()Ҏ对vq行序搜烦L字符?#8220;Hello”Qremove(s)Ҏ也要q行同样的顺序搜索。改q之后的版本是:

      String s = "Hello"; int i = v.indexOf(s); if(I != -1) v.remove(i);

      q个版本中我们直接在remove()Ҏ中给出待删除元素的精烦引位|,从而避免了W二ơ搜索。一个更好的版本是:

      String s = "Hello"; v.remove(s);

      最后,我们再来看一个有关Vectorcȝ代码片段Q?

      for(int I=0; I

      如果v包含100,000个元素,q个代码片段调用v.size()Ҏ100,000ơ。虽然sizeҎ是一个简单的ҎQ但它仍旧需要一ơ方法调用的开销Q至JVM需要ؓ它配|以及清除堆栈环境。在q里Qfor循环内部的代码不会以M方式修改Vectorcd对象v的大,因此上面的代码最好改写成下面q种形式Q?

      int size = v.size(); for(int I=0; I

      虽然q是一个简单的改动Q但它仍旧赢得了性能。毕竟,每一个CPU周期都是宝贵的?

      拙劣的代码编写方式导致代码性能下降。但是,正如本文例子所昄的,我们只要采取一些简单的措施p够显著地改善代码性能?a >



    ]]>
    E序优化http://www.tkk7.com/fiele/archive/2009/08/14/291136.html半导?/dc:creator>半导?/author>Fri, 14 Aug 2009 03:56:00 GMThttp://www.tkk7.com/fiele/archive/2009/08/14/291136.htmlhttp://www.tkk7.com/fiele/comments/291136.htmlhttp://www.tkk7.com/fiele/archive/2009/08/14/291136.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/291136.htmlhttp://www.tkk7.com/fiele/services/trackbacks/291136.html   当然JDK5以后,q提供了StringBulder,q个c要比StringWriter更好用一?当然也不是线E安全的. 
      如果要用StringBufferQ请量使用append,不要?Q在用StringBuffer时尽量先分配I间如:StringBuffer s = new StringBuffer(45);
    2.数据库查询的l果集处?我们Ҏ据库操作?可能会针寚w面的数据做处理性质的迁U?一般都是先Select一?然后把结果集的内容处?
      最后Insert或Update回数据库.q个是效率最低下?无论是否使用Hibernate都很低下.当然,最好是写一个存储过E来完成qg?
      我们只是调用一?触发q个事g可以了.如果非要自己写程序完?
      那么,一定要注意,你在Select的时?不要所有数据一ơ性全都查询出?
      要按行数分次处理否则很容易将内存暴掉.因ؓ,q些数据即你已l处理完?
      但是,对象有可能被Map或者Collection的某个对象所引用,q样JVM无法进行回?
    3.E序?要找到瓶颈在哪里,q样才能解决.一般是三大部分,一个CPU占用率过?一个是盘讉Kq于频繁;一个是|络拥塞.
      a.CPU占用又可以分三个部分,一个是tomcat占用q高;一个是数据库占用过?另一个是其他E序(如远E控制程?占用q高...tomcatq高,
       最有可能是处理数据法效率太低.数据库占用过?最有可能的是频J对一个已l很长的表进行了操作(可以通过Z时表来进行缓?效果不错).
       其他E序惛_法不使用q些E序或再找个I闲的服务器来runq些E序.
      b.一般硬盘访问频J?CPU是不会过高的.比如有一个@环程?因数据不合要求L打印日志,而日志就写在文g?
         q样,׃写日志文件而得处理线E进展缓?可以通过Ҏ据进行预处理,来缓解硬盘访问频J的状况,或者根据特炚w用缓冲区,多线E写文g{技术来解决q样的问?
     c.|络拥塞,看看是否有网l攻?DOS或者ARP之类?,或者增加带?如果是由于联通和电信的互讉K成慢的,那么可以考虑使用铁通之cȝ节点q行中{,效果q算可以.


    ]]>
    JBOSS内存溢出处理http://www.tkk7.com/fiele/archive/2009/07/27/288609.html半导?/dc:creator>半导?/author>Mon, 27 Jul 2009 08:40:00 GMThttp://www.tkk7.com/fiele/archive/2009/07/27/288609.htmlhttp://www.tkk7.com/fiele/comments/288609.htmlhttp://www.tkk7.com/fiele/archive/2009/07/27/288609.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/288609.htmlhttp://www.tkk7.com/fiele/services/trackbacks/288609.htmlJBoss内存溢出处理 原文来自Qhttp://jboss.cn/read.php?tid=250
    前几天公怸个项目的服务器坏了,换了一个备份服务器替一下,但是没有跑一会就宕机了,一直报java.lang.OutOfMemoryError。。。。一看到q里Q就知道是内存溢出,但是JBoss的内存配|已l达?024M了,而且对JBoss内存的监结果看Qƈ不高Q怎么会死机呢Q好奇怪。搞了半天还是没有结果。郁闷~~~~

         C最后,已经l望了我Q打换一个JBoss版本Q再换一个JDKQ看看是不是q些的问题。但是再换以前,我就把日志又重新看了一ơ,发现一个问题。报的java.lang.OutOfMemoryError后面q有内容Qjava.lang.OutOfMemoryError: PermGen spaceQ这个好像和java.lang.OutOfMemoryError: Java heap spaceq个不一栗最后找了一下这个异常!

    PermGen space的全U是Permanent Generation space,是指内存的永久保存区域。这一部分用于存放Class和Meta的信?Class在被 Load的时候被攑օPermGen space区域Q它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主E序q行期对PermGen spaceq行清理Q所以如果你的APP会LOAD很多CLASS的话,很可能出现PermGen space错误。这U错误常见在web服务器对JSPq行pre compile的时候?

    ҎҎQ在 run.bat 中加入:-Xms512m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
    因ؓ目中引用了很多?jar 包,而这?jar 包中?class 信息会被 JBoss ?class loader 加蝲?PermGen space 区域Q在 JVM 默认的情况下Q该部分I间的大只?4MQ在 jar 包非常多的情况下Q显然是不够用的Q所以通过 -XX:MaxPermSize=256m 指定最大值后卛_解决问题?

    我的JBoss里面装蝲?个应用,jar包和class加v来有100m左右Q配上这个参数后Q一切OKQ最后服务器修好以后Q发玎ͼq个里面的JBoss也是q么来配|的Q哎~~看来以后备䆾Q最好还是吧JBoss一起备份出来吧Q?
    而当出现出现 java.lang.OutOfMemoryError: Java heap space q个异常Ӟ通过调节-Xms512m -Xmx1024mq个可以解冟?
    另外Q这个两个参?-XX:+UseParallelGC -XX:+UseParallelOldGC 让服务ƈ行回收内存空间。但是,q两个参数配|上M后,也会占用一定的内存I间?



    ]]>
    JBOSS 自动重启及窗口关?/title><link>http://www.tkk7.com/fiele/archive/2009/06/24/283897.html</link><dc:creator>半导?/dc:creator><author>半导?/author><pubDate>Wed, 24 Jun 2009 03:19:00 GMT</pubDate><guid>http://www.tkk7.com/fiele/archive/2009/06/24/283897.html</guid><wfw:comment>http://www.tkk7.com/fiele/comments/283897.html</wfw:comment><comments>http://www.tkk7.com/fiele/archive/2009/06/24/283897.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/fiele/comments/commentRss/283897.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/fiele/services/trackbacks/283897.html</trackback:ping><description><![CDATA[<p>    DOS命o关闭JBOSSH口?br />       E:\jboss-3.2.5\bin\shutdown.bat  --<br />    如果JBOSSH口仍存在,查看run.bat?br /> </p> <p>:END<br /> if "%NOPAUSE%" == "" pause<br /> :END_NO_PAUSE<br /> 如果有以上这句,那么得L if "%NOPAUSE%" == "" pause 相当于去掉pause命行?br /> 再试试,一切OK了!</p> <br /> <img src ="http://www.tkk7.com/fiele/aggbug/283897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/fiele/" target="_blank">半导?/a> 2009-06-24 11:19 <a href="http://www.tkk7.com/fiele/archive/2009/06/24/283897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBOSS配置W记http://www.tkk7.com/fiele/archive/2006/11/22/82821.html半导?/dc:creator>半导?/author>Wed, 22 Nov 2006 08:54:00 GMThttp://www.tkk7.com/fiele/archive/2006/11/22/82821.htmlhttp://www.tkk7.com/fiele/comments/82821.htmlhttp://www.tkk7.com/fiele/archive/2006/11/22/82821.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/82821.htmlhttp://www.tkk7.com/fiele/services/trackbacks/82821.html配置本公?/span> JBOSS 服务器以配置 OLS Z (jboss3.2.5) Q?/span>

    1?span style="FONT: 7pt 'Times New Roman'">  JDK 到根止录下?/span>

    2?span style="FONT: 7pt 'Times New Roman'">  解压~?/span> JBOSS 包到根目录下?/span>

    3?span style="FONT: 7pt 'Times New Roman'">  配置环境变量Q?/span>

    变量名: JAVA_HOME

    变量| e:\jdk1.4

    配置 JBOSS_HOME

    变量名: JBOSS_HOME

    变量| d:\jboss-4

    配置 PATH

    在现?/span> path 环境变量里加上: e:\jdk1.4\bin; D:\ jboss-4\bin

    4?span style="FONT: 7pt 'Times New Roman'">  配置 JDBC 驱动Q?/span>

    C Microsoft SQL Server 2005 JDBC Driver ZQ?/span>

    拯文g sqljdbc.rar 到目?/span> E:\jboss-3.2.5\server\default\lib ?/span>

    ?/span> E:\jboss-3.2.5\docs\examples\jca\mssql-ds.xml

    到目?/span> E:\jboss-3.2.5\server\default\deploy 下?/span>

    配置 mssql-ds.xml 文g如下Q?/span>

      <local-tx-datasource>

        <jndi-name>MSSQLDS</jndi-name>

        <connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=esysdb</connection-url>

        <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>

        <user-name>sa</user-name>

        <password>sa</password>

    <min-pool-size>150</min-pool-size>

        <max-pool-size>300</max-pool-size>

      </local-tx-datasource>

    5?span style="FONT: 7pt 'Times New Roman'">  ejbdao.rar, ejbdatagrid.rar, ejbfreeedit.rar, ejblicence.rar, ejbweb.rar 文g?/span> E:\jboss-3.2.5\server\default\deploy 目录?/span>

    6?span style="FONT: 7pt 'Times New Roman'">  拯应用E序 my.rar

    7?span style="FONT: 7pt 'Times New Roman'">  更改 dbconn.properties 配置文gQ?/span> E:\jboss-3.2.5\server\default\deploy\MY.war\WEB-INF\classes

    8?span style="FONT: 7pt 'Times New Roman'">  止其他人员查看本系l目录方法:

       E:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\web.xml

    改变属?/span>       

    <init-param>

                <param-name>listings</param-name>

                <param-value>true</param-value>

            </init-param> 改ؓ <param-value>false</param-value>

     

    q程览本系l?/span> ssl 配置Q?/span>

    首先?/span> keytool 命o生成认证文g?/span>

    更改 E:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml

    增加q程讉KQ如端口为: 8443

                   <Connector port="8443" address="${jboss.bind.address}"

               maxThreads="300" minSpareThreads="5" maxSpareThreads="100"

               scheme="https" secure="true" clientAuth="false"

               keystoreFile="${jboss.server.home.dir}/conf/mykeystore.jks"

               keystorePass="MyPassword" sslProtocol = "TLS"

                     URIEncoding="GBK" />

    说明Q?/span> keystoreFile 为密钥存储位|?/span>

       9:如果惌用局域网另一个数据库Q但不采用连接池的配|:

    ############################# 4:EDTEXPCON  Connection Config Begin    ###########################################
    EDTEXPCON.isDataSource=false
    EDTEXPCON.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    EDTEXPCON.url=jdbc:sqlserver://10.0.10.10:1433;databaseName=ee
    EDTEXPCON.userName=sa
    EDTEXPCON.password=sa
    ############################# EDTDATACON Connection Config End##############################################  


    错误信息说明及解军_法:

    1Q?/span>Unhandled token type: Unknown token: 0x00

    JDBC 驱动?/span> JBOSS 不匹配,造成pȝ不稳定?/span>

    解决办法Q更?/span> JDBC 驱动?/span>

    2,q解决:
    我们在进行开发时,如果JBOSS配置出现问题,出现类???????的ؕ?
    解决办法:
            在相应的JSP面里写?
           <%@ page contentType="text/html;charset=GBK" %>
            gb2312必ؓGBK
           在\径ؓ:D:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml文g里的:
              <Connector port="8000" address="${jboss.bind.address}"
             maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
             enableLookups="false" redirectPort="8443" acceptCount="100"
             connectionTimeout="20000" disableUploadTimeout="true"
             URIEncoding="GBK" />
            URIEncoding 改ؓGBK,
           q样,q׃不再出现?
     3



    ]]>
    端口被占解决办法http://www.tkk7.com/fiele/archive/2006/11/11/80624.html半导?/dc:creator>半导?/author>Sat, 11 Nov 2006 13:40:00 GMThttp://www.tkk7.com/fiele/archive/2006/11/11/80624.htmlhttp://www.tkk7.com/fiele/comments/80624.htmlhttp://www.tkk7.com/fiele/archive/2006/11/11/80624.html#Feedback0http://www.tkk7.com/fiele/comments/commentRss/80624.htmlhttp://www.tkk7.com/fiele/services/trackbacks/80624.html2,在服务里把相应服务停?或禁?.
    3,一般端口占用分?
     port:1098 DNS Server
              1099 Internet ConnectionSharing
              8443 FTP 工具端口地址更改

    ]]>
    JBOSS配置出现q的解军_?http://www.tkk7.com/fiele/archive/2006/10/18/75813.html半导?/dc:creator>半导?/author>Wed, 18 Oct 2006 01:44:00 GMThttp://www.tkk7.com/fiele/archive/2006/10/18/75813.htmlhttp://www.tkk7.com/fiele/comments/75813.htmlhttp://www.tkk7.com/fiele/archive/2006/10/18/75813.html#Feedback3http://www.tkk7.com/fiele/comments/commentRss/75813.htmlhttp://www.tkk7.com/fiele/services/trackbacks/75813.html解决办法:
            在相应的JSP面里写?
           <%@ page contentType="text/html;charset=GBK" %>
            gb2312必ؓGBK
           在\径ؓ:D:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml文g里的:
              <Connector port="8000" address="${jboss.bind.address}"
             maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
             enableLookups="false" redirectPort="8443" acceptCount="100"
             connectionTimeout="20000" disableUploadTimeout="true"
             URIEncoding="GBK" />
            URIEncoding 改ؓGBK,
           q样,q׃不再出现?


    ]]>
    վ֩ģ壺 һ߹ۿ| ůůѸձһ| ۺɫ7777վ777| ëƬaëƬѲ| ҹƬ| ޶Ʒav| 57PAO˹Ƶ| 91˾Ʒ޾Ʒ| ޳˵Ӱվwww| ĻƵվ| ߹ۿ| ޾Ʒavɫ| Ʒ޳| պƬѿ| һѹۿ| ȫƵaëƬ| ɫavɫ߹| ޾Ʒ۲ӰԺ| 99þۺϹƷ| wwwѸƵ| Ļ| ͵12p| ޹徫Ʒ߾þ| Ƶ߹ۿַ| Ļ߸ѵӰ| ۺavһ | Ƶѹۿ| ĻһƷ| vaþþþ| &#228;v뾫Ʒþþ | ޾ƷŮƵ| ˳77777ɫ߲| ƷŮ߳鴤վ| ĻȫƵ| ĻƬa| jizzjizzձٸ| Ʒһ| 97þþƷĻ | ޵һƷӰ| AVһ| ͵͵޸պ|