情況:
在 Avira AntiVir Personal 使用 [立即掃描系統] 或 [掃描程式] 功能,當出現 Luke FileWalker 視窗後,一直卡在 Hidden objects search is running ,不會有進度!!
解決方法:
執行掃描前,將系統的 Volume Shadow Copy 服務關掉,並將啟動類型設成 停用 狀態:
開啟系統的 [服務] 視窗,點選 Volume Shadow Copy ,關掉服務,啟動類型設成 [停用]。
然後再執行 小紅傘 的 [立即掃描系統] 或 [掃描程式] 功能,應該就能正常執行了!!
2011年7月5日 星期二
Spring 2 AutoWire Note
1. 明確的 setter 和 constructor 依賴注入設定會覆蓋自動綁定設定。
2. 目前 byType and byName 的自動綁定不支援的簡單屬性注入,這裡所指的簡單屬性如基本型態、Strings、Classes、 以及這些簡單屬性的陣列。
原文:
Note that explicit dependencies in property and constructor-arg settings always override autowiring. Please also note that it is not currently possible to autowire so-called simple properties such as primitives, Strings, and Classes (and arrays of such simple properties).
2. 目前 byType and byName 的自動綁定不支援的簡單屬性注入,這裡所指的簡單屬性如基本型態、Strings、Classes、 以及這些簡單屬性的陣列。
原文:
Note that explicit dependencies in property and constructor-arg settings always override autowiring. Please also note that it is not currently possible to autowire so-called simple properties such as primitives, Strings, and Classes (and arrays of such simple properties).
2011年1月19日 星期三
2010年10月15日 星期五
AppServ 更新 PHP 版本為 5.2.14
AppServ 安裝路徑:D:\AppServ
OS:Windows XP
將 AppServ 2.5.10 的 PHP 5.2.6 升級為 PHP 5.2.14 步驟:
0. 將 Apache 和 MySQL stop。
1. 至 PHP for Windows 下載 VC6 x86 Thread Safe *1 的 zip 版本。
2. 將 D:\AppServ\php5改名為 php526。
3. 將 php-5.2.14-Win32-VC6-x86.zip 解壓縮到 D:\AppServ\php5。
4. 將 php.ini-dist 改為 php.ini。
5. 對照 PHP5.2.6設定的 php.ini 項目來設定 PHP 5.2.14 的 php.ini *2。
6. 將設定好的 php.ini 移到 C:\WINDOWS 內。
7. 如果有開啟 extension=php_mcrypt.dll,記得把 PHP 5.2.14 的 libmcrypt.dll (位於 D:\AppServ\php5內) 重新複製到 C:\WINDOWS 內。
8. start Apache server。
9. 連到 http://localhost/phpinfo.php,版本若為 PHP Version 5.2.14 表示更新成功囉。
p.s. AppServ 自 2008.06.10 release 2.5.10 之後,似乎就沒有更新的版本推出了。所以也可以考慮換個 WAMP 來用,例如 WampServer 或是 XAMPP 來安裝。
*1 AppServ default 是使用 PHP ISAPI 模式執行,所以是建議下載 Thread Safe 的版本。
如果是用 FastCGI模式,則建議使用 Non Thread Safe 的版本。
另外,PHP 5.3 後:
VC6 --> 以Visual Studio 6 編譯 for Apache。
VC9 --> 以Visual Studio 2008 編譯 for IIS。
PHP for Windows 內有詳細說明。
*2 這裡推薦一套好用的文件比對軟體 WinMerge。
OS:Windows XP
將 AppServ 2.5.10 的 PHP 5.2.6 升級為 PHP 5.2.14 步驟:
0. 將 Apache 和 MySQL stop。
1. 至 PHP for Windows 下載 VC6 x86 Thread Safe *1 的 zip 版本。
2. 將 D:\AppServ\php5改名為 php526。
3. 將 php-5.2.14-Win32-VC6-x86.zip 解壓縮到 D:\AppServ\php5。
4. 將 php.ini-dist 改為 php.ini。
5. 對照 PHP5.2.6設定的 php.ini 項目來設定 PHP 5.2.14 的 php.ini *2。
6. 將設定好的 php.ini 移到 C:\WINDOWS 內。
7. 如果有開啟 extension=php_mcrypt.dll,記得把 PHP 5.2.14 的 libmcrypt.dll (位於 D:\AppServ\php5內) 重新複製到 C:\WINDOWS 內。
8. start Apache server。
9. 連到 http://localhost/phpinfo.php,版本若為 PHP Version 5.2.14 表示更新成功囉。
p.s. AppServ 自 2008.06.10 release 2.5.10 之後,似乎就沒有更新的版本推出了。所以也可以考慮換個 WAMP 來用,例如 WampServer 或是 XAMPP 來安裝。
*1 AppServ default 是使用 PHP ISAPI 模式執行,所以是建議下載 Thread Safe 的版本。
如果是用 FastCGI模式,則建議使用 Non Thread Safe 的版本。
另外,PHP 5.3 後:
VC6 --> 以Visual Studio 6 編譯 for Apache。
VC9 --> 以Visual Studio 2008 編譯 for IIS。
PHP for Windows 內有詳細說明。
*2 這裡推薦一套好用的文件比對軟體 WinMerge。
2010年10月4日 星期一
PHP:Oracle 函數 OCI8 的連線處理
OCI8 提供了 3 個不同函數來連線 Oracle Database,其連線處理方式如下:
1. oci_pconnect() 函數:
使用了一個連線持久緩沖區,對在同個 script 中用同樣的參數多次呼叫 oci_pconnect(),則第二個和之後的呼叫會返回已有的連線 (返回的連線ID會是相同的)。其緩沖區獨立地維持著並在不同請求之間都存活著,而可以被不同的 script request 重複使用。
2. oci_connect() 函數:
使用了一個連線緩沖區,對在同個 script 中用同樣的參數多次呼叫 oci_connect(),則第二個和之後的呼叫會返回已有的連線 (返回的連線ID會是相同的)。使用的連線緩衝區會在 script 執行完畢後或是明確地關閉了連線時被清除。
3. oci_new_connect() 函數:
不管連線是否已經存在,總是建立一個連接 Oracle 伺服器的新連線。高流量且連線頻繁的 web application 應該避免使用 oci_new_connect()。
資料來源:PHP 手冊:Oracle 函數
1. oci_pconnect() 函數:
使用了一個連線持久緩沖區,對在同個 script 中用同樣的參數多次呼叫 oci_pconnect(),則第二個和之後的呼叫會返回已有的連線 (返回的連線ID會是相同的)。其緩沖區獨立地維持著並在不同請求之間都存活著,而可以被不同的 script request 重複使用。
2. oci_connect() 函數:
使用了一個連線緩沖區,對在同個 script 中用同樣的參數多次呼叫 oci_connect(),則第二個和之後的呼叫會返回已有的連線 (返回的連線ID會是相同的)。使用的連線緩衝區會在 script 執行完畢後或是明確地關閉了連線時被清除。
3. oci_new_connect() 函數:
不管連線是否已經存在,總是建立一個連接 Oracle 伺服器的新連線。高流量且連線頻繁的 web application 應該避免使用 oci_new_connect()。
資料來源:PHP 手冊:Oracle 函數
2010年9月30日 星期四
Oracle 10g R2 XE tnsnames.ora sample
TEST=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
)
)
AppServ PHP 和 Oracle 10g R2 的 connection 環境建置和設定
環境資料:
OS: Windows
PHP 環境 -- AppServ 2.5.10:
Oracle DB 10g R2 XE for Windows 或是 Oracle 10g R2 client for Windows
步驟:
1. 請參考 PHP:AppServ 安裝及設定 in Windows 安裝 AppServ 2.5.10。
2. 安裝 Oracle Database 10g R2 XE 或是 Oracle 10g R2 Client,可至 Oracle 網站 下載軟體及查看安裝方式。
安裝完成後,設定或是確定 系統環境變數 PATH 內,有 Oracle library directory 的資料,例如
Oracle client:確定 PATH 內有 D:\oracle\product\10.2.0\client_1\bin。
Oracle DB:確定 PATH 內有 %ORACLE_HOME%\bin 。
如果是安裝 Oracle client,請建立一 tnsnames.ora 文件,放置於 D:\AppServ\oracle\admin\ 內,或是其他任何地方。tnsnames.ora sample。
注意事項:
依據 PHP: OCI8 - Manual 文獻,在 Windows 上使用 OCI8,需要安裝 Oracle 10g R2 以上版本的 client libraries。
3. 安裝 OCI8 in Windows:
AppServ 已有將 OCI8 需要的 php_oci8.dll 安裝於 D:\AppServ\php5\ext 中,所以只要修改 php.ini,將 ;extension=php_oci8.dll uncomment ,並確定 extension_dir 是設到 D:\AppServ\php5\ext 即可。
4. 設定 Oracle 的Windows系統環境變數:
A. ORACLE_HOME:
如果有安裝 Oracel DB,請設定此一環境變數。
ext: ORACLE_HOME=D:\oraclexe\app\oracle\product\10.2.0\server。
如果是安裝 Oracle client,此環境變數可以不用設定。
B. NLS_LANG:
設定 NLS_LANG=AMERICAN_AMERICA.UTF8。
如果是使用 Big5,則設定成 NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5。
C. TNS_ADMIN:
如果是安裝 Oracle client,請設定到 tnsnames.ora 存放的路徑,
ext: TNS_ADMIN=D:\AppServ\oracle\admin。
如果是安裝 Oracle DB 則可以不用設定,因為系統會自動預設為 %ORACLE_HOME%\NETWORK\ADMIN。
注意事項:
依據 PHP: OCI8 - Manual 文獻,說明要在 Web Server 啟動前(例如 Apache 啟動前),設定好 Oracle 的環境變數。且不要使用 PHP 的 putenv() 來設定。
不過,經過測試,NLS_LANG、TNS_ADMIN、NLS_SORT 是可以使用 putenv() 來設定,使用到目前為止,還沒有出現問題。
5. 測試:(假設 Ap 和 Oracle DB 裝在同一台機器上。)
在 tnsnames.ora 文件內加上下方的資料:
TEST=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
)
)
建立測試 php:testOCIConn.php
//oci_connect(string $username, string $password, string $connection_string)
$conn = oci_connect("testconn", "connconn", "TEST");
if(!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
else {
echo "testconn 連線成功!!";
}
run testOCIConn.php,如果出現 testconn 連線成功!!,就表示安裝設定成功,且連線成功了。
參考文件:PHP: OCI8 - Manual。
OS: Windows
PHP 環境 -- AppServ 2.5.10:
- Apache 2.2.8
- PHP 5.2.6
- MySQL 5.0.51b
- phpMyAdmin-2.10.3
- php OCI8
- PHP的安裝目錄設為:D:\AppServ\php5
Oracle DB 10g R2 XE for Windows 或是 Oracle 10g R2 client for Windows
步驟:
1. 請參考 PHP:AppServ 安裝及設定 in Windows 安裝 AppServ 2.5.10。
2. 安裝 Oracle Database 10g R2 XE 或是 Oracle 10g R2 Client,可至 Oracle 網站 下載軟體及查看安裝方式。
安裝完成後,設定或是確定 系統環境變數 PATH 內,有 Oracle library directory 的資料,例如
Oracle client:確定 PATH 內有 D:\oracle\product\10.2.0\client_1\bin。
Oracle DB:確定 PATH 內有 %ORACLE_HOME%\bin 。
如果是安裝 Oracle client,請建立一 tnsnames.ora 文件,放置於 D:\AppServ\oracle\admin\ 內,或是其他任何地方。tnsnames.ora sample。
注意事項:
依據 PHP: OCI8 - Manual 文獻,在 Windows 上使用 OCI8,需要安裝 Oracle 10g R2 以上版本的 client libraries。
3. 安裝 OCI8 in Windows:
AppServ 已有將 OCI8 需要的 php_oci8.dll 安裝於 D:\AppServ\php5\ext 中,所以只要修改 php.ini,將 ;extension=php_oci8.dll uncomment ,並確定 extension_dir 是設到 D:\AppServ\php5\ext 即可。
4. 設定 Oracle 的Windows系統環境變數:
A. ORACLE_HOME:
如果有安裝 Oracel DB,請設定此一環境變數。
ext: ORACLE_HOME=D:\oraclexe\app\oracle\product\10.2.0\server。
如果是安裝 Oracle client,此環境變數可以不用設定。
B. NLS_LANG:
設定 NLS_LANG=AMERICAN_AMERICA.UTF8。
如果是使用 Big5,則設定成 NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5。
C. TNS_ADMIN:
如果是安裝 Oracle client,請設定到 tnsnames.ora 存放的路徑,
ext: TNS_ADMIN=D:\AppServ\oracle\admin。
如果是安裝 Oracle DB 則可以不用設定,因為系統會自動預設為 %ORACLE_HOME%\NETWORK\ADMIN。
注意事項:
依據 PHP: OCI8 - Manual 文獻,說明要在 Web Server 啟動前(例如 Apache 啟動前),設定好 Oracle 的環境變數。且不要使用 PHP 的 putenv() 來設定。
不過,經過測試,NLS_LANG、TNS_ADMIN、NLS_SORT 是可以使用 putenv() 來設定,使用到目前為止,還沒有出現問題。
5. 測試:(假設 Ap 和 Oracle DB 裝在同一台機器上。)
在 tnsnames.ora 文件內加上下方的資料:
TEST=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SID = XE)
)
)
建立測試 php:testOCIConn.php
//oci_connect(string $username, string $password, string $connection_string)
$conn = oci_connect("testconn", "connconn", "TEST");
if(!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
else {
echo "testconn 連線成功!!";
}
run testOCIConn.php,如果出現 testconn 連線成功!!,就表示安裝設定成功,且連線成功了。
參考文件:PHP: OCI8 - Manual。
訂閱:
文章 (Atom)