Client Reporting Engine のセットアップ
大規模なレポートのクエリを行うと、Zen サーバーに大きな負荷がかかるため、小さなトランザクションから成る標準的なストリームでもリソースの競合が発生する可能性があります。レポート実行の負荷を減らすには、プロキシ サーバーとして Zen Client Reporting Engine をセットアップします。この 64 ビット エンジンは、Zen リレーショナル エンジンと Zen クライアント キャッシュ エンジンの機能を組み合わせた特別なものであり、SQL レポート ジョブによるサーバー動作への影響を低減するために、ジョブの負荷を削減することができます。大規模なレポートのクエリをサーバーでなくレポート エンジンで実行すると、通常の実稼働オペレーションのサーバー パフォーマンスを向上させることができます。
Client Reporting Engine の設定では、すべてのデータのマスター コピーが存在する Zen サーバーの名前が「ストレージ サーバー」として使用されます。Client Reporting Engine を設定すると、そのマスター ストレージ サーバー上にあるのと同じデータベースがすべて SQL クライアントにも公開されるため、すべての SQL クエリをこのレポート エンジンに送信できます。Reporting Engine を使用するには、クエリやその他の関連する要求がサーバーでなくこのクライアントに送信されるように設計を変更する必要があります。
Zen Client Reporting Engine には、キャッシュの使用状況を追跡するための Windows パフォーマンス カウンターが搭載されています。Zen Enterprise Server と Cloud Server でも Windows パフォーマンス カウンターが搭載されるようになり、アプリケーションの直接の使用と、レポート エンジンなどリモートのキャッシュ エンジンによるアプリケーションの使用を識別できるようになりました。さらに、キャッシュ ヒット率のカウンターが、累計のアクティビティでなく最近のアクティビティを反映するように変更されました。
メモ: この特別なエンジンは、大部分のデータベース オペレーションを正常に実行できるものの、読み取りが主体のレポート ジョブ向けに設計されています。Client Reporting Engine は、Btrieve アプリケーションにより、常時接続のクライアント キャッシュ エンジンとして使用することができます。
以下のセクションでは、設定で使用されるサーバーおよびクライアントのプロパティについて説明します。
Client Reporting Engine のサーバー プロパティ
Zen Client Reporting Engine には 2 つの追加サーバー プロパティがあります。
• 記憶域サーバー - Client Reporting Engine がマスター データ コピーとして使用する Zen サーバー インストレーションの名前。このインストレーションには Windows や Linux のパーソナル コンピューターまたはサーバーを指定することができます。
• TEMPDB ディレクトリ - Client Reporting Engine に使用させる一時的なローカル データベースの場所。デフォルトのパスは C:\ProgramData\Actian\Zen\tempdb で、大半のシステムでは、この場所で十分です。
これら 2 つの設定は、Zen の他のエディションでは使用されません。
Client Reporting Engine の使用を開始するには、記憶域サーバーの名前を設定すれば済みます。[記憶域サーバー]は、このクライアント上でローカルにキャッシュされるデータでなく、データ ファイルの永続的な場所を参照します。TEMPDB テーブルの参照はローカルのレポート エンジンで処理されることに注意してください。
その他のサーバー プロパティには、デフォルト値で使用できるものと、不要なため削除されたものがあります。サーバー プロパティについては、『
Advanced Operations Guide』の
全プラットフォームにおけるサーバー設定プロパティで説明します。
記憶域サーバーを設定するには
1. ZenCC でエンジン ノードを展開します。
2. Client Reporting Engine の名前を右クリックして[プロパティ]を選択します。
3. プロパティ ウィンドウで[アクセス]をクリックします。
4. [記憶域サーバー]フィールドに、サポートする Zen サーバーの名前または IP アドレスを入力します。この値では、大文字と小文字は区別されません。
5. [適用]をクリックします。
6. エンジンを再起動する必要があるというメッセージが ZenCC によって表示されたら、[OK]をクリックします。
7. [OK]をクリックして、プロパティ ウィンドウを閉じます。
8. サービス ノードを展開し、[Zen Reporting Engine]を右クリックし、[サービスの再起動]を選択します。
9. Client Reporting Engine が接続され正しく動作していることを確認するには、そのエンジン ノードを展開します。レポート エンジン名の下に、記憶域サーバー データベースの一覧が表示されます。
一時データベース ディレクトリを変更するには
1. ZenCCでエンジン ノードを展開します。
2. Client Reporting Engine の名前を右クリックして[プロパティ]を選択します。
3. プロパティ ウィンドウで[ディレクトリ]をクリックします。
4. [TEMPDB ディレクトリ]フィールドに新しいパスを入力します。パスが指す場所は、Client Reporting Engine が実行されているシステム上に存在している必要があります。
5. [適用]をクリックします。
6. エンジンを再起動する必要があるというメッセージが ZenCC によって表示されたら、[OK]をクリックします。
7. [OK]をクリックして、プロパティ ウィンドウを閉じます。
8. サービス ノードを展開し、[Zen Reporting Engine]を右クリックし、[サービスの再起動]を選択します。
Client Reporting Engine のクライアント プロパティ
Zen Client Reporting Engine には、代表的なクライアント プロパティのサブセットが設定されています。以下の設定グループは表示されません。これらはサーバー設定で選択可能か、または Client Reporting Engine には不要なためです。
• キャッシュ エンジン - Client Reporting Engine のサーバー プロパティの[パフォーマンス]グループにあり、キャッシュ サイズを変更できます。
• キャッシュ エンジンのデバッグ - Client Reporting Engine のサーバー プロパティの[デバッグ]グループにあり、トレース設定とデバッグ設定を変更できます。
• パフォーマンス チューニング -[キャッシュ エンジンの使用]設定は常にオンであるため、この設定と[デバッグ]グループは変更できません。
通常は、これら以外のクライアント プロパティのデフォルト値により、Client Reporting Engine を円滑に動作させることができます。クライアント プロパティについては、『
Advanced Operations Guide』の
Windows クライアント設定プロパティで説明します。
Client Reporting Engine のデータベースのプロパティ
DefaultDB や TempDB など Zen の内部的なデータベースの設定を変更しないでください。ほとんどの場合は、ZenCC により、Client Reporting Engine ではデータベースのプロパティを変更できないというメッセージや警告が発行されます。
データベースのプロパティを管理するには、記憶域サーバー上で ZenCC または bcfg を使用します。ZenCC で、この設定は Client Reporting Engine のサーバー プロパティ ウィンドウの[アクセス]に表示されます。
Client Reporting Engine に関する制限事項
機能をカスタマイズした Client Reporting Engine は、Zen サーバーのプロキシ エンジンとしての動作のために、SQL クエリに関して次のような制限事項があります。
• CREATE DATABASE、DROP DATABASE、MODIFY DATABASE を使用できない。
• データベースのパスやコード ページを変更できない。
• データベースのプロパティでセキュリティ設定グループが無効にされるため、SET SECURITY を使用しようとしてもエラーが返される。
• オルタネート コレーティング シーケンス ファイルを使ってテーブルを作成することができない。
• オルタネート コレーティング シーケンス ファイルを COLLATE 句に指定して参照することができない。
• USING 句に指定したパスが既に存在しないか、相対パスであるテーブルを作成できない。作成しようとすると、ファイル名が無効であるというメッセージが表示されます。
• セキュリティで保護された V2 データベースではビューやストアド プロシージャを作成できない。記憶域サーバーの Zen エンジンでは、このオペレーション中にそのような新しいオブジェクトの権限を設定する必要があります。この設定作業が Client Reporting Engine からは行えないためです。設定しようとすると、セキュリティをチェックまたは設定する際にエラーが発生したというメッセージが返されます。
これらの制限事項に対する回避策は、SQL クエリをローカルの記憶域サーバーで実行するか、または ZenCC や bcfg などのツールを介して記憶域サーバーに接続することでリモートの Client Reporting Engine から SQL クエリを実行することです。
さらに、個々の Client Reporting Engine に対して複数のアプリケーションを実行している場合、最大のキャッシュの同期を確保するには、すべての SQL アプリケーションがその Client Reporting Engine を介して接続するようにしてください。ただし、記憶域サーバーに直接接続する必要がある特定の操作については例外です。
DDF Builder は Client Reporting Engine のインストールでは無効になっています。DDF Builder を使ってデータベースにアクセスしようとすると、データベースが変更できないというメッセージが表示されます。
Windows IoT Core や Nano Server、および Raspbian では Zen サーバーを記憶域サーバーとして使用することはできません。
Btrieve キャッシュ エンジンとしての Client Reporting Engine の使用
Client Reporting Engine は、記憶域サーバーにあるファイルか、または別のリモートの Zen データベース エンジンにあるファイルを開く際、クライアント キャッシュ エンジンとして動作します。
Btrieve インターフェイスは、Client Reporting Engine と同じコンピューターにあるファイルを開くことはできません。開こうとすると、失敗するため、Btrieve セッションをリセットする必要があります。
サービスとしてのクライアント キャッシュ エンジンの実行に当てはまる管理上必要なすべての作業は、Client Reporting Engine の実行にも当てはまります。たとえば、サービスを実行する際に使用するアカウントを変更したり、Client Reporting Engine と一緒に Btrieve アプリケーションを使用するように pvnetpass を設定したりすることが必要になる可能性があります。このような必要作業は、SQL のみを使ってレポートを作成するアプリケーションには当てはまりません。
Client Reporting Engine と DTI API の併用
次の DTI 呼び出し、またそれと同等の DTO は、ローカルの Client Reporting Engine で使用されると失敗します。
• PvCopyDatabase()
• PvCreateDatabase()
• PvCreateDatabase2()
• PvDropDatabase()
• PvModifyDatabase()
• PvModifyDatabase2()
• PvSecureDatabase()
• PvUnSecureDatabase