RDBディクショナリおよびRDBディレクトリファイルに入出力障害が発生した場合、Symfoware/RDBは、自動的にフォールバック運用になります。自動的なフォールバック運用では、新規のアプリケーションの実行や、実行中のアプリケーションから新規の資源に対してアクセスすることができませんが、現在運用中のアプリケーションは動作可能です。さらに、RDBディクショナリおよびRDBディレクトリファイルの情報をメモリに常駐することにより、フォールバック運用中でも新規のアプリケーションの実行や、実行中のアプリケーションから新規の資源に対してアクセスすることが可能となります。
フォールバック運用には、以下の3つの運用方法があります。
RDBDICONBUFFERの指定によるフォールバック運用
rdbpldicコマンドによるフォールバック運用
メモリ常駐化を行わないフォールバック運用
リカバリ操作の手順とリカバリ操作例については、“11.2 RDBディクショナリおよびRDBディレクトリファイルのリカバリ”を参照してください。
入出力障害発生時のアプリケーションの動作と、フォールバック運用の関係を以下に示します。
入出力障害発生時の動作 | 運用方法 |
---|---|
すべてのアプリケーションが動作可能 | RDBDICONBUFFERの指定によるフォールバック運用 |
特定のアプリケーションは動作可能 | rdbpldicコマンドによるフォールバック運用 |
現在運用中のアプリケーションは動作可能 | メモリ常駐化を行わないフォールバック運用 |
メモリ常駐化を行う、RDBDICONBUFFERによるフォールバック運用とrdbpldicコマンドによるフォールバック運用の指定方法を説明します。
すべてのアプリケーションを実行可能とする場合は、RDBDICONBUFFERの指定によるフォールバック運用を行います。
RDB構成パラメタファイルのRDBDICONBUFFERに“YES”を指定し、rdbstartコマンドを実行すると、RDBディクショナリおよびRDBディレクトリファイルがメモリに常駐化されます。メモリ常駐化は、rdbstartコマンドを実行したときに、非同期に行われます。
メモリ常駐化が完了した後は、RDBディクショナリおよびRDBディレクトリファイルに障害が発生しても、すべての資源に対してフォールバック運用をすることができます。メモリ常駐化の完了は、rdbprdicコマンドのmオプションで確認してください。
RDBDICONBUFFERの指定によるフォールバック運用は、定義されている表、DSIおよびプロシジャルーチンなどの数に応じてメモリを使用します。定義されている表、DSIおよびプロシジャルーチンなどが非常に多い場合には、多くのメモリを必要としますので、注意が必要です。RDBディクショナリとRDBディレクトリファイルの見積りを行い、メモリが十分にあることを確認してから指定してください。メモリに常駐化する場合に必要となるメモリの使用量は、RDBディクショナリとRDBディレクトリファイルの容量と同じです。十分なメモリを用意できない場合は、rdbpldicコマンドによるフォールバック運用を行ってください。
RDBディクショナリおよびRDBディレクトリファイルの容量見積り、およびrdbprdicコマンドの詳細については、“12.8 RDBディクショナリのメモリ常駐化の確認”を参照してください。
参照
RDBDICONBUFFERの指定方法の詳細については、“セットアップガイド”を参照してください。
特定のアプリケーションを実行可能とする場合は、rdbpldicコマンドによるフォールバック運用を行います。
rdbpldicコマンドにFオプションおよびアクセス対象の資源を指定すると、アクセス対象に関するRDBデクショナリおよびRDBディレクトリファイルの情報がメモリに展開されます。
メモリ上に定義情報を展開した資源に対しては、フォールバック運用をすることができます。ただし、RDBディクショナリへのSQLアクセスは実行できません。また、フォールバック運用中に自動容量拡張が発生した場合は、自動容量拡張がエラーとなり、システムメッセージ“qdg12208u”および“qdg02869u”が出力されます。自動容量拡張がエラーになると、アプリケーションの実行が不可能な状態となってしまうため、フォールバック運用になった場合は、すみやかにRDBディクショナリおよびRDBディレクトリファイルのリカバリを行ってください。
リカバリ操作の手順とリカバリ操作例につていは、“11.2 RDBディクショナリおよびRDBディレクトリファイルのリカバリ”を参照してください。
RDBディクショナリへのSQLアクセスやフォールバック運用中の自動容量拡張を保証する必要がある場合は、RDBDICONBUFFERの指定によるフォールバック運用を行ってください。
rdbpldicコマンドによるフォールバック運用を行う場合の指定例を以下に示します。
$ rdbpldic -F -U -d 在庫管理DB -T