URL:jdbc:oracle:thin:@192.168.1.16:1521:ora9i
一 WebSphere中設置編碼
而應用程序是以GBK作爲默認編碼會導致一系列的亂碼問題。
在這個情況下,我們可以通過webSphere的控制檯設置來修正該問題。
以下webSphere簡稱WS,WS有WS5和WS6,兩個有些不同。
WS5:
點開“服務器”節點-->應用程序服務器,找到自己應用使用的服務器。
進入,在“其他屬性”中找到“進程定義”,
然後在其下的“其他屬性”中找到Java虛擬機。
然後找到“一般 JVM 自變量 ”將其值設置爲:-Dfile.encoding=GBK
然後保存,重新啓動WS服務。注意是將WS重啓。
telnet 連到服務器,stopServer.sh server1
WS6:
“服務器”-->應用程序服務器,找到自己應用使用的服務器。
WS6有不同,注意。
找到“服務器基礎結構”,展開其下的“Java 和進程管理”,然後進入“進程定義”。
進入後找到“其它屬性”-->“Java 虛擬機”:
將“Java 虛擬機”設置爲:-Dfile.encoding=GBK
二 WEBSPHERE配置數據庫連接池
基本介紹:
通過WebSphere配置數據庫連接池一共需要三項:
1.配置連接驅動,在這裏叫:JDBC提供程序;
2.配置數據庫連接池,在這裏叫:配置數據源;
3.配置數據庫登錄帳號,密碼,在這裏叫:J2C認證別名;
具體操作:
一.創建JDBC提供程序
1.進入 資源->JDBC->JDBC提供程序;
2.選擇配置的節點;
3.進入新建;
4.創建新的JDBC提供程序:
4.1 選擇數據庫類型(使用的數據庫名稱);
4.2 選擇提供程序類型;
4.3選擇實施類型;
5.下一步,輸入數據庫類路徑信息:
5.1輸入數據庫驅動文件的完整路徑(注意:不要使用末尾斜槓文件分隔符);
6.顯示配置總結信息,完成配置JDBC提供程序,保存到主配置中;
二.配置數據源
1.進入 資源->JDBC->數據源;
2.選擇配置的節點;
3.進入新建;
4.輸入基本數據源信息:
4.1輸入數據源名,任意名稱即可;
4.2輸入JNDI名稱路徑(如:jdbc/dataSource);
4.3選擇已有的組件管理的認證別名和XA恢復認證別名,如果需要新建選項,點擊新建J2C認證別名,查看方法"新建J2C認證別名";
5.選擇JDBC提供程序,選擇現有的JDBC提供程序(如果沒有JDBC提供程序,可以選擇創建新的JDBC提供程序)
6.JDBC提供程序,方法參照創建JDBC提供程序);
6.1輸入數據源的特定於數據庫的屬性;
6.2輸入數據庫名;
6.3指定數據源的 JDBC 連接類型.此屬性與數據源類中的驅動程序類型屬性相對應.如果要使用類型4 JDBC 驅動程序,則將值設置爲4.如果要使用類型2 JDBC 驅動程序,則將值設置爲 2(在z/OS(R)平臺上,類型2 驅動程序使用 RRS 並支持兩階段落實處理);
輸入服務器名稱(比如輸入TCP/IP:172.16.6.170),注意:此屬性與數據源類中的服務器名稱屬性相對應.如果驅動程序類型屬性設置爲4,則此屬性是必需的;
6.4輸入端口號,注意:此屬性與數據源類中的端口號屬性相對應.如果驅動程序類型屬性設置爲4,則此屬性是必需的;
6.5選擇將此數據源用於容器管理的持久化(CMP),指定此數據源用於Enterprise bean的容器管理的持久性(CMP).此選項將導致爲關係資源適配器創建與此數據源對應的CMP 連接工廠.
7.顯示配置總結信息,完成配置數據源,保存到主配置中;
三.新建J2C認證別名
1.進入資源->JDBC->數據源->新建->創建新的J2C認證別名 或者進入 資源->JDBC->數據源->進入已有的數據源->點擊:JAAS-J2C 認證數據->新建J2C認證數據;
2.配置常規屬性:
2.1輸入別名,任意名稱即可;
2.2輸入用戶標識,輸入數據庫用戶名即可;
2.3輸入密碼,輸入數據庫密碼即可;
3.保存,添加到使用的的組件管理的認證別名和XA恢復認證別名即可.
三 websphere參數配置
1、更改http server的配置文件參數KeepAlive。
原因:這個值說明是否保持客戶與HTTP SERVER的連接,如果設置爲ON,則請求數到達MaxKeepAliveRequests設定值時請求將排隊,導致響應變慢。
方法:打開ibm http server安裝目錄,打開文件夾conf,打開文件httpd.conf,查找KeepAlive值,改ON爲OFF,其默認爲ON
2、更改http server的配置文件參數ThreadsPerChild值到更大數目,默認爲50
原因:服務器響應線程的數量
方法:打開ibm http server安裝目錄,打開文件夾conf,打開文件httpd.conf,查找ThreadsPerChild值,默認爲50,改到更大數目,視用戶數多少而定,一般改到客戶機數量的1.1倍,如200臺,則設爲220。
3、關閉http server日誌紀錄
原因:http server的日誌IO影響性能
方法:打開ibm http server安裝目錄,打開文件夾conf,打開文件httpd.conf,查找CustomLog值,找到沒有註釋的那行(行的開頭沒有符號"#"),將那行用符號"#"註釋掉,以關閉日誌紀錄,提高處理性能。
4、更改Websphere的服務器處理線程數
原因:線程的數量影響同時併發的請求數量
方法:打開管理控制檯,依次打開目錄樹,服務器->server1->web容器->線程池,修改"最大大小"的值,默認是50,改到更大數目,具體視總用戶數量和機器的配置而定,一般設置其等於或小於http server設置的MaxKeepAliveRequests的值。
服務器->應用程序服務器->server1->進程定義->Java 虛擬機 初始堆大小 128
最大堆大小 512
線程池:服務器->應用程序服務器->server1->進程定義->Web 容器->線程池
最小大小 20
最大大小 100
最小/最大=1/5
數據源連接池:
資源->JDBC 提供程序->(作用域選擇服務器,應用)Sybase JDBC Driver->數據源->sybase->連接池 最大連接數 30 最小連接數 10
下配置僅供參考,實際中還需要根據項目情況和硬件環境而定!
以下調整在 WebSphere Application Server 的管理控制檯進行。
進程定義 - Java 虛擬機:
-- 將“初始堆大小”和“最大堆大小”設爲相同的值。在有 2GB 內存的系統中,建議設爲 512MB。在有 4GB 內存的系統中,建議設爲 768MB。
-- 垃圾回收:在“Java 虛擬機”設置中,“一般 JVM 自變量”中設置“-Xnoclassgc”參數。
Web 容器:
-- 將進程優先級從20改爲0,這樣 會比應用程序服務器有更高的優先級。進程優先級可以在 “server1”-“進程定義”-“進程執行”中修改。
-- 將 “Web 容器”-“線程池”的大小設爲 100,並選中“允許線程分配超過最大線程大小”
-- 在“會話管理”中將“會話超時”時間從 30 分鐘改爲 15 分鐘
JDBC 數據源:
-- 將每個數據源的“語句緩存大小”設置爲 0
JDBC 連接池:
-- JDBC 連接池大小設置爲 100
-- 在數據庫服務器上做相應的修改(在 DB2 中是 MAXAPPLS)
針對數據庫服務器的調整:
-- 數據庫的磁盤空間應無限制
字符編碼
--默認爲gb2312,複雜的中文不支持“犇”,“暟”
在JVM配置-Dfile.encoding=GBK
WS優化的經驗:
1.Java 虛擬機初始堆大小和最大堆大小(位置: server1 > 進程定義>java虛擬機 )
WS通常默認是256,可以適當調整最大堆爲512。不過也不要調的過大,小心WS啓不啓來,有一次我把初始堆調成768最大堆調成了2048,當我startserver -server1 時就提示WS無法初始化,原因是內存不足,所以一定要根據機子的性能來調整
2.web容器的線程池最小大小和最大大小
3.Jdbc連接池屬性
這個最難把握,因爲最大連接數、最小連接數、連結超時、獲得時間等等都要依據數據庫及網張絡的性能來調整。而且獲得時間、不使用超時、時效超時是互相聯繫的一組參數,一般來說:獲得時間要小於不使用超時及時效超時,且三個不能爲零,是最好的!
4.啓用servlet高速緩存
5.語句高速緩存大小
四 異常
1)sun.io.MalformedInputException 錯誤
1.打開管理控制檯,找到並選擇運行這個JSP的應用服務器
2.依次選擇進程定義,java虛擬機,一般JVM自變量
3.添加-Dibm.stream.nio=true
4.確定,保存