2011年10月7日 星期五
如何使用 UPDATE...SELECT 做大量更新?
MS SQL 語法:
update a set a2=b.b2, a3=b.b3, ...
2 from b
3 where a.a1=b.b1
(MS SQL Server)語句:update b set ClientName = a.name from a,b where a.id = b.id
(Oralce)語句:update b set (ClientName) = (SELECT name FROM a WHERE b.id = a.id)
於
凌晨3:11

2011年9月7日 星期三
OS及開發的語系的設定值
問開發人員下列關於語系的設定值:
1. web.config
2. <@page ... codepage=??? >
3.
管理人員看問題電腦:
1. 控制台 地區及語言選項 進階 非 Unicode 程式的語言
2. IE 選單 工具 網際網路選項 語言 語言的設定順序
3. IE 選單 檢視 編碼 自動選取
開發人員有正確的設定編碼的話,不管問題電腦的 1, 2, 3 如何設定都會正常解碼。開發人員沒有正確設定編碼時,IE 會依據問題電腦 1, 2, 3 的設定值自動解碼,所以才說問題要丟給開發人員,開發人員有處理掉的話,後面亂設也不會有影響,因為網頁是給全球看的,後面不能說叫做亂設,而是不同國家的人本來設定就不同,不同國家的網友來看的時候,都是以開發人員設定的編碼為優先。
From TechNet
於
凌晨3:01

2011年8月18日 星期四
Oracle Spatial 建置
Mapinfo Easyloader 轉入Oracle spatial
刪除table spatial index
INSERT INTO USER_SDO_GEOM_METADATA
VALUES (
'TOWN_97_OK',
'GEOLOC',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X', -7998349.27594, 8498349.27594, .000000003),
MDSYS.SDO_DIM_ELEMENT('Y', -10001001.0314, 10001001.0314, 4.5000E-09)
),
NULL --SRID
);
DROP INDEX COUN_POLY_97_OK_IDX;
CREATE INDEX COUN_POLY_97_OK_IDX
ON "GISSEC"."TOWN_97_OK"(GEOLOC)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
刪除table spatial index
INSERT INTO USER_SDO_GEOM_METADATA
VALUES (
'TOWN_97_OK',
'GEOLOC',
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X', -7998349.27594, 8498349.27594, .000000003),
MDSYS.SDO_DIM_ELEMENT('Y', -10001001.0314, 10001001.0314, 4.5000E-09)
),
NULL --SRID
);
DROP INDEX COUN_POLY_97_OK_IDX;
CREATE INDEX COUN_POLY_97_OK_IDX
ON "GISSEC"."TOWN_97_OK"(GEOLOC)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
於
晚上10:46

2011年8月2日 星期二
MapGuide Enterprise 2011 授权错误的解决办法
MapGuide Enterprise 2011 授权错误的解决办法
如果你以前使用的MapGuide Enterprise 2011试用版,在转为正式授权版后可能出现授权错误。比如在授权错误日志中频繁出现[The license has already been checked out] 错误,下面的解决办法也许适合你。
解决方案内容来自http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=15367639&linkID=9242178
错误现象:
在C:\Program Files\Autodesk\MapGuideEnterprise2011\Server\Logs\LicenseError.log 里面频繁出现下面的日志内容。
1400 2011/03/21 09:49:56 Reason=Fatal error
1400 2011/03/21 09:49:56 ComputerName=ALBAGEOMAP
1400 2011/03/21 09:49:56 OS=5.2.3790.Szervizcsomag 2
1400 2011/03/21 09:49:56 File=AdlmIntNWFBLicense.cpp,Line=622
1400 2011/03/21 09:49:56 AdlmIntError=18 [The license has already been checked out]
解决方案
1. 在LMTOOLS里确认有可用的License
打开LMTOOLS
到Server Status选显卡,点击Perform Status Enquiry按钮
检查 MapGuide 2011的授权是否有效,你应该能看到类似下面的东东:
"Users of 85552MAPGE_2011_0F: (Total of 1 license issued; Total of 0 licenses in use)"
2. 用记事本或其他文本编辑器打开serverconfig.ini文件,这个文件在\MapGuideEnterprise2011\Server\Bin目录下
编辑LicenseServerPath参数,使其指向你安装LMTOOLS的机器,本地安装情况下缺省是
LicenseServerPath =@127.0.0.1.
编辑SerialNumber参数,使其和你在LMTOOLS中的序列号一致,比如
SerialNumber = 123-12345678
3. 打开文本编辑器,在MapGuideEnterprise2011\Server\目录下创建一个licpath.lic文件,SERVER后面的值必须和你的LicenseServerPath的值一致。比如下面的示例:
SERVER 127.0.0.1 000000000000
USE_SERVER
4. 重新启动MapGuide Server服务。
如果你以前使用的MapGuide Enterprise 2011试用版,在转为正式授权版后可能出现授权错误。比如在授权错误日志中频繁出现[The license has already been checked out] 错误,下面的解决办法也许适合你。
解决方案内容来自http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=15367639&linkID=9242178
错误现象:
在C:\Program Files\Autodesk\MapGuideEnterprise2011\Server\Logs\LicenseError.log 里面频繁出现下面的日志内容。
1400 2011/03/21 09:49:56 Reason=Fatal error
1400 2011/03/21 09:49:56 ComputerName=ALBAGEOMAP
1400 2011/03/21 09:49:56 OS=5.2.3790.Szervizcsomag 2
1400 2011/03/21 09:49:56 File=AdlmIntNWFBLicense.cpp,Line=622
1400 2011/03/21 09:49:56 AdlmIntError=18 [The license has already been checked out]
解决方案
1. 在LMTOOLS里确认有可用的License
打开LMTOOLS
到Server Status选显卡,点击Perform Status Enquiry按钮
检查 MapGuide 2011的授权是否有效,你应该能看到类似下面的东东:
"Users of 85552MAPGE_2011_0F: (Total of 1 license issued; Total of 0 licenses in use)"
2. 用记事本或其他文本编辑器打开serverconfig.ini文件,这个文件在\MapGuideEnterprise2011\Server\Bin目录下
编辑LicenseServerPath参数,使其指向你安装LMTOOLS的机器,本地安装情况下缺省是
LicenseServerPath =@127.0.0.1.
编辑SerialNumber参数,使其和你在LMTOOLS中的序列号一致,比如
SerialNumber = 123-12345678
3. 打开文本编辑器,在MapGuideEnterprise2011\Server\目录下创建一个licpath.lic文件,SERVER后面的值必须和你的LicenseServerPath的值一致。比如下面的示例:
SERVER 127.0.0.1 000000000000
USE_SERVER
4. 重新启动MapGuide Server服务。
於
晚上7:35

2011年6月30日 星期四
不同的Random物件給予不同的亂數種子
要讓不同的Random物件產生不同的亂數組,我們必須要做的是給予不同的Random物件不同的亂數種子。以往像這樣的需求我會這摸寫:
1
Random r = new Random(DateTime.Now.Millisecond);
但在回應網友問題時才發現,使用這種寫法並無法有效的解決亂數重複問題。
後來再度嚐試MSDN的方法
1
Random Counter = new Random(unchecked((int)(DateTime.Now.Ticks >> ctr)));
在極短的時間內一樣是無法有效的取得不同的亂數種子。最後想到用GUID的HashCode來當亂數種子帶入才能有效解決這問題。
1
Random Counter = new Random(Guid.NewGuid().GetHashCode());
之所以能這樣寫是因為亂數種子必須要在極短的時間內帶入不同的值,而GUID剛好能有效的產生不重複的識別值,HashCode又是用來當作雜湊的Key,相同物件才會有相同的HashCode,因此GUID的HashCode剛好就能有效的產生不同的整數值作為亂數種子。Google了一下,這方法在對岸及國外都有在用,所以應該是沒有問題。
引用:http://www.dotblogs.com.tw/larrynung/archive/2010/01/04/12801.aspx
1
Random r = new Random(DateTime.Now.Millisecond);
但在回應網友問題時才發現,使用這種寫法並無法有效的解決亂數重複問題。
後來再度嚐試MSDN的方法
1
Random Counter = new Random(unchecked((int)(DateTime.Now.Ticks >> ctr)));
在極短的時間內一樣是無法有效的取得不同的亂數種子。最後想到用GUID的HashCode來當亂數種子帶入才能有效解決這問題。
1
Random Counter = new Random(Guid.NewGuid().GetHashCode());
之所以能這樣寫是因為亂數種子必須要在極短的時間內帶入不同的值,而GUID剛好能有效的產生不重複的識別值,HashCode又是用來當作雜湊的Key,相同物件才會有相同的HashCode,因此GUID的HashCode剛好就能有效的產生不同的整數值作為亂數種子。Google了一下,這方法在對岸及國外都有在用,所以應該是沒有問題。
引用:http://www.dotblogs.com.tw/larrynung/archive/2010/01/04/12801.aspx
於
凌晨1:56

2011年5月10日 星期二
Mapguide2011 License 驗證注意事項。
1) Go to serverconfig.ini in \MapGuideEnterprise2011\Server\Bin and open in a text editor.
Edit the LicenseServerPath variable to point to your LMTOOLS install. The default for a local install is: LicenseServerPath =@127.0.0.1.
Edit the SerialNumber variable to indicate the serial number in use by LMTOOLS, such as: SerialNumber = 123-12345678
2) Open a text editor and create a licpath.lic file in \MapGuideEnterprise2011\Server. The value after SERVER must match your LicenseServerPath entry. See the example below.
SERVER 127.0.0.1 000000000000
USE_SERVER
3) Restart the MapGuide service (Look under Windows Services)
4) 確認C:\Program Files\Autodesk\MapGuideEnterprise2011\Server路徑下是否存在LICPATH.LIC
若缺此檔案,請建立文字檔並命名為LICPATH.LIC,其內容為:
------------------------------------------------
SERVER 127.0.0.1 000000000000
USE_SERVER
5) Start Map Guide Studio
Edit the LicenseServerPath variable to point to your LMTOOLS install. The default for a local install is: LicenseServerPath =@127.0.0.1.
Edit the SerialNumber variable to indicate the serial number in use by LMTOOLS, such as: SerialNumber = 123-12345678
2) Open a text editor and create a licpath.lic file in \MapGuideEnterprise2011\Server. The value after SERVER must match your LicenseServerPath entry. See the example below.
SERVER 127.0.0.1 000000000000
USE_SERVER
3) Restart the MapGuide service (Look under Windows Services)
4) 確認C:\Program Files\Autodesk\MapGuideEnterprise2011\Server路徑下是否存在LICPATH.LIC
若缺此檔案,請建立文字檔並命名為LICPATH.LIC,其內容為:
------------------------------------------------
SERVER 127.0.0.1 000000000000
USE_SERVER
5) Start Map Guide Studio
於
凌晨2:55

2011年4月27日 星期三
MgFeatureProperty
MgFeatureProperty is for object properties (ie. You have a feature class that has another nested class definition)
As for the process of adding points. It basically is
1. Create your feature source
1.1 Create a feature class definition for the feature source
1.2 Add any properties to the feature class
1.3 Set the geometry type of the feature class to points
1.4 Save this to a session resource.
1.5 Set the spatial context equal to the SRS of the current MgMap, otherwise the points you insert may not be where you think they are.
2. Create a layer definition that references the created feature source
2.1 Create or load the xml content for this layer definition
2.2 Save this to a session resource.
3. Create an MgInsertFeatures command
3.1 Set the first parameter className = name of your created feature class
3.2 Create a property collection
3.2.1 Fill the property collection with the values you want to insert. Each value corresponds to a property in your feature class.
3.2.2 For the point feature, insert a MgGeometryProperty object. As a MgGeometryProperty requires a MgByteReader for the geometry value, use a MgGeometryFactory to create your MgGeometry object and convert it to a MgByteReader with a MgAgfReaderWriter instance.
3.3 Add this MgInsertFeatures command to your MgFeatureCommandCollection
3.4 Finally, pass this MgFeatureCommandCollection to the UpdateFeatures() method of your MgFeatureService. Also give it the resource id of the feature source you created.
3.5 You may need to close any open MgFeatureReaders in the result of UpdateFeatures(), this is what the code you posted is trying to do.
4. Finally refresh the map on the client side (manual or programmatically) and the point should be there.
That's a high level overview of it all. There may be a few bits that are slightly incorrect, but that is the general process flow.
As for the process of adding points. It basically is
1. Create your feature source
1.1 Create a feature class definition for the feature source
1.2 Add any properties to the feature class
1.3 Set the geometry type of the feature class to points
1.4 Save this to a session resource.
1.5 Set the spatial context equal to the SRS of the current MgMap, otherwise the points you insert may not be where you think they are.
2. Create a layer definition that references the created feature source
2.1 Create or load the xml content for this layer definition
2.2 Save this to a session resource.
3. Create an MgInsertFeatures command
3.1 Set the first parameter className = name of your created feature class
3.2 Create a property collection
3.2.1 Fill the property collection with the values you want to insert. Each value corresponds to a property in your feature class.
3.2.2 For the point feature, insert a MgGeometryProperty object. As a MgGeometryProperty requires a MgByteReader for the geometry value, use a MgGeometryFactory to create your MgGeometry object and convert it to a MgByteReader with a MgAgfReaderWriter instance.
3.3 Add this MgInsertFeatures command to your MgFeatureCommandCollection
3.4 Finally, pass this MgFeatureCommandCollection to the UpdateFeatures() method of your MgFeatureService. Also give it the resource id of the feature source you created.
3.5 You may need to close any open MgFeatureReaders in the result of UpdateFeatures(), this is what the code you posted is trying to do.
4. Finally refresh the map on the client side (manual or programmatically) and the point should be there.
That's a high level overview of it all. There may be a few bits that are slightly incorrect, but that is the general process flow.
於
清晨5:03

2011年4月26日 星期二
Virtual PC LoopBack網卡應用
在上一篇文章中提到 Guest 的網路卡設定可以是對外的(直接使用Host的網卡或使用NAT方式)或是對內的(自建一個私有網路環境),但是如果使用者想自建一個只能與 Host 透過網路溝通且不對外公開的 Guest 環境,那麼不管選擇對外的網路卡或是對內的私有網路都無法達到這樣的需求。這樣的需求通常應用在服務上線前的自我測試環境。
解決這個問題可透過微軟所提供的 Loop Back 網路卡 方式來解決,作業程序如下:
1. 在 Host 作業系統安裝微軟 Loop Back 網卡。
1.1透過 開始-->執行功能執行 hdwwiz.exe 指令開啟新增硬體精靈。
1.2在新增硬體精靈視窗歡迎畫面按 下一步 按鈕。
1.3在精靈協助您安裝其他硬體畫面點選 安裝我從清單中手動選取的硬體(進階選項)(M) 後按 下一步 按鈕。
1.4在一般硬體類型清單中點選 網路介面卡 後按 下一步 按鈕。
1.5在網路介面卡 製造商 清單中點選 Microsoft ,接著在右邊的 網路介面卡 清單中點選 Microsoft Loopback Adapter 後按 下一步 按鈕。
1.6在 要安裝的硬體 畫面按 下一步 按鈕。
1.7在完成新增硬體精靈畫面按 完成 按鈕。此時可查看 Windows 7 控制台-->網路和網際網路-->網路連線的網路連線 會多出一個 區域連線x 無法識別的網路 Microsoft Loopback Adapter 的網路卡圖示。
2.規劃好 Loop Back 網卡使用的虛擬網段(通常使用172, 192,168 等私有網段)及 Host 與 Guest 的虛擬 IP 位址。
3.依規劃設定 Host 作業系統下的 Loop Back 網路卡的 IP 位址及 網路遮罩 (預設匣道器與DNS主機可以不用設)。
4.在 Host 作業系統下將 Guest 的網路卡設定為剛剛所建的 Loopback 網路介面卡,然後在進到 Guest 作業系統中設定該網路卡的 IP 位址(只要設 IP 位址 與 網路遮罩 資料即可)。
解決這個問題可透過微軟所提供的 Loop Back 網路卡 方式來解決,作業程序如下:
1. 在 Host 作業系統安裝微軟 Loop Back 網卡。
1.1透過 開始-->執行功能執行 hdwwiz.exe 指令開啟新增硬體精靈。
1.2在新增硬體精靈視窗歡迎畫面按 下一步 按鈕。
1.3在精靈協助您安裝其他硬體畫面點選 安裝我從清單中手動選取的硬體(進階選項)(M) 後按 下一步 按鈕。
1.4在一般硬體類型清單中點選 網路介面卡 後按 下一步 按鈕。
1.5在網路介面卡 製造商 清單中點選 Microsoft ,接著在右邊的 網路介面卡 清單中點選 Microsoft Loopback Adapter 後按 下一步 按鈕。
1.6在 要安裝的硬體 畫面按 下一步 按鈕。
1.7在完成新增硬體精靈畫面按 完成 按鈕。此時可查看 Windows 7 控制台-->網路和網際網路-->網路連線的網路連線 會多出一個 區域連線x 無法識別的網路 Microsoft Loopback Adapter 的網路卡圖示。
2.規劃好 Loop Back 網卡使用的虛擬網段(通常使用172, 192,168 等私有網段)及 Host 與 Guest 的虛擬 IP 位址。
3.依規劃設定 Host 作業系統下的 Loop Back 網路卡的 IP 位址及 網路遮罩 (預設匣道器與DNS主機可以不用設)。
4.在 Host 作業系統下將 Guest 的網路卡設定為剛剛所建的 Loopback 網路介面卡,然後在進到 Guest 作業系統中設定該網路卡的 IP 位址(只要設 IP 位址 與 網路遮罩 資料即可)。
於
上午8:40

2011年4月12日 星期二
數值資料字串格式化(VB篇)
D 或 d,代表「十進位」。
只有整數類資料型別 (Integral Type) 才支援這個格式。
數值將會被轉換為十進位數 (0-9) 的字串,如果數值為負數,則在前面加上負號。
例如下列範例會使用十進位格式規範格式化:
Dim value As Integer
value = 12345
outputBlock.Text &= value.ToString("D") & vbCrLf
' Displays 12345
outputBlock.Text &= value.ToString("D8") & vbCrLf
' Displays 00012345
value = -12345
outputBlock.Text &= value.ToString("D") & vbCrLf
' Displays -12345
outputBlock.Text &= value.ToString("D8") & vbCrLf
' Displays -0001234
F或f,代表「固定點」。
數字會轉換為 "ddd.ddd..." 型式的字串,其中 "d" 表示數字 (0-9)。
下列範例會使用定點格式規範格式化 Double 和 Int32 值。
Dim integerNumber As Integer
integerNumber = 17843
outputBlock.Text &= String.Format(integerNumber.ToString("F", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 17843.00
integerNumber = -29541
outputBlock.Text &= String.Format(integerNumber.ToString("F3", CultureInfo.InvariantCulture)) & vbCrLf
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
outputBlock.Text &= String.Format(doubleNumber.ToString("F", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 18934.19
outputBlock.Text &= String.Format(doubleNumber.ToString("F0", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 18934
doubleNumber = -1898300.1987
outputBlock.Text &= String.Format(doubleNumber.ToString("F1", CultureInfo.InvariantCulture)) & vbCrLf
' Displays -1898300.2
outputBlock.Text &= doubleNumber.ToString("F3", _
New CultureInfo("es-ES")) & vbCrLf
' Displays -1898300,199
N或n,代表數字。
數字會轉換為 "d,ddd,ddd.ddd…" 格式的字串、'd' 表示數字 (0-9)、',' 表示數字群組之間的千位分隔符號,
而 '.' 則表示小數點符號。
下列範例會使用數字格式規範來格式化各種浮點數值
。
Dim dblValue As Double = -12445.6789
outputBlock.Text &= String.Format(dblValue.ToString("N", CultureInfo.InvariantCulture)) & vbCrLf
' Displays -12,445.68
outputBlock.Text &= dblValue.ToString("N1", _
New CultureInfo("sv-SE")) & vbCrLf
' Displays -12?445,7
Dim intValue As Integer = 123456789
outputBlock.Text &= String.Format(intValue.ToString("N1", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 123,456,789.0
P或p,代表百分比
下列範例會使用百分比格式規範來格式化浮點數值。
Dim number As Double = 0.2468013
outputBlock.Text &= String.Format(number.ToString("P", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 24.68 %
outputBlock.Text &= number.ToString("P", _
New CultureInfo("hr-HR")) & vbCrLf
' Displays 24,68%
outputBlock.Text &= String.Format(number.ToString("P1", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 24.7 %
D 或 d,代表「十進位」。
只有整數類資料型別 (Integral Type) 才支援這個格式。
數值將會被轉換為十進位數 (0-9) 的字串,如果數值為負數,則在前面加上負號。
例如下列範例會使用十進位格式規範格式化:
Dim value As Integer
value = 12345
outputBlock.Text &= value.ToString("D") & vbCrLf
' Displays 12345
outputBlock.Text &= value.ToString("D8") & vbCrLf
' Displays 00012345
value = -12345
outputBlock.Text &= value.ToString("D") & vbCrLf
' Displays -12345
outputBlock.Text &= value.ToString("D8") & vbCrLf
' Displays -0001234
F或f,代表「固定點」。
數字會轉換為 "ddd.ddd..." 型式的字串,其中 "d" 表示數字 (0-9)。
下列範例會使用定點格式規範格式化 Double 和 Int32 值。
Dim integerNumber As Integer
integerNumber = 17843
outputBlock.Text &= String.Format(integerNumber.ToString("F", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 17843.00
integerNumber = -29541
outputBlock.Text &= String.Format(integerNumber.ToString("F3", CultureInfo.InvariantCulture)) & vbCrLf
' Displays -29541.000
Dim doubleNumber As Double
doubleNumber = 18934.1879
outputBlock.Text &= String.Format(doubleNumber.ToString("F", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 18934.19
outputBlock.Text &= String.Format(doubleNumber.ToString("F0", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 18934
doubleNumber = -1898300.1987
outputBlock.Text &= String.Format(doubleNumber.ToString("F1", CultureInfo.InvariantCulture)) & vbCrLf
' Displays -1898300.2
outputBlock.Text &= doubleNumber.ToString("F3", _
New CultureInfo("es-ES")) & vbCrLf
' Displays -1898300,199
N或n,代表數字。
數字會轉換為 "d,ddd,ddd.ddd…" 格式的字串、'd' 表示數字 (0-9)、',' 表示數字群組之間的千位分隔符號,
而 '.' 則表示小數點符號。
下列範例會使用數字格式規範來格式化各種浮點數值
。
Dim dblValue As Double = -12445.6789
outputBlock.Text &= String.Format(dblValue.ToString("N", CultureInfo.InvariantCulture)) & vbCrLf
' Displays -12,445.68
outputBlock.Text &= dblValue.ToString("N1", _
New CultureInfo("sv-SE")) & vbCrLf
' Displays -12?445,7
Dim intValue As Integer = 123456789
outputBlock.Text &= String.Format(intValue.ToString("N1", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 123,456,789.0
P或p,代表百分比
下列範例會使用百分比格式規範來格式化浮點數值。
Dim number As Double = 0.2468013
outputBlock.Text &= String.Format(number.ToString("P", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 24.68 %
outputBlock.Text &= number.ToString("P", _
New CultureInfo("hr-HR")) & vbCrLf
' Displays 24,68%
outputBlock.Text &= String.Format(number.ToString("P1", CultureInfo.InvariantCulture)) & vbCrLf
' Displays 24.7 %
於
凌晨12:06

2011年4月11日 星期一
MaxUserPort 和 TcpTimedWaitDelay
TcpTimedWaitDelay
TcpTimedWaitDelay 值決定了 TCP/IP 必須經過多久,才能釋出已關閉的連線及重複使用它的資源。 這個關閉和釋出的間隔稱為 TIME_WAIT 狀態,或是區段生命期限上限 (2MSL) 狀態的兩倍。 在這段時間內,通往用戶端和伺服器的連線重新開啟的成本,比建立新的連線低。 藉由縮減這個項目的值,TCP/IP 可以更快釋出已關閉的連線,提供更多資源給新的連線。 如果執行中的應用程式需要快速釋出、建立新連線,或多個連線在 TIME_WAIT 狀態中造成通訊量太低,因而需要進行調整的話,請調整這個參數。
預設值是 0xF0,它會將等待時間設為 240 秒(4 分鐘)。
最小的建議值是 0x1E,它會將等待時間設為 30 秒。 請利用這個程序來檢視或自訂您的值。
啟動 regedit 指令,瀏覽至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 登錄次機碼,建立名稱為 TcpTimedWaitDelay 的新 REG_DWORD 值。
將值設為十進位 30,也就是十六進位的 0x0000001e。 這個值會將等待時間設為 30 秒。
關閉登錄編輯器。
停止並重新啟動系統。
MaxUserPort
MaxUserPort 值決定了當應用程式向系統要求可用的使用者埠時,TCP/IP 所能指派的最高埠號。 如果您的系統報告建立 Socket 時,發生錯誤異常狀況,可能是匿名(短期)埠的數量不當所造成,當系統開啟大量的埠來建立 Web 服務、資料庫或其他遠端資源的連線時,尤其如此。
依預設,Windows 會保留埠號 1024 至 5000,供匿名(短期)埠使用
一般作法是將這個值設成 32768。 請利用這個程序來檢視或自訂您的值。
啟動 regedit 指令,瀏覽至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 登錄次機碼,建立名稱為 MaxUserPort 的新 REG_DWORD 值。
將這個值設成至少十進位 32768。
關閉登錄編輯器。
停止並重新啟動系統。
TcpTimedWaitDelay 值決定了 TCP/IP 必須經過多久,才能釋出已關閉的連線及重複使用它的資源。 這個關閉和釋出的間隔稱為 TIME_WAIT 狀態,或是區段生命期限上限 (2MSL) 狀態的兩倍。 在這段時間內,通往用戶端和伺服器的連線重新開啟的成本,比建立新的連線低。 藉由縮減這個項目的值,TCP/IP 可以更快釋出已關閉的連線,提供更多資源給新的連線。 如果執行中的應用程式需要快速釋出、建立新連線,或多個連線在 TIME_WAIT 狀態中造成通訊量太低,因而需要進行調整的話,請調整這個參數。
預設值是 0xF0,它會將等待時間設為 240 秒(4 分鐘)。
最小的建議值是 0x1E,它會將等待時間設為 30 秒。 請利用這個程序來檢視或自訂您的值。
啟動 regedit 指令,瀏覽至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 登錄次機碼,建立名稱為 TcpTimedWaitDelay 的新 REG_DWORD 值。
將值設為十進位 30,也就是十六進位的 0x0000001e。 這個值會將等待時間設為 30 秒。
關閉登錄編輯器。
停止並重新啟動系統。
MaxUserPort
MaxUserPort 值決定了當應用程式向系統要求可用的使用者埠時,TCP/IP 所能指派的最高埠號。 如果您的系統報告建立 Socket 時,發生錯誤異常狀況,可能是匿名(短期)埠的數量不當所造成,當系統開啟大量的埠來建立 Web 服務、資料庫或其他遠端資源的連線時,尤其如此。
依預設,Windows 會保留埠號 1024 至 5000,供匿名(短期)埠使用
一般作法是將這個值設成 32768。 請利用這個程序來檢視或自訂您的值。
啟動 regedit 指令,瀏覽至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 登錄次機碼,建立名稱為 MaxUserPort 的新 REG_DWORD 值。
將這個值設成至少十進位 32768。
關閉登錄編輯器。
停止並重新啟動系統。
於
凌晨12:50

2011年4月8日 星期五
2011年3月24日 星期四
Bt連線相關設定
二、連接數量設定(本項設定影響下載速度、及下載當中的網路使用關係極大):
連接數量設定,是依下載時來源種子、及列隊客戶端(即上傳連接者)實際數量而定。
不能一昧設定到最大值,以免開啟BT時,干擾正常的網路活動。
對照下面的舊圖做說明----(原以英文版下載,為方便說明,加上繁中名辭對照)
a. 整体最大連接數的設定:
如果同時下載多個資源(torrents),建議連接數至多開至1500。
對照上圖,單一檔案下載,「可能達到的」來源就有7318個;如同時下載五個檔案,其「
可能達到的」來源,假設都是千個以上。這時,整体最大連接數,還是建議開1500就足夠。
相反的,資源數極少,下載五個檔,總數只有五十、或一百、或兩百、300,那麼將整体最
大連接數再加 20% 就太夠了。
b. 每個Torrent的下載(使用者,即Peers )連接數:
對照上圖:偵測到的可能來源7318,已連接的可下載來源325(雖然連接到了,但並不代
表325個來源,每個都正在提供我們下載資源。 )
設定:建議最大值設500即可(我的習慣是單一下載,至多設500;多重下載,每個Torrent
的下載數至多設300。)設太少,可能會失去連接「大水管」的機會。
c. 每個Torrent上傳(種子,即Seeds)連接數:
對照上圖:可看到1023正渴望由我們這裏得到資源,其中52個已與我們連接(同樣的,這
52 個飢渴的傢伙,並非個個正由我們傳輸資源給他們。)
設定:取 b 的五分之一夠了。
三、Trackers(伺服器)適度增加(本項設定影響下載速度最大) :
同樣條件,BT下載有人是牛步,有人如飛翔,差別就在「有沒有增加Trackers」。這也是BT
生手最大的的盲點:生手根本不知道什麼叫Trackers,更遑論增加BT Trackers數量。而熟手
認定這是理所當然,根本懶得說明。
更好笑的是:只要生手問到如何增加BT速度,熟手一定會故意誤導大家往奇奇怪怪的地方鑽
、鑽、鑽.......再有志一同,「都」不小心漏提TRAKERS,讓生手永遠無解~
連接數量設定,是依下載時來源種子、及列隊客戶端(即上傳連接者)實際數量而定。
不能一昧設定到最大值,以免開啟BT時,干擾正常的網路活動。
對照下面的舊圖做說明----(原以英文版下載,為方便說明,加上繁中名辭對照)
a. 整体最大連接數的設定:
如果同時下載多個資源(torrents),建議連接數至多開至1500。
對照上圖,單一檔案下載,「可能達到的」來源就有7318個;如同時下載五個檔案,其「
可能達到的」來源,假設都是千個以上。這時,整体最大連接數,還是建議開1500就足夠。
相反的,資源數極少,下載五個檔,總數只有五十、或一百、或兩百、300,那麼將整体最
大連接數再加 20% 就太夠了。
b. 每個Torrent的下載(使用者,即Peers )連接數:
對照上圖:偵測到的可能來源7318,已連接的可下載來源325(雖然連接到了,但並不代
表325個來源,每個都正在提供我們下載資源。 )
設定:建議最大值設500即可(我的習慣是單一下載,至多設500;多重下載,每個Torrent
的下載數至多設300。)設太少,可能會失去連接「大水管」的機會。
c. 每個Torrent上傳(種子,即Seeds)連接數:
對照上圖:可看到1023正渴望由我們這裏得到資源,其中52個已與我們連接(同樣的,這
52 個飢渴的傢伙,並非個個正由我們傳輸資源給他們。)
設定:取 b 的五分之一夠了。
三、Trackers(伺服器)適度增加(本項設定影響下載速度最大) :
同樣條件,BT下載有人是牛步,有人如飛翔,差別就在「有沒有增加Trackers」。這也是BT
生手最大的的盲點:生手根本不知道什麼叫Trackers,更遑論增加BT Trackers數量。而熟手
認定這是理所當然,根本懶得說明。
更好笑的是:只要生手問到如何增加BT速度,熟手一定會故意誤導大家往奇奇怪怪的地方鑽
、鑽、鑽.......再有志一同,「都」不小心漏提TRAKERS,讓生手永遠無解~
於
上午10:38

Oracle 安裝於Win7 X64注意事項
Win7 X64安裝的Oracle Client的版本,建議為Oracle Database 10g Release 2 (10.2.0.4.0)
檔案名稱為10203_vista_w2k8_x86_production_client.iso
由於Windows 7的版號是6.1,換句話說,setup.exe只支援到Vista(6.0),這問題也許可以靠相相容模式來克服。
將ISO檔掛載於虛擬光碟機後,將Setup.exe相容性的部分調整為,調成Windows Vista (SP2),如下圖:
setup.exe就可以順利完成安裝,sqlplus也運作正常。
檔案名稱為10203_vista_w2k8_x86_production_client.iso
由於Windows 7的版號是6.1,換句話說,setup.exe只支援到Vista(6.0),這問題也許可以靠相相容模式來克服。
將ISO檔掛載於虛擬光碟機後,將Setup.exe相容性的部分調整為,調成Windows Vista (SP2),如下圖:
setup.exe就可以順利完成安裝,sqlplus也運作正常。
於
上午8:12

2011年3月23日 星期三
[VPC] 變更 Mac Address
為了方便自己作業,必須更改VPC的Mac Address。
1確定VPC並未啟動OS。
2用Notepad或是Wordpad打開 Virtual Machine Setting File(.VMC)。
3利用搜尋功能(Ctrl + F),尋找"ethernet_card_address"。
4把XXXXXXXXXXX 改為 ;XXXXXXXXXXX改為空值。
5儲存VMC 檔案,再去開啟OS,Mac Address就會改變。
1確定VPC並未啟動OS。
2用Notepad或是Wordpad打開 Virtual Machine Setting File(.VMC)。
3利用搜尋功能(Ctrl + F),尋找"ethernet_card_address"。
4把
5儲存VMC 檔案,再去開啟OS,Mac Address就會改變。
於
上午11:07

2011年3月22日 星期二
找回windows 7的快速啟動
Windows好用的快速啟動功能不見了
接著在上面貼上
%appdata%\Microsoft\Internet Explorer\Quick Launch
然後按選擇資料夾之後快速啟動列就會再次出現了
解除鎖定工具列調整一下位置
最後
取消顯示文字與顯示標題
這樣就跟XP的快速啟動長的一樣了
接著在上面貼上
%appdata%\Microsoft\Internet Explorer\Quick Launch
然後按選擇資料夾之後快速啟動列就會再次出現了
解除鎖定工具列調整一下位置
最後
取消顯示文字與顯示標題
這樣就跟XP的快速啟動長的一樣了
於
晚上11:40

如何製作 USB 開機的 Noname XPE
NoName XPE是由 NoName Information Team 維護的windows 光碟開機系統
用來維護電腦的最佳利器
內含 多種電腦的救命工具
如果能製作成 USB 開機碟,可以說是超方便的
以下就是製作的過程
2GB容量以下的隨身碟請先下載usb2fat16.GHO這個映像檔
usb2fat16.rar
(1002.58 KB) 被下載 2434 次
一.把隨身碟先插入電腦裡...開啟WINDOWS版本的GHOST32(請自行找尋下載)
選擇 "LOCAL"----> "DISK"----> "FROM"---> "IMAGE"
二.來源...選擇你下載好的USB.GHO....假設你存在C槽根目錄底下....(請先把usb2fat16.RAR解壓縮成usb2fat16.GHO)
三.目標...選擇你的USB隨身碟(圖裡面1959那個是我的2GB的USB隨身碟!!!)
四.選 " OK"
五.選 " YES "
六.開始還原(USB2.0的隨身碟大概不到3秒就還原好了)USB1.0的就不要拿來用了...就算你做好...開機會超慢的...
還原好後選擇 " 繼續 "...不要重開機
七.這時候請把你的隨身碟直接拔掉...等個5秒鐘....再插進電腦一次....
檢查隨身碟裡面的檔案....是否有下面圖片裡面的14個檔案...
八.最後再把你下載的光碟版XPE內的OUTTOOL資料夾和RXPE.IM_放入你的隨身碟內即可
2GB容量以上的隨身碟請先下載usb2fat32.GHO這個映像檔
usb2fat32.rar
(930.85 KB) 被下載 3123 次
製作步驟如同2GB容量以下的一到六步驟
七.這時候請把你的隨身碟直接拔掉...等個5秒鐘....再插進電腦一次....
檢查隨身碟裡面的檔案....是否有下面圖片裡面的11個檔案...
用來維護電腦的最佳利器
內含 多種電腦的救命工具
如果能製作成 USB 開機碟,可以說是超方便的
以下就是製作的過程
2GB容量以下的隨身碟請先下載usb2fat16.GHO這個映像檔
usb2fat16.rar
(1002.58 KB) 被下載 2434 次
一.把隨身碟先插入電腦裡...開啟WINDOWS版本的GHOST32(請自行找尋下載)
選擇 "LOCAL"----> "DISK"----> "FROM"---> "IMAGE"
二.來源...選擇你下載好的USB.GHO....假設你存在C槽根目錄底下....(請先把usb2fat16.RAR解壓縮成usb2fat16.GHO)
三.目標...選擇你的USB隨身碟(圖裡面1959那個是我的2GB的USB隨身碟!!!)
四.選 " OK"
五.選 " YES "
六.開始還原(USB2.0的隨身碟大概不到3秒就還原好了)USB1.0的就不要拿來用了...就算你做好...開機會超慢的...
還原好後選擇 " 繼續 "...不要重開機
七.這時候請把你的隨身碟直接拔掉...等個5秒鐘....再插進電腦一次....
檢查隨身碟裡面的檔案....是否有下面圖片裡面的14個檔案...
八.最後再把你下載的光碟版XPE內的OUTTOOL資料夾和RXPE.IM_放入你的隨身碟內即可
2GB容量以上的隨身碟請先下載usb2fat32.GHO這個映像檔
usb2fat32.rar
(930.85 KB) 被下載 3123 次
製作步驟如同2GB容量以下的一到六步驟
七.這時候請把你的隨身碟直接拔掉...等個5秒鐘....再插進電腦一次....
檢查隨身碟裡面的檔案....是否有下面圖片裡面的11個檔案...
於
晚上8:55

2011年2月21日 星期一
ORACLE 10G 的記憶體
如果你的ORACLE 版本是32位的,如果不做一些配置你是無論如何使用不到1.7G以上內存的。
前兩天公司裡一個軟件系統,需要配置這樣的環境,對於我這樣的ORACLE所謂的高手,有點不知所措,甚至要硬著頭皮去搞定它,
這可是到新公司接到的第一件活。 必須搞定,否則ORACLE DBA就圖有虛名了。 於是馬上上網搜一下,文章果然,但是大都雷同,
而且針對的是ORACLE9I 的。 我在實驗的時候,也把客戶的環境搞雜了,實在慚愧呀。 不過經過一天多的折騰,也算是搞出來了。
軟件環境:
Oracle 10.2.0.1
OS:Windows 2003 Server SP2 32bit
硬件環境:
內存:4G
CPU:Intel Core(TM)2 6300 1.86Ghz
這個環境很重要,特別是ORACLE的版本,跟ORACLE9i的配置肯定是不一樣的。
1) 操作系統配置AWE,主要是修改boot.ini文件
右擊"我的電腦",選擇"屬性"-->高級選項卡,找到“啟動與故障恢復”,單擊“設置”,然後單擊“編輯”,加/PAE選項,修改後的文件如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /pae /3GB
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
2) 配置oracle可以使用的內存,修改註冊表。
找到ORACLE的註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1,再你的機器上KEY_OraDb10g_home1不是這個名稱,
添加一個字符串值項:AWE_WINDOW_MEMORY ,這個值是你準備分配給數據庫用的最大內存數(以BYTE為單位),例如你想分配4G,那這個值就是
4*1024*1024*1024
Windows 命令行
Sqlplus "/ as sysdba" REM (如果登陸不進去將當前用戶加入到ora_dba組中)
SQLPLUS>CREATE PFILE='初始化參數文件的路徑' from spfile
SQLPLUS>Shutdown immediate
SQLPLUS>exit
4) 編輯ORACLE初始化參數文件
請用Ulatra editor(當然其他的也可以,但是千萬不要用記事本) 打開在第三步生成的初始化參數文件(最好能備份一下,以便出現差錯的時候還可以使用最初的文件啟動)
第一註銷掉以下行:
sga_max_size
sga_target
DB_CACHE_SIZE
修改或者添加以下參數
*.db_block_buffers=262144 #等於原來的DB_CACHE_SIZE/db_block_size, 例如你希望DB_CACHE_SIZE的大小是2G,則此值是2*1024*1024K/8K= 262144
*.SHARED_POOL_SIZE=419430400 #是以byte為單位的400M(這個參數設置過大會報錯的,因為ORACLE AWE的配置不是針對他的)
*.log_buffer=73400320 #是以byte為單位的70M(這個參數設置過大會報錯的,因為ORACLE AWE的配置不是針對他的)
*.use_indirect_data_buffers=true # 這個參數的含義是我們是通過設置db_block_buffers來計算得到DB_CACHE_SIZE
下列設定,將記憶體空間鎖定在實體記憶體,不會去使用虛擬記憶體
*.pre_page_sga=TRUE
*.lock_sga=TRUE
5) 啟動ORACLE,並重新創建spfile。
Windows 命令行下運行:
Sqlplus "/ as sysdba"
SQLPLUS>Startup pfile='第四步修改後的初始化參數文件的路徑'
SQLPLUS>Create Spfile from pfile='第四步修改後的初始化參數文件的路徑' #你會發現在你的ORACLE HOME/Database目錄下新生成了一個文件SPFILEOracleSID.ORA
SQLPLUS>Shutdown immediate
6) 將第三步生成的文件ORACLE HOME/Database/SPFILEOracleSID.ORA 複製到ORACLE HOME/dbs下
前面兩步的目的是恢復缺省的以spfile參數文件方式啟動數據庫,否則你的設置都將無效
7) 重新啟動Oracle
Windows 命令行
Sqlplus "/ as sysdba"
SQLPLUS>Startup
Oracle 9.2.0.x的AWE_WINDOW_MEMORY的最小值由以下的公式計算:
MIN(AWE_WINDOW_MEMORY)=(4096 * DB_BLOCK_SIZE * _DB_BLOCK_LRU_LATCHES)/8
_DB_BLOCK_LRU_LATCHES = (Max buffer pools * SETS_PER_POOL)
Max Buffer Pools是個常量(等於8),SETS_PER_POOL是個變量,它的大小是由是否啟用VLM(即設定USE_INDIRECT_DATA_BUFFERS=TRUE參數)決定:
SETS_PER_POOL = 2* CPU_COUNT (啟用VLM)
SETS_PER_POOL= CPU Count /2 (不啟用VLM)
例如:
CPU's = 2
DB_BLOCK_SIZE = 8192
Total RAM = 8 GB
SETS_PER_POOL = 2 * CPU_COUNT = 4
_DB_BLOCK_LRU_LATCHES = (max buffer Pools * sets_per_pool) = 8*4 = 32
MIN(AWE_WINDOW_MEMORY)=(4096*DB_BLOCK_SIZE*_DB_BLOCK_LRU_LATCHES)/8 =( 4096 * 8192 * 32) / 8 = 134217728 bytes = 128 MB
這樣在Windows的註冊表中的HKLMSoftwareOracleHomex下的AWE_WINDOW_MEMORY值至少是128M,否則就會提示ORA-27102(out of memory)錯誤。
參考網址:http://blog.csdn.net/george188/archive/2009/10/19/4699231.aspx
前兩天公司裡一個軟件系統,需要配置這樣的環境,對於我這樣的ORACLE所謂的高手,有點不知所措,甚至要硬著頭皮去搞定它,
這可是到新公司接到的第一件活。 必須搞定,否則ORACLE DBA就圖有虛名了。 於是馬上上網搜一下,文章果然,但是大都雷同,
而且針對的是ORACLE9I 的。 我在實驗的時候,也把客戶的環境搞雜了,實在慚愧呀。 不過經過一天多的折騰,也算是搞出來了。
軟件環境:
Oracle 10.2.0.1
OS:Windows 2003 Server SP2 32bit
硬件環境:
內存:4G
CPU:Intel Core(TM)2 6300 1.86Ghz
這個環境很重要,特別是ORACLE的版本,跟ORACLE9i的配置肯定是不一樣的。
1) 操作系統配置AWE,主要是修改boot.ini文件
右擊"我的電腦",選擇"屬性"-->高級選項卡,找到“啟動與故障恢復”,單擊“設置”,然後單擊“編輯”,加/PAE選項,修改後的文件如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /pae /3GB
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
2) 配置oracle可以使用的內存,修改註冊表。
找到ORACLE的註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1,再你的機器上KEY_OraDb10g_home1不是這個名稱,
添加一個字符串值項:AWE_WINDOW_MEMORY ,這個值是你準備分配給數據庫用的最大內存數(以BYTE為單位),例如你想分配4G,那這個值就是
4*1024*1024*1024
Windows 命令行
Sqlplus "/ as sysdba" REM (如果登陸不進去將當前用戶加入到ora_dba組中)
SQLPLUS>CREATE PFILE='初始化參數文件的路徑' from spfile
SQLPLUS>Shutdown immediate
SQLPLUS>exit
4) 編輯ORACLE初始化參數文件
請用Ulatra editor(當然其他的也可以,但是千萬不要用記事本) 打開在第三步生成的初始化參數文件(最好能備份一下,以便出現差錯的時候還可以使用最初的文件啟動)
第一註銷掉以下行:
sga_max_size
sga_target
DB_CACHE_SIZE
修改或者添加以下參數
*.db_block_buffers=262144 #等於原來的DB_CACHE_SIZE/db_block_size, 例如你希望DB_CACHE_SIZE的大小是2G,則此值是2*1024*1024K/8K= 262144
*.SHARED_POOL_SIZE=419430400 #是以byte為單位的400M(這個參數設置過大會報錯的,因為ORACLE AWE的配置不是針對他的)
*.log_buffer=73400320 #是以byte為單位的70M(這個參數設置過大會報錯的,因為ORACLE AWE的配置不是針對他的)
*.use_indirect_data_buffers=true # 這個參數的含義是我們是通過設置db_block_buffers來計算得到DB_CACHE_SIZE
下列設定,將記憶體空間鎖定在實體記憶體,不會去使用虛擬記憶體
*.pre_page_sga=TRUE
*.lock_sga=TRUE
5) 啟動ORACLE,並重新創建spfile。
Windows 命令行下運行:
Sqlplus "/ as sysdba"
SQLPLUS>Startup pfile='第四步修改後的初始化參數文件的路徑'
SQLPLUS>Create Spfile from pfile='第四步修改後的初始化參數文件的路徑' #你會發現在你的ORACLE HOME/Database目錄下新生成了一個文件SPFILEOracleSID.ORA
SQLPLUS>Shutdown immediate
6) 將第三步生成的文件ORACLE HOME/Database/SPFILEOracleSID.ORA 複製到ORACLE HOME/dbs下
前面兩步的目的是恢復缺省的以spfile參數文件方式啟動數據庫,否則你的設置都將無效
7) 重新啟動Oracle
Windows 命令行
Sqlplus "/ as sysdba"
SQLPLUS>Startup
Oracle 9.2.0.x的AWE_WINDOW_MEMORY的最小值由以下的公式計算:
MIN(AWE_WINDOW_MEMORY)=(4096 * DB_BLOCK_SIZE * _DB_BLOCK_LRU_LATCHES)/8
_DB_BLOCK_LRU_LATCHES = (Max buffer pools * SETS_PER_POOL)
Max Buffer Pools是個常量(等於8),SETS_PER_POOL是個變量,它的大小是由是否啟用VLM(即設定USE_INDIRECT_DATA_BUFFERS=TRUE參數)決定:
SETS_PER_POOL = 2* CPU_COUNT (啟用VLM)
SETS_PER_POOL= CPU Count /2 (不啟用VLM)
例如:
CPU's = 2
DB_BLOCK_SIZE = 8192
Total RAM = 8 GB
SETS_PER_POOL = 2 * CPU_COUNT = 4
_DB_BLOCK_LRU_LATCHES = (max buffer Pools * sets_per_pool) = 8*4 = 32
MIN(AWE_WINDOW_MEMORY)=(4096*DB_BLOCK_SIZE*_DB_BLOCK_LRU_LATCHES)/8 =( 4096 * 8192 * 32) / 8 = 134217728 bytes = 128 MB
這樣在Windows的註冊表中的HKLMSoftwareOracleHomex下的AWE_WINDOW_MEMORY值至少是128M,否則就會提示ORA-27102(out of memory)錯誤。
參考網址:http://blog.csdn.net/george188/archive/2009/10/19/4699231.aspx
於
上午9:35

2011年2月20日 星期日
Html相對位置
C:\AppServ\www\azole\index.php
C:\AppServ\www\azole\images\test.jpg
C:\AppServ\www\azole\auto\auto.php
對index.php來說,我要引用那個圖片跟link到auto.php,要寫
或是 
.\ 是指自己這個檔案夾,所以他的意思是說到自己這個檔案夾裡的images這個檔案夾去抓test.jpg
auto
如果是auto.php要引用,就要這樣寫

..\是上一層的意思,去我的上一層(就到了C:\AppServ\www\azole\)去找images這個檔案夾,在去裡面抓test.jpg這張圖。
大概就是這樣囉,記得是相對於自己的位置就好囉。
C:\AppServ\www\azole\images\test.jpg
C:\AppServ\www\azole\auto\auto.php
對index.php來說,我要引用那個圖片跟link到auto.php,要寫


.\ 是指自己這個檔案夾,所以他的意思是說到自己這個檔案夾裡的images這個檔案夾去抓test.jpg
auto
如果是auto.php要引用,就要這樣寫

..\是上一層的意思,去我的上一層(就到了C:\AppServ\www\azole\)去找images這個檔案夾,在去裡面抓test.jpg這張圖。
大概就是這樣囉,記得是相對於自己的位置就好囉。
於
晚上9:46

Oracle Client中文字碼讀出時變成亂碼的狀況
Oracle Client 的 ODBC連線設定Oracle的連線設定不對,常常會造成中文字碼讀出時變成亂碼的狀況,以下是Client的相關設定流程和步驟 :
(1)安裝Oracle Client
(2)檢查Oracle profile的連線時間設定(注意Time Out會影響連線穩定度)
(3)檢查Oracle帳號權限是否可讀取全部之Owner/Table,且有變更之權限
(4)設定Client端之ODBC連線
(5)檢查ODBC連線之編碼設定是否與Oracle編碼相同
Register 位置
/HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/NLS_LANG
Value = “TRADITIONAL CHINESE_TAIWAN.ZHT16DBT”
Value = “TRADITIONAL CHINESE_TAIWAN.UTF8”
Value = American.America.US7ASCII
(6)檢查Client端電腦之環境變數
【開始】->【我的電腦】按右鍵->【內容】->【進階】->【環境變數】->【新增】
新增變數名稱 NLS_LANG,變數值設定如下:
Big5設定為 TRADITIONAL CHINESE_TAIWAN.ZHT16DBT
UTF8設定為 TRADITIONAL CHINESE_TAIWAN.UTF8
(7)設定Client端電腦之Oracle tnsnames.ora
開啟C:\Oracle\Ora81\network\ADMIN\tnsnames.ora
(8)以Oracle ODBC test測試Client端之ODBC連線是否正常
(9)Client電腦重新開機(建議)
(1)安裝Oracle Client
(2)檢查Oracle profile的連線時間設定(注意Time Out會影響連線穩定度)
(3)檢查Oracle帳號權限是否可讀取全部之Owner/Table,且有變更之權限
(4)設定Client端之ODBC連線
(5)檢查ODBC連線之編碼設定是否與Oracle編碼相同
Register 位置
/HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/NLS_LANG
Value = “TRADITIONAL CHINESE_TAIWAN.ZHT16DBT”
Value = “TRADITIONAL CHINESE_TAIWAN.UTF8”
Value = American.America.US7ASCII
(6)檢查Client端電腦之環境變數
【開始】->【我的電腦】按右鍵->【內容】->【進階】->【環境變數】->【新增】
新增變數名稱 NLS_LANG,變數值設定如下:
Big5設定為 TRADITIONAL CHINESE_TAIWAN.ZHT16DBT
UTF8設定為 TRADITIONAL CHINESE_TAIWAN.UTF8
(7)設定Client端電腦之Oracle tnsnames.ora
開啟C:\Oracle\Ora81\network\ADMIN\tnsnames.ora
(8)以Oracle ODBC test測試Client端之ODBC連線是否正常
(9)Client電腦重新開機(建議)
於
晚上8:01

2011年1月9日 星期日
Win7_找回快速啟動列
Windows好用的快速啟動功能不見了
微軟怎麼能夠這麼殘忍呢?
1. 首先在工具列的任何一個地方按右鍵
2. 點選新增工具列後,在跳出的視窗輸入
%appdata%\Microsoft\Internet Explorer\Quick Launch
3. 按下選擇資料夾之後,就可以看到我們熟悉的快速啟動列了,這時候將鎖定工具列的選項取消,拉到你習慣的位置
4. 不過這樣似乎有點醜醜的,接下來我們在這個工具列按右鍵,把顯示文字和顯示標題都取消
5.調整位置
微軟怎麼能夠這麼殘忍呢?
1. 首先在工具列的任何一個地方按右鍵
2. 點選新增工具列後,在跳出的視窗輸入
%appdata%\Microsoft\Internet Explorer\Quick Launch
3. 按下選擇資料夾之後,就可以看到我們熟悉的快速啟動列了,這時候將鎖定工具列的選項取消,拉到你習慣的位置
4. 不過這樣似乎有點醜醜的,接下來我們在這個工具列按右鍵,把顯示文字和顯示標題都取消
5.調整位置
於
下午6:47

訂閱:
文章 (Atom)