データベース管理操作
グリッド環境では、データベース管理操作(
dbCreate
/dbDestroy
、dbLoad
/dbUnload
、dbOpen
/dbClose
)はデフォルトでは非同期に実行されます。一般的には、このようにすることをお薦めします。これは、このような操作はアトミックでなく、時間がかかる場合があるためです。大規模なグリッドでは、データベースをロードする場合、多くのホストではただちに正常に完了するものの、一部のホストでは少し時間がかかり、また別のホストではかなり時間がかかることもあります。実際、操作が実行されたときにホストが停止していて、そのためにそのホストがバックアップされるまで操作を実行できないことがあります。
デフォルトでは、これらのデータベース操作のコマンドは、操作の完了を待機しないで戻りますが、タイムアウトあり、またはなしで、必要に応じて待機することもできます。タイムアウトを設定して待機する場合、コマンドはすべてのインスタンスで完了するか、タイムアウトに達するまで戻りません。タイムアウトなしで待機する場合、インスタンスが停止していると、コマンドは戻りません。各方法には、グリッドの大きさなどの要因によってそれぞれ長所と短所があります。大規模なグリッドではすべてのインスタンスで操作が完了する前に処理を進めることを選択する場合がある一方、小規模なグリッドではすべてのインスタンスで完了するまで待機した方が合理的な場合があります。
データベースの各要素などのデータベースの状態はTimesTen Scaleoutによって追跡されますが、操作のステータスをチェック(dbStatus
コマンドを使用、また必要に応じて-all
オプションを使用して詳細情報をチェック)して、操作を完了したインスタンスの数を確認することはユーザーに任されています。特に、データベースをロードした後、データベースをオープンしてユーザーがアクセスを開始できるだけの十分なインスタンスにロードされたかどうかを判断するために、ステータス情報を使用できます。
いずれか、またはすべてのインスタンスで操作を取り消すコマンドはありません。