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

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

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

    賢仁居 George Gong
    It's never too late to learn
    posts - 32,comments - 16,trackbacks - 0
    http://blog.csdn.net/function413/article/details/8485822

    一、下載所需類包 (可在http://download.csdn.net/detail/function413/4977751中下載tomcat log4j.rar 里面包含以下JAR包)

    1、下載log4j下載1.2以后的版本

    下載地址:http://logging.apache.org/log4j/1.2/download.html

    2、下載tomcat-juli.jartomcat-juli-adapters.jar

    使用LOG4J來接管tomcat6.0.18的日志文件必須要下載兩個文件:tomcat-juli.jartomcat-juli-adapters.jar

    下載地址為:http://www.apache.org/dist/tomcat/tomcat-6/v6.0.18/bin/extras/ (如果tomcat為其他版本,請下載對應版本的類包)

    二、修改相關配置文件

    1、修改${catalina.home}/conf/context.xml

    修改:<Context >為<Context swallowOutput="true" >只有這樣才能完全的把tomcat的stdout給接管過來。這一步很關鍵 在官網及網上找了許多資料都沒有提及。

    2、復制log4j.jar${catalina.home}/lib

    3、復制tomcat-juli-adapters.jar${catalina.home}/lib

    4、復制tomcat-juli.jar${catalina.home}/bin下,在該目錄會存在該文件,覆蓋 即可

    5、建立log4j.properties,并把其放到${catalina.home}/lib

    posted @ 2013-11-21 14:43 George Gong 閱讀(2037) | 評論 (0)編輯 收藏

    在維護服務器時常常需要用到linux Shell命令,將常用的寫在這里備查:

    telnet 10.10.50.122 7070

    nslookup 查看域名解析

    netstat -anp 顯示系統端口使用情況 a表示全部socket n不解析名稱 p顯示PID

    lsof -i :端口 顯示占用該端口的進程情況

    last

    history

    scp root@10.10.10.11:/home/asd/we.zip /home/we/ scp文件傳輸

    w 當前登錄用戶

    ps -ef|grep java 不解釋!

    查看機器吞吐量(throughput)

    sudo ifconfig eth0

    iftop 監視網卡即時吞吐量

    iptraf 監視網卡即時吞吐量

    iostat 磁盤吞吐量查看

    iostat 結果解釋
    * rrqm/s:   每秒進行 merge 的讀操作數目。即 delta(rmerge)/s
    * wrqm/s:   每秒進行 merge 的寫操作數目。即 delta(wmerge)/s
    * r/s:       每秒完成的讀 I/O 設備次數。即 delta(rio)/s
    * w/s:       每秒完成的寫 I/O 設備次數。即 delta(wio)/s
    * rsec/s:    每秒讀扇區數。即 delta(rsect)/s
    * wsec/s:   每秒寫扇區數。即 delta(wsect)/s
    * rkB/s:     每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。(需要計算)
    * wkB/s:     每秒寫K字節數。是 wsect/s 的一半。(需要計算)
    * avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區)。delta(rsect+wsect)/delta(rio+wio)
    * avgqu-sz: 平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。
    * await:     平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
    * svctm:    平均每次設備I/O操作的服務時間 (毫秒)。即 delta(use)/delta(rio+wio)
    * %util:    一秒中有百分之多少的時間用于 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因為use的單位為毫秒)
    

    df -m 硬盤使用情況

    free -m 內存使用情況

    top 查看CPU使用情況

    關于 load   average
    一般來說只要每個CPU的當前活動進程數不大于3那么系統的性能就是良好的,如果每個CPU的任務數大于5,那么就表示這臺機器的性能有嚴重問題。
    對于上面的例子來說,假設系統有兩個CPU,那么其每個CPU的當前任務數為:8.13/2=4.065。這表示該系統的性能是可以接受的。

    查看機器硬件信息

    測試機器的硬件信息:
    查看CPU信息(型號)
    # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
    8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz
    (看到有8個邏輯CPU, 也知道了CPU型號)
    # cat /proc/cpuinfo | grep physical | uniq -c
    4 physical id      : 0
    4 physical id      : 1
    (說明實際上是兩顆4核的CPU)
    # getconf LONG_BIT
    32
    (說明當前CPU運行在32bit模式下, 但不代表CPU不支持64bit)
    # cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
    8
    (結果大于0, 說明支持64bit計算. lm指long mode, 支持lm則是64bit)
    再完整看cpu詳細信息, 不過大部分我們都不關心而已.
    # dmidecode | grep 'Processor Information'
    查看內 存信息
    # cat /proc/meminfo
    # uname -a
    Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
    (查看當前操作系統內核信息)
    # cat /etc/issue | grep Linux
    Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
    (查看當前操作系統發行版信息)
    查看機器型號
    # dmidecode | grep "Product Name"
    查看網卡信息
    # dmesg | grep -i eth
    

    du -ms /usr/local/jdk 查看文件夾使用的空間大小

    du -sm * | sort -n 當前路徑下各文件夾大小,并排序顯示

    posted @ 2010-10-18 11:40 George Gong 閱讀(469) | 評論 (1)編輯 收藏

    Ubuntu Linux系統環境變量配置文件介紹在Ubuntu中有如下幾個文件可以設置環境變量

    /etc/profile:在登錄時,操作系統定制用戶環境時使用的第一個文件,此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。

    /etc/environment:在登錄時操作系統使用的第二個文件,系統在讀取你自己的 profile前,設置環境文件的環境變量。

    ~/.profile:在登錄時用到的第三個文件是.profile文件,每個用戶都可使用該文件輸入專用于自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件。

    /etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.

    ~/.bashrc:該文件包含專用于你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取。

    使用source命令刷新環境變量

    posted @ 2010-10-18 11:39 George Gong 閱讀(378) | 評論 (0)編輯 收藏
    原文地址: http://ifelseif.blog.sohu.com/145381162.html

    聽說支持向量機是比神經網絡還牛X的分類器,我就拿來玩了玩,用國立臺灣大學Chih-Chung Chang和Chih-Jen Lin編寫的libsvm函數庫。國內的網站很多帖子都抄來抄去的,犯錯bug都一樣。哎,希望此貼可以正本清源。

        首先下載libSVM的最新版本,他們的主頁在此http://www.csie.ntu.edu.tw/~cjlin/libsvm/index.html源碼手冊都有,真是好人啊!手冊寫的清晰明了通俗易懂,盡管是英文的。想快速上手看具體操作步驟的直接翻到appendix吧。

        在linux下部署libSVM是簡單到不能再簡單了,make一下就完事兒了。什么!你沒有gcc,沒有python,沒有gnuplot?自己apt-get去吧。

        用windows的童鞋,首先你們要安裝python和gnuplot。python的主頁為http://www.python.org/,安裝程序可以在這里下載。gnuplot的主頁為http://www.gnuplot.info/download.html,安裝程序在這里。python是需要安裝的,gnuplot是綠色軟件找個地方解壓就行。如果你網速快的話強烈推薦pythonxy這個東西,python科學計算相關的軟件包基本都包括了,有功夫好好學吧開源的哦。

        需要手工添加環境變量,保證python根目錄,gnuplot的bin目錄,libsvm的windows目錄都在path里面,我的電腦上是c:\python26,C:\Python26\gnuplot\bin,c:\Users\gongwei\program\libsvm-2.9\windows\。然后還要改libSVM\tools目錄下的easy.py和grid.py文件,把gnuplot路徑那一項改成gnuplot_exe = r"C:\Python26\gnuplot\bin\pgnuplot.exe"。gnuplot有三個exe,這里只能用這個因為它可以通過管道輸入數據,另外兩個都不行。都弄完之后,嘗試運行一下吧:

        python easy.py train.1 test.1

        其中train.1和test.1都是作者提供的測試數據。可以在這里下載guide里面的數據,這里還有更多。

        好啦下面就等著彈窗吧,會彈出一個gnuplot的窗口,里面的圖像會隨著網絡的訓練逐步更新。大功告成!

        libSVM的使用很簡單,會用python的可以參考easy.py和grid.py寫自己的script。libSVM使用c++編寫,提供java的源碼,還支持R (also Splus), MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, LabVIEW的調用。想用的話基本都有自己適合的環境。

        最后還是要感謝libSVM的幾位作者們,寫出這么好的軟件。向臺灣同胞致敬!

    posted @ 2010-09-19 22:25 George Gong 閱讀(884) | 評論 (0)編輯 收藏

    數學之美 系列九 -- 如何確定網頁和查詢的相關性



    [我們已經談過了如何自動下載網頁如何建立索引如何衡量網頁的質量(Page Rank)。我們今天談談如何確定一個網頁和某個查詢的相關性。了解了這四個方面,一個有一定編程基礎的讀者應該可以寫一個簡單的搜索引擎了,比如為您所在的學校或院系建立一個小的搜索引擎。]

    我們還是看上回的例子,查找關于“原子能的應用”的網頁。我們第一步是在索引中找到包含這三個詞的網頁(詳見關于布爾運算的系列)。現在任何一個搜索引擎都包含幾十萬甚至是上百萬個多少有點關系的網頁。那么哪個應該排在前面呢?顯然我們應該根據網頁和查詢“原子能的應用”的相關性對這些網頁進行排序。因此,這里的關鍵問題是如何度量網頁和查詢的相關性。

    我們知道,短語“原子能的應用”可以分成三個關鍵詞:原子能、的、應用。根據我們的直覺,我們知道,包含這三個詞多的網頁應該比包含它們少的網頁相關。當然,這個辦法有一個明顯的漏洞,就是長的網頁比短的網頁占便宜,因為長的網頁總的來講包含的關鍵詞要多些。因此我們需要根據網頁的長度,對關鍵詞的次數進行歸一化,也就是用關鍵詞的次數除以網頁的總字數。我們把這個商稱為“關鍵詞的頻率”,或者“單文本詞匯頻率”(Term Frequency),比如,在某個一共有一千詞的網頁中“原子能”、“的”和“應用”分別出現了 2 次、35 次 和 5 次,那么它們的詞頻就分別是 0.002、0.035 和 0.005。 我們將這三個數相加,其和 0.042 就是相應網頁和查詢“原子能的應用”
    相關性的一個簡單的度量。概括地講,如果一個查詢包含關鍵詞 w1,w2,...,wN, 它們在一篇特定網頁中的詞頻分別是: TF1, TF2, ..., TFN。 (TF: term frequency)。 那么,這個查詢和該網頁的相關性就是:
    TF1 + TF2 + ... + TFN。

    讀者可能已經發現了又一個漏洞。在上面的例子中,詞“的”站了總詞頻的 80% 以上,而它對確定網頁的主題幾乎沒有用。我們稱這種詞叫“應刪除詞”(Stopwords),也就是說在度量相關性是不應考慮它們的頻率。在漢語中,應刪除詞還有“是”、“和”、“中”、“地”、“得”等等幾十個。忽略這些應刪除詞后,上述網頁的相似度就變成了0.007,其中“原子能”貢獻了0.002,“應用”貢獻了 0.005。

    細心的讀者可能還會發現另一個小的漏洞。在漢語中,“應用”是個很通用的詞,而“原子能”是個很專業的詞,后者在相關性排名中比前者重要。因此我們需要給漢語中的每一個詞給一個權重,這個權重的設定必須滿足下面兩個條件:

    1. 一個詞預測主題能力越強,權重就越大,反之,權重就越小。我們在網頁中看到“原子能”這個詞,或多或少地能了解網頁的主題。我們看到“應用”一次,對主題基本上還是一無所知。因此,“原子能“的權重就應該比應用大。

    2. 應刪除詞的權重應該是零。

    我們很容易發現,如果一個關鍵詞只在很少的網頁中出現,我們通過它就容易鎖定搜索目標,它的權重也就應該大。反之如果一個詞在大量網頁中出現,我們看到它仍然不很清楚要找什么內容,因此它應該小。概括地講,假定一個關鍵詞 w 在 Dw 個網頁中出現過,那么 Dw 越大,w 的權重越小,反之亦然。在信息檢索中,使用最多的權重是“逆文本頻率指數” (Inverse document frequency 縮寫為IDF),它的公式為log(D/Dw)其中D是全部網頁數。比如,我們假定中文網頁數是D=10億,應刪除詞“的”在所有的網頁中都出現,即Dw=10億,那么它的IDF=log(10億/10億)= log (1) = 0。假如專用詞“原子能”在兩百萬個網頁中出現,即Dw=200萬,則它的權重IDF=log(500) =6.2。又假定通用詞“應用”,出現在五億個網頁中,它的權重IDF = log(2)
    則只有 0.7。也就只說,在網頁中找到一個“原子能”的比配相當于找到九個“應用”的匹配。利用 IDF,上述相關性計算個公式就由詞頻的簡單求和變成了加權求和,即 TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN。在上面的例子中,該網頁和“原子能的應用”的相關性為 0.0161,其中“原子能”貢獻了 0.0126,而“應用”只貢獻了0.0035。這個比例和我們的直覺比較一致了。

    TF/IDF(term frequency/inverse document frequency) 的概念被公認為信息檢索中最重要的發明。在搜索、文獻分類和其他相關領域有廣泛的應用。講起 TF/IDF 的歷史蠻有意思。IDF 的概念最早是劍橋大學的斯巴克-瓊斯[注:她有兩個姓] (Karen Sparck Jones)提出來的。斯巴克-瓊斯 1972 年在一篇題為關鍵詞特殊性的統計解釋和她在文獻檢索中的應用的論文中提出IDF。遺憾的是,她既沒有從理論上解釋為什么權重IDF 應該是對數函數 log(D/Dw)(而不是其它的函數,比如平方根),也沒有在這個題目上作進一步深入研究,以至于在以后的很多文獻中人們提到 TF/IDF 時沒有引用她的論文,絕大多數人甚至不知道斯巴克-瓊斯的貢獻。同年羅賓遜寫了個兩頁紙的解釋,解釋得很不好。倒是后來康乃爾大學的薩爾頓(Salton)多次寫文章、寫書討論 TF/IDF 在信息檢索中的用途,加上薩爾頓本人的大名(信息檢索的世界大獎就是以薩爾頓的名字命名的)。很多人都引用薩爾頓的書,甚至以為這個信息檢索中最重要的概念是他提出的。當然,世界并沒有忘記斯巴克-瓊斯的貢獻,2004年,在紀念文獻學學報創刊 60 周年之際,該學報重印了斯巴克-瓊斯的大作。羅賓遜在同期期刊上寫了篇文章,用香農的信息論解釋 IDF,這回的解釋是對的,但文章寫的并不好、非常冗長(足足十八頁),把一個簡單問題搞復雜了。其實,信息論的學者們已經發現并指出,其實 IDF 的概念就是一個特定條件下、關鍵詞的概率分布的交叉熵(Kullback-Leibler Divergence)(詳見上一系列)。這樣,信息檢索相關性的度量,又回到了信息論。

    現在的搜索引擎對 TF/IDF 進行了不少細微的優化,使得相關性的度量更加準確了。當然,對有興趣寫一個搜索引擎的愛好者來講,使用 TF/IDF 就足夠了。 如果我們結合上網頁排名(Page Rank),那么給定一個查詢,有關網頁綜合排名大致由相關性和網頁排名乘積決定。
    posted @ 2010-09-19 19:45 George Gong 閱讀(224) | 評論 (0)編輯 收藏
    Ubuntu 10.04下默認的即時通訊是Empathy,但Empathy的plugin還不多,它可以通過安裝plugin來獲取Pidgin下的plugin。Pidgin下只需要安裝pidgin-sipe就可以登錄Communicator賬號。我查了很多資料,最終Empathy沒有弄好,只弄好了pidgin。
    由于Ubuntu 10.04沒有Pidgin,首先安裝Pidgin,然后通過 sudo apt-get install pidgin-sipe命令安裝,注意這個pidgin-sipe的版本要在1.8.0+,這個是10.04下的默認版本。然后重啟Pidgin后賬號類型會多了一項“Office Communicator”,接著輸入你的賬號就可以了。

    至于Empathy,有人通過pidgin-sipe + telepathy-haze 兩個plugin配置成功了,不過我沒有成功,以后再說吧:)

    posted @ 2010-05-21 10:05 George Gong 閱讀(886) | 評論 (0)編輯 收藏
    http://persevere.javaeye.com/blog/653716

    這幾天安裝了Ubuntu 10.04,確實很不錯。但一不小心把頂端的面板給刪除了,這下麻煩了。雖然可以通過“新建面板”“添加到面板”一一恢復,但一一查找都很麻煩,有沒有一種辦法可以恢復默認的頂端面板。可以通過以下步驟:

    通過ALT+F2呼出應用程序對話框,輸入gnome-terminal打開終端輸入以下命令:
     gconftool --recursive-unset/apps/panel  
       
     rm -rf ~/.gconf/apps/panel  
       
     pkill gnome-panel

    這樣就OK了

    posted @ 2010-05-21 09:45 George Gong 閱讀(691) | 評論 (1)編輯 收藏
    最近開始用eclipse3.5,下載了maven插件m2eclipse,使用后才發現每次project clean的時候這個maven builder都會自動執行,這個很惡心。google了半天也沒找到解決辦法,惡心。
    posted @ 2010-04-30 11:24 George Gong 閱讀(7468) | 評論 (2)編輯 收藏

    系統之前一直用的是maven-artifact-ant-2.0.4-dep.jar,但最近對一些jar包支持不好,運行ant腳本出現以下問題:

    [artifact:dependencies] [WARNING] POM for 'ch.qos.logback:logback-classic:pom:0.9.9' is invalid. It will be ignored for artifact resolution. Reason: The POM expression: ${parent.version} could not be evaluated. Reason: ch.qos.logback:logback-classic:jar:${parent.version} references itself.

    這樣的話這個忽略的jar包就得手動copy了,這樣你還得找這個jar包依賴的其他jar包是不是存在。后來在網上google了一下,發現現在都用maven-ant-tasks-2.1.0.jar,然后對build.xml稍作改動,如下即可:
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="hehe" default="maven-jar" xmlns:artifact="urn:maven-artifact-ant">
        
    <property file="build.properties" />
            
    <target name="maven-jar" description="Use Maven2 to manage jars' dependencies">
            
    <echo message="deleting old jar .. " />
            
    <delete dir="${web.dir}/WEB-INF/lib" />
            
    <copy todir="${web.dir}/WEB-INF/lib">
                
    <fileset id="runtimeFiles" dir="lib/mylib">
                    
    <include name="**/*.jar" />
                
    </fileset>
                
    <mapper type="flatten" />
            
    </copy>
            
    <echo message="Use Maven2 to manage jar." />
            
    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
                
    <classpath>
                    
    <pathelement location="lib/maven-ant-tasks-2.1.0.jar" />
                
    </classpath>
            
    </typedef>

            
    <artifact:pom file="pom.xml" id="my.pom" />

            
    <artifact:dependencies pathId="dependency.classpath" filesetId="dependency.fileset" usescope="runtime">
                
    <pom refid="my.pom" />
            
    </artifact:dependencies>

            
    <copy todir="${web.dir}/WEB-INF/lib">
                
    <fileset refid="dependency.fileset" />
                
    <mapper type="flatten" />
            
    </copy>
        
    </target>
    </project>
    這樣就OK了
     
    posted @ 2010-04-30 00:12 George Gong 閱讀(2205) | 評論 (0)編輯 收藏

    這兩天調試一個asp.net程序,用戶在首頁登錄成功后,系統會在客戶端添加一個Cookie,然后重定向到首頁,首頁檢測到這個Cookie后就屏蔽掉登錄。我在本機調試的時候本能的用localhost,結果每次都不成功,Cookie不起作用。后來在hosts文件中將127.0.0.1 隨便映射成一個域名,一試就好了。到現在也不明白這是為什么,莫非是微軟覺得localhost的程序給自己添加Cookie是多此一舉?

    posted @ 2010-01-22 16:31 George Gong 閱讀(383) | 評論 (0)編輯 收藏

    這兩天開始研究一個韓國人寫的asp.net(C#)程序,好多年沒玩.net了,發現很生疏。首先要把源代碼在本機跑起來,安裝VS2005。然后打開網站把項目到進去后,啟動debug(F5)后出現問題, <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />這一行報錯,google了一下發現必須要安裝.net framework 3.5 sp1 ,如果還不行還要安裝MS Chart.exe,看來這個是圖形報表需要的東西。

    安裝完成后點擊自動調試模式,還是報錯,這次提示web.config里的全局路徑出問題,后來仔細琢磨了一下發現VS默認啟動的Development Server自作聰明的在啟動的URL后面加了一個項目名稱作為子路徑,這個導致了很多問題,項目里定義的相對路徑找不到,導致圖片、JS、CSS等無法顯示。好多人在罵微軟的這個stupid。

    google了一下解決方案,如下:點擊VS上面的“工具”--->“外部工具”,然后添加一個Development Server,自己定義名稱、端口號、虛擬路徑、物理路徑等。我的位置如下:
    標題:Web Server Port:8080
    命令:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE
    參數:/port:8080 /path:D:\vs_workspace\ibt 這里沒有定義虛擬路徑,即為/
    然后勾選“使用輸出窗口”,這樣就有打印信息了。

    完成后你會發現“工具”里多了一個你定義的“Web Server Port:8080”,點擊一下就啟動了。

    好多國內的帖子到這里后就完事了,其實不然。因為這樣的話是解決了端口號和虛擬路徑的問題,但我發現這時候不能debug程序了,斷點沒用。
    國外的帖子找到了解決辦法,原來還差一步,就是替換VS給項目設置的默認Development Server。在“解決方案資源管理區(solution explore)”里點擊項目工程(project),右鍵點擊并選擇“屬性頁”,選擇左邊的“啟動選項”,在“服務器”里選擇“使用自定義服務器”,在基URL里填寫“http://localhost:8080/”,這樣就OK了。但跟默認有區別的是,這次VS不管自動啟動Development Server,需要手動啟動,然后才能點擊“啟動調試(F5)”按鈕

    posted @ 2010-01-22 10:37 George Gong 閱讀(1095) | 評論 (0)編輯 收藏

    由于項目中的小文件太多,都是幾K的小文件,有100多G,所以必須要提升靜態文件的訪問速度。一開始用Nginx 與 Tomcat做集群,Nginx負責靜態資源的響應。Nginx在Linux下跑的很爽,到Windows下就不太好了。Nginx前段時間推出了Windows版,拿來一試,感覺不太穩定。在一個刀片機下作測試很好,但弄到正式環境下就不行了,ext tree顯示不出來,而且要等很久,最后頁面提示:ext無法顯示。最后跟同事商量,覺得還是apache+tomcat在windows下比較穩定,轉手弄apache+tomcat。

    apache官方沒有提供win64版本,就找了一個外國哥們在Vistual Studio 2005 下自己編譯的win64 apache,在測試機上安裝很輕松,然后布了2個tomcat,又在apache的mem cache中設置了3G的內存做緩存,測試一切OK。接著弄正式服務器,第一臺正式服務器很順利,幾分鐘就搞定了。第二臺服務器就出了問題,apache無法啟動,提示:“由于應用程序配置不正確 應用程序未能啟動。重新安裝應用程序可能會糾正這個問題”。然后查看這兩臺服務器有何差異,最后發現第一臺上有.net framework 2,3,3.5,第二臺上一個.net framework 都沒有。接著裝.net framework 2.0 service,還是不行。有文章說要安裝 vc redistribute 包,到微軟官方下載安裝,還是不行,郁悶。最后沒辦法,又下載安裝.ner framework 3.0,還是不行,靠!這時候我都不報希望了,又下載安裝.net framework 3.5,然后發現apache 可以了!最后一分鐘搞定第二臺服務器的apache+tomcat。

    我的apache+tomcat用的是ajp proxy通信方式,設置session sticky。

    好了,接下來觀察幾天看看效果如何

    posted @ 2010-01-15 11:28 George Gong 閱讀(2438) | 評論 (2)編輯 收藏

    SkillSoft的Business Skills課程的Objectives數據封裝方式與PagePlayer.properties的LMS_AICC_VERSION,LMS_AICC_V2_POST這兩項屬性值有關。
    LMS_AICC_VERSION值為2.2 or 3.5,默認是3.5。當LMS_AICC_VERSION=3.5時,Objectives的Score的值以分號割開,如下:

    [Objectives_status]
    j_id.
    1=LEADA201001005000X020001
    j_status.
    1=c
    j_id.
    17=LEADA201001003000X820001
    j_score.
    17=33;33;-84
    j_id.
    2=LEADA201001002000X020001
    j_status.
    2=c
    j_id.
    16=LEADA201001005000X820001
    j_score.
    16=20;20;-21
    而LMS_AICC_VERSION=2.2時,數據以逗號隔開,如下:
    [Objectives_status]
    j_id.
    1=LEADA201001005000X020001
    j_status.
    1=c
    j_id.
    17=LEADA201001003000X820001
    j_score.
    17=33,33,-84
    j_id.
    2=LEADA201001002000X020001
    j_status.
    2=c
    j_id.
    16=LEADA201001005000X820001
    j_score.
    16=20,20,-21

    LMS_AICC_V2_POST的值為ture or false,默認為false。當LMS_AICC_V2_POST=false時,每次課程向LMS提交的數據都是最新的數據,如果學員進行了一次測試,課程的putparam提交的數據如下:
    [CORE]
    Lesson_Status
    =Incomplete
    Lesson_Location
    =LEADA201001MXX999X810001
    score
    =12
    time
    =00:04:18
    [Core_Lesson]
    20
    [Core_Vendor]
    20 May 2009 07:38:48 GMT,\u9AD8 \u7EA7 \u9886 \u5BFC \u539F \u5219
    [Objectives_status]
    j_id.
    1=LEADA201001005000X020001
    j_status.
    1=c
    j_id.
    17=LEADA201001003000X820001
    j_score.17=55

    j_id.
    2=LEADA201001002000X020001
    j_status.
    2=c
    j_id.
    16=LEADA201001005000X820001
    j_score.16=44

    當LMS_AICC_V2_POST=true時,課程向LMS提交的是完整數據,如下:
    [CORE]
    Lesson_Status
    =Incomplete
    Lesson_Location
    =LEADA201001MXX999X810001
    score
    =12
    time
    =00:04:18
    [Core_Lesson]
    20
    [Core_Vendor]
    20 May 2009 07:38:48 GMT,\u9AD8 \u7EA7 \u9886 \u5BFC \u539F \u5219
    [Objectives_status]
    j_id.
    1=LEADA201001005000X020001
    j_status.
    1=c
    j_id.
    17=LEADA201001003000X820001
    j_score.
    17=55,33,33,-84
    j_id.
    2=LEADA201001002000X020001
    j_status.
    2=c
    j_id.
    16=LEADA201001005000X820001
    j_score.
    16=44,20,20,-21
    也就是課程保留了之前LMS返回給它的數據,然后把最新的Score分數添加到原來值的前面,至于這些值是用逗號隔開還是分號隔開取決于前門的LMS_AICC_VERSION值,值為3.5時分號隔開,2.2時逗號隔開。

    因為系統要用這些值統計學院的每次測試成績,所以會注意到這些值的封裝方式。如果不需要使用這些值的話,就不用管了,只接簡單的存取就是了
    posted @ 2009-05-20 16:36 George Gong 閱讀(297) | 評論 (0)編輯 收藏
         摘要:   PagePlayer.Properties General SCP Properties PagePlayerProperties.version=7.0.1 ...  閱讀全文
    posted @ 2009-05-20 16:08 George Gong 閱讀(595) | 評論 (0)編輯 收藏

    由于項目中用到,特在此做一筆記:

           1.Tomcat為6.0.14,解壓版。首先說明一點:Tomcat本身是32位的,所以64位操作系統的話要覆蓋兩個文件。
               到http://svn.apache.org/viewvc/tomcat/tc6.0.x/tags/TOMCAT_6_0_14/res/procrun/amd64/  下載tomcat6.exe和tomcat6w.exe兩個文件。

           2.將上面下載的兩個文件覆蓋$TOMCAT_HOME/bin下對應的文件。

           3.命令行到$TOMCAT_HOME/bin下,運行service install命令。

           4.修改服務為自啟動,OK。


          PS:


          這里有點小問題,系統中用的Java為Oracle jrockit,所以安裝后的路徑同SUN的Java有所不同。而$TOMCAT_HOME/bin下的service.bat顯然是為SUN的Java準備的,如下:

    rem Set the server jvm from JAVA_HOME
    set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll
    if exist "%PR_JVM%" goto foundJvm
    rem Set the client jvm from JAVA_HOME
    set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll
    if exist "%PR_JVM%" goto foundJvm
    set PR_JVM=auto
    :foundJvm
    echo Using JVM:              %PR_JVM%

        標紅的是Sun Java的安裝路徑,而Jrockit為%JAVA_HOME%\jre\bin\jrockit\jvm.dll


        還有一點是:有的帖子說覆蓋文件前要先運行tomcat6w.exe記錄下各參數,其實完全沒必要。運行server install命令后參數會自動添入。
    posted @ 2009-03-31 17:32 George Gong 閱讀(3458) | 評論 (2)編輯 收藏

    1、使用system登錄Oracle,利用dbms_xdb修改端口設置

    SQL> -- Change the HTTP/WEBDAV port from 8080 to 8081
    SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get() , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()', 8081));


    Call completed.
    posted @ 2008-11-10 10:03 George Gong 閱讀(509) | 評論 (0)編輯 收藏
    鏈接為:http://www.zw1840.com/oracle/translation/concepts/index.htm

    收藏之
    posted @ 2008-01-30 17:39 George Gong 閱讀(420) | 評論 (0)編輯 收藏

    1.安裝AS4
        
        這個不多說,安裝過程沒什么難度。

    2.安裝Oracle10g

        AS4下安裝Oracle10g的文章一搜一堆,都是那幾個步驟:
        
        1、檢查oracle所需的RPM包是否齊全:

    gcc-3.2.3-34
    gcc-c++-
    3.2.3-34
    glibc-
    2.3.2-95.20
    make-
    3.79.1
    openmotif21-
    2.1.30-8
    setarch-
    1.3-1
    compat-db-
    4.0.14-5
    compat-gcc-
    7.3-2.96.128
    compat-gcc-c++-
    7.3-2.96.128
    compat-libstdc++-
    7.3-2.96.128
    compat-libstdc++-devel-
    7.3-2.96.128

        版本問題不大,大于等于都可以,沒有的在安裝盤或者Down下來裝上。

    2、建立oracle用戶及oinstall,dba用戶組:

    # /usr/sbin/groupadd oinstall /創建組用戶/
    # /usr/sbin/groupadd dba /創建組用戶/
    # /usr/sbin/useradd -g oinstall -G dba oracle /創建用戶,并設定用戶組/
    # passwd oracle /設定oracle用戶的密碼/

    3、修改oracle用戶的.bash_profile文件,將oracle相關的環境變量加進去:

    ORACLE_BASE=/oracle/app
    ORACLE_HOME
    =$ORACLE_BASE/product/10.1.0/db_1
    ORACLE_SID
    =demo1
    PATH
    =$PATH:$HOME/bin:$ORACLE_HOME/bin
    LD_LIBRARY_PATH
    =$ORACLE_HOME/lib:/usr/lib
    export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH


    4、修改系統屬性,在/etc/sysctl.conf文件中加入kernel相關的屬性配置:

    kernel.shmall = 2097152
    kernel.shmmax 
    = 2147483648
    kernel.shmmni 
    = 4096
    kernel.sem 
    = 250 32000 100 128
    fs.file-max 
    = 65536
    net.ipv4.ip_local_port_range 
    = 1024 65000
    net.core.rmem_default 
    = 262144
    net.core.rmem_max 
    = 262144
    net.core.wmem_default 
    = 262144
    net.core.wmem_max 
    = 262144

    這里重要的是kernel.shmmax,這里設置的值為2G,這個值跟oracle的SGA有很大關系,很容易出錯。有的文章說這個值應該設置成內存的一半。另一個是kernel.shmall,有文章說這個值應該是kernel.shmmax除以系統的PAGE_SIDE得到的商。

    5、根據步驟3里的設置創建相關目錄。

    6、修改redhat發行標識:
    由于oracle10g具有系統安裝監測,當檢測到的系統不符合安裝配置規定的要求時,安裝不能正常進行,故要更改操作系統的版本標識,這一操作不會影響任何系統問題,可以在安裝結束后恢復為正常狀態。
    操作如下:
    備份/etc/redhat-release文件為/etc/redhat-release.bak
    以root權限修改/etc/redhat-release文件
    將文件的內容Red Hat Enterprise Linux AS release 4 (Nahant)
    修改為Red Hat Enterprise Linux AS release 3 (Taroon)
    用于滿足 Disk1/install/oraparam.ini的檢查要求

    7、開始安裝
    這里可能會遇到一些問題,比如X-Windows啟動不起來,這時候需要運行命令:xhost+。如果IP是DHCP的話可能還需要修改local.localdomian的值。
    運行oracle安裝盤里的runInstaller會出現安裝頁面,如果是亂碼的話還要設置系統的字符集。
    需要運行orainstRoot.sh命令。
    接下來oracle要驗證安裝需要的RPM包是否齊全,有的高級版本可能檢驗不出來。
    安裝最后還要執行root.sh命令。

    8、DBCA建庫問題
    這個問題因機器而異,在我的機器上出了問題,害我折騰了兩三天。在建表的時候,最后一步有SGA的設置,默認選的是內存的40%。我的機器的內存是8G,40%是3G多,這樣就出問題了,開始建表操作后2%進度的時候報ORA-27123錯誤,說是sharedmomery問題,一開始弄的我一頭霧水,找不到北。有的文章提到32位的操作系統及Oracle,SGA應該不高于1.7G,這是32位系統的上限。后來我把SGA調到小于1.7G就OK了。后來我試著更改kernel.shmmax的值,當改為4G后再運行DBCA建庫,會報ORA-27101(可能是這個號),out of memory的問題,內存溢出。有文章說到應該改limits.conf設置,去掉限制。但對此我還沒有進行嘗試。

    9、Oracle的自啟動
    在這個問題上我花費了不少時間,一開始在/etc/init.d/目錄下建dbora啟動腳本的時候有問題,系統重啟的時候一會執行一會不執行。后來根據別的文章采用令一種辦法:

    root 登錄,在  /etc/rc.d/init.d 下創建名為dbora,編輯增加以下內容

    =================================================


    #!/bin/bash
    #參考http://staff.in2.hr/denis/oracle/10g1install_fedora3_en.html#n4_4
    # chkconfig: 
    35 95 1
    # description: init script to start/stop oracle database 10g
    , TNS listener, EMS
    #

    # match these values to your environment:
    export ORACLE_BASE
    =/u01/app/oracle
    export ORACLE_HOME
    =$ORACLE_BASE/10.2.0/db_1
    export ORACLE_SID
    =dssdb
    export PATH
    =/home/oracle/bin:$ORACLE_HOME/bin:$PATH
    export ORACLE_USER
    =oracle

    # see how we are called:
    case $
    1 in
        start)
        su - 
    "$ORACLE_USER"<<EOO
        dbstart
    EOS
        emctl start dbconsole
    EOO
        
    ;;

        stop)
        su - 
    "$ORACLE_USER"<<EOO
        dbshut
    EOS
        emctl stop dbconsole
    EOO
        
    ;;

        *)
        echo 
    "Usage: $0 {start|stop}"
        
    ;;
    esac


    ==========================

    打開終端執行:
    chown oracle.oinstall /etc/rc.d/init.d/dbora
    chmod 
    755 /etc/rc.d/init.d/dbora

    使用chkconfig 設置運行權限
    chkconfig dbora reset

    檢查
    chkconfig --list dbora
    結果如下:
    ora10            
    0:off   1:off   2:off    3:on    4:off    5:on    6:off

    這時你可以試試手動啟動及關閉oracle服務:
    service dbora start
    service dbora stop

    總結:
    現在的服務器配置越來越高,我的這臺機器是dell2950,4核CPU×2,8G內存,64位。因為沒有64位的redhat系統盤,只好操作系統及oracle都裝的32位的,這點很不爽。所以64位的硬件最好還是裝64位的系統及軟件,否則硬件上會有限制,不能充分利用。

    posted @ 2008-01-26 17:38 George Gong 閱讀(1890) | 評論 (1)編輯 收藏

    Oracle Server - Enterprise Edition - Version: 9.2.0.1 to 10.2.0.3
    Linux x86

    Symptoms

    ORA-27102, Out of memory error


    Cause

    For 32 bit system running smp kernel, we cannot have SGA > 1.7 GB directly. This is because of
    limitation of 32 bit systems of not being able to address memory > 4GB directly by a user process.
    If SGA is kept higher than 1.7 GB, it will results in ORA 27102 errors.

    While invoking dbca or creating starter database, by default it takes 40% of memory for SGA.
    Hence the size can accidentally exceed 1.7 GB




    Solution

    The workaround is to create a new database, and specify the size of SGA approximate to be 1.5 to
    1.7 GB.


    References

    Note 260152.1 - Summary About the Large SGA & Address Space on RH Linux

    Errors

    ORA-27102 out of memory

    posted @ 2008-01-26 15:17 George Gong 閱讀(1354) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 亚洲美女激情视频| 日韩精品亚洲专区在线观看| 亚洲日本乱码在线观看| 中文字幕乱码系列免费| 亚洲导航深夜福利| 免费在线观看黄网| 一级毛片免费观看| 亚洲成a人片77777群色| 亚洲不卡无码av中文字幕| 特级精品毛片免费观看| 亚洲av最新在线观看网址| 免费A级毛片无码A| 精品一区二区三区免费毛片爱| 亚洲jizzjizz少妇| 99ri精品国产亚洲| 亚洲国产精品成人一区| 黄页网站在线观看免费高清| 亚洲JLZZJLZZ少妇| 亚洲国产人成网站在线电影动漫| 日韩在线免费看网站| 又大又硬又粗又黄的视频免费看| 亚洲美女aⅴ久久久91| 亚洲人成人网站在线观看| 天堂在线免费观看| 亚洲午夜精品一区二区| 亚洲?v女人的天堂在线观看| 999国内精品永久免费观看| 两性色午夜视频免费播放| 亚洲a无码综合a国产av中文| 久久久无码精品亚洲日韩京东传媒| 国产成人高清亚洲| aⅴ免费在线观看| 四虎影视无码永久免费| 美女视频黄a视频全免费网站色| 亚洲不卡视频在线观看| 亚洲成色www久久网站夜月| 国产一卡二卡≡卡四卡免费乱码| 日韩精品成人无码专区免费| 一级A毛片免费观看久久精品| 亚洲国产激情在线一区| 亚洲码一区二区三区|