2010-09-29 43 views
2

我有運行的連接到DB2數據庫的ETL一個C#.NET程序。有時,這種數據庫關閉,所以我想在應用程序的開始做健康檢查,看看數據庫是可用的,實際上並沒有調用任何存儲過程或推任何數據。以下是我現在使用的代碼示例:C#:DB2測試可用連接第一

OdbcConnection myODBCConnection = new OdbcConnection("DSN=DB2AA;UID=ABCD;PWD=1234;"); 
OdbcCommand myODBCCommand = new OdbcCommand(); 
myODBCCommand.CommandType = CommandType.StoredProcedure; 
myODBCCommand.CommandText = "{CALL SYSPROC.ABC001(?, ?)}"; 
myODBCCommand.Parameters.Add("INPUT", OdbcType.VarChar, 500); 
myODBCCommand.Parameters["INPUT"] = myString 

myODBCCommand.Connection = myODBCConnection 
myODBCConnection.Open(); 

OdbcTransaction myTrans; 
myTrans = myODBCConnection.BeginTransaction(); 
myODBCCommand.Transaction = myTrans; 
myTrans.Commit(); 
myODBCCommand.ExecuteNonQuery(); 
myODBCConnection.Close(); 

什麼是測試,而無需實際推動任何數據這方面最好的方法是什麼?

回答

2

您可以簡單地運行一些innoccuous選擇查詢來檢查,看看是否該數據庫是可用的。

你可以嘗試做的簡單的東西:

Select 1 

或者

Select getdate() 

這些簡單的查詢,甚至不碰任何表,但將只返回如果RDBMS正在運行。

注:這些例子是用於SQL Server,但對於DB2可能會奏效。我沒有做現場檢查在DB2但儘管類似的概念,應該是可行的。

注2:在你的代碼仔細一看後,你要真有/需要做的是檢查你的ODBC連接的。開()調用的成功。