HTTP3287: connection limit (XXXX) exceeded, closing socket
發生的原因有:
1. Max. File Descriptor的設定小於實際的需求
Solve: 使用ulimit設定參數
2. 使用Hot Deployed
Solve: 不要使用此部署方式,以免在效能有瓶頸的伺服器(太多On Demand需求)上發生此異常。
3. Iplanet效能沒有設定好
Solve: 設定 ConnQueueSize的大小大於系統設定的Max. File Descriptor
參考:
iPlanet Web Server 6.0 Performance Tuning, Sizing, and Scaling Guide
http://download.oracle.com/docs/cd/E19554-01/816-5690-10/816-5690-10.pdf
4....
2011年11月14日 星期一
SQL語法中使用字串執行SQL語法
通常在資料庫的表格中有可能存在一些SQL的部分語法來讓程式存取使用。
但在寫Trigger或 Store Procedure時要如何使用這些字串?
正常來說直接使用exec sp_executesql @sqlcmd會出現下面的系統提示:
必須宣告純量變數@studentno。
因此需要做一些修改,可以從範例看出一些端倪:
假如我們的資料庫的分類表格中存在一個欄位儲存判斷式為
學生分數 between 80 and 90
之後我們可以宣告兩個變數與執行他們
declare @sqlcmd varchar(255)
declare @condition varchar(255)
declare @stundentno char(16)
set @sqlcmd = 'update 學生成績 set 分數分類 = ''A'' where studentno = @stundentno and '
select @condition...
2011年10月19日 星期三
Apache Tomcat 6 的記憶體配置 (效能調整)

Tomcat Server 預設可使用的記憶體為 128M,
若有大量網頁需求時, 會因記憶體太少, 而導致 Tomcat 當掉無法運作,
所以, 若要應付大量網頁的需求,需增加JVM的記憶體大小如下:
First Calculate the number of threads you can create
(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads
Example:
For Java 1.5 you will get the following results assuming that the OS reserves about 120MB:
1.5GB allocated...
2011年10月18日 星期二
MS-SQL Server Log 檔清理方式
最近在刪除大筆資料時後發現,資料庫的LOG.LDF檔案會隨著刪除的比數增加,真是掰思不得其解。
於是上網尋找解決方案,總共有兩種。
1. 刪除法
第一步: 執行SQL語法,卸載資料庫:
EXEC sp_detach_db @dbname = 'MYDBNAME'
第二步: 刪除MYDBNAME_Log.LDF
第三步: 掛載SQL語法:
EXEC sp_attach_single_file_db @dbname = 'MYDBNAME', @physname = 'C:\database\MYDBNAME_Data.MDF'
執行結果:
檔案啟動錯誤。實體檔案名稱 "C:\database\MYDBNAME_Log.LDF"...
2011年9月7日 星期三
使用Triple DES 加密字串
最近因為有需求,需要使用加密的方法來讓連線的帳號密碼用成亂碼來連線。
因此找到了使用 Tripple DES的方式加密字串。
1. 首先,先寄建立Decrypter與Encrypter
package security.crypto;
import java.io.UnsupportedEncodingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.SecretKey;
public classDecrypter {
Cipher decipher;
public Decrypter(SecretKey key) {
try {
decipher = Cipher.getInstance("DESede");
decipher.init(Cipher.DECRYPT_MODE, key);
}...
2011年8月13日 星期六
自動擷取憑證與Https頁面資料
在寫JSP使用Redirect的時候,如果是導向HTTPS頁面,也可能發生某些異常。
1. java.net.MalformedURLException: unknown protocol https
ANS: 使用的方法不是 HTTPS 的方式,將jce.jar與jsse.jar導入classpath,在使用https連線函式
2. 頁面停留過久
ANS: 就像打開IE一樣,會叫你點選接受憑證,這時用程式跑就自動停住了,居然不會timeout
<%@ page import="java.net.URL"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.net.URLConnection"%>
<%@ page import="javax.net.ssl.HttpsURLConnection"%>
<%@ page import="javax.net.ssl.HostnameVerifier"%>
<%@...
【CMD】建立以日期為主的資料夾
Windows XP & 2003 system
c:\> md d:\%Date:~0,4%%Date:~5,2%%Date:~8,2%
Windows 2k system
c:\> md d:\%Date:~4,4%%Date:~9,2%%Date:~12,2%
...
Microsoft JDBC 連接 URL 範例
在下列範例中,範例程式碼會在連接 URL 中設定各種連接屬性,然後呼叫 DriverManager 類別的 getConnection 方法,以傳回SQLServerConnection 物件。
接著,範例程式碼會使用 SQLServerConnection 物件的 createStatement 方法建立 SQLServerStatement 物件,然後呼叫 executeQuery方法來執行 SQL 陳述式。
最後,範例會使用從 executeQuery 方法傳回的 SQLServerResultSet 物件,重複執行 SQL 陳述式所傳回的結果。
import java.sql.*;
public class connectURL {
public static void main(String[] args)...
Microsoft JDBC for MS SQL Server 系統需求
JDBC
for SQL Server 2000
JAR 描
述
msbase.jar
mssqlserver.jar
msutil.jar jar
類別庫會提供 MSSQL2000 JDBC DRIVER 的支援。
JDBC
Driver支援 JRE 1.4,但連到SQL 2005 或 2008會出現異常。
JDBC
2.0 for SQL Server 2005
JAR 描
述
sqljdbc.jar sqljdbc.jar
類別庫會提供 JDBC 2.0 的支援。
sqljdbc.jar
類別庫需要使用 Java Runtime Environment (JRE) 5.0 版。 如果您在...
static final long serialVersionUID用途
private static final long serialVersionUID = 1L 此變量有什麼用途?
一般在什麼情況下加入這樣的變量?它的值有什麼要求?
你可以這樣理解:
serialVersionUID用來表明類的不同版本間的兼容性。如果你修改了此類,要修改此值。否則以前用老版本的類序列化的類恢復時會出錯。為了在反序列化時,確保類版本的兼容性,最好在每個要序列化的類中加入private static final long serialVersionUID這個屬性,具體數值自己定義。
在警告上點左鍵就可以自動添加。當然也可以去掉警告。設置:Window-->Preferences-->Java,將serializable class without serialVersionUID的設置由warning改為Ignore。然後Eclipse會重新編譯程序,那些警告信息也就消失了。
serialVersionUID用來作為Java對象序列化中的版本標示之用;...
SQL中的GETDATE() 轉換函式與產生結果
--Sql Server 中一个非常强大的日期格式化函数
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(),...
2011年8月12日 星期五
重新命名資料庫名稱
要重命名資料庫中是非常普遍的使用
SQL Server 2000的用戶:
EXEC sp_renameDB 'oldDB' , 'newDB'
SQL Server 2005支持向後兼容, 使用ALTER DATABASE修改名稱代替
ALTER DATABASE MODIFY NAME
通常會出現錯誤:資料庫無法獨占鎖定來進行這個動作。
通用方法:
1. 卸載資料庫
2. 附載資料庫,這時候可以改資料庫名子!
3. 把之前的使用者的對應附加上去(可能會有孤兒...
2011年8月9日 星期二
SQL Server Studio Manager 抓取錯誤訊息
直接利用 PRINT使用下列函式,即可印出錯誤訊息。
USE AdventureWorks2008R2;
GO
-- Verify that the stored procedure does not already exist.
IF OBJECT_ID ( 'usp_GetErrorInfo', 'P' ) IS NOT NULL
DROP PROCEDURE usp_GetErrorInfo;
GO
-- Create procedure to retrieve error information.
CREATE PROCEDURE usp_GetErrorInfo
AS
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
...
2011年8月8日 星期一
解決 MS-SQL Server 附加資料庫導致孤兒問題
附加資料庫後,資料庫的登入名稱變成空白,且無法使用新建的相同名稱指定登入。
可使用下面指令來指定登入的使用者。
USE database1
exec sp_change_users_login 'update_one','OneUser','LoginOneUs...