Skip to main content

Posts

Showing posts from March, 2012

JON - JBoss Operations Network 到底是什麼?

最近因為EJB 2 MDB 跟 MQ 搞得焦頭爛額,腦子裡面只有掛著它,
沒錯~你沒有看錯!就是EJB 2 那個老爺爺! 像我一樣的年輕妹妹(笑),最討厭他了!
加上婚禮的事情又一直煩! 所以很久沒有更新!

放心好了! JBoss 365 還是會繼續的! 欠的文章我也會慢慢找機會補上


這次的安裝是應觀眾要求的,特別POST 上來!請笑納!
===========================================

要安裝JON 前必須先瞭解JON 是蝦米~
為什麼要叫 JON J老闆的老婆咧! 因為,JON 就是專門管理,監控J老闆的!


她主要的功能分成三大塊!

1. 部署
2. 管理
3. 監控



部署,可以是字面上的意義,單純的部署應用程式的WAR or EAR, 你可能會想說,這個我用web console 就可以做到了阿? 其實它可以做到的不止如此, 
1. 她可以做部署時程的預約, 這樣她就可以在你睡夢中不知不覺搞定J老闆 2. 她支援版本控管,只要是透過JON上的程式,都會被記錄起來,標成version, 所以你可以看狀況,馬上退回某個版本(譬如說,某天XX上的一個程式,不小心自己欣賞的照片也放上去!,所以需要馬上還原 XD) 3. 不只是上程式,她也支援可以安裝Datasource 跟 J老闆噢! 4. 可以同時指定多台Server 上線
管理,其實J老闆不太需要太多悉心的呵護就可以長得很好了!除了一些定期地調整之外,只要上面的AP 沒有做出太多"發神經"的程式,通常都可以很穩定。他的管理包括可以自動偵測連接的資源,像是.. 系統如果加了一個 J老闆,他馬上就可以偵測到。還有像是一些參數的調整,所有JMX上面可以做的function功能它也可以,像是 restart server, Flush connection 類的。

監控,這是JON其中一個還滿好用的功能,通常我們要"修理" 哈,應該是管理J老闆的時候,都需要調整一些參數,但是,你怎麼知道要調整些什麼呢?例如說,我的MAX memory and perm memory 要調多少? 我的connection 數量是否太多,還是太少? 我的GC policy 是否是對的? 這些都可以透過JON 它顯示的圖表去看到目前 Free memory , GC …

JEAP 5 - 防止駭客入侵,加強安全性。幫J老闆把 "嗶~" 藏起來吧。

因為年紀還小 XD 逃~所以接觸J老闆的時間還不多~
(大藍才是我的啓蒙老師阿~)
可是在這個短短的時間內,已經有幾處爆出J老闆被駭客侵犯的Case 了!

今天又有一個受災戶來報到~ (ㄟ~ 我這裡不是警察局!不用來報案!
為了不要讓災情再擴大我要站出來呼籲各位!關心一下你的J老闆吧~
不管它是 4.x的老古董,還是最新的 6.x ....

===================================================
以下為某位駭客的心聲
===================================================
要駭客JBoss 實在是太簡單了,
哇哈哈~而且還不用弄那些亂七八糟的工具~
直接用瀏覽器就可以辦到了!!哇哈哈哈!

A.先寫一個JSP 檔案,
   專門存取資料放資料抓MBean的程式 (為了不要助長犯罪,程式嗶~~帶過)
B.在網路上找個冤大頭~(為了不要助長犯罪,方法嗶~~帶過)
C.試試看JBoss 上 console default 的密碼有沒有改~沒有? 哈~ 你完蛋了!
D.開始駭客 @#$%^&*($%^&*

(為了不要助長不良風氣,方法我恕不提供。如果你真的想知道,請私下聯絡我吧!)


===================================================
保護J老闆! 簡單兩步驟!
===================================================



1. 把該藏的藏起來吧!     JMX console 跟 Admin console 請不要暴露在Internet 上。     這是管理用的功能,非必要不適合連接至外部網路。有些人在設定連接Apache 的時候     會順便 (=_=)把這兩個設定上去。請不要醬做了!     把uriworkermap.properties 上的設定拿掉吧!










2. 把預設的密碼改掉!這道理很簡單,如果今天開卡銀行給你的金融卡密碼預設是 0000,     你會不會換? 不要跟我說你不會。。。OTZ 這樣撿到你錢包的人應該會感謝你吧!     知道改密碼的地方吧?
    jboss-eap-5.1/jboss-as/server/$XXXNODE/conf/p…

JEAP 5 - J老闆連接大藍的MQ

最近JBoss的勢力範圍越來越大~
要跟J老闆連接的資源也越來越多!

今天的討論如果對大藍的MQ Server 不熟的話,請直接跳過!
因為我完全沒有打算介紹大藍的MQ, 下面只會有設定方式噢!

感嘆~大藍的文件資料真是超齊全的拉!真是值得稱讚!
J老闆的文件比起來還真像是紐約的圖書館遇到非洲的荒野.....

===========以上是抱怨的碎碎念 本文開始==================

跟許多外部資源一樣,MQ也是透過JCA連結的!
所以如果要設定連結,跟普通的資料庫一樣,必須設定 xx-ds.xml 檔案
(本次的設定不是走XA!)

1. 安裝wmq.jmsrs.rar

依照不同的MQ Server,到不同的路徑下看到我們這次需要安裝的Adapter。
裡面應該會有 wmq.jmsrs.rar


OS 路徑 AIX /usr/mqm/java/lib/jca HP-UX, Linux, and Solaris /opt/mqm/java/lib/jca i5/OS /QIBM/ProdData/mqm/java/lib/jca Windows install_dir\Java\lib\jca

把wmq.jmsrs.rar copy 出來後,放到 $JBOSS_HOME/server/$SERVER/deploy下
把J老闆打開~應該會看到安裝成功的log...



2. 建立真正連結的JCA設定 wmq.jmsrs-ds.xml
在建立之前,先看一下我們的JMS code ,
把資料放到Queue 之前,跟建立JDBC 的connection 一樣,
我們也需要建立Queue 的connection.

public void doQueueSending() throws javax.jms.JMSException, javax.naming.NamingException{
 //Setup Connection to Queue 
 javax.naming.InitialContext iniCtx = new InitialContext(); 
 javax.jms.QueueConnectionFactory qcf = iniCtx.lookup("XXXConnectionFactory");
 javax.jms.QueueConnection…

JEAP 5 - 幫J老闆減肥,減少不必要模組負擔

今天有客戶抱怨為什麼啟動J老闆要花5分鐘的時間?好久噢!
雖然我覺得跟我以前常用大藍的"網路球" 比起來已經是天上跟地下了~~
但是,5分鐘是真的有點誇張!!

J老闆非常有彈性 XD,上面所有的東西都像樂高一樣可以拆來拆去!
它的All Profile 裡面,為了要提供許多功能,所以是所有profile裡面的最肥的
據我多年(不要亂猜~我沒有很老) 的經驗,大部份AP根本不會用到它50%的功能!
所以很多功能都只是放在那裡白白的消耗資源!
(JBoss 再startup 的時候,就會把deploy的東西都load 進memory!
可是這些功能並不一定會用到)

那~要減肥也不能把自己的肝砍掉吧 !?
下面就是各功能對應的檔案,list 出來給大家,不要真把自己的有在用的肝砍掉阿XD


如果沒有用 JMS 功能 (provided via JBoss Messaging), 可以移除
$CONFIG/deploy/messaging/$CONFIG/deploy/jms-ra.rar$CONFIG/deployers/messaging-definitions-jboss-beans.xml把 $CONFIG/conf/jbossts-properties.xml 裡面的 "XAResourceRecovery.JBMESSAGING1" mark 掉:
<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/>


如果沒有用Mail 的功能的話,可以把這兩個檔案移掉 $CONFIG/deploy/mail-service.xml$CONFIG/deploy/mail-ra.rar
如果不用 BeanShell scripts, 把這個移除 $CONFIG/deployers/bsh.deployer
如果沒有用EJB 3的話,請移除 $CONFIG/deploy/ejb3-connectors-jboss-beans…

JEAP 5 - JBoss 的 JMX 與 SNMP - JVM 監控

每次出門巡回表演的時候,只要講到JON的話題,
有些人就會問我有關是否可以將監控的資料匯出?
最近還有一些詢問如何直接Access MBean,


對於Java 程式來說,因為我們像C語言需要自己去handle 記憶體裡的locate,
所以就非常依賴各家的JVM 上的所謂 Garbage Collection. (簡稱GC,我都叫它掃垃圾的)
因為所有的程式都經過JVM,所以它上面就充滿了我們Java 再 runtime執行時候的資料拉~
像是, Thread, 掃垃圾的狀況等等。。。

講到JBoss 的 JVM 監控就不得不提到兩個比較主要監控方式 JMX 與 SNMP。

JMX


說到JMX 就一定要提到MBean,
先把JBoss看成一個充滿資源的盒子,MBean 就是來不同資源使用的物件
那要如何操作這些MBean呢?

JMX  簡單來說就是一個Interface, 這個interface 讓MBean 可以被操縱,
不管是直接的API還是RMI Call.
(詳細的以後再來寫好了。。。)



所以,當你在打開JBoss 的時候,會發現除了Admin console 之外,
還會有一個JMX-Console,


沒錯~那就是JBoss 身上掛的所有MBean,
這個JMX介面可以讓你直接操作JBoss 的MBean



SNMP

SNMP 是 Simple Network Management Protocol 的簡寫
簡單來說是一個共同的通訊協定,統一的訊息format讓管理比較方便。
而JBoss 也提供了這種協定的傳送方式,

要如何使用 JBoss SNMP?
首先,要先到all profile, 因為default 是開發專用的profile, 所以通常不會有這些監控的外掛。
到了 $JBoss_SERVER_INSTALL_PATH/server/all/deploy之下,
可以看到JBoss 專用的 snmp-adapter.sar
這個SNMP Adapter 會將MBean 的資料抓出來,轉成SNMP Traps 然後送到SNMP Manager 那邊。



主要可以設定的xml 有兩個 ..
managers.xml  - 設定誰要去接收SNMP訊息
<manager>     <address>localhost</addres…

JEAP 5 - 安裝JBoss Enterprise Application Platform AS 5.1

環境確認 以下有幾項安裝前須確認的部分.
最低應體需求 硬體元件 最小需求量 CPU 簡易的應用程式最少1GHz 硬碟空間 1.5 GB 系統記憶體 1.5 GB OS環境安裝
請先確認以下是否安裝
Java Virtual Machine Version Sun JDK 1.6.x Open JDK 1.6.x IBM JDK 1.6.x Azul JDK 1.6.x


安裝步驟
1.至紅帽網站註冊試用帳號 A. 至 https://www.redhat.com/wapps/sso/login.html 點選