JBoss 憑藉免安裝、JMX 架構、熱部署、EJB 開發效率高等特性,深受開發者喜愛。但文檔較少,掌握起來頗費周折。本文結合實戰經驗,梳理 JBoss 3.2.1 (default 配置) 的核心配置要點,內容大體適用於各版本 JBoss。
JBoss 自帶主流資料庫範本,位於 docs/examples/jca/。以 SQL Server 2000 為例:
mssql-ds.xml 到 server/default/deploy/mssql-xa-ds.xml<datasources>
<local-tx-datasource>
<jndi-name>VSSDB</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://125.16.45.158:1433;DatabaseName=DDD</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>sa</password>
<min-pool-size>50</min-pool-size>
<max-pool-size>200</max-pool-size>
</local-tx-datasource>
</datasources>
編輯 server/default/conf/standardjbosscmp-jdbc.xml:
<jbosscmp-jdbc>
<defaults>
<datasource>java:/VSSDB</datasource>
<datasource-mapping>MS SQLSERVER2000</datasource-mapping>
<create-table>true</create-table>
<remove-table>false</remove-table>
...
</defaults>
</jbosscmp-jdbc>
注意:java:/ 前綴表示該 JNDI 名稱僅在 JBoss 內部可見,外部應用無法直接使用。
JBoss 3.2.1 採用擴展版 Log4j,配置檔在 server/default/conf/log4j.xml。
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="DEBUG"/> <!-- 改這裡:INFO → DEBUG -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
同目錄下 standardjboss.xml,找到 Standard CMP 2.x EntityBean 區塊:
<container-configuration>
<container-name>Standard CMP 2.x EntityBean</container-name>
<call-logging>true</call-logging> <!-- 改為 true -->
...
</container-configuration>
完成後,主控台將輸出 Entity Bean 發出的每一條 JDBC 語句,極利於 SQL 調優。