2012-09-24 5 views
4

원격 서버의 Analysis Services에 데이터베이스가 있습니다. 여기에는 다른 원격 서버에있는 다른 데이터베이스의 데이터 소스가 포함됩니다.C#을 사용하여 SSAS에서 데이터 원본에 대한 연결을 테스트하는 방법

두 데이터베이스 간의 데이터베이스 연결을 확인하는 C#을 사용하여 연결 테스트를 작성하려고합니다.

ADOMD.NET을 사용하여이 작업을 수행 할 수 없었습니다. 나는 현재 SMO를 사용하여 이것을보고 있지만 지금까지 어떤 행운이 없었습니다.

나는 조언이나 제안을 크게 부탁드립니다.

업데이트 : 추가 연구 후, 나는 (내가 나중에에서는 try..catch 블록 및 어설 션을 추가하려는 있습니다) 아래의 테스트와 함께 올라와있다
. 서버, 데이터베이스 및 데이터 소스 클래스에 액세스 할 수 \ 프로그램 Files \ Microsoft SQL 서버 \ 100 \ SDK \ 어셈블리 \ Microsoft.AnalysisServices.DLL :

또한,이 C를 사용합니다.

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 블록 어설 션을 추가 한 후에)이 테스트 내 테스트를 위해 충분하다고 생각합니다. 테스트가 통과되면 내 컴퓨터와 두 서버 사이에 연결 문제가 없음을 의미합니다. 이는 서버간에 연결 문제가 없어야 함을 의미합니다.

그러나 두 서버 간의 연결을 직접 테스트하는 방법을 찾지 못했고 누군가가이 작업을 수행하는 방법을 알고 있다면 관심이 있습니다.

+1

무엇이 문제입니까? 귀하의 코드는 일부 연결 문제를 테스트 할 때 사용했던 코드와 매우 유사합니다. 지금은 Microsoft.AnalysisServices.AdomdClient의 AdomdConnection을 사용하고 있지만 사용중인 Server 클래스도 사용했습니다. –

+0

@AnttiSimonen 내가 추가 한 코드가 제대로 작동합니다. 내 컴퓨터와 DBServer, 내 컴퓨터 및 데이터웨어 하우스 간의 연결을 테스트합니다. DBServer와 데이터웨어 하우스 간의 연결을 테스트 할 수있는 방법이 있다면 관심이있었습니다. DBServer에 파일을 배치하지 않고 실제로 이것이 가능하다고 생각하지 않습니다. – acatt

+0

@AnttiSimonen 다른 누군가가 비슷한 방법으로 연결 문제를 테스트하고 있다는 것을 알고 기쁩니다. 감사! – acatt

답변

1

이 연결 테스트를 수행하는 가장 좋은 해결책은 다음과 같습니다. 참고로 Microsoft.AnalysisServices.DLL을 추가해야합니다.

class ConnectivityTests 
{ 
    // Variables 
    String serverName = ""; 
    String databaseName = ""; 
    String dataSourceName = ""; 

    [Test] 
    public void TestDataSourceConnection() 
    { 
     try 
     { 

      // 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); 

      connection.Open(); 
     } 
     catch (Exception e) 
     { 
      Assert.Fail(e.ToString()); 
     } 
     finally 
     { 
      connection.Close(); 
     } 

    } 
} 
+0

AS가 로컬 SQL 인스턴스에있을 때 작동합니다. 그러나 원격 SQL Server에 배포 된 SSAS에 연결하려면 어떻게해야합니까? 내 원격 서버 이름은 다음과 같습니다.'OLAPServer.Connect ("serverIP : Port \\ instanceName");' –