C#:DB2测试可用连接优先

时间:2010-09-29 20:21:02

标签: c# .net odbc db2

我有一个运行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();

在不实际推送任何数据的情况下测试此连接的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以简单地运行一些无差别的选择查询来检查数据库是否可用。

你可以尝试做一些简单的事情:

Select 1

或者

Select getdate()

这些简单的查询甚至不会触及任何表,但只有在rdbms正在运行时才会返回。

注意:这些示例适用于sql server,但可能适用于db2。我没有必要对db2进行实时检查,尽管类似的概念应该是可行的。

注意2:仔细查看代码后,您真正需要做的就是检查odbc连接的.Open()调用是否成功。