Shutdown(OracleDBShutdownMode, bool)
このメソッドは、指定したモードでデータベース・インスタンスを停止します。
宣言
//C# public void Shutdown(OracleDBShutdownMode shutdownMode, bool bCloseDismountAndFinalize);
パラメータ
-
shutdownMode
OracleDBShutdownMode
の列挙値。 -
bCloseDismountAndFinalize
データベースをクローズ、ディスマウントおよびファイナライズするのかどうかを示す
boolean
。
例外
OracleException
- データベースの停止要求に失敗しました。
備考
このメソッドは、指定したモードでデータベース・インスタンスを停止します。bCloseDismountAndFinalize
パラメータがtrue
である場合、メソッドはOracleDBShutdownMode.Final
モードでデータベースをクローズおよびディスマウントし、インスタンスを停止します。
bCloseDismountAndFinalize
パラメータがtrue
で、データベースがすでに適切にクローズ、ディスマウントまたは停止されている場合、このメソッドは例外をスローしません。その他のエラーが発生した場合、例外がスローされます。
bCloseDismountAndFinalize
パラメータがfalse
である場合、アプリケーションで明示的にデータベースをクローズおよびディスマウントする必要があります。これを行うことで、OracleDBShutdownMode.Final
モードでメソッドを再度呼び出して適切にデータベースを停止できるようになります。たとえば、db
がOracleDatabase
クラスのインスタンスである場合、アプリケーションでは次が呼び出されます。
-
db.Shutdown(OracleDBShutdownMode.Default, false);
-
db.ExecuteNonQuery("ALTER DATABASE CLOSE NORMAL");
-
db.ExecuteNonQuery("ALTER DATABASE DISMOUNT");
-
db.Shutdown(OracleDBShutdownMode.Final);
注意:
-
最初にメソッドを呼び出すときに、
shutdownMode
としてOracleDBShutdownMode.Final
列挙値を使用しないでください。データベースがすでにクローズおよびディスマウントされている場合にのみOracleDBShutdownMode.Final
モードを使用してください。それ以外の場合、メソッドは無期限に待機する可能性があります。 -
指定した
shutdownMode
がOracleDBShutdownMode.Final
である場合、データベースがクローズおよびディスマウントされている必要があるため、bCloseDismountAndFinalize
入力パラメータの値は無視されます。
指定したshutdownMode
がOracleDBShutdownMode.Abort
である場合、Abort
モードではデータベースがクローズ、ディスマウントおよびファイナライズされている必要があるため、bCloseDismountAndFinalize
入力パラメータの値は無視されます。
Oracle Real Application Clusters(Oracle RAC)データベースに対してこのメソッドが呼び出されると、OracleDatabase
オブジェクトが接続されているデータベース・インスタンスのみが停止します。
例
using System; using Oracle.DataAccess.Client; namespace Shutdown { class Test { static void Main() { OracleConnection con = null; OracleDatabase db = null; string constring = "user id=scott;password=tiger;data source=oracle;" + "pooling=false;dba privilege=sysdba"; try { // Open a connection to see if the DB is up; con = new OracleConnection(constring); con.Open(); Console.WriteLine("The Oracle database is currently up."); // If open succeeds, we know that the database is up. // We have to dispose the connection so that we can // shutdown the database. con.Dispose(); // Shutdown the database db = new OracleDatabase(constring); db.Shutdown(); Console.WriteLine("The Oracle database is shut down."); // Executing Shutdown() above is the same as the following: // db.Shutdown(OracleDBShutdownMode.Default, false); // db.ExecuteNonQuery("ALTER DATABASE CLOSE NORMAL"); // db.ExecuteNonQuery("ALTER DATABASE DISMOUNT"); // db.Shutdown(OracleDBShutdownMode.Final); // Dispose the OracleDatabase object db.Dispose(); } catch (OracleException ex) { Console.WriteLine("An error has occurred: {0}", ex.Message); } } } }