post | sidebar | footer

November 10, 2005

Tomcat 5.5.7 效能調整

0 迴響
雖然還沒找到效能稱不過 2x 人同時上線的原因,不過還是把 java 的 Xms 和 Xmx 做調整。


測試機的記憶體是 512M,所以在 {$TOMCAT_HOME}/bin/catalina.sh 裡,預設值 JAVA_OPTS="-server -Xmx178m -Xms178m" 改成 JAVA_OPTS="-server -Xms320m -Xmx512m"。


當 java -server -Xmx512m -Xms512m 在 std1 測試


#ab -dSk -c100 -n100 http://itblog.eztravel.com.tw/


  Server Software: Apache/2.0.54

  Server Hostname: itblog.eztravel.com.tw

  Server Port: 80



  Document Path: /

  Document Length: 42246 bytes



  Concurrency Level: 100

  Time taken for tests: 64.345 seconds

  Complete requests: 100

  Failed requests: 0

  Broken pipe errors: 0

  Keep-Alive requests: 0

  Total transferred: 4575165 bytes

  HTML transferred: 4542083 bytes

  Requests per second: 1.55 [#/sec] (mean)

  Time per request: 64345.00 [ms] (mean)

  Time per request: 643.45 [ms] (mean, across all concurrent requests)

  Transfer rate: 71.10 [Kbytes/sec] received



  Connnection Times (ms)
min
avg
max
Connect:
47
387
6245
Processing:
5631
28227
64073
Total:
5631
28615
64340




當 java -server -Xms320m -Xmx512m 在 std1 測試


#ab -dSk -c100 -n100 http://itblog.eztravel.com.tw/

  Benchmarking itblog.eztravel.com.tw (be patient).....done

  Server Software: Apache/2.0.54

  Server Hostname: itblog.eztravel.com.tw

  Server Port: 80



  Document Path: /

  Document Length: 453 bytes



  Concurrency Level: 100

  Time taken for tests: 6.380 seconds

  Complete requests: 100

  Failed requests: 0

  Broken pipe errors: 0

  Non-2xx responses: 102

  Keep-Alive requests: 0

  Total transferred: 71094 bytes

  HTML transferred: 46206 bytes

  Requests per second: 15.67 [#/sec] (mean)

  Time per request: 6380.00 [ms] (mean)

  Time per request: 63.80 [ms] (mean, across all concurrent requests)

  Transfer rate: 11.14 [Kbytes/sec] received



  Connnection Times (ms)
min
avg
max
Connect:
125
317
1192
Processing:
588
3567
5393
Total:
588
3885
5712





參考資料:http://linux.vbird.org/linux_server/0360apache.php#apache_speed


September 29, 2005

Tomcat + Java 與 Oracle 間的溝通

0 迴響
環境

01. 系統: RedHat Enterprise Linux v3 / Windows XP Pro SP2

02. WEB Server:Tomcat 5.5.7 (patch 5.5.9)

03. JAVA:J2SDK 1.4.2_09

04. Database:Oracle 9i Realease 2

套件

01. Oracle JDBC Driver

檔案:ojdbc14.jar、ojdbc14_g.jar、ocrs12.zip

下載路徑:http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/
htdocs/jdbc9201.html


下載前,請注意版本支援問題,尤其是 Oracle 9i 和 JAVA 之間的版本。


步驟

01. 將 ojdbc14.jar 及 ojdbc14_g.jar 放到 tomcat 下的 common/lib

02. 把 ocrs12.zip 的副檔名改成 .jar,並放到 tomcat 下的 common/lib


再來就是依照要裝的 web 系統,在 tomcat 裡的 conf/Catalina/localhost 裡的設定檔需要設定了。

Tomcat + Java 的安裝過程

0 迴響
on RedHat


套件

01. JAVA

檔案:j2sdk-1_4_2_09-linux-i586-rpm.bin

下載路徑:http://java.sun.com/j2se/1.4.2/download.html

在此頁面選擇 Download J2SE SDK,在 accept 條件之後選擇,j2sdk-1_4_2_09-linux-i586-rpm.bin。


02. TOMCAT

檔案:jakarta-tomcat-5.5.7.tar.gz

下載路徑:http://archive.apache.org/dist/jakarta/tomcat-5/archive/v5.5.7/bin/


檔案:jakarta-tomcat-5.5.9-compat.tar.gz

下載路徑:http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/





安裝步驟

‧JAVA

01. mv j2sdk-1_4_2_09-linux-i586-rpm.bin /usr/local/

把檔案移到 /usr/local 下面,不一定要移到這個位置,全看管理者安排,但是相對的環境路徑要對應好。



02. chmod 777 /usr/local/j2sdk-1_4_2_09-linux-i586-rpm.bin
把檔案改成可執行。


03. /usr/local/j2sdk-1_4_2_09-linux-i586-rpm.bin
執行這個檔案,他會自行解壓縮,並產生 j2sdk-1_4_2_09 的資料夾。




‧TOMCAT

01. mv jakarta-tomcat-5.5.* /usr/local/
把檔案移到 /usr/local 下面,不一定要移到這個位置,全看管理者安排,但是相對的環境路徑要對應好。


02. tar zxvf jakarta-tomcat-5.5.7.tar.gz
把檔案解壓縮,會在 /usr/local 下產生 jakarta-tomcat-5.5.7 的資料夾。



03. tar zxvf jakarta-tomcat-5.5.9-compat.tar.gz
把檔案解壓縮,會在 /usr/local 下產生 jakarta-tomcat-5.5.9-compat 的資料夾,進去這個資料夾,依照裡面的相關 folder,把裡面的檔案拷貝到 /usr/local/jakarta-tomcat-5.5.7 中。


04. mv jakarta-tomcat-5.5.7 tomcat55
把 jakarta-tomcat-5.5.7 改名稱為 tomcat55,名稱視管理者安排,但是相對的環境路徑名稱要對應好。


05. rm *.tar.gz
把 所有 .tar.gz 副檔名的檔案清除。


06. rm -rf jakarta-tomcat-5.5.9-compat
砍掉 jakarta-tomcat-5.5.9-compat 這個資料夾。




設定環境

01. 登入 root 身份


02. vi /etc/profile

編輯 /etc/profile 這個檔案。


03. 在檔案後面加入

PATH=$PATH:/usr/local/j2sdk1.4.2_09/bin

export JAVA_HOME=/usr/local/j2sdk1.4.2_09

export CATALINA_HOME=/usr/local/tomcat55

export CLASSPATH=.:$JAVA_HOME/lib


04. 存檔


05. source /etc/profile

重新依照係數將環境啟動。




執行 TOMCAT

01. 啟動: /usr/local/tomcat55/bin/startup.sh

  開機啟動: 在 /etc/rc.d/rc.local 裡加入

  su - root -c "/usr/local/tomcat55/bin/startup.sh"



02. 關閉: /usr/local/tomcat55/bin/shutdown.sh



測試

01. http://IP:8080


--

on Windows



套件

01. JAVA

檔案:j2sdk-1_4_2_09-windows-i586-p.exe

下載路徑:http://java.sun.com/j2se/1.4.2/download.html

在此頁面選擇 Download J2SE SDK,在 accept 條件之後選擇,j2sdk-1_4_2_09-linux-i586-rpm.bin。


02. TOMCAT

檔案:jakarta-tomcat-5.5.7.zip

下載路徑:http://archive.apache.org/dist/jakarta/tomcat-5/archive/v5.5.7/bin/


檔案:jakarta-tomcat-5.5.9-compat.zip

下載路徑:http://archive.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/



安裝步驟

‧JAVA

01. 執行 j2sdk-1_4_2_09-windows-i586-p.exe,把路徑放在 C:\\ 下面,路徑位置全看管理者安排,但是相對的環境路徑要對應好。


‧TOMCAT

01. 解開 jakarta-tomcat-5.5.7.zip,把路徑放在 C:\\ 下面,並把 folder 名稱改成 tomcat55,folder 名稱全看管理者安排,但是相對的環境名稱要對應好。

02. 解開 jakarta-tomcat-5.5.9.compat.zip,依照裡面的相關 folder,把裡面的檔案拷貝到 C:\\tomcat55 中。



設定環境

01. 在「我的電腦」按右鍵,選「內容」。

02. 選擇「進階」,再選擇「環境變數」進入。

03. 新增「變數」為 CATALIAN_HOME,「值」為 C:\\tomcat55

04. 新增「變數」為 CLASSPATH,「值」為 C:\\j2sdk-1_4_2_09lib

05. 新增「變數」為 JAVA_HOME,「值」為 C:\\j2sdk-1_4_2_09

06. 編輯「變數」Path,把 C:\\j2sdk-1_4_2_09bin 放在「值」的最前面。

07. 確定。



執行 TOMCAT

01.「開始」/「程式集」/「Apache Tomcat 5.5」/「Monitor Tomcat」

02. Monitor 會出現在右下角的系統列,可藉由 Monitor 來啟動或關閉 。



測試

01. http://IP:8080


--


參考資料

http://blog.yam.com/javanull/archives/424066.html

Roller 的架設

0 迴響
Roller 是一個以 JSP 當前端語言,java 當後端的 Blog 出版工具。整個程式以 hibernate(2.0) + struts(1.1) + velocity(1.4) 為架構所建構而成。資料庫部分,主要支援 HSQL、MySQL 及 PostgreSQL,但依然可以透過 JDBC 與其他資料庫做溝通。

環境

01. 系統:RedHat Enterprise Linux v3

02. WEB Server:Tomcat 5.5.7 (patch 5.5.9)

03. JAVA:J2SDK 1.4.2_09

04. Database:Oracle 9i


套件

01. Roller

檔案:roller-src-1.2.tar.gz

下載路徑:
https://roller.dev.java.net/files/documents/190/16701/
roller-src-1.2.tar.gz


檔案:roller-tools-1.2.tar.gz

下載路徑:
https://roller.dev.java.net/files/documents/190/16699/
roller-tools-1.2.tar.gz


步驟

因為 oracle 資料庫的關係,我們下載原始檔下來,重新 complier。

01. mv *.tar.gz /home

把 roller-src-1.2.tar.gz、roller-tools-1.2.tar.gz,移到 /home 中。

02. tar zxvf roller-src-1.2.tar.gz

解開 roller-src-1.2.tar.gz,會新增一個 roller-src-1.2 的資料夾。

03. tar zxvf roller-tools-1.2.tar.gz

解開 roller-tools-1.2.tar.gz,會新增 tools 的資料夾。

04. mv -rf tool /home/roller-src-1.2

將 tools 資料夾,移到 /home/roller-src-1.2 裡。

05. rm *.tar.gz

刪除 roller-src-1.2.tar.gz、roller-tools-1.2.tar.gz。

06. 將 roller complier 一次。


資料庫

由於 Roller 沒有直接支援 Oracle 所以我們要對他提供的 createdb.sql 做些修改。其中要注意 comment 這個 table,因為 comment 是 oracle 的保留字,所以要改名字(commentt),並在roller/WEB-INF/classes/org/
roller/pojos/CommentData.hbm.xml 裡在 class 標籤裡的 table 改成 commentt。另外有幾個欄位的 datatype 為 bit、text 及 timestamp 也要改成 number(1)、clob 及 date,有幾個欄位 Roller 預設 index 名稱超過 30 個字的也要修改一下。

01. 在 Oracle 9i 新增一個 DB,命名為 Roller。

02. 依照這一個 script 檔新增表格。


TOMCAT 設定

下載這一個設定檔,放在 roller/conf/Catalina/localhost/ 裡,並修改 roller webapp 的絕對路徑、oracle 資料庫的 IP、port、帳號及密碼。


Roller 的設定

由於 Roller 是用 Hibernate 跟資料庫做溝通,我們要在 Hibernate 中做好與 oracle 的溝通設定。

請下載這一個設定檔,放到 roller/webapp/WEB-INF/classes/,並修改 oracle 資料庫的 IP、port、帳號及密碼。


處理 clob 格式欄位

因為 Oracle 不支援 text,我們將格式轉為 clob,所以我們要處理將資料塞進 clob 的問題。

01. 請將 這一支程式放到 roller/webapp/WEB-INF/classes/org/roller/util 中。

02. 把 CommentData.hbm.xmlEntryAttributeData.hbm.xml


PageData.hbm.xmlPlanetEntryData.hbm.xml


PlanetGroupData.hbm.xmlRefererData.hbm.xml


RollerConfigData.hbm.xmlRollerPropertyData.hbm.xml


WeblogEntryData.hbm.xmlWebsiteData.hbm.xml,放到 roller/webapp/WEB-INF/classes/org/roller/pojos 內,蓋過原本的檔案。



啟動

重新啟動兩次,第一次會將設定檔裡的資料寫進資料庫,第二次啟動便會抓的到資料庫裡的資料了。


設定檔

01. webapp/WEB-INF/classes/rollerRuntimeConfigDefs.xml

整個站的站名、敘述、絕對位址、管理者的 E-MAIL、文章編輯器種類等等,第一次啟動便是將這邊的資料存進資料庫。

02. webapp/WEB-INF/classes/hibernate.cfg.xml

關於 hibernate 的設定,與 oracle 的溝通、相關檔案的連結路徑等等。

03. webapp/WEB-INF/struts-config.xml

struts 的相關路徑設定。

04. webapp/WEB-INF/roller-config.xml

關於 roller 使用者的預設設定。


常會發生的問題

01. tomcat 與 oracle 之間的溝通,請注意 tomcat、oracle 及 java 間的版本配合問題。

02. hibernat 裡關於 oracle 的設定方式。

03. oracle 可以連到,tomcat 也沒問題了,但是出現以下的狀況,就是資料庫欄位格式的關係。

  a. 一連進 roller 即出現 error message。

  b. 無法登入 roller ,出現 帳號與密碼不符的訊息。

  c. 不能更換 template,會出現 error message。


其餘 java 環境及系統方面的問題,請自行注意。


September 28, 2005

RSS 初談

0 迴響
本文是為了 2005 年 9 月 27 日(二)的教育訓練課程需要而整理編輯。

參考資料來自於 數位學習發展計畫RSS (Real Simple Syndication)-網頁資料交換技術架構中央研究計算中心網頁資料交換技術—RSS的探討與使用

--

什麼是 RSS

RSS 是一種 XML 文件用來描述網站或是網站某個部分的描述資料 (metadata) 的標準,利用許多預先定義好的標籤,例如 item (項目)、discription (描述)、title (標題)... 來呈現資訊的內容;透過這些標籤,讀者可以很快地掌握像是作者、發表時間、標題、描述等詮釋資料,也可以用這些詮釋資料來檢索、比對、排序、重組等。


RSS 的目的

RSS 發展目的是想將資訊以 XML 為基礎的方式,附上不同的後設資料描述來提供資訊。換句話說,便是網站透過 RSS 來發佈消息,讓夥伴網站或讀者可透過簡單的程式或軟體,即可獲得想要的資訊。簡單而言,RSS 是屬於一種半主動式的傳播方式,讀者可以設定好自己所要蒐集的資訊,然後一次收回,以得知最新狀況。此一行為近似於使用者在收取電子郵件一般;相對於電子報收發的差異,在於電子報係以主動傳播方式,定時發佈消息給讀者,RSS 則是透過網站或軟體來進行。


RSS的起源

‧RSS 0.9X

RSS 的出現,原於 Netscape (網景) 推出的新聞頻道。Netscape 定義了一套描述新聞頻道的語言,這就是RSS,只不過 Netscape 自當時起在於微軟的競爭中每況愈下,因而只發佈了一個 0.9 版本,沒有能發佈一個正式的 RSS 規範。

隨著 Blog 的興起,RSS 成為了描述 Blog 主題和更新資訊的最基本方法。RSS 這項技術被著名 Blogger/Geek 戴夫·溫那 (Dave Winner) 的公司 UserLand 所接手,繼續開發新的版本,以適應新的網路應用需要,其中首先是 blog 中的應用。在戴夫·溫那的努力下,RSS 先後升級到了 0.91 版和 0.92 版,隨後 RSS 在各種 Blog 工具中得到了應用,並被眾多的專業新聞站點所支持。

此版本的 RSS 被定義為「Really Simple Syndication」,此時,資料的簡單化是最被重視的。

‧RSS 1.0

在廣泛的應用過程中,眾多的專業人士認識到需要組織起來,把 RSS 發展成為一個通用的規範,並進一步標準化。

一個聯合小組根據 W3C 新一代的語義網技術 RDF 對 RSS 進行了重新定義,發佈了RSS 1.0,並把 RSS 定義為「RDF Site Summary」。

RSS 1.0 使用 RDF 為基準,所有的 RDF 解譯器均能解譯,無需再額外安裝或瞭解任何東西;並採用 XML 的名稱領域 (namespace) 作為延伸的方式,稱之為 RSS 模組。因為 RSS 1.0 不使用某一人所制訂的延伸標準,而是採用名稱領域引用來說明延伸的方法。


‧RSS2.0

制訂 RSS 1.0 時沒有與戴夫·溫那進行有效的溝通,戴夫堅持在自己設想的方向上進一步開發RSS 的後續版本,而且不承認 RSS 1.0 的有效性。戴夫·溫那在 2002年 9月獨自把 RSS 升級到了 2.0 版本,其中的定義完全是全新的模式,並沒有任何 RSS 1.0 的影子,可參閱 http://blogs.law.harvard.edu/tech/rss

RSS 由此開始分化形成了 RSS 0.9x/2.0 和 RSS 1.0 兩個陣營。


RSS 閱讀工具

Mozilla FireFox



Mozilla ThunderBird



FeedDemon


‧其他可參考 http://allrss.com/rssreaderswindows.html


網路媒體的 RSS Feeds

‧CNET.com:http://taiwan.cnet.com/rss/rss_index.htm

‧UDN.com 數位文化誌:http://mag.udn.com/dc_rss.xml

‧Yahoo!奇摩新聞:http://tw.news.yahoo.com/rss/

‧蕃薯藤 RSS 新聞:http://news.yam.com/rss_1.html

‧MOBILE01:http://www.mobile01.com/rss.php


BLOG 初談

0 迴響
本文是為了 2005 年 9 月 27 日(二)的教育訓練課程需要而整理編輯。

全文出自於 [ Jedi's BLOG | Jedi.org ] 妳不能不知道的部落格 -- Blog 是甚麼碗糕啊?

--

簡介

在我們仔細介紹 Blog 之前,首先得談談甚麼是 Weblog。Weblog 這個字眼最早是由 jorn barger 在 1997 年左右提出來的。指的乃是一種用網頁 (web) 來呈現的個人日誌 (log) 一開始就以最簡單也最開放的形式來表現文章內容:公開取閱的網頁。網頁形式提供了多媒體的能力,於是 Weblog 的內容不再受限於文字,更可以是圖片、聲音、影像;而公開的特質則奠定了 Weblog 主張分享的基礎。


到了 1999 年四、五月間, Peter Merholz 開始把 Weblog 唸成 We Blog ;從此 Blog 搖身一變,成為一個新的動詞。根據 Meg Hourihan 在「 What We're Doing When We Blog 」一文裡的說法, Blog 這個動詞指的乃是按照各自的規則來整理資訊。當某個人在 Blog 的時候,並不是(或不單純祇是)生產被人們稱之為「 Blog 」的一篇篇文章;實際上,她是在實踐個人的信念,以她所認同且認可的規則,將她的感官所接受到的種種資訊,整理後加以出版,成為其他讀者所能夠閱讀的文本。

特徵

01.「彙整」:分類彙整、按時彙整、單篇彙整

彙整的方式雖多,卻沒有任何限制; Weblog 的作者可以隨意選用彙整的方法,甚至採用多重彙整,也就是同時使用多種不同的彙整方式。事實上,「彙整」的方法與過程,正反映著作者的價值觀與信念:她是如何看待 Weblog 裡的內容?她如何表達文章或其他媒體內容間的關聯性?她如何決定孰重孰輕?這些都是讀者們能夠從彙整裡所加以揣測的。

02.「靜態鏈結」

為了要能夠找到特定的一小段內容,於是需要有一系列的鏈結,分別指到特定彙整檔案裡的特定段落。靜態鏈結在 Weblog 的發展上扮演著相當重要的地位,   因為 Weblog 間正是靠著這種鏈結,纔得以密集引用、互相連結。又因為靜態鏈結這個會被以固定、不變的樣子公開於網路之上,並且能夠讓其他讀者直接讀取的性質,更暗示著 Weblog 開放與分享的特質。

03.「時間戳印」

為了要建立起 Weblog 內部的先後順序,這種時間上的先後順序會是奠定 Weblog 內在情境的重要依據,因為所有新的創作其實都得建立在原有的內容之上。

04.「日期標頭」

日期標頭,可以掌握任何一篇文章、圖片、聲音、或影像被發表或被編修的時空背景。


Blog 發展出來的名詞

01. Blogger 就是 Blog 的人

02. Blogosphere 則是泛指所有 Blog 及跟 Blog 有關的網站的統稱。


Blog 的重要影響

所有的 Blog 出版工具的目的都是一樣的,也就是要讓所有實做上的技術變得更輕易,而讓 Blogger 能夠把思緒集中在 Blog 的內容上。從這個觀點出發, Blog 又發展出更進一層的意義: Blog 是一種把「在網路上書寫」回歸到日常生活基本使用的生活態度,這種生活態度著重於資料的搜集與整理,鼓勵人們記載、內省及分享。Blogger 通常都會閱讀、引用彼此的 Blog ,儼然成為小型的部落。


出版工具

名稱
語言
台灣推廣
運用
MovableType
Perl
Movable Type Ultimate Handbook

Jedi's Blog
TypePad
WordPress
PHP
中文 WordPresspLog
Drupal
PHP
yahoo!360
pLog
PHP
pLog 中文開發論壇

pLog Wiki 中文文件計畫
ithome
Roller
JAVA
Blogger.com



BSP (Blog Service Provider)

網站
位址
特色
TypePad
http://www.typepad.com
純 BSP
Blogger
http://www.blogger.com
blog 社群最發達,後來賣給 google
MSN Space
http://spaces.msn.com/
flash
yahoo!360
http://360.yahoo.com
雞肋
無名小站
http://www.wretch.cc
國內第一家 BBS 結合 Blog 及網路相簿
Xuite
http://www.xuite.net/
Hinet 經營
養樂多
http://blog.yam.com/
由樂多與蕃薯藤合作
PChome
http://myblog.pchome.com.tw/
第二根雞肋