這兩天開始研究一個韓國人寫的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) |
編輯 收藏
摘要: http://www.theserverside.com/tt/articles/article.tss?l=IntrotoSpring25
October 2007 ...
閱讀全文
posted @
2007-10-31 09:23 George Gong 閱讀(1216) |
評論 (0) |
編輯 收藏