when i test several conection drivers, i found that, the direct connection failed.
Code: Select all
public void TestMsDriverConnection() {
Console.WriteLine( "Microsoft Oracle Dirver" );
string connectionString = "Data Source=ora9i;User Id=scott;Password=tiger";
System.Data.OracleClient.OracleConnection connection = new System.Data.OracleClient.OracleConnection( connectionString );
try {
connection.Open();
Console.WriteLine( "Data Source:\t{0}\nServer Version:\t{1}\nConnection State:\t{2}\nContainer:\t\t{3}\nSite:\t\t{4}\n\n", connection.DataSource, connection.ServerVersion, connection.State, connection.Container, connection.Site );
} catch( Exception e ) {
Console.WriteLine( e.Message );
Console.WriteLine( e.StackTrace );
} finally {
connection.Close();
}
}
public void TestOracleDriverConnection() {
Console.WriteLine( "Oracle Dirver" );
string connectionString = "Data Source=ora9i;User Id=scott;Password=tiger";
Oracle.DataAccess.Client.OracleConnection connection = new Oracle.DataAccess.Client.OracleConnection( connectionString );
try {
connection.Open();
Console.WriteLine( "Data Source:\t{0}\nServer Version:\t{1}\nConnection State:\t{2}\nContainer:\t\t{3}\nSite:\t\t{4}\n\n", connection.DataSource, connection.ServerVersion, connection.State, connection.Container, connection.Site );
} catch( Exception e ) {
Console.WriteLine( e.Message );
Console.WriteLine( e.StackTrace );
} finally {
connection.Close();
}
}
public void TestDirectConnection() {
Console.WriteLine( "CoreLab Direct Driver" );
string connectionString = "User Id=Scott;Password=tiger;Direct=true;Server=202.38.73.207;Port=1521;SID=ora9i";
CoreLab.Oracle.OracleConnection connection = new CoreLab.Oracle.OracleConnection( connectionString );
try {
connection.Open();
Console.WriteLine( "Data Source:\t{0}\nServer Version:\t{1}\nConnection State:\t{2}\nContainer:\t\t{3}\nSite:\t\t{4}\n\n", connection.DataSource, connection.ServerVersion, connection.State, connection.Container, connection.Site );
} catch( Exception e ) {
Console.WriteLine( e.Message );
Console.WriteLine( e.StackTrace );
} finally {
connection.Close();
}
}
if i invoke ms and corelab, or oracle and corelab, it succeed.
what's the reason?