リモート サーバー上の Analysis Services にデータベースがあります。これには、別のリモート サーバーにある別のデータベースのデータ ソースが含まれています。
C# を使用して、2 つのデータベース間のデータベース接続をチェックする接続テストを作成しようとしています。
ADOMD.NET を使用してこれを行うことができませんでした。私は現在、これを行うために SMO を使用することを検討していますが、これまでのところ運がありません。
アドバイスや提案をいただければ幸いです。
更新:
さらに調査した結果、以下のテストを思いつきました (後で try..catch ブロックとアサーションを追加するつもりであることに注意してください)。
また、これはC:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.AnalysisServices.DLLを使用して、Server、Database、および DataSource クラスにアクセスします。
class ConnectivityTests
{
// Variables
String serverName = "";
String databaseName = "";
String dataSourceName = "";
[Test]
public void TestDataSourceConnection()
{
// Creates an instance of the Server
Server server = new Server();
server.Connect(serverName);
// Gets the Database from the Server
Database database = server.Databases[databaseName];
// Get the DataSource from the Database
DataSource dataSource = database.DataSources.FindByName(dataSourceName);
// Attempt to open a connection to the dataSource. Fail test if unsuccessful
OleDbConnection connection = new OleDbConnection(dataSource.ConnectionString);
try
{
connection.Open();
}
catch (OleDbException e)
{
Assert.Fail(e.ToString());
}
finally
{
connection.Close();
}
}
このテストで十分だと思います (try..catch ブロックとアサーションを追加したら)。テストに合格した場合、私のマシンと両方のサーバーの間に接続の問題がないことを意味します。これは、サーバー間に接続の問題がないことを意味します。
ただし、2 つのサーバー間の接続を直接テストする方法を見つけることができませんでした。誰かがこれを行う方法を知っているかどうかに興味があります。