??xml version="1.0" encoding="utf-8" standalone="yes"?>
文章来源:http://dzq2008.iteye.com/blog/627078
环境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
步骤三?/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
步骤五?/span>
打开
$JBOSS_HOME/server/default/deploy/jms/uil2-service.xml
环境
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
步骤三?/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
步骤五?/span>
打开
$JBOSS_HOME/server/default/deploy/jms/uil2-service.xml
步骤六?/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
一台机器运行多?/span>
jboss
修改
1099
Q?/span>
1098
端口|与“步骤一”中保持一致?/span>
修改
8080
Q?/span>
8009
Q?/span>
8443
端口倹{?/span>
修改
8093
端口倹{?/span>
修改
1099
Q?/span>
1098
端口|与“步骤一”中保持一致?/span>
修改
8080
Q?/span>
8009
Q?/span>
8443
端口倹{?/span>
修改
8093
端口倹{?/span>
]]>
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直接在本地连接中取消了此属?再测试上?问题解决!
]]>
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
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>
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
:END
if "%NOPAUSE%" == "" pause
:END_NO_PAUSE
如果有以上这句,那么得L if "%NOPAUSE%" == "" pause 相当于去掉pause命行?br />
再试试,一切OK了!
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.rar7?span style="FONT: 7pt 'Times New Roman'">
更改 dbconn.properties 配置文gQ?/span> E:\jboss-3.2.5\server\default\deploy\MY.war\WEB-INF\classes8?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>
我们在进行开发时,如果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