<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發(fā)
    最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
    本站的官方站點(diǎn)是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

    2007年3月26日 #

         摘要: 你每天經(jīng)常訪問哪些站點(diǎn)?

    你的收藏夾里有多少收藏的站點(diǎn)?  閱讀全文
    posted @ 2008-08-09 14:42 Alex 閱讀(2386) | 評論 (2)編輯 收藏

         摘要: 上次參加open party朋友拿了一本《開源技術(shù)選型手冊》,翻了一下,整理成腦圖(圖的效果還是比文字好哦)  閱讀全文
    posted @ 2008-08-06 10:30 Alex 閱讀(2496) | 評論 (5)編輯 收藏

         摘要: 從svn版本上checkout出來的新的版本,dwr部分的xml配置文件是紅色提示錯(cuò)誤,一開始以為是jsp的普通驗(yàn)證錯(cuò)誤,后發(fā)現(xiàn)不是那么回事。  閱讀全文
    posted @ 2008-08-04 15:00 Alex 閱讀(1570) | 評論 (0)編輯 收藏

    1.很多人喜歡用代碼開發(fā)工具的debug功能來跟蹤問題,雖然最終可以解決問題,但是從方向或者思想上不建議這樣做,我依然記得最初我的技術(shù)經(jīng)理對我說過 “代碼不是調(diào)出來的”。

    2.不是調(diào)出來的那是怎么出來的呢? “寫出來的。” 呵呵,別扭,但是想想看,是否有點(diǎn)道理?

    3.從另一個(gè)層面,我們需要加強(qiáng)代碼的規(guī)范的寫法,這就好比設(shè)計(jì),先盡量將設(shè)計(jì)(在敏捷的年代似乎談設(shè)計(jì)不太入流,那么你可以認(rèn)為那是一種思考吧)做的到位一點(diǎn)

    4.回到一個(gè)大的命題:戰(zhàn)略如果錯(cuò)誤,執(zhí)行的越快死的越快;同理,思路或者方向如果有問題,做的越帶勁,你越難受。

    5.讓我們朝這個(gè)目標(biāo)挺進(jìn):代碼一次編寫就通過! 我見過一些這樣的高人,只要你努力,是可以做到的。

    posted @ 2008-08-03 20:56 Alex 閱讀(2453) | 評論 (23)編輯 收藏

         摘要: 又一陣熱風(fēng)吹過來了,猶如當(dāng)初的asp,猶如近段時(shí)間的SOA  閱讀全文
    posted @ 2008-08-03 01:02 Alex 閱讀(2009) | 評論 (2)編輯 收藏

         摘要:   閱讀全文
    posted @ 2008-07-03 14:13 Alex 閱讀(1604) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2008-07-03 14:12 Alex 閱讀(2968) | 評論 (1)編輯 收藏

         摘要:   閱讀全文
    posted @ 2008-07-03 14:11 Alex 閱讀(3520) | 評論 (5)編輯 收藏

    //本站點(diǎn)內(nèi)容來自于 顛覆軟件

    1.機(jī)器的ip經(jīng)常改變,到公司一個(gè)ip,到客戶那一個(gè)ip,到家又是一個(gè)ip,不知怎么搞的,今天到家oracle的dbconsole就啟動不了了.

    2.用命令行的方式啟動 emctl.bat start dbconsole,結(jié)果還提示ORACLE_SID 還沒有設(shè)置,暈,這個(gè)怎么沒有了,set 一個(gè)吧 set ORACLE_SID=dggmcc (我的數(shù)據(jù)庫實(shí)例)

    3.還是有錯(cuò),提示找不到192.168.0.52.這個(gè)地址,應(yīng)該是ip和當(dāng)初裝數(shù)據(jù)庫的時(shí)候IP不一樣的緣故,將hosts設(shè)置一下 192.168.0.52   IDEA

    4.OK

    posted @ 2008-07-03 14:10 Alex 閱讀(1043) | 評論 (0)編輯 收藏

    1.架構(gòu)的分類:業(yè)務(wù)架構(gòu)、數(shù)據(jù)庫架構(gòu)、軟件設(shè)計(jì)架構(gòu),正在流行的所謂soa架構(gòu)也算吧

    2. 涉及到的主要內(nèi)容:

    • 需求分析
    • 領(lǐng)域分析
    • UML建模
    • 文檔設(shè)計(jì)管理
    • 設(shè)計(jì)模式
    • 基于javaEE5的設(shè)計(jì)(jsf+EJB3)[個(gè)人感覺jboss seam是最好的代表了]

    3.今天一同事說在網(wǎng)上看到統(tǒng)計(jì)數(shù)據(jù)說基于soa的架構(gòu)做的項(xiàng)目比傳統(tǒng)的做法成功率確實(shí)高,可能性是存在的,不過也不排除這些統(tǒng)計(jì)數(shù)據(jù)是某些大廠贊助的結(jié)果 :)

    4.今年打算有機(jī)會的話培訓(xùn)一下軟件設(shè)計(jì)師的課程,內(nèi)容摘要如下:(來自國信培訓(xùn))

    一、面向?qū)ο蠓治鲈O(shè)計(jì)與UML

    Ø 面向?qū)ο蠓治雠c設(shè)計(jì)OOAD

    Ø UML建模與ICONIX進(jìn)程

    Ø 領(lǐng)域建模與用例建模

    Ø 需求分析與UseCase

    Ø 健壯性分析

    Ø 時(shí)序圖

    Ø 對象圖、狀態(tài)圖、活動圖與協(xié)作圖

    Ø 類圖、包圖與組件圖

    Ø 部署圖

    Ø UMLRUP

    Ø 設(shè)計(jì)進(jìn)度和設(shè)計(jì)粒度的控制

    二、設(shè)計(jì)模式

    Ø GOF設(shè)計(jì)模式

    Ø 創(chuàng)建型模式

    Ø 結(jié)構(gòu)型模式

    Ø 行為型模式

    Ø 模式擴(kuò)展

    Ø 開源項(xiàng)目中的設(shè)計(jì)模式

    Ø 模式與交流

    三、軟件設(shè)計(jì)管理

    Ø 軟件設(shè)計(jì)文檔

    Ø 軟件流程改進(jìn)策略

    Ø 軟件設(shè)計(jì)風(fēng)險(xiǎn)管理

    四、相關(guān)軟件設(shè)計(jì)案例集

    posted @ 2008-07-03 14:08 Alex 閱讀(1581) | 評論 (0)編輯 收藏

    //本站點(diǎn)內(nèi)容來自于www.foxlog.org


    1.中國還沒有真正偉大的軟件公司,就當(dāng)自己做一下白日夢了

    2.需要一個(gè)協(xié)同軟件,比如oracle協(xié)作套件,或者IBM的Lotus,目的,提供郵件、文檔、工作空間、門戶、網(wǎng)絡(luò)會議、移動辦公等,讓公司的所有資源在一個(gè)統(tǒng)一的平臺上實(shí)施;當(dāng)然,出于成本考慮,我也可以選擇google的企業(yè)套件,最直接的方式了,而且效果不錯(cuò),不過沒有網(wǎng)絡(luò)會議和門戶功能,可以考慮使用webEx等 (近期,流行的一個(gè)觀點(diǎn)是在協(xié)作平臺里引入web2.0的相關(guān)技術(shù))

    3.需要一個(gè)學(xué)習(xí)平臺,比如oracle ilearing.用于員工的入職須知,技能培訓(xùn),為學(xué)習(xí)型組織提供一個(gè)最有力的幫助,最大的問題可能不是學(xué)習(xí)平臺本身,而是學(xué)習(xí)內(nèi)容的規(guī)劃和設(shè)計(jì),必要的時(shí)候需要購買 .  學(xué)習(xí)平臺最終的目的就是一是培訓(xùn)員工,另一個(gè)就是知識共享。現(xiàn)在很多公司有這么一個(gè)毛病,公司運(yùn)營了很多年,但是隨著員工的逐步更換和流失,很多以前精華的東西都不見了,如果主意了知識的共享和積累(通過軟件平臺),這個(gè)問題就是另一種情況了.

    4.需要一個(gè) oa平臺,主要基于公司的業(yè)務(wù)流程,目前大多數(shù)oa是基于工作流的機(jī)制來實(shí)現(xiàn)。事實(shí)上,oa的發(fā)展歷程已經(jīng)比較長了,也相對比較成熟,但是究竟能發(fā)揮多大作用或者該如何發(fā)揮最大的作用還依然是一個(gè)問題。

    5.建立一個(gè)項(xiàng)目管理系統(tǒng)平臺,所有項(xiàng)目都在上面監(jiān)控,它應(yīng)該是動態(tài)的,可以看到每一天的進(jìn)度,最好能從上面能對項(xiàng)目的各個(gè)組員的工作作出評估,作出即時(shí)的溝通和修正。

    6.軟件開發(fā)過程系統(tǒng):包含架構(gòu)設(shè)計(jì)管理、開發(fā)動態(tài)控制管理、版本控制、測試管理 .這些內(nèi)容的主要目的是保證開發(fā)的規(guī)范話、文檔化

    7.會議系統(tǒng)管理. 每個(gè)公司都需要開會,但是開會的層次差別太大了,存在的問題主要有:會議目標(biāo)不明確,會議過程沒有效率,會議結(jié)果不明確,會議結(jié)束后沒有后期跟蹤管理.關(guān)于這方面可以推薦一篇文章 九段秘書

    8.以上好像偏重于技術(shù)的層面比較多,實(shí)際上一個(gè)公司的老總最看重的其實(shí)必然是市場,所以一個(gè)適合自己公司的ERP或者CRM系統(tǒng)也許是必要的,注意,我這里說的是也許。

    9.最后,所有的軟件僅僅提供了一個(gè)平臺,它是“死”的,或者說其本身并不會發(fā)生什么作用,更關(guān)鍵的是看不見的“軟件”——企業(yè)文化,一切的效率與創(chuàng)新都來自于公司的文化氛圍,在這個(gè)基礎(chǔ)上,軟件才會有推波助瀾的作用。

    posted @ 2008-07-03 14:07 Alex 閱讀(1079) | 評論 (3)編輯 收藏

         摘要: 很多東西是拿來被利用的,被 Fuck的,不是讓你消磨時(shí)間的.  閱讀全文
    posted @ 2007-09-01 12:42 Alex 閱讀(2562) | 評論 (5)編輯 收藏

         摘要: 項(xiàng)目,是一個(gè)范圍很廣的概念,三峽大壩是一個(gè)項(xiàng)目,IT企業(yè)的一次開發(fā)任務(wù)也是一個(gè)項(xiàng)目,個(gè)人某個(gè)時(shí)間段的活動安排仍然可以看作是一個(gè)項(xiàng)目.

      閱讀全文
    posted @ 2007-08-19 13:15 Alex 閱讀(1824) | 評論 (7)編輯 收藏

         摘要: 經(jīng)常用到update語句,不過很少用到其他表的數(shù)據(jù)來更新當(dāng)前表,這次用到了,總結(jié)一下

      閱讀全文
    posted @ 2007-08-19 12:49 Alex 閱讀(2273) | 評論 (1)編輯 收藏

    key words: plsql,導(dǎo)出數(shù)據(jù),大數(shù)據(jù)量

    最近的賬務(wù)的項(xiàng)目中需要導(dǎo)出Excel報(bào)表,數(shù)據(jù)量比較大,解決方案如下 :

    1.通過plsql在服務(wù)器端查詢出符合要求的紀(jì)錄,然后直接寫到文本文件中

    2.在web端通過流的方式讀文本文件,通過POI寫到Excel,將生成的Excel流寫到respoonse實(shí)現(xiàn)下載

    這樣做的好處是不必一次性將滿足條件的紀(jì)錄全部取出來,而是通過流的方式.

    這個(gè)方式原來在處理Blob類型的字段時(shí)有直接的getStream來支持的,這次普通的數(shù)據(jù)只好通過文件的方式來實(shí)現(xiàn).

    貼一段sample的代碼


    sql 代碼
     
    1. create or replace procedure alex_table_to_txt(filepath varchar2,filename varchar2) is  
    2. --var  
    3. v1 alex2.name%type;  
    4. v2 alex2.address%type;  
    5. v3 alex2.groupname%type;  
    6.   
    7. output varchar2(200);  
    8.   
    9. --file var  
    10. file_handle UTL_FILE.FILE_TYPE;  
    11.   
    12. cursor readtable is select t.name,t.address,t.groupname from alex2 t;  
    13. begin  
    14. file_handle:=utl_file.fopen(filepath,filename,'w',6000);  
    15. open readtable;  
    16.   
    17. loop  
    18. fetch readtable into v1,v2,v3;  
    19. exit when readtable%notfound;  
    20. output:=v1 || ',' || v2 || ',' || v3 ;  
    21. utl_file.put_line(file_handle,output);  
    22.   
    23. end loop;  
    24.   
    25. close readtable;  
    26. utl_file.fclose(file_handle);  
    27. end alex_table_to_txt;  
    28. /  

     

    歡迎討論你的方案

    posted @ 2007-08-18 12:46 Alex 閱讀(4271) | 評論 (1)編輯 收藏

         摘要: 一般來說,我們碰到問題都是無非google,看相關(guān)文檔,請教專家,問圈子里的朋友,等等。我這里說的主要是個(gè)人自己的解決思路。

      閱讀全文
    posted @ 2007-08-18 12:17 Alex 閱讀(1368) | 評論 (2)編輯 收藏

    好久沒有來這里了,blogjava的朋友們你們還好嗎。

    我的 blog搬家了,以后將主要在這里維護(hù): www.foxlog.org 

    需要和我交換連接的朋友請聯(lián)系我 mail to me :  idea.wang@gmail.com,或者在我 blog留言
    http://www.foxlog.org/%E7%BB%99%E6%88%91%E7%95%99%E8%A8%80
    posted @ 2007-07-27 15:21 Alex 閱讀(661) | 評論 (0)編輯 收藏

    1.查看系統(tǒng)Swap空間使用

    [root@jumper usr]# free
                 total       used       free     shared    buffers     cached
    Mem:        513980     493640      20340          0     143808     271780
    -/+ buffers/cache:      78052     435928
    Swap:      1052248      21256    1030992

    2.在空間合適處創(chuàng)建swap文件

    [root@jumper usr]# mkdir swap
    [root@jumper usr]# cd swap
    [root@jumper swap]# dd if=/dev/zero of=swapfile bs=1024 count=10000
    10000+0 records in
    10000+0 records out
    [root@jumper swap]# ls -al
    total 10024
    drwxr-xr-x    2 root     root         4096  7月 28 14:58 .
    drwxr-xr-x   19 root     root         4096  7月 28 14:57 ..
    -rw-r--r--    1 root     root     10240000  7月 28 14:58 swapfile


    [root@jumper swap]# mkswap swapfile
    Setting up swapspace version 1, size = 9996 KiB


    3.激活swap文件
    [root@jumper swap]# swapon swapfile
    [root@jumper swap]# ls -l
    total 10016
    -rw-r--r--    1 root     root     10240000  7月 28 14:58 swapfile
    [root@jumper swap]# free
                 total       used       free     shared    buffers     cached
    Mem:        513980     505052       8928          0     143900     282288
    -/+ buffers/cache:      78864     435116
    Swap:      1062240      21256    1040984
    [root@jumper swap]#  

     

     

    Swap,即交換區(qū),除了安裝Linux的時(shí)候,有多少人關(guān)心過它呢?其實(shí),Swap的調(diào)整對Linux服務(wù)器,特別是Web服務(wù)器的性能至關(guān)重要。通過調(diào)整Swap,有時(shí)可以越過系統(tǒng)性能瓶頸,節(jié)省系統(tǒng)升級費(fèi)用。 

    本文內(nèi)容包括: 


    Swap基本原理 

    突破128M Swap限制 

    Swap配置對性能的影響 

    Swap性能監(jiān)視 

    有關(guān)Swap操作的系統(tǒng)命令 
    Swap基本原理 

    Swap的原理是一個(gè)較復(fù)雜的問題,需要大量的篇幅來說明。在這里只作簡單的介紹,在以后的文章中將和大家詳細(xì)討論Swap實(shí)現(xiàn)的細(xì)節(jié)。 

    眾所周知,現(xiàn)代操作系統(tǒng)都實(shí)現(xiàn)了"虛擬內(nèi)存"這一技術(shù),不但在功能上突破了物理內(nèi)存的限制,使程序可以操縱大于實(shí)際物理內(nèi)存的空間,更重要的是,"虛擬內(nèi)存"是隔離每個(gè)進(jìn)程的安全保護(hù)網(wǎng),使每個(gè)進(jìn)程都不受其它程序的干擾。 

    Swap 空間的作用可簡單描述為:當(dāng)系統(tǒng)的物理內(nèi)存不夠用的時(shí)候,就需要將物理內(nèi)存中的一部分空間釋放出來,以供當(dāng)前運(yùn)行的程序使用。那些被釋放的空間可能來自一些很長時(shí)間沒有什么操作的程序,這些被釋放的空間被臨時(shí)保存到Swap空間中,等到那些程序要運(yùn)行時(shí),再從Swap中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中。這樣,系統(tǒng)總是在物理內(nèi)存不夠時(shí),才進(jìn)行Swap交換。 

    計(jì)算機(jī)用戶會經(jīng)常遇這種現(xiàn)象。例如,在使用Windows系統(tǒng)時(shí),可以同時(shí)運(yùn)行多個(gè)程序,當(dāng)你切換到一個(gè)很長時(shí)間沒有理會的程序時(shí),會聽到硬盤"嘩嘩"直響。這是因?yàn)檫@個(gè)程序的內(nèi)存被那些頻繁運(yùn)行的程序給"偷走"了,放到了Swap區(qū)中。因此,一旦此程序被放置到前端,它就會從Swap區(qū)取回自己的數(shù)據(jù),將其放進(jìn)內(nèi)存,然后接著運(yùn)行。 

    需要說明一點(diǎn),并不是所有從物理內(nèi)存中交換出來的數(shù)據(jù)都會被放到Swap中(如果這樣的話,Swap就會不堪重負(fù)),有相當(dāng)一部分?jǐn)?shù)據(jù)被直接交換到文件系統(tǒng)。例如,有的程序會打開一些文件,對文件進(jìn)行讀寫(其實(shí)每個(gè)程序都至少要打開一個(gè)文件,那就是運(yùn)行程序本身),當(dāng)需要將這些程序的內(nèi)存空間交換出去時(shí),就沒有必要將文件部分的數(shù)據(jù)放到 Swap空間中了,而可以直接將其放到文件里去。如果是讀文件操作,那么內(nèi)存數(shù)據(jù)被直接釋放,不需要交換出來,因?yàn)橄麓涡枰獣r(shí),可直接從文件系統(tǒng)恢復(fù);如果是寫文件,只需要將變化的數(shù)據(jù)保存到文件中,以便恢復(fù)。但是那些用malloc和new函數(shù)生成的對象的數(shù)據(jù)則不同,它們需要Swap空間,因?yàn)樗鼈冊谖募到y(tǒng)中沒有相應(yīng)的"儲備"文件,因此被稱作"匿名"(Anonymous)內(nèi)存數(shù)據(jù)。這類數(shù)據(jù)還包括堆棧中的一些狀態(tài)和變量數(shù)據(jù)等。所以說,Swap 空間是"匿名"數(shù)據(jù)的交換空間。 

    突破128M Swap限制 

    經(jīng)常看到有些Linux(國內(nèi)漢化版)安裝手冊上有這樣的說明:Swap空間不能超過128M。為什么會有這種說法?在說明"128M"這個(gè)數(shù)字的來歷之前,先給問題一個(gè)回答:現(xiàn)在根本不存在128M的限制!現(xiàn)在的限制是2G! 

    Swap 空間是分頁的,每一頁的大小和內(nèi)存頁的大小一樣,方便Swap空間和內(nèi)存之間的數(shù)據(jù)交換。舊版本的Linux實(shí)現(xiàn)Swap空間時(shí),用Swap空間的第一頁作為所有Swap空間頁的一個(gè)"位映射"(Bit map)。這就是說第一頁的每一位,都對應(yīng)著一頁Swap空間。如果這一位是1,表示此頁Swap可用;如果是0,表示此頁是壞塊,不能使用。這么說來,第一個(gè)Swap映射位應(yīng)該是0,因?yàn)椋谝豁揝wap是映射頁。另外,最后10個(gè)映射位也被占用,用來表示Swap的版本(原來的版本是Swap_space ,現(xiàn)在的版本是swapspace2)。那么,如果說一頁的大小為s,這種Swap的實(shí)現(xiàn)方法共能管理"8 * ( s - 10 ) - 1"個(gè)Swap頁。對于i386系統(tǒng)來說s=4096,則空間大小共為133890048,如果認(rèn)為 1 MB=2^20 Byte的話,大小正好為128M。 

    之所以這樣來實(shí)現(xiàn)Swap空間的管理,是要防止Swap空間中有壞塊。如果系統(tǒng)檢查到Swap中有壞塊,則在相應(yīng)的位映射上標(biāo)記上0,表示此頁不可用。這樣在使用Swap時(shí),不至于用到壞塊,而使系統(tǒng)產(chǎn)生錯(cuò)誤。 

    現(xiàn)在的系統(tǒng)設(shè)計(jì)者認(rèn)為: 

    1.現(xiàn)在硬盤質(zhì)量很好,壞塊很少。 

    2.就算有,也不多,只需要將壞塊羅列出來,而不需要為每一頁建立映射。 

    3.如果有很多壞塊,就不應(yīng)該將此硬盤作為Swap空間使用。 

    于是,現(xiàn)在的Linux取消了位映射的方法,也就取消了128M的限制。直接用地址訪問,限制為2G。 

    Swap配置對性能的影響 

    分配太多的Swap空間會浪費(fèi)磁盤空間,而Swap空間太少,則系統(tǒng)會發(fā)生錯(cuò)誤。 

    如果系統(tǒng)的物理內(nèi)存用光了,系統(tǒng)就會跑得很慢,但仍能運(yùn)行;如果Swap空間用光了,那么系統(tǒng)就會發(fā)生錯(cuò)誤。例如,Web服務(wù)器能根據(jù)不同的請求數(shù)量衍生出多個(gè)服務(wù)進(jìn)程(或線程),如果Swap空間用完,則服務(wù)進(jìn)程無法啟動,通常會出現(xiàn)"application is out of memory"的錯(cuò)誤,嚴(yán)重時(shí)會造成服務(wù)進(jìn)程的死鎖。因此Swap空間的分配是很重要的。 

    通常情況下,Swap空間應(yīng)大于或等于物理內(nèi)存的大小,最小不應(yīng)小于64M,通常Swap空間的大小應(yīng)是物理內(nèi)存的2-2.5倍。但根據(jù)不同的應(yīng)用,應(yīng)有不同的配置:如果是小的桌面系統(tǒng),則只需要較小的Swap空間,而大的服務(wù)器系統(tǒng)則視情況不同需要不同大小的Swap空間。特別是數(shù)據(jù)庫服務(wù)器和Web服務(wù)器,隨著訪問量的增加,對Swap空間的要求也會增加,具體配置參見各服務(wù)器產(chǎn)品的說明。 

    另外,Swap分區(qū)的數(shù)量對性能也有很大的影響。因?yàn)镾wap交換的操作是磁盤IO的操作,如果有多個(gè) Swap交換區(qū),Swap空間的分配會以輪流的方式操作于所有的Swap,這樣會大大均衡IO的負(fù)載,加快Swap交換的速度。如果只有一個(gè)交換區(qū),所有的交換操作會使交換區(qū)變得很忙,使系統(tǒng)大多數(shù)時(shí)間處于等待狀態(tài),效率很低。用性能監(jiān)視工具就會發(fā)現(xiàn),此時(shí)的CPU并不很忙,而系統(tǒng)卻慢。這說明,瓶頸在 IO上,依靠提高CPU的速度是解決不了問題的。 
    系統(tǒng)性能監(jiān)視 

    Swap空間的分配固然很重要,而系統(tǒng)運(yùn)行時(shí)的性能監(jiān)控卻更加有價(jià)值。通過性能監(jiān)視工具,可以檢查系統(tǒng)的各項(xiàng)性能指標(biāo),找到系統(tǒng)性能的瓶頸。本文只介紹一下在Solaris下和Swap相關(guān)的一些命令和用途。 

    最常用的是Vmstat命令(在大多數(shù)Unix平臺下都有這樣一些命令),此命令可以查看大多數(shù)性能指標(biāo)。 

    例如: 
    # vmstat 3 
    procs memory swap io system cpu 
    r b w swpd free buff cache si so bi bo in cs us sy id 
    0 0 0 0 93880 3304 19372 0 0 10 2 131 10 0 0 99 
    0 0 0 0 93880 3304 19372 0 0 0 0 109 8 0 0 100 
    0 0 0 0 93880 3304 19372 0 0 0 0 112 6 0 0 100 
    ............ 

    命令說明: 
    vmstat 后面的參數(shù)指定了性能指標(biāo)捕獲的時(shí)間間隔。3表示每三秒鐘捕獲一次。第一行數(shù)據(jù)不用看,沒有價(jià)值,它僅反映開機(jī)以來的平均性能。從第二行開始,反映每三秒鐘之內(nèi)的系統(tǒng)性能指標(biāo)。這些性能指標(biāo)中和Swap有關(guān)的包括以下幾項(xiàng): 


    procs下的w 
    它表示當(dāng)前(三秒鐘之內(nèi))需要釋放內(nèi)存、交換出去的進(jìn)程數(shù)量。 

    memory下的swpd 
    它表示使用的Swap空間的大小。 

    Swap下的si,so 
    si表示當(dāng)前(三秒鐘之內(nèi))每秒交換回內(nèi)存(Swap in)的總量,單位為kbytes;so表示當(dāng)前(三秒鐘之內(nèi))每秒交換出內(nèi)存(Swap out)的總量,單位為kbytes。 
    以上的指標(biāo)數(shù)量越大,表示系統(tǒng)越忙。這些指標(biāo)所表現(xiàn)的系統(tǒng)繁忙程度,與系統(tǒng)具體的配置有關(guān)。系統(tǒng)管理員應(yīng)該在平時(shí)系統(tǒng)正常運(yùn)行時(shí),記下這些指標(biāo)的數(shù)值,在系統(tǒng)發(fā)生問題的時(shí)候,再進(jìn)行比較,就會很快發(fā)現(xiàn)問題,并制定本系統(tǒng)正常運(yùn)行的標(biāo)準(zhǔn)指標(biāo)值,以供性能監(jiān)控使用。 

    另外,使用Swapon-s也能簡單地查看當(dāng)前Swap資源的使用情況。例如: 
    # swapon -s 
    Filename Type Size Used Priority 
    /dev/hda9 partition 361420 0 3 

    能夠方便地看出Swap空間的已用和未用資源的大小。 

    應(yīng)該使Swap負(fù)載保持在30%以下,這樣才能保證系統(tǒng)的良好性能。 

    有關(guān)Swap操作的系統(tǒng)命令 


    增加Swap空間,分以下幾步: 
    1)成為超級用戶 
    $su - root 

    2)創(chuàng)建Swap文件 
    # dd if=/dev/zero of=swapfile bs=1024 count=65536 

    創(chuàng)建一個(gè)有連續(xù)空間的交換文件。 

    3)激活Swap文件 
    #/usr/sbin/swapon swapfile 

    swapfile指的是上一步創(chuàng)建的交換文件。 4)現(xiàn)在新加的Swap文件已經(jīng)起作用了,但系統(tǒng)重新啟動以后,并不會記住前幾步的操作。因此要在/etc/fstab文件中記錄文件的名字,和Swap類型,如: 
    /path/swapfile none Swap sw,pri=3 0 0 

    5)檢驗(yàn)Swap文件是否加上 
    /usr/sbin/swapon -s 


    刪除多余的Swap空間。 
    1)成為超級用戶 

    2)使用Swapoff命令收回Swap空間。 
    #/usr/sbin/swapoff swapfile 

    3)編輯/etc/fstab文件,去掉此Swap文件的實(shí)體。 

    4)從文件系統(tǒng)中回收此文件。 
    #rm swapfile 

    5)當(dāng)然,如果此Swap空間不是一個(gè)文件,而是一個(gè)分區(qū),則需創(chuàng)建一個(gè)新的文件系統(tǒng),再掛接到原來的文件系統(tǒng)上。

    posted @ 2007-06-18 14:27 Alex 閱讀(1020) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-06-13 16:43 Alex 閱讀(3759) | 評論 (4)編輯 收藏


    come from here

    如果將需求分析階段的工作歸結(jié)為編寫需求規(guī)格說明書,這種簡化的做法往往是導(dǎo)致項(xiàng)目后期層出不窮問題的罪魁禍?zhǔn)住=ㄗh采用以下步驟形成軟件需求:獲取用戶需求→分析用戶需求→編寫需求文檔→評審需求文檔→管理需求。下面我們先來討論前兩個(gè)步驟(獲取用戶需求、分析用戶需求)的做法。

    獲取用戶需求

      這是該階段的一個(gè)最重要的任務(wù)。以下為獲取用戶需求需要執(zhí)行的活動(如圖1所示)。

      ● 了解客戶方的所有用戶類型以及潛在的類型。然后,根據(jù)他們的要求來確定系統(tǒng)的整體目標(biāo)和系統(tǒng)的工作范圍。

      ● 對用戶進(jìn)行訪談和調(diào)研。交流的方式可以是會議、電話、電子郵件、小組討論、模擬演示等不同形式。需要注意的是,每一次交流一定要有記錄,對于交流的結(jié)果還可以進(jìn)行分類,便于后續(xù)的分析活動。例如,可以將需求細(xì)分為功能需求、非功能需求(如響應(yīng)時(shí)間、平均無故障工作時(shí)間、自動恢復(fù)時(shí)間等)、環(huán)境限制、設(shè)計(jì)約束等類型。

      ● 需求分析人員對收集到的用戶需求做進(jìn)一步的分析和整理。下面是幾條常見的準(zhǔn)則:

      ⑴對于用戶提出的每個(gè)需求都要知道“為什么”,并判斷用戶提出的需求是否有充足的理由;

      

      圖1 獲取用戶需求的活動

      ⑵將那種以“如何實(shí)現(xiàn)”的表述方式轉(zhuǎn)換為“實(shí)現(xiàn)什么”的方式,因?yàn)樾枨蠓治鲭A段關(guān)注的目標(biāo)是“做什么”,而不是“怎么做”;

      ⑶分析由用戶需求衍生出的隱含需求,并識別用戶沒有明確提出來的隱含需求(有可能是實(shí)現(xiàn)用戶需求的前提條件),這一點(diǎn)往往容易忽略掉,經(jīng)常因?yàn)閷﹄[含需求考慮得不夠充分而引起需求變更。

      ● 需求分析人員將調(diào)研的用戶需求以適當(dāng)?shù)姆绞匠式唤o用戶方和開發(fā)方的相關(guān)人員。大家共同確認(rèn)需求分析人員所提交的結(jié)果是否真實(shí)地反映了用戶的意圖。需求分析人員在這個(gè)任務(wù)中需要執(zhí)行下述活動:

      ⑴明確標(biāo)識出那些未確定的需求項(xiàng)(在需求分析初期往往有很多這樣的待定項(xiàng));

      ⑵使需求符合系統(tǒng)的整體目標(biāo);

      ⑶保證需求項(xiàng)之間的一致性,解決需求項(xiàng)之間可能存在的沖突。

    分析用戶需求

      在很多情形下,分析用戶需求是與獲取用戶需求并行的,主要通過建立模型的方式來描述用戶的需求,為客戶、用戶、開發(fā)方等不同參與方提供一個(gè)交流的渠道。這些模型是對需求的抽象,以可視化的方式提供一個(gè)易于溝通的橋梁。用戶需求的分析與獲取用戶需求有著相似的步驟,區(qū)別在于分析用戶需求時(shí)使用模型來描述,以獲取用戶更明確的需求。分析用戶需求需要執(zhí)行下列活動:

      ● 以圖形表示的方式描述系統(tǒng)的整體結(jié)構(gòu),包括系統(tǒng)的邊界與接口;

      ● 通過原型、頁面流或其它方式向用戶提供可視化的界面,用戶可以對需求做出自己的評價(jià);

      ● 系統(tǒng)可行性分析,需求實(shí)現(xiàn)的技術(shù)可行性、環(huán)境分析、費(fèi)用分析、時(shí)間分析等;

      ● 以模型描述系統(tǒng)的功能項(xiàng)、數(shù)據(jù)實(shí)體、外部實(shí)體、實(shí)體之間的關(guān)系、實(shí)體之間的狀態(tài)轉(zhuǎn)換等方面的內(nèi)容。

      

      圖2 DFD示意圖

      用于需求建模的方法有很多種,最常用的包括數(shù)據(jù)流圖(DFD)、實(shí)體關(guān)系圖(ERD)和用例圖(Use Case)三種方式。DFD作為結(jié)構(gòu)化系統(tǒng)分析與設(shè)計(jì)的主要方法,已經(jīng)得到了廣泛的應(yīng)用,DFD尤其適用于MIS系統(tǒng)的表述。DFD使用四種基本元素來描述系統(tǒng)的行為,過程、實(shí)體、數(shù)據(jù)流和數(shù)據(jù)存儲。DFD方法直觀易懂,使用者可以方便地得到系統(tǒng)的邏輯模型和物理模型,但是從DFD圖中無法判斷活動的時(shí)序關(guān)系。圖2描述的是某個(gè)項(xiàng)目的DFD示意圖。

      ERD方法用于描述系統(tǒng)實(shí)體間的對應(yīng)關(guān)系,需求分析階段使用ERD描述系統(tǒng)中實(shí)體的邏輯關(guān)系,在設(shè)計(jì)階段則使用ERD描述物理表之間的關(guān)系。需求分析階段使用ERD來描述現(xiàn)實(shí)世界中的對象。ERD只關(guān)注系統(tǒng)中數(shù)據(jù)間的關(guān)系,而缺乏對系統(tǒng)功能的描述。如果將ERD與DFD兩種方法相結(jié)合,則可以更準(zhǔn)確地描述系統(tǒng)的需求。

      在面向?qū)ο蠓治龅姆椒ㄖ型ǔJ褂肬se Case來獲取軟件的需求。Use Case通過描述“系統(tǒng)”和“活動者”之間的交互來描述系統(tǒng)的行為。通過分解系統(tǒng)目標(biāo),Use Case描述活動者為了實(shí)現(xiàn)這些目標(biāo)而執(zhí)行的所有步驟。Use Case方法最主要的優(yōu)點(diǎn),在于它是用戶導(dǎo)向的,用戶可以根據(jù)自己所對應(yīng)的Use Case來不斷細(xì)化自己的需求。此外,使用Use Case還可以方便地得到系統(tǒng)功能的測試用例。

    編寫需求文檔

      需求文檔可以使用自然語言或形式化語言來描述,還可以添加圖形的表述方式和模型表征的方式。需求文檔應(yīng)該包括用戶的所有需求(功能性需求和非功能性需求)。

    評審需求文檔

      需求文檔完成后,需要經(jīng)過正式評審,以便作為下一階段工作的基礎(chǔ)。一般的評審分為用戶評審和同行評審兩類。用戶和開發(fā)方對于軟件項(xiàng)目內(nèi)容的描述,是以需求規(guī)格說明書作為基礎(chǔ)的;用戶驗(yàn)收的標(biāo)準(zhǔn)則是依據(jù)需求規(guī)格說明書中的內(nèi)容來制訂,所以評審需求文檔時(shí)用戶的意見是第一位的。而同行評審的目的,是在軟件項(xiàng)目初期發(fā)現(xiàn)那些潛在的缺陷或錯(cuò)誤,避免這些錯(cuò)誤和缺陷遺漏到項(xiàng)目的后續(xù)階段。

    管理需求

      

      圖1 需求變更流程

      需求的變更是不可避免的,如何以可控的方式管理軟件的需求,對于項(xiàng)目的順利進(jìn)行有著重要的意義。如果匆匆忙忙地完成用戶調(diào)研與分析,則往往意味著不穩(wěn)定的需求。所以需求管理要保證需求分析各個(gè)活動都得到了充分的執(zhí)行。對于需求變更的管理,則主要使用需求變更流程和需求跟蹤矩陣的管理方式。需求變更流程和需求跟蹤矩陣分別如圖1和圖2所示。

      

      圖2 需求跟蹤矩陣

      常見問題及建議

      Q、客戶與最終用戶的區(qū)別是什么?

      A、可以借助圖3來說明它們之間的區(qū)別。

      

      圖3 需求獲取渠道示意圖

      軟件需求來自系統(tǒng)工程與客戶兩個(gè)方面,其中客戶是主要的需求提供者(系統(tǒng)工程需求也來自于客戶)。客戶需要搜集其最終用戶的需求并考慮自身的需求,然后再提供給開發(fā)方。假如客戶并未去認(rèn)真搜集最終用戶的需求,開發(fā)方便需要做到這一點(diǎn),因?yàn)橄到y(tǒng)最終要滿足最終用戶的需求。

      Q、如何進(jìn)行用戶訪談?

      A、首先,一定要事先確定訪談的目的和提綱。其次,因?yàn)橛脩敉⒉恢缿?yīng)該提供哪些方面的需求,所以需要開發(fā)人員引導(dǎo)。

      Q、用戶訪談內(nèi)容是什么?

      A、首先,請用戶描述他們?nèi)绾瓮瓿勺约寒?dāng)前的工作,并與用戶一起抽象出一個(gè)工作流程或工作模型。然后,在得到用戶的認(rèn)可后,向用戶解釋自己是怎樣來實(shí)現(xiàn)這些功能的,并說明哪些環(huán)節(jié)可以用自動化方式實(shí)現(xiàn)等。

      Q、采用哪一種方式做需求分析最好?

      A、不同的需求分析有不同的特點(diǎn)。還沒有哪一種方法可以完全替代別的方法,否則,現(xiàn)在就不會存在不同的需求建模方式了。一般來說,可以使用DFD+ERD來描述那些功能層次比較清晰的需求;而USE CASE則適于描述功能結(jié)構(gòu)復(fù)雜的需求。做需求分析的目的是為了建立需求的模型,不同的子系統(tǒng)有可能使用不同的建模方法。

      Q、怎樣做原型,原型的目的是什么?

      A、通常使用原型分析方法來幫助開發(fā)方進(jìn)一步獲取用戶需求或讓用戶確認(rèn)需求。開發(fā)方往往先向用戶提供一個(gè)可視界面作為原型,并在界面上布置必要的元素以演示用戶所需要的功能。可以使用第四代語言(例如Visual Basic、Delphi等)來快速生成用戶界面,也可以使用FrontPage等網(wǎng)頁制作工具來生成用戶可視的頁面流。

      原型的目的往往是獲取需求。但有時(shí)也使用原型的方式來驗(yàn)證關(guān)鍵技術(shù)或技術(shù)難點(diǎn)。對于技術(shù)原型,界面則往往被忽略掉。

    posted @ 2007-06-12 17:47 Alex 閱讀(993) | 評論 (0)編輯 收藏

    echo "begin to start oracle"
    lsnrctl start
    sqlplus /nolog 
    <<EOF
    connect /as sysdba
    startup
    exit
    exit
    echo "oracle have started"
    posted @ 2007-06-12 09:13 Alex 閱讀(1162) | 評論 (0)編輯 收藏

    已經(jīng)打印了,晚上看一下,感覺不錯(cuò)。

    download

    posted @ 2007-06-11 18:24 Alex 閱讀(670) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-06-04 00:18 Alex 閱讀(2074) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-06-02 11:50 Alex 閱讀(972) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-05-29 11:32 Alex 閱讀(1491) | 評論 (5)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-05-24 09:52 Alex 閱讀(1215) | 評論 (2)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-05-14 09:05 Alex 閱讀(13383) | 評論 (8)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-05-13 17:15 Alex 閱讀(1928) | 評論 (3)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-05-13 16:41 Alex 閱讀(5678) | 評論 (13)編輯 收藏

    key words: jstl,struts,log4j

    1.jstl
    jstl的配置參考這篇文章:
    http://foolmouse.cnblogs.com/archive/2006/04/20/380695.html

    在iAS904服務(wù)器上的jstl的版本只能用1.0 的
    "standard.jar和jstl.jar文件拷貝到\WEB-INF\lib\
    "

    2.struts
    struts的配置主要是把 相關(guān)jar文件(struts.jar,struts-legacy.jar)拷貝到\WEB-INF\lib
    ,另外,struts需要用到一些apache的commons的包(commons-beanutils.jar,commons-collections-2.1.1.jar,commons-digester.jar)

    3.log4j
    log4j經(jīng)常有莫名其妙的問題,有時(shí)候能出來log有時(shí)候又不能出來log,最后把log4j.xml統(tǒng)一改為log4j.properties,暫時(shí)看好像有效果。

    4。web.xml配置

    <taglib>
            
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
            
    <taglib-location>/WEB-INF/c-1_0.tld</taglib-location>
        
    </taglib>
        
    <taglib>
            
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
            
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
        
    </taglib>
        
    <taglib>
            
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
            
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
        
    </taglib>
        
    <taglib>
            
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
            
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
        
    </taglib>


    今天終于先在iAS里部署完了struts,下一步把hibernate放進(jìn)去,上次部署過一次,沒有成功,據(jù)說是和toplink有點(diǎn)沖突。 知道的兄弟分享下oc4j中部署hibernate
    posted @ 2007-05-08 19:11 Alex 閱讀(1344) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-04-11 16:09 Alex 閱讀(7797) | 評論 (8)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-03-30 08:34 Alex 閱讀(811) | 評論 (0)編輯 收藏

    key words: contentType,meta

    come from here


    ?

    在經(jīng)典同時(shí)看到兩個(gè)關(guān)于ContentType的問題

    http://bbs.blueidea.com/thread-2729935-1-1.html

    http://bbs.blueidea.com/thread-2729945-1-1.html

    所以查了下資料,copy了一份詳細(xì)的ContentType的列表

    ?

    不同的ContentType 會影響客戶端所看到的效果.

    默認(rèn)的ContentType為 text/html? 也就是網(wǎng)頁格式.

    代碼如:

    <% response.ContentType ="text/html" %>?
    <!--#i nclude virtual="/ContentType.html" -->

    顯示的為網(wǎng)頁,而

    <% response.ContentType ="text/plain" %>?
    <!--#i nclude virtual="/sscript/

    則會顯示html原代碼.

    以下為一些常用的 ContentType

    GIF images
    <% response.ContentType ="image/gif" %>?
    <!--#i nclude virtual="/myimage.gif" -->
    JPEG images
    <% response.ContentType ="image/jpeg" %>?
    <!--#i nclude virtual="/myimage.jpeg" -->
    TIFF images
    <% response.ContentType ="image/tiff" %>?
    <!--#i nclude virtual="/myimage.tiff" -->
    MICROSOFT WORD document
    <% response.ContentType ="application/msword" %>?
    <!--#i nclude virtual="/myfile.doc" -->
    RTF document
    <% response.ContentType ="application/rtf" %>?
    <!--#i nclude virtual="/myfile.rtf" -->
    MICROSOFT EXCEL document
    <% response.ContentType ="application/x-excel" %>?
    <!--#i nclude virtual="/myfile.xls" -->
    MICROSOFT POWERPOINT document
    <% response.ContentType ="application/ms-powerpoint" %>?
    <!--#i nclude virtual="/myfile.pff" -->
    PDF document
    <% response.ContentType ="application/pdf" %>?
    <!--#i nclude virtual="/myfile.pdf" -->
    ZIP document
    <% response.ContentType ="application/zip" %>?
    <!--#i nclude virtual="/myfile.zip" -->

    ?

    下面是更詳細(xì)的ContentType

    application/andrew-insetez
    application/mac-binhex40hqx
    application/mac-compactprocpt
    application/mathml+xmlmathml
    application/msworddoc
    application/octet-streambin dms lha lzh exe class so dll
    application/odaoda
    application/oggogg
    application/pdfpdf
    application/postscriptai eps ps
    application/rdf+xmlrdf
    application/smilsmi smil
    application/srgsgram
    application/srgs+xmlgrxml
    application/vnd.mifmif
    application/vnd.mozilla.xul+xmlxul
    application/vnd.ms-excelxls
    application/vnd.ms-powerpointppt
    application/vnd.wap.wbxmlwbxml
    application/vnd.wap.wmlc.wmlc wmlc
    application/vnd.wap.wmlscriptc.wmlsc wmlsc
    application/voicexml+xmlvxml
    application/x-bcpiobcpio
    application/x-cdlinkvcd
    application/x-chess-pgnpgn
    application/x-cpiocpio
    application/x-cshcsh
    application/x-directordcr dir dxr
    application/x-dvidvi
    application/x-futuresplashspl
    application/x-gtargtar
    application/x-hdfhdf
    application/x-httpd-php.php .php4 .php3 .phtml
    application/x-httpd-php-source.phps
    application/x-javascriptjs
    application/x-koanskp skd skt skm
    application/x-latexlatex
    application/x-netcdfnc cdf
    application/x-pkcs7-crl.crl
    application/x-shsh
    application/x-sharshar
    application/x-shockwave-flashswf
    application/x-stuffitsit
    application/x-sv4cpiosv4cpio
    application/x-sv4crcsv4crc
    application/x-tar.tgz tar
    application/x-tcltcl
    application/x-textex
    application/x-texinfotexinfo texi
    application/x-trofft tr roff
    application/x-troff-manman
    application/x-troff-meme
    application/x-troff-msms
    application/x-ustarustar
    application/x-wais-sourcesrc
    application/x-x509-ca-cert.crt
    application/xhtml+xmlxhtml xht
    application/xmlxml xsl
    application/xml-dtddtd
    application/xslt+xmlxslt
    application/zipzip
    audio/basicau snd
    audio/midimid midi kar
    audio/mpegmpga mp2 mp3
    audio/x-aiffaif aiff aifc
    audio/x-mpegurlm3u
    audio/x-pn-realaudioram rm
    audio/x-pn-realaudio-pluginrpm
    audio/x-realaudiora
    audio/x-wavwav
    chemical/x-pdbpdb
    chemical/x-xyzxyz
    image/bmpbmp
    image/cgmcgm
    image/gifgif
    image/iefief
    image/jpegjpeg jpg jpe
    image/pngpng
    image/svg+xmlsvg
    image/tifftiff tif
    image/vnd.djvudjvu djv
    image/vnd.wap.wbmp.wbmp wbmp
    image/x-cmu-rasterras
    image/x-iconico
    image/x-portable-anymappnm
    image/x-portable-bitmappbm
    image/x-portable-graymappgm
    image/x-portable-pixmapppm
    image/x-rgbrgb
    image/x-xbitmapxbm
    image/x-xpixmapxpm
    image/x-xwindowdumpxwd
    model/igesigs iges
    model/meshmsh mesh silo
    model/vrmlwrl vrml
    text/calendarics ifb
    text/csscss
    text/html.shtml html htm
    text/plainasc txt
    text/richtextrtx
    text/rtfrtf
    text/sgmlsgml sgm
    text/tab-separated-valuestsv
    text/vnd.wap.wml.wml wml
    text/vnd.wap.wmlscript.wmls wmls
    text/x-setextetx
    video/mpegmpeg mpg mpe
    video/quicktimeqt mov
    video/vnd.mpegurlmxu
    video/x-msvideoavi
    video/x-sgi-moviemovie
    x-conference/x-cooltalkice

         摘要:   閱讀全文
    posted @ 2007-03-28 16:55 Alex 閱讀(4578) | 評論 (0)編輯 收藏

         摘要:   閱讀全文
    posted @ 2007-03-26 22:18 Alex 閱讀(36116) | 評論 (7)編輯 收藏

    主站蜘蛛池模板: 免费大黄网站在线观| 亚洲av无码成人精品区一本二本| 亚洲国产精品热久久| 久久国产精品亚洲一区二区| 亚洲国产成人久久综合碰碰动漫3d | 国产精品无码免费专区午夜| 成人免费av一区二区三区| 在线视频网址免费播放| 国产一级婬片A视频免费观看| 国产一级片免费看| 亚洲w码欧洲s码免费| 免费毛片网站在线观看| 中文字幕亚洲激情| 亚洲视频一区二区在线观看| 日韩亚洲国产综合高清| 一道本在线免费视频| 高清一区二区三区免费视频| 手机看黄av免费网址| 亚洲成人高清在线| 亚洲熟妇无码爱v在线观看| 久久亚洲AV成人无码国产电影| 91精品成人免费国产| 野花高清在线观看免费完整版中文| 日日操夜夜操免费视频 | 麻豆一区二区免费播放网站| 亚洲精品无码日韩国产不卡?V| 亚洲午夜免费视频| 深夜免费在线视频| 24小时免费直播在线观看| 亚洲精品乱码久久久久久按摩| 亚洲国产超清无码专区| 国产精品黄页免费高清在线观看| 24小时免费看片| 亚洲综合另类小说色区| 男男gvh肉在线观看免费| 真人做A免费观看| 亚洲一区二区三区首页| 中文字幕成人免费高清在线| 国产免费牲交视频| 99亚偷拍自图区亚洲| 99久久精品免费精品国产|