我有一个运行ETL的C#.NET程序,它连接到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();
在不实际推送任何数据的情况下测试此连接的最佳方法是什么?
答案 0 :(得分:2)
您可以简单地运行一些无差别的选择查询来检查数据库是否可用。
你可以尝试做一些简单的事情:
Select 1
或者
Select getdate()
这些简单的查询甚至不会触及任何表,但只有在rdbms正在运行时才会返回。
注意:这些示例适用于sql server,但可能适用于db2。我没有必要对db2进行实时检查,尽管类似的概念应该是可行的。
注意2:仔细查看代码后,您真正需要做的就是检查odbc连接的.Open()调用是否成功。