Jan 20, 2009

將工作管理員更改為 process Explore

1. 下載 process explore:
http://technet.microsoft.com/zh-tw/sysinternals/bb896653.aspx
2. 將「procexp.exe」 放到 「C:\windows\system32」目錄 之下。
3. 更改登錄檔 : 至 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe] 目錄下
新增「字串」= Debugger
值 = procexp.exe

Jan 16, 2009

cmd.exe Not to show DOS window , ftp command

-----aa.vbs--------
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C c:\maint\batch\ftp_192.168.0.1.bat", 0, TRUE)

# /C => not to show cmd windows

-----ftp_192.168.0.1.bat -----
@ftp -s:c:\maint\batch\192.168.0.1.txt 192.168.0.1
@del /Q D:\FTP_DATA\data\*.*

---- 192.168.0.1.txt -----
account
password
lcd D:\data
cd /data
asc
prompt
mput *
bye


****----DOS ftp parameter
ftp -help

Jan 14, 2009

PING 命令詳解

Ping是潛水艇人員的專用術語,表示回應的聲納脈衝,在網路中Ping 是一個十分好用的TCP/IP工具。它主要的功能是用來檢測網路的連通情況和分析網路速度。 Ping有好的善的一面也有惡的一面。先說一下善的一面吧。上面已經說過Ping的用途就是用來檢測網路的連同情況和分析網路速度,但它是透過什麼來顯示連通呢?這首先要了解Ping的一些參數和返回資訊。

以下是PING的一些參數:

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list

-t

Ping 指定的計算機直到中斷。

將地址解析為計算機名。

-n count

發送 count 指定的 ECHO 數據包數。默認值為 4。

-l length

發送包含由 length 指定的數據量的 ECHO 數據包。默認為 32 字節;最大值是65,527。

-f

在數據包中發送"不要分段"標誌。數據包就不會被路由上的網關分段。

-i ttl

將"生存時間"字段設置為 ttl 指定的值。

-v tos

將"服務類型"字段設置為 tos 指定的值。

-r count

在"記錄路由"字段中記錄傳齣和返回數據包的路由。count 可以指定最少 1 台,最多 9 台電腦。

-s count

指定 count 指定的躍點數的時間戳。

-j computer-list

利用 computer-list 指定的計算機列表路由數據包。連續計算機可以被中間網關分隔(路由稀疏源)IP 允許的最大數量為 9。

-k computer-list

利用 computer-list 指定的計算機列表路由數據包。連續計算機不能被中間網關分隔(路由嚴格源)IP 允許的最大數量為 9。
-w timeout

指定超時間隔,單位為毫秒。

destination-list

指定要 ping 的遠程計算機。

Ping的返回資訊有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"還有"Source quench received"。

"Request Timed Out"這個資訊表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。

"Destination Net Unreachable"這個資訊表示對方主機不存在或者沒有跟對方建立連接。這裡要說明一下"destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其他原因不可到達,這時候會齣現"time out",如果路由表中連到達目標的路由都沒有,那就會出現"destination host unreachable"。

"Bad IP address" 這個資訊表示你可能沒有連接到DNS伺服器所以無法解析這個IP地址,也可能是IP地址不存在。

"Source quench received"資訊比較特殊,它齣現的機率很少。它表示對方或中途的伺服器繁忙無法回應。

怎樣使用Ping命令來測試網路連通呢?

連通問題是由許多原因引起的,如本地配置錯誤、遠程主機協議失效等,當然還包括設備等造成的故障。

首先我們講一下使用Ping命令的步驟。

使用Ping檢查連通性有五個步驟:

1. 使用ipconfig /all觀察本地網路設置是否正確;

2. Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是為了檢查本地的TCP/IP協議有沒有設置好;

3. Ping本機IP地址,這樣是為了檢查本機的IP地址是否設置有誤;

4. Ping本網網關或本網IP地址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連接是否正常;(在非局域網中這一步驟可以忽略)

5. Ping遠程IP地址,這主要是檢查本網或本機與外部的連接是否正常。

在檢查網路連通的過程中可能齣現一些錯誤,這些錯誤總的來說分為兩種最常見。

1. Request Timed Out

"request time out"這提示除了在《PING(一)》提到的對方可能裝有防火牆或已關機以外,還有就是本機的IP不正確和網關設置錯誤。

①、IP不正確:

IP不正確主要是IP地址設置錯誤或IP地址衝突,這可以利用ipconfig /all這命令來檢查。在WIN2000下IP衝突的情況很少發生,因為系統會自動檢測在網路中是否有相同的IP地址並提醒你是否設置正確。在NT中不但會齣現"request time out"這提示而且會齣現"Hardware error"這提示資訊比較特殊不要給它的提示所迷惑。

②、網關設置錯誤:這個錯誤可能會在第四個步驟齣現。網關設置錯誤主要是網關地址設置不正確或網關沒有幫你轉發數據,還有就是可能遠程網關失效。這裡主要是在你Ping外部網路地址時齣錯。錯誤表現為無法Ping外部主機返回資訊"Request timeout"。

2. Destination Host Unreachable

當你在開始PING網路計算機時如果網路設備齣錯它返回資訊會提示"destination host unreachable"。如果局域網中使用DHCP分配IP時,而碰巧DHCP失效,這時使用 PING命令就會產生此錯誤。因為在DHCP失效時客戶機無法分配到IP系統隻有自設IP,它往往會設為不同子網的IP。所以會齣現"Destination Host Unreachable"。另外子網掩碼設置錯誤也會齣現這錯誤。

還有一個比較特殊就是路由返回錯誤資訊,它一般都會在"Destination Host Unreachable"前加上IP地址說明哪個路由不能到達目標主機。這說明你的機器與外部網路連接沒有問題,但與某台主機連接存在問題。

舉例說明

我管理的網路有19台機,由一台100M集線器連接伺服器,使用DHCP動態分配IP地址。

有一次有位同事匆忙地告訴我"我的OUTLOOK打不開了",我到他機器檢查,首先我檢查了本地網路設置,我用ipconfig /all看IP分配情況一切正常。接著我就開始PING網路中的其中一台機器,第一次PING結果很正常,但OUTLOOK還是無法使用其他網路軟體和Copy網路文件都可以使用但網路速度很慢,第二次PING我用了一個參數-t(-t可以不中斷地PING對方,當時我想PING一次可能發現不了問題)發現有time=30ms和request time out,從伺服器PING這台機就更有趣,request time out比正常數據還多,在局域中竟然有time=30ms和request time out太不正常了。開始我認為是網卡的問題但換網卡後故障依舊,重做網線還是不能解決問題,這故障真有趣!最後我沒辦法了把它插在集線器端口上的另一端的網線換到另一個端口,哈!故障解決了。原來是集線器端口壞了。

如何用Ping命令來判斷一條鏈路的速度?

Ping這個命令除了可以檢查網路的連通和檢測故障以外,還有一個比較有趣的用途,那就是可以利用它的一些返回數據,來估算你跟某台主機之間的速度是多少字節每秒

我們先來看看它有那些返回數據。

Pinging 202.105.136.105 with 32 bytes of data:

Reply from 202.105.136.105: bytes=32 time=590ms TTL=114

Reply from 202.105.136.105: bytes=32 time=590ms TTL=114

Reply from 202.105.136.105: bytes=32 time=590ms TTL=114

Reply from 202.105.136.105: bytes=32 time=601ms TTL=114

Ping statistics for 202.105.136.105:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 590ms, Maximum = 601ms, Average = 593ms

在例子中"bytes=32"表示ICMP報文中有32個字節的測試數據(這是估算速度的關鍵數據),"time=590ms"是往返時間。

怎樣估算鏈路的速度呢?舉個例子吧。我們把A和B之間設置為PPP鏈路。

從上面的PING例子可以注意到,默認情況下發送的ICMP報文有32個字節。除了這32個字節外再加上20個字節的IP首部和8個字節的ICMP首部,整個IP數據報文的總長度就是60個字節(因為IP和ICMP是Ping命令的主要使用協議,所以整個數據報文要加上它們)。另外在使用Ping命 令時還使用了另一個協議進行傳輸,那就是PPP協議(點對點協議),所以在數據的開始和結尾再加上8個字節。在傳輸過程中,由於每個字節含有8bit數 據、1bit起始位和1bit結束位,因此傳輸速率是每個字節2.98ms。由此我們可以估計需要405ms。即68*2.98*2(乘2是因為我們還要 計算它的往返時間)。

我們來測試一下33600 b/s的鏈路:

Pinging 202.105.36.125 with 32 bytes of data:

Reply from 202.105.36.125: bytes=32 time=415ms TTL=114

Reply from 202.105.36.125: bytes=32 time=415ms TTL=114

Reply from 202.105.36.125: bytes=32 time=415ms TTL=114

Reply from 202.105.36.125: bytes=32 time=421ms TTL=114

Ping statistics for 202.105.36.125:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 415ms, Maximum = 421ms, Average = 417ms


看是不是差不多啊。

這裡大家可能要注意到,這估算值跟實際值是有誤差的,為什麼呢?因為我們現在估算的是一個理論值,還有一些東西我們沒有考慮。比如在網路中的其他干 擾,這些干擾主要來之別的計算機。因為在你測試時不可能全部計算機停止使用網路給你做測試,這是不實際的。另外就是傳輸設備,因為有某些設備如MODEM 它在傳輸時會把數據壓縮後再發送,這大大減少了傳輸時間。這些東西產生的誤差我們是不能避免的,但其數值大約在5%以內我們都可以接受(利用MODEM傳 輸例外),但是可以減少誤差的產生。比如把MODEM的壓縮功能關閉和在網路沒有那麼繁忙時進行測試。有時候誤差是無須消除的。因為我們需要這些誤差跟所 求得的理論值進行比較分析,從而找齣網路的缺陷而進行優化。這時測試網路的所有數據包括誤差都會成為我們優化的依據。

還要注意,這種演算法在局域網並不適用,因為在局域網中速度非常的快幾乎少於1ms,而Ping的最小時間解析度是1ms,所以根本無法用Ping命令來檢測速度。如果想測試速度那就要用專門儀器來檢測。

總的來說,Ping命令是一個在故障檢查方面很有用而且很便利的工具,你不應該忽視它的存在。


From http://fjtct.now.cn:7751/cs.now.cn/html/FAQ/VHost/200810/23-3253.html

Jan 13, 2009

Difference between Oracle Applications 11i and R12

Database:
Database Version in 11i (11.5.9 & 11.5.10) was 9i Rel 2 where as in Release 12 its 10g R2 (10.2.0.2)

Application Tier:
Tech Stack in Application Tier consist of iAS(1.0.2.2.2) &
Developer 6i (Forms & Reports 8.0.6) but in Applications R12 it is build on Fusion Middleware (10g Web Server and 10g Forms & Reports)

Sub component in Application Tier
A) HTTP Server or Web Server in R12 is Version 10.1.3 which is built on Apache version 1.3.34. In apps 11i it is Version 1.0.2.2.2 built on Apache Version 1.3.19
B) Jserv in apps 11i is replaced by OC4J (mod_jserv is replaced by mod_oc4j)
C) Forms Version 6i in Apps 11i is replaced by Forms 10.1.2.0.2 in R12
D) Reports Version 6i in Apps 11i is replaced by Reports 10.1.2.0.2 in R12
E)
JDBC version is changed from version 9 in apps 11i to version 10.2.0 in Apps R12
F) modplsql or mod_pls is removed from Apps R12 (
What will happen to my mod plsql applications- coming soon* )
G)
Java processes use JDK/JRE version 1.5.0 in R12 against JDK version 1.3.1 or 1.4.2 in Apps 11i
H) For various environment variable changes check below picture


I) New top INSTANCE_TOP added in Release 12 for configuration and log files















From: http://www.dba-oracle.com/t_applications_differences_11i_12.htm

Jan 12, 2009

FTP的工作方式:Active FTP 及 Passive FTP

為何常常連上 FTP 站台後,進去後就停留且無法列表?

防火牆有很多種,其中有一些會禁止那些不是從內部網路IP發出的連接請求。而FTP協議是個很老的東東,沒有考慮這個問題。可以這樣簡單描述一般FTP的 工作原理:Client對Server發出請求:「嗨,我的xx Port正等著你傳送資料呢,Sever聽到這個請求,就會建立一個連接,指向這個Port,並且開始傳送資料。這就回到了我們的問題,如果發出請求的 Client在防火牆的後面,而這個防火牆禁止外部IP建立連接,那麼當然Server(在外部)不能建立與Client的連接。

所以,過了幾年,人們修改了FTP協議以應付這種情況。這就是Passive Mode,工作原理如下:Client向Server發出Passive命令,Server回答說:「資料在xx Port等你,自己來拿。」而這回則由Client建立指向Server的連接,從而取得資料。這就避免了防火牆的限制。

FTP是一種文件傳輸協議,它支持兩種模式,一種方式叫做Standard(也就是Active,主動方式),一種是Passive(也就是PASV,被 動方式)。Standard模式FTP的客戶端發送PORT命令到FTP Server。Passive模式FTP的客戶端發送PASV命令到FTP Server。

而在大部份的防火牆設定中,使用 FTP 傳輸檔案時經常會遇到需要設定使用 Passive Mode 的 FTP,但大部份的 FTP client 軟體,default 大都是 Active Mode FTP,這二種 FTP 模式在傳輸上有何不同?先了解 FTP 的工作方式,有助於了解 active FTP 及 passive FTP 的不同。

一般的 FTP 使用 TCP port 20 及 21 二個 port,正常來說, port 20 是傳輸資料用,而 port 21 傳輸命令,但事實上並不是一直使用 port 20 來傳輸資料。

Active Mode FTP (主動模式 FTP)
在 Active 模式的 FTP client 一開始時會先使用一個大於 1024(N) 的 TCP port 連結至 FTP server 的port 21,然後 FTP client 會打開該 port 的下一個數字的 port (N+1) 並送至 FTPserver 說期望下次的溝通可以經由新的 port (N+1),這樣比較不會占用到 FTP server 的 port 21 而影響別的 FTP sessions,同時 FTP server 會使用 port 20 連結至 FTP client 新送過來的 port 號來傳資料。
所以在防火牆上需要打開:

FTP server port 21 from anywhere # 給 FTP client 開始連接
FTP server port 21 to port > 1024 # 給 FTP server 回應 client 命令
FTP server port 20 to port > 1024 # 給 FTP server 開始資料傳輸
FTP server port 20 from port > 1024 # 給 FTP cleint 傳送 data ACK 給 server

所以連接順序為:
1. FTP client use TCP port 1026 for command to FTP server command port 21
2. FTP server use TCP port 21 responed to FTP client command port 1026
3. FTP server use TCP port 20 for sending data to FTP client data port 1027 (1026 + 1)
4. FTP client use TCP port 1027 ( 1026 + 1) for data ACK to FTP server port 20

問題在於使用 Active Mode FTP 時主控權在 FTP client,FTP client 並不是真正的連至 FTP server 的data port (TCP port 20),它只是告訴 FTP server 它準備在那個 port 接收資料及port+1 傳送 ACK,並期望 FTP server 可以主動連接至 FTP client 所期望的 port,這在使用防火牆的環境中就會造成問題。

Passive Mode FTP (被動模式 FTP)
解決主動模式在防火牆外面時所發生無法連接的問題,可以用被動模式 FTP,在Passive Mode FTP 下,FTP client一開始和 Active Mode FTP 一樣,打開二個 port (N > 1024 及 N+1),使用第一個port 連接至 FTP server的 port 21,並送出命令 PORT 讓 server 連至 N port 再送出 PASV 命令給 server,這樣會造成 server使用 一個大於 1024 的 port 連接至 client 並送出命令 PORT N ( N >1024 ) 給client,這樣 client 就會使用 N + 1 並開始傳輸資料。

這樣子在防火牆上需要設定:

FTP server TCP port 21 from anywhere # FTP client 開始連接至 FTP server
FTP server TCP port 21 to port > 1024 # FTP server 回應 client 控制
FTP server TCP port > 1024 from anywhere # FTP client 資料傳輸
FTP server TCP port > 1024 to client port > 1024 # FTP server 回應資料 ACK至 client data port

連接順序為:
1. FTP client use TCP port 1026 to FTP server command port 21 via command PASV
2. FTP server use TCP port 21 to FTP client 1026 command port for reply data port 2024
3. FTP client use TCP port 1027 (N+1) to FTP server 2024 for data transmit and ACK
4. FTP server use TCP port 2024 to FTP client for data transmit and ACK

因為 Passive Mode FTP 是由 FTP server 發起一個大於 1024 的 port 至 client,在防火牆上的設定就相對簡單,而可以傳輸資料而不會被防火牆 block。因為FTP Server會開放一個隨機的高Port,儘管在IIS4和IIS5裡面Port的範圍是1024-5000,但是許多FTP Server的Port範圍卻可達到了1024-65535,這個時候在這個主動開放的隨機Port上是有完全的訪問權限喔,如果IIS也要設置成開放的 Port為1024-65535,設置方法如下:

1. regedt32
2. 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. 編輯→新增→數值→ValueName:MaxUserPortDataType:REG_DWORDValue:65534

現在的FTP軟體裡面包括在IE5以上的版本裡面,也已經支持這兩種模式了。一般一些FTP客戶端的軟體就比較好設置了,一般都有一個PASV的選項,比 如CuteFTP,傳輸的方式都有Standard和PASV的選項,可以自己進行選擇;另外在IE裡面如果要設置成PASV模式的話,可以在工具→網際 網路選項→進階→使用被動式FTP(啟用),否則就採用Standard模式。

所以如果遇到了有防火牆或者怕配置麻煩的話,還是採用PASV模式比較好些,但是如果真的對安全的需求很高的話,建議採用Standard模式。如何設置 Standard模式?首先要建立一條規則就是允許內部的IP連接外部的IP的21 Port;第二條就是禁止外部IP的TCP 20 Port連接內部IP小於1024的Port,這條是為了防止外部連接內部的一般Port;第三條驗證ACK是否等於1,這個的原理就要參見TCP建立連 接的三方交握了。

在 Windows 下原來的 ftp client 並沒有 passive 這個指令,但可以利用 literal 指今來下給 FTP server FTP session 為 Passive Mode。方法如下:

C:\>ftp 10.10.100.121
Connected to 10.10.100.121.
220 (vsFTPd 2.0.1)
User (10.10.100.121:(none)): ftp
331 Please specify the password.
Password:
230 Login successful.
ftp> literal pasv
227 Entering Passive Mode (10,10,100,121,242,172)
ftp>

可以看到進入 Passive Mode 了.使用的 port 號碼是 (242*256)+172= 62124

若是 UNIX,但 FTP client 不支援 Passive Mode 指令,可以用 quote pasv。
Linux 作業系統的話,則可以利用 Passive 指令來切換。


#### ------ Active FTP VS Passive FTP ------ ######

Active FTP :
command : client >1023 -> server 21
data : client >1023 <- server 20

















Passive FTP : command : client >1023 -> server 21
data : client >1023 -> server >1023

Jan 9, 2009

sql server 2000(publisher) vs sql server 2005(subscriber) with difference COLLATE

1. SQL server 2000 as publisher and distributor role .
2. Add sql server 2005 as subscriber(cannot browser database , just type the database name into destination database name in EM) in sql sql server EM.
3. Create tables in sql server 2005 with same COLLATE column specify in sql server 2000.
4. Add publication article with no create object option.

solve problem:
無法大量載入,大量資料流不正確地指定為已排序。
(來源: 192.168.1.1 (資料來源); 錯誤號碼: 4819)
---------------------------------------------------------------------------------------------------------------
函數順序錯誤
(來源: 192.168.1.1 (資料來源); 錯誤號碼: S1010)

Jan 8, 2009

檢驗屋況 首重水電工程

檢驗屋況 首重水電工程

小裂縫影響美觀 確認冷氣排水孔暢通

資料引用 http://house.1-apple.com.tw/index.cfm?Fuseaction=View_HouseAppleContent&NewsDate=20081213&Article_ID=31225665

【楊茲珺╱台北報導】多數人為了圓夢而買屋,但買到施工品質不良的房屋,卻是惡夢的開端,因此驗屋過程絕不可馬虎,尤其水電相關的工程都要仔細檢驗。本期《地產王》特別邀請SGS(Soci te Generale de Surveillance)台灣檢驗科技股份有限公司工業服務營建管理部門的專家,經由屋主傅小姐同意,前往即將交屋的台北縣三重市預售案「台北正旺」驗屋,提供民眾驗屋小技巧。

防範未然
最基本的檢驗方式為「看一看」,像是牆壁上的小裂縫、或是磁磚與磁磚之間的水泥填縫是否均勻、還有門框旁的泥作收邊等,屬於房屋內部的美觀問題。

避免磁磚翹起龜裂
接下來要「敲一敲」,主要是敲打屋內貼有磁磚的部分。SGS工業服務營建管理副理丁治翔表示,任何可以敲出聲響的物品都可以,包括打火機、高爾夫球、筷子均可,若發出異聲,代表內部空心,日後可能會翹起或龜裂。
此外,可善用測量工具「量一量」,像是水平尺與直角尺,可以立即判知牆面是否平整;而屋內的排水系統也格外重要,尤其是分離式冷氣的排水口,大多都會以裝潢木作包覆起來,若裝潢好後才發現漏水,處理起來會非常麻煩,因此一定要用水「沖一沖」,測試排水是否良好。

驗屋檢查重點
項目/檢查方式
牆面施工品質:以水平尺與直角尺測量
油漆施工品質:肉眼觀察
窗框外洩水坡度檢查:肉眼觀察
地磚/壁磚 施工品質:以筷子或是任何敲擊可發出聲響的物品輕敲地磚
冷氣孔排水測試:以水管注水進入排水孔
廁所、陽台地坪洩水坡度:開啟水源並觀察水的流向

資料來源:SGS

看一看 查看細節有無瑕疵
仔細看壁面的粉刷油漆,小裂縫是可以接受的瑕疵,畢竟建設公司的粉刷精細度不如裝潢公司,但如果是門邊的泥作收邊不良(下圖1),應該要求建商重新補土粉刷。
此外,應仔細查看窗框外的洩水坡度,磁磚必須在窗框前斷開(下圖2),並以防水材料「矽利康」處理,否則磁磚吸水後會因毛細現象進入室內。此外,窗框與玻璃之間的矽利康如有破損(下圖3),也應要求建商修補。

敲一敲 輕敲地磚慎防空心
地磚或壁磚如果沒有貼實,下方出現空心,時間一久會因熱漲冷縮效應,磁磚容易突起或龜裂。專家建議,每塊地磚或壁磚都必須敲5個點,包括4個頂點與中心點,仔細聽是否有異聲,如果1塊磁磚有2處以上的異聲,一定要拆掉重貼。

沖一沖 沖水確認排水暢通
驗屋時可以請建設公司準備長水管,接上水源後,往分離式冷氣的排水孔內沖水,持續30秒,如果沒有發生水流往外湧出的狀況,就代表暢通(下圖1)。此外,如果浴室規劃乾濕分離,可以用水沖淋浴間的門邊,看看是否會有水洩出(下圖2),若有洩出,應請建設公司改善。

量一量 用尺測量確保平整
可到五金行購買水平尺與直角尺,快速測量牆面是否平整(下圖1)、以及牆面轉角處是否為90度垂直角(下圖2);假使不平整,雖然不會影響結構,但將來在壁面下方釘踢腳板時,將無法貼平而產生縫細,影響居家美觀。