引言
在學會使用wildlfy之後,只是簡單地把它當做一種工具,沒有仔細類似於tomcat那樣研究過它的優化配置,近期正好找到了這麼一份關於它的配置優化,拿來跟大家分享一下.
log 日誌
日誌輸出定義在root-logger裏面:
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
級別是INFO;可以改爲warn,error等減少日誌輸出。將刪除掉,就不會往控制檯輸出日誌。增快速度。
log將輸出到兩個handler裏面:console和file。這兩個定義如下:
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
<named-formatter name="COLOR-PATTERN"/>
</formatter>
</console-handler>
<size-rotating-file-handler name="FILE" autoflush="true">
<formatter>
<named-formatter name="PATTERN"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="server.log"/>
<rotate-size value="1000k"/>
<max-backup-index value="5"/>
<append value="true"/>
<suffix value=".yyyy-MM-dd"/>
</size-rotating-file-handler>
文件用了size-rotating-file-handler。rotate-size規定了日誌每達到1m,就生成新的日誌。一天共會生成5個分割文件。當日志達到4個以後,剩下日誌會全填充到server.log。導致這個轉爲.5文件後特別大。
數據連接池部分
數據庫連接池失敗後,自動重新連接
<datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/statisticsystem?characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false</connection-url>
<driver>mysql</driver>
<security>
<user-name>jboss</user-name>
<password>jboss</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<set-tx-query-timeout>false</set-tx-query-timeout>
<blocking-timeout-millis>0</blocking-timeout-millis>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>0</query-timeout>
<use-try-lock>0</use-try-lock>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>0</allocation-retry-wait-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<xa-datasource jndi-name="java:jboss/datasources/MySqlStatDW" pool-name="MySqlStatDW" enabled="true" use-java-context="true">
<xa-datasource-property name="ServerName">
192.168.8.238
</xa-datasource-property>
<xa-datasource-property name="PortNumber">
5029
</xa-datasource-property>
<xa-datasource-property name="DatabaseName">
statistics
</xa-datasource-property>
<driver>mysql</driver>
<xa-pool>
<min-pool-size>5</min-pool-size>
<initial-pool-size>5</initial-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</xa-pool>
<security>
<user-name>zhibin</user-name>
<password>zhibin123</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</xa-datasource>
<xa-datasource jndi-name="java:jboss/datasources/MySqlDataCenter" pool-name="MySqlDataCenter" enabled="true" use-java-context="true">
<xa-datasource-property name="ServerName">
211.100.75.213
</xa-datasource-property>
<xa-datasource-property name="DatabaseName">
cms
</xa-datasource-property>
<driver>mysql</driver>
<xa-pool>
<min-pool-size>5</min-pool-size>
<initial-pool-size>5</initial-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</xa-pool>
<security>
<user-name>CPdeveloper206</user-name>
<password>206@)^developer</password>
</security>
</xa-datasource>
?characterEncoding=utf-8 是數據庫防止存中文亂碼,加上後改好,其他參數自行設置。
事務的超時
<subsystem xmlns="urn:jboss:domain:transactions:3.0">
<core-environment>
<process-id>
<uuid/>
</process-id>
</core-environment>
<recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager"/>
<coordinator-environment default-timeout="60"/>
</subsystem>
任務job,分區任務最大的線程數
<subsystem xmlns="urn:jboss:domain:batch-jberet:1.0">
<default-job-repository name="in-memory"/>
<default-thread-pool name="batch"/>
<job-repository name="in-memory">
<in-memory/>
</job-repository>
<thread-pool name="batch">
<max-threads count="200"/>
<keepalive-time time="30" unit="seconds"/>
</thread-pool>
</subsystem>
數據庫做http auth
<security-domain name="dbdomain" cache-type="default">
<authentication>
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/MySqlDS"/>
<module-option name="principalsQuery" value="select passwd from USERS where login=?"/>
<module-option name="rolesQuery" value="select Role , 'Roles' from USER_ROLES where login=?"/>
</login-module>
</authentication>
</security-domain>
上傳文件最大尺寸限制
<server name="default-server">
<http-listener name="default" max-post-size="204857600" socket-binding="http" redirect-socket="https"/>
改成外網地址可以訪問
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
</interface>
</interfaces>