我有一个运行ETL的C#.NET程序,该ETL连接到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();
在不实际推送任何数据的情况下测试此连接的最佳方法是什么?
最佳答案
您可以简单地运行一些无害的select查询来检查数据库是否可用。
您可以尝试做一些简单的事情:
Select 1
要么
Select getdate()
这些简单的查询甚至不涉及任何表,但是仅在rdbms运行时才返回。
注意:这些示例适用于sql server,但可能适用于db2。尽管类似的概念应该可行,但我不必对db2进行实时检查。
注意2:仔细检查代码后,您真正需要做的就是检查odbc连接的.Open()调用是否成功。
关于c# - C#:DB2测试可用连接优先,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3825530/