Skip to main content

Posts

Showing posts from August, 2013

JBoss EAP 6 - Multi-JSF 設定 (MyFaces)

Attn:目前JBoss EAP 6 並不正式支援 Multi-JSF。
Attn : 這個功能目前只有測試在 EAP 6.1 這個版本。

這個問題是我的一個客戶遇到的,因為前一陣子貓咪的事情,所以我消沉了粉久,都不太想看問題,可憐的客戶,我現在振作一點了。

JSF 是一種標準,所以必須要靠各家的實作來讓他可以work, 想當然爾,只要你聽到"每家" 這件事情,大概就可以猜到,每個solution都有他的眉角~ 相容性基本只是號稱而已。

目前我自己只有用過三家的,但根據我膜拜google大神得到的結果,其實還滿多都有做JSF, 這是維基百科提供的清單,給大家參考。(我記得還有更多~可是不知為啥只有這幾家。。。)

JBossRichFaces (derived from and replaces Ajax4jsf), Ajax-enabled JSF components for layout, file upload, forms, inputs and many other features.ICEfaces, open-source, Java JSF extension framework and rich components, Ajax without JavaScriptPrimeFaces Ajax framework with JSF componentsOracleADF Faces Rich ClientOracle Application Development FrameworkBackbaseEnterprise Ajax — JSF EditionAjax frameworkIBM Notes - XPagesApache MyFaces, The Apache Foundation JSF implementation with Ajax componentsSunJava BluePrints AJAX ComponentsZK Ajax framework with JSF components
JBoss 底層的實作就是 RichFaces, 非常的完整的Framework, 比起如Myfaces 缺少許多像是檔案上傳,還要另外找其他的方式,跟Jar檔來說,完整很多。。推推~ (笑) 鼻要問我哪個比較…

JBoss EAP 6 - 效能調校 (一) DataSource 的 Connection Pool

效能沒有什麼Best Practice, 反正能調整的就那些。 通常,一個程式的效能大概有70-80% 都跟程式怎麼寫的其實比較有關係。

最近我最疼愛的小貓Puji 因為膀胱結石開刀的時候過世了,心情很差請原諒我的口氣沒有很好,也沒有心情寫部落格。

Puji R.I.P.

=======================正文=======================

這個題目很多人叫我寫,可是這題目好大,這分明就是整死我咩~
所以我會分幾段慢慢寫。

JBoss 的 SubsystemDatasource WebWeb Service EJB Hibernate JMSJCAJVM 調校OS (作業系統)

先來看一下 DataSource Subsystem, DataSource 的部分主要是針對Connection Pool 做調校。

通常,程式都會需要跟資料庫界接,電腦在本機,尤其是在記憶體的運算很快,但是一旦要外部的資源連接,就是會非常的耗資源。所以現在的應用程式伺服器都會有個Pool 放一些先連接好的 資料庫connection,當程式有需要的時候就可以馬上提供,而不用花那些多餘的資源去連接資料庫。

這就是為什麼要針對Connection Pool 去做調校。

以下會討論到的參數,都是跟效能比較有關係,Datasource 還有很多參數,像是檢核connection 是否正確的,我都不會提到。如果你追求的是非常快速的效能,那我建議你一個檢核都不要加。當然,這樣就會為伺服器上面執行的程式帶來風險。這就是你要在效能與正確,安全性上面的取捨了。 (套句我朋友說的話,不可能又要馬兒好,又要馬兒不吃草的..)

最重要的調校參數就是 Connection 的 Pool 數量。(也就是那個Pool 裡面要放幾條的connection.) 這個參數是每一個應用程式都不一樣的。

min-pool-size 

Connection Pool 最少會存留的connection 數量

max-pool-size 

Connection Pool 最多可以開啓的 connection 數量

prefill

事先將connection pool 裡面建立好min-pool-size 的connection.

我的建議是觀察一下平常程式要用到的量設定為 min-pool-size 。
加上…