基本的なトラブルシューティング
問題を特定して解決方法を探す手順
以下のセクションでは、よく発生する問題をトラブルシュートおよび解決するための情報を提供します。
一般的なトラブルシューティング
以下の項目は、発生する可能性がある特定の状況に対する基本的なトラブルシューティングを提供します。
データにアクセスしようとしたときに、1114 というエラーを受け取りました。
または
接続文字列に ServerDSN または DBQ が見つからなかったというエラー メッセージを受け取りました。
ZenCC では、クライアント DSN なしの接続を使用してリモート サーバー データ ソース(DSN)にアクセスできます。Microsoft Excel および Access などの多くのデスクトップ アプリケーションではこれが行えません。ローカル コンピューター上でクライアント DSN を作成し、リモート サーバー DSN を使用してサーバー上のデータにアクセスできるようにします。クライアント DSN を作成するには、
Windows クライアントからのクライアント アクセスの設定の手順に従ってください。最初に、アクセスするサーバー上にサーバー DSN が存在していることを確認する必要があります。
エンジン コンポーネントのバージョンがクライアント コンポーネントのバージョンと異なっているというメッセージを受け取りました。
クライアントのリクエスターが初めてエンジンに接続すると、クライアントのリクエスターは内部ルーター バージョンと Btrieve Version (26) 呼び出しで返された値を比較します。クライアントのバージョンがエンジンのバージョンよりも古い場合は、クライアント システム上でダイアログ ボックスが開き、"エンジンのコンポーネントのバージョンがクライアントと異なります" というメッセージと、Zen System Analyzer(PSA)を実行するよう求める提案が表示されます。同じメッセージがクライアントの zen.log ファイルにも記録されます。
これは警告メッセージです。この状況では、クライアントはエンジンへの接続を妨げられることはありません。ただし、Actian Corporation が互換性を保証するのは、クライアントがデータベース エンジンと同じバージョンの場合のみです。このメッセージが表示されたときに、PSA の実行を行わずに古いクライアント コンポーネントを保持し、新しいクライアントをインストールした場合は、クライアントのバージョンがエンジンのバージョンと同じになるまで、製品が予期しない動作をすることが考えられます。
メモ:データベース エンジンと同じバージョンのクライアント リクエスターを使用することをお勧めします。通信するデータベース エンジンより古いバージョンのクライアント リクエスターを使用することもできます。ただし、アプリケーションで使用する SDK アクセス方法のタイプによっては、古いバージョンのリクエスターがデータベース エンジンで動作しないこともあります。アプリケーションはデータベース エンジンと通信できなくなります。そのような状況の場合は、データベース エンジンと同じバージョンのクライアント リクエスターを使用する必要があります。
データベース エンジンよりも新しいバージョンのクライアント リクエスターの場合、正しく機能するかどうかはわかりません。Actian Corporation では、新しいバージョンのクライアント リクエスターと古いバージョンのエンジンを一緒に使用した場合の動作については保証しません。このため、新しいバージョンのクライアント リクエスターと古いバージョンのエンジンを一緒に使用しないようにしてください。
サーバー エンジン上のデータを取得することができません
サーバー データにアクセスできないときは、ほとんどの場合以下のことが原因です。
•サーバー コンピューターがダウンしているか、またはネットワークが中断されています。
•サーバーへアクセスするオペレーティング システム権限を持っていないか、正しいネットワークにログインしていません。
•クライアント リクエスターが有効ではありません。
•データベース サーバー エンジンがインストールされていないか、実行されていません。
•データベース サーバーがリモート接続を受け付けません。
•リモート データベースが DSN セット アップをネットワーク上に通知していません。
•ローカル クライアントがサーバーにアクセスするための DSN を持っていません。
•クライアントまたはサーバー ネットワーク設定が間違っています。
►問題の実際の原因を調べるには
以下の手順に従って、基本的な設定に問題がないかどうかを確認しながら原因を特定してください。
1 Windows クライアントのオペレーティング システムから、ネットワーク情報にアクセスし、接続するサーバー コンピューターを見つけることができるかどうかを確かめます。サーバーを確認できれば、そのサーバーはダウンしておらず、ネットワークから切断されていないとすることができます。
2 次に、あるドライブをファイル サーバーにマップしてみるか、またはサーバー上の共有ファイルを開いてみます。ファイル サーバーへ接続し、マップされたドライブ上にファイルを作成できれば、オペレーティング システム権限を持っていることになります。また、正しいネットワークにログインしていることも確認できます。特定のネットワークにログインしていない場合、そのネットワーク上のサーバーにアクセスすることはできません。
メモ:サーバー上に新しいデータベースを作成する、リモート サーバー エンジンに対して Monitor を使用する、またはリモート サーバー エンジンを構成する場合には、サーバー上での管理者権限を持っているか、あるいは Zen_Admin のメンバーである必要があります。単純なドライブ割り当てや共有ファイルの読み取りでは、管理者権限を持っているかどうかはわかりません。つまり、ファイル サーバーへ接続することは可能でも、設定プロパティ、Monitor、またはデータベース作成ウィザードを使ってデータベース エンジンに接続することはできない場合があるということです。
3 次に考えられる原因は、クライアント リクエスターが無効である可能性です。
ZenCC を起動し、お使いのローカル クライアント コンピューターを示すアイコンを右クリックして[プロパティ]を選択します。[アクセス]をクリックし、[リモート MicroKernel エンジンの使用]が選択されていることを確認します。
これにより、リクエスターを問題の原因から除外できます。
4 次に、Zen がターゲット サーバー上にインストールされ、起動しているかどうかを調べます。
Windows で、[管理ツール]の[サービス]を開きます。Actian Zen Enterprise Server が開始されていることを確認します。停止していた場合は、サービスを開始します。
Linux または macOS では、データベース エンジンがインストールされているサーバー上のプロンプトで以下のコマンドを入力します。
ps -e | egrep 'mkded'
コマンドからの出力で、テキスト mkde を含む行が 1 行でも返されれば、Zen は起動しています。この行が表示されない場合は、root アカウントにログインし、Linux の場合は /etc/init.d/actianzen start、macOS の場合は /usr/local/actianzen/etc/init.d/actianzen start を入力して、データベース エンジンを起動する必要があります。
これで、サーバー エンジンがインストールされ、起動していることを確信できます。
5 次の手順では、サーバー エンジンがリモート通信リクエストを受け付けているかどうかを確認します。
ZenCC で、リモート データベース エンジンがリモート リクエストを受け付けるよう設定されていることを確認します。リモートで Windows 32 ビット サーバー エンジンにアクセスすることが困難な場合は、サーバーで直接設定を確認する必要があります。これを行うには、サーバーでの管理者権限を持っている(または、Zen_Admin グループのメンバーである)必要があります。ZenCC でサーバーを右クリックし、[プロパティ]を選択します。[アクセス]をクリックし、[リモート リクエストの受付]が選択されていることを確認します。
これにより、サーバーがリモート リクエストを受け付けていない可能性も除外できます。
6 メモ:アプリケーションで ODBC を使わず単に Btrieve アクセスのみを使用していた場合は、この手順を省きます。
これまでの確認事項をすべてクリアしても、まだデータにアクセスできない場合は、サーバー DSN がターゲット データ用に設定されていることを確認してください。ZenCC を使用して、そのサーバーのデータベース ノードを開き、存在するデータベースを調べます。データベースのいずれかが、アクセスするデータを示しているか確認します。確認できれば、サーバー DSN はデータ用に作成されています。
アクセスしたいデータは見つからないが、サーバー上にそのデータが存在していることがわかっているときは、DSN をそのデータ用に設定することが必要になる可能性が高いです。これを行うには、サーバーでの管理者権限を持っている(または、Zen_Admin グループのメンバーである)必要があります。
ODBC データベース アクセスの設定の手順に従い、既存のデータ ファイル用に DSN を設定します。
これで、サーバー DSN を問題の原因から除外できます。
7 メモ:アプリケーションで ODBC を使わず単に Btrieve アクセスのみを使用していた場合は、この手順を省きます。
上述のすべての手順を実行した上で、まだデータにアクセスできない場合は、次にリモート データのローカル クライアント DSN が設定されているかどうかを確認します。
ZenCC では、クライアント DSN なしの接続を使用してリモート サーバー データ ソース(DSN)にアクセスできます。Microsoft Excel および Access などの多くのデスクトップ アプリケーションではこれが行えません。ローカル コンピューター上でクライアント DSN を作成し、リモート サーバー DSN にアクセスできるようにします。クライアント DSN を作成するには、
Windows クライアントからのクライアント アクセスの設定の手順に従ってください。最初に、アクセスするサーバー上にサーバー DSN が存在していることを確認する必要があります。
これにより、クライアント DSN を問題の原因から除外できます。
8 最後に、クライアントとサーバーが適切なネットワーク プロトコル上で通信しているかどうかを確認します。デフォルトでは、Zen はすべてのネットワーク プロトコルを有効にした状態で出荷されるため、すべてのプロトコルの試行によって接続時間は遅くなりますが、最終的には接続します。アプリケーション ベンダーによっては、彼らのアプリケーションで通常使用されないプロトコルを無効にすることがあります。
最初に、ネットワーク上で使用しなければならないプロトコルを決定します。Linux または macOS ネットワーク、もしくは完全な Microsoft ネットワークの場合、適切なプロトコルは TCP/IP です。
適切なプロトコルがわかれば、サーバーがそのプロトコルを使用していることを確認する必要があります。これを行うには、サーバー オペレーティング システムでの管理者権限を持っている(または、Zen_Admin グループのメンバーである)必要があります。ZenCC でサーバー名を右クリックし、[プロパティ]を選択します。[通信プロトコル]をクリックします。[サポート プロトコル]の一覧に正しいプロトコルが表示されていて、TCP/IP が選択されていることを確認します。
クライアントが同じプロトコルを使用していることを確認します。ZenCC を使用し、ローカル クライアントを右クリックし、[プロパティ]を選択します。[通信プロトコル]をクリックし、[サポート プロトコル]で正しいプロトコルが選択されていることを確認してください。
9 以上のすべてのタスクを行っても、まだデータにアクセスできない場合は、弊社のテクニカル サポートにお問い合わせください。
ZenCC は大きなレコード セットを取得する際に処理速度が低下したりハングしたりします。
このような問題が起きた場合は、ZenCC の起動時に使用できるメモリを増やしてみてください。指定できるメモリ量は、お使いのマシン上にインストールされている物理メモリによってのみ制限されます。最小および最大メモリ量を指定できます。たとえば、最小および最大に 256 MB を指定するには、ZenCC を以下のコマンドで起動します。
zencc.exe -vmargs -Xms256M -Xmx256M
パラメーター -vmargs は、その他のパラメーターを指定する場合に必要です。
パラメーター -Xms は ZenCC に割り当てるメモリの最小量を指定します。パラメーター -Xmx は ZenCC に割り当てるメモリの最大量を指定します。-Xms パラメーターを指定した場合は、-Xmx パラメーターも指定する必要があります。
ZenCC からのエラー メッセージ
ZenCC でデータベースを作成またはデータベースに接続しようとする場合に、いくつかの異なるメッセージを受け取ることがあります。このセクションでは、最も一般的なエラー メッセージの主な原因を説明します。
データベース名を取得できません。操作に必要なアクセス権がありません
このエラーは、サーバー上に新しいデータベースを作成しようとするときに発生します。これはほとんどの場合、サーバー オペレーティング システムの管理者権限を持っていない、またサーバー上で Zen_Admin グループのメンバーでもないオペレーティング システム ユーザーとしてログインしていることが原因です。このほか、ユーザー名とパスワードを入力していなかった場合もこのエラーの原因になります。
解決方法:リモート オペレーティング システムに対するユーザー名とパスワードを入力したことを確認します。サーバー上に新しいデータベースを作成するには、サーバーでの管理者権限を持っているか、Zen_Admin グループのメンバーである必要があります。Zen_Admin グループの設定方法は、
データベース エンジンの管理者権限の許可で説明しています。
Windows 32 ビット プラットフォーム の場合、ネットワーク ユーザーではなく、システム上のローカル ユーザーとして設定されていることを確認してください。ネットワーク ユーザーは、BOSTON\GILBERT のようにドメイン名と円記号(\)に続いたユーザー名を持ちます。Administrators グループまたは Zen_Admin グループのメンバーであるユーザーは、ローカル ユーザーであることを確認してください。
必要な権限を持ち、ユーザー ログインが実際に上記の条件の 1 つを満たしている場合は、次に正しいネットワークにログインしているかどうかも確認してください。ターゲット オペレーティング システムを使用していることが確実なサーバーに読み取りまたは書き込みを試行すれば、正しいネットワークにログインしているかどうか調べることができます。
指定のリモートエンジンに接続できません。通信コンポーネントがすべてリモート サーバーに読み込まれており、使用可能なセッションがあることを確認し、再試行してください。
ZenCC で新しいリモート サーバーを登録しようとするときに、このエラーを受け取る場合があります。このエラーが表示される場合は、いくつかの原因があります。
1 サーバー名を間違って入力しています。データベース クライアントは存在しないサーバーに接続しようとしています。
解決方法:サーバー名を再確認し、入力したサーバー名と同じサーバーが[ネットワーク コンピューター]で表示されるかどうかを確認します。
サーバーが存在していることはわかっているが、それが[ネットワーク コンピューター]で表示されない場合は、正しいネットワークにログインしているかどうかを確認します。ネットワーク管理者に尋ねてください。
2 サーバーのユーザー カウントの有効期限が切れています。一時ライセンスを使用している場合、ライセンスの有効期限が切れた後に接続を試みると、このメッセージを受け取ります。
解決方法:License Administrator を起動してサーバーにインストールされたライセンスのステータスをチェックします。表示されるウィンドウで、サーバーに適用されている各ライセンスに関する詳細なステータス情報を見ることができます。ライセンスの有効期限が切れていた場合は、販売店または弊社から正式なライセンスをご購入ください。
3 サーバー上に有効なセッションがありません。サーバー上に多数のユーザーがいる場合、またはサーバーが少ないセッション数で構成されている場合は、このエラーを受け取る場合があります。
解決方法:Monitor を起動してサーバー上で有効なセッションの使用をチェックします。[MicroKernel 通信統計情報]を確認します。[リモート セッション総数]で、[ピーク値]と[最大値]の値が同じ場合は、セッションが不足していると考えられます。
4 リモート データベース サーバーが起動していません。
解決方法:リモート データベース エンジンが起動していることを確認してください。または、確認するようネットワーク管理者に依頼してください。
5 リモート データベース サーバーがクライアントのリクエストを受け付けていません。
解決方法:プロパティを設定して、リモート データベース エンジンがリモート リクエストを受け付けるようにします。これを行うには、サーバーでの管理者権限を持っている(または、Zen_Admin グループのメンバーである)必要があります。ZenCC の Zen エクスプローラーでサーバー名を右クリックし、[プロパティ]を選択します。[アクセス]をクリックし、[リモート リクエストの受付]オプションが選択されていることを確認します。
サーバーへの接続に失敗しました。
このエラーはほとんどの場合、オペレーティング システムのユーザー名またはパスワードを間違えてサーバーに接続しようとしていることが原因です。
ほかに考えられる原因は次のとおりです。
•オペレーティング システムは、最初のログオン時、ユーザーにパスワードの変更を要求する場合があります。この状況が発生するのは、ユーザー マネージャーで[ユーザーは次回ログオン時にパスワード変更が必要]チェック ボックスをオンにしている場合です。
•ユーザーが、制限された権限を持つほかのグループのメンバーの場合、その制限付きの権限が優先されます。ユーザーは常に、そのユーザーが属するグループの制限された権限のみを持ちます。
解決方法:ユーザー名とパスワードの綴りを再確認します。そのユーザー名とパスワードがリモート サーバーのオペレーティング システムで設定されていることを確認します。
サーバー上でのユーザーのアカウント情報を調べます。オペレーティング システムが、次回のログオン時にユーザーのパスワードの変更を要求しないことを確認します。また、そのユーザーが制限された権限を持つグループのメンバーでないようにします。
Windows 32 ビット プラットフォームの場合、ユーザーがネットワーク ユーザーではなく、システム上のローカル ユーザーとして設定されていることを確認してください。ネットワーク ユーザーは、BOSTON\GILBERT のようにドメイン名と円記号(\)に続いたユーザー名を持ちます。Administrators グループまたは Zen_Admin グループのメンバーであるユーザーは、ローカル ユーザーであることを確認してください。
不明な設定プロパティ
ZenCC がデータベース エンジンから無効な設定プロパティを取得することは、可能性はありますが、ほとんどありません。そのようなエラー状況については、Zen テクニカル サポートにご連絡ください。
よく寄せられる質問
このセクションでは、お客様からよくお問い合わせのある質問にお答えします。
インストール
ZenCC
セキュリティ
ユーザー数、セッション数、使用データ
ネットワーク
データ アクセスでの問題
ODBC と DDF
Btrieve 6.15 からのアップグレード
アップグレードおよび移行
Demodata サンプル データベース
Demodata をデフォルトの状態に復元する方法はありますか?
3 [データベースの選択]ダイアログの一覧で、DEMODATA を選択して[OK]をクリックします。
ZenCC 内に新しい SQL Editor タブが表示されます。
4 [ファイル]>[開く]をクリックします。
5 demodata.sql ファイルの場所に移動してそのファイルを選択し、[開く]をクリックします。
デフォルトのインストールで、このファイルは C:\ProgramData\Actian\Zen\Demodata\restore にあります。
6 [
SQL]>[
すべての SQL ステートメントを実行]をクリックするか、
F10 キーを押す、または
をクリックします。
demodata.sql では既存のテーブルを削除してから、そのテーブルの元のデフォルトを使用してテーブルを再作成します。復元されたテーブルは空で、データは含まれていません。
Demodata 内に作成したほかのテーブルには影響ありません。
7 バルク データ ユーティリティ(BDU)を使用してデータをテーブルに入れてください(
bdu を参照)。
a. コマンド プロンプトを開きます。
b. demodata.sql が存在する "restore" ディレクトリに移動します。Demodata のテーブルごとに SDF ファイルが含まれています。
c. SDF ファイルごとに、BDU を使用してデータをテーブルに読み込みます。
たとえば、Billing テーブルのデータを読み込むには次のコマンドを使用します。カンマはファイルのフィールド区切り文字です。
bdu demodata billing billing.sdf -t ,
メモ:-t パラメーターは必要です。
BDU では、読み込まれたデータの行数を返します。
必要なすべての bdu コマンドを一度に実行する .bat スクリプトを作成できます。
その他
インストール
インストール後によく寄せられる質問
既存のバージョンの製品をアンインストール、または新しいバージョンをインストールすると、データ ファイルはなくなってしまいますか?
Zen をアンインストール、または新しいバージョンの Zen をインストールした場合、以前のデータ ファイルおよび DDF がなくなることはありません。Zen System Analyzer で Zen ファイルをアーカイブに保管した場合でも、あるいは Zen ファイルと同じディレクトリにデータ ファイルがある場合でも、以前のデータ ファイルに影響はありません。
インストールまたはアップグレードしたばかりの「プラグイン」製品が Zen エクスプローラーに表示されないのはなぜでしょう?
どのタイプのクライアント インストールを行うべきでしょうか?
わからない場合は、常に「すべて」を選択してください。このオプションは、標準インストールを行います。このインストールでは問題が発生した場合にトラブルシューティングがより簡単になります。
インストールのリリース バージョンとビルドを確認するにはどうすればよいですか?
ZenCC で、[ヘルプ]>[バージョン情報]の順に選択します。
Zen はターミナル サーバー上でサポートされますか?
Pervasive.SQL 2000i SP4 以降、Enterprise Server および Workgroup のエンジンはどちらもターミナル サーバー上でサポートされています。Pervasive.SQL 2000i SP3 では、サーバー エンジンがサポートされました。Pervasive.SQL 2000i SP2 では、クライアント ソフトウェアのみがサポートされました。
フェールオーバーまたはクラスタリング環境に Zen をインストールできますか?
はい、どちらにもできます。Zen は Microsoft Failover Clustering、Microsoft Cluster Server、および Linux Heartbeat と互換性があります。『
Advanced Operations Guide』の
高可用性のサポートを参照してください。
ロード バランス環境に Zen をインストールできますか?
これは、現時点ではサポートされません。
Btrieve v6.x またはそれ以前のバージョンを実行しているサーバー上に Zen をインストールできますか?
Zen と Btrieve 6.x を同じコンピューター上で同時に実行することはできません。
再起動したときに、Workgroup エンジンが自動的に起動しないようにするにはどうしたらよいですか?
Windows のスタートアップ グループからワークグループ エンジンを削除する必要があります。スタートアップの詳細については、オペレーティング システムのドキュメントを参照してください。
ZenCC
ZenCC に関してよく寄せられる質問
Linux または macOS での ZenCC の起動方法は?
ZenCC を起動するには、一定の要件を満たす必要があります。
Linux での ZenCC の起動または
macOS での Control Center の起動を参照してください。
セキュリティ
セキュリティに関してよく寄せられる質問
オペレーティング システムのユーザーとパスワードを使用してログインする場合と、データベースのユーザーとパスワードを使用してログインする場合の違いは何ですか?
これらは初めは識別し難いように見えるかもしれませんが、規則は 1 つのみです。つまり、サーバーに既に接続できていて、データベースに直接アクセスしようとする場合にのみ、データベース ログインを使用してください。この時点に達するまでは、オペレーティング システムのログインを使用する必要があります。
たとえば、Monitor を実行してまたは設定プロパティからリモート サーバー エンジンで作業する場合は、パスワードの入力が必要です。いずれの場合でも、リモート システム上での管理者権限を持つオペレーティング システム アカウントまたは Zen_Admin のメンバーのアカウントのユーザー名とパスワードを提供する必要があります。これは、新規データベースを作成する場合にも適用されます。
データ自体で作業を始めた後で入力が必要な場合は、データベースのユーザーとパスワードを使用します。データベースのセキュリティを無効にした場合は、データベースのユーザー名とパスワードはまったく必要ありません。この場合、前の段落で述べたような管理者用のタスクを行うためのオペレーティング システムのユーザーとパスワードが必要なだけです。
Zen_Admin グループが定義済みまたは管理者権限を持っているのに "ログイン失敗" のメッセージを受け取るのはなぜですか?
Actian Zen Enterprise Server の設定は、データベース エンジン実行中のマシンへのログイン許可を持つかどうかに影響します。設定は、Zen_Admin グループを使用してもしなくても適用されます。Zen サービスの[アカウント]への[ログオン]設定を変更した場合、そのアカウントのユーザー権利ポリシーを[オペレーティング システムの一部として機能]に変更する必要があります。そうでない場合、リモート ログインは失敗します。
たとえば、Monitor ユーティリティは、データベース エンジン実行中のマシン上のオペレーティング システムにログインしていることを必要とします。[アカウント]に指定したアカウントがオペレーティング システムの一部として機能しない場合、ログイン失敗のメッセージを受け取ります。
Administrator アカウントであっても、ユーザー権利ポリシーを[オペレーティング システムの一部として機能]に設定する必要があるので注意してください。
ユーザーの権利ポリシーを変更する手順の詳細は
サービスの設定とログイン権限を参照してください。
ユーザー数
ユーザー数に関してよく寄せられる質問
ユーザー数のアップグレードはどのように認証すればよいですか?
ライセンス管理に記載されている作業を参照してください。
同時ユーザー ライセンス モデルを利用している Zen エンジンでは、データにアクセスするユーザー数をどのように監視するのですか?2 つのエンジンで同時にデータにアクセスした場合はどうなりますか?
同時ユーザー ライセンス モデルでは、各ライセンスにユーザー数が明記されています。ユーザー カウントにより、指定された数のコンピューターが、Zen データベース エンジンに同時に接続できます。Zen はシリアル番号によってマシンを識別するので、同じシリアル番号による接続はすべて同一マシンからのものと認識されます。たとえば、複数の NIC を持つ 1 台のマシンは同じマシンとして認識されます。
Zen にクライアント セッションとしてアクセスする各ワークステーションは、1 ユーザーとカウントされます。1 台のクライアント コンピューター上にある複数のアプリケーションは、1 ユーザーと見なされ、別個のユーザーとしてカウントされません。それぞれのターミナル サーバー セッションも 1 ユーザーとしてカウントされます。
Zen は、同じクライアント コンピューター セッションから受信する一意のプロトコルごとに 1 つのユーザー カウントを使用します。同じプロトコルで異なるアドレス形式を使用している場合は、1 ユーザーのみカウントされます。たとえば、あるアプリケーションが IPv4 を使用し、別のアプリケーションが IPv6 を使用する場合、これらのアプリケーションが同一マシン上で実行されると、1 ユーザーのみがカウントされます。IPv4 および IPv6 はそれぞれ TCP/IP の異なるアドレス形式です。
データ ファイルには、一度に 1 つのエンジンのみがアクセスを許可されています。エンジンはデータ ファイルが破損しないように排他モードでデータ ファイルを開くので、2 つ目のエンジンがファイルを開こうとしても拒否されます。
Workgroup エンジンは、同時ユーザー ライセンスを使用しますか?または 1 台ごとのライセンスを使用しますか?
同時ユーザーを使用します。
同時ユーザー ライセンス モデルを参照してください。
Zen エンジンのライセンスを、同時ユーザー ライセンスからデータの使用量に基づくライセンスに移行しようと考えています。自分のライセンスに適したサイズはどのように調べることができますか?
Capacity Usage ビューアーはこのような目的のために設計されています。使用するセッション数とデータ使用量のピーク値を毎日記録するので、それぞれの数量を経時的に見ることができます。この情報を使用して、必要なライセンス サイズを合理的に判断することができます。Capacity Usage ビューアーのアクセス方法および使用方法については、
Capacity Usage ビューアーを参照してください。
ネットワーク
ネットワークに関してよく寄せられる質問
通信に使用しているプロトコルを知るにはどうしたらよいですか?ネットワークでほかのシステムが表示されますが、自分のデータを見ることができません。
Zen System Analyzer を起動して、初期画面で[次へ]をクリックします。次の画面で、[アクティブ インストールをテストする]を選択して[ネットワーク通信をテストする]チェック ボックスをオンにし、その他のチェック ボックスをすべてオフにします。[次へ]をクリックします。次の画面で[詳細設定]をクリックし、テストしないプロトコルの選択をオフにして[OK]をクリックします。参照ボタン[...]をクリックして、サーバー上のインストール ディレクトリにマップしたドライブを選択します。ドライブは、マップしたドライブでなければなりません。UNC 名はサポートされません。[次へ]をクリックしてネットワーク テストを実行します。ネットワークで重大な問題があれば、結果ウィンドウで通知されます。
データ アクセスでの問題
データ アクセスに関してよく寄せられる質問
v6.x 以前の Btrieve から最新バージョンの Zen にアップグレードしました。ほかの誰もがアクセス可能な場合でも、ファイルにアクセスできないとのエラー メッセージが表示されるようになりました。何が間違っているのでしょうか?
Zen System Analyzer を使用して、Btrieve または Zen の以前のバージョンのコンポーネントがすべて保持されているかどうかを確認します。次に、環境設定が正しいかどうかを確認してください。zen.log ファイルを見つけ、ステータス コード 8505 または 8517 を示すエラー メッセージがないかどうかを確認します。これらのステータス コードは、ローカルの Workgroup エンジンを使ってデータ ファイルの読み取りが試行されたことを示しています(zen.log に書き込まれるメッセージ文字列に 16 進数値が含まれる場合、その 16 進数値の前には "0x" が付くので 10 進数値と区別できます)。
ZenCC を起動します。ローカル クライアントを右クリックし、[プロパティ]を選択します。[アクセス]をクリックします。[ローカル MicroKernel エンジンの使用]オプションのチェックがオフで、[リモート MicroKernel エンジンの使用]オプションのチェックがオンになっていることを確認してください。
サーバー上にファイルが存在し、共有になっていますが、Zen でそれを読み取ることができません。何が間違っているのでしょうか?
ファイルはどのように共有していますか?Zen では Microsoft でのリダイレクトされたマップ、または Windows 32 ビット プラットフォームでの 非表示の Admin 共有(C$)を使用したドライブ名のマップをサポートしません。
ユーザーが、ファイル サーバーへアクセスするためのオペレーティング システムの適切なログイン認証を持っているかどうかを確認してください。
Zen System Analyzer を実行し、[ネットワーク通信をテストする]を選択して接続が正しく行えるかどうかを確認します。
SQL クエリを使用して旧テーブルの定義を作成しています。結果レコードのサイズが異なってしまいました。なぜでしょうか。
Pervasive.SQL 2000 で実行した場合、ヌル値を許可するフィールドでは、そのフィールドの開始位置に定義された追加バイトがあります。このバイトはヌル インジケーターです。次のいずれかの方法でこれを変更することができます。
SQL ステートメントを使用して新しいテーブル定義を作成する場合は SET TRUENULLCREATE=OFF というステートメントを入力します。現在のセッションではこれ以降、作成するテーブルは旧レコードの構造を使用し、ヌル値を許可する各列に余分なバイトを追加しません。
SQL ステートメントを使用しない場合は、すべての列をヌル値が許可されないようにして作成し、フィールドのサイズを取得して適切に配置することができます。
バージョン 9 のデータ ファイルをバージョン 8、7 または 6 のファイル形式に変換したいのですが、どのようにすればよいですか?
変換するファイルがリモート Enterprise Server、Cloud Server、または Workgroup エンジンによって提供される場合は、以下のタスクを行うためにリモート システム上での管理者権限を持っている必要があります。また、リモート データ ファイルにマップしたネットワーク ドライブが必要です。
ZenCC でデータ ファイルが存在するサーバー名を右クリックし、[プロパティ]を選択します。[ファイル互換性]をクリックし、[作成ファイルのバージョン]に変換するファイル バージョンを設定します。[OK]をクリックします。[はい]をクリックして、エンジンを再起動します。これらの変更によって、選択したバージョンで新しいファイルが作成されます。
Maintenance ユーティリティを実行して、[オプション]メニューから[情報エディターの表示]を選択します。[情報のロード]をクリックして、変換するデータ ファイルを選択します。[ファイルの作成]をクリックして、旧バージョン形式で作成する新しい空のデータ ファイルの名前を指定します。[OK]をクリックしてファイルを作成します。[ファイル情報エディター]ウィンドウは閉じますが、Btrieve Maintenance ユーティリティは終了しないでください。
メニューから、[データ]>[コピー]を選択します。ソース データ ファイル名とターゲット データファイル名(旧バージョンのファイル形式で新規に作成するファイル)を入力します。[実行]をクリックしてレコードを旧バージョンのファイルへコピーします。コピーが完了した後、新しいデータ ファイルをコピー元のファイル名と同じ名前にする必要がある場合は、元のデータ ファイルを別名で保存し、元のファイル名で新しいファイルを保存します。
ODBC と DDF
ODBC および辞書ファイルに関してよく寄せられる質問
ODBC を使用してデータ ファイルにアクセスできるかどうかを知るにはどうしたらよいですか?
調べる方法はいくつかあります。まず、データ ファイルが置かれている場所で DDF ファイルを探します。これらが見つかれば、ほとんどの場合は ODBC を使用してデータベースにアクセスできます。DDF ファイルはデータ ファイルと異なるディレクトリに置くことができるので、ZenCC を使用して、アクセスするデータ ファイルのデータベースが作成されているかどうかを調べる必要もあります。また、アプリケーションでデータ ファイルのアクセスに ODBC を使用しているかどうかをアプリケーション ベンダーに尋ねることができます。
DDF のコード記述されたファイルパスはどのようにしたら変更できますか?
ZenCC でテーブルのデータベースを右クリックし、[プロパティ]を選択します。[ディレクトリ]をクリックします。[辞書のロケーション]の値を変更します。
パスは変更されていないように見えます。変更を確認するには、X$File システム テーブルを開き、指定したユーザー テーブルの Xf$Loc フィールドを見ます。ZenCC にシステム テーブルが表示されていない場合は、[システム オブジェクト]を展開します。
また、SQL で ALTER TABLE USING ステートメントを使用して、特定のテーブルによって使用されるデータ ファイルを変更します。詳細については、『SQL Engine Reference』を参照してください。
データ辞書(DDF)の安全性を確保する一番よい方法はなんですか?
常に DDF のバックアップ コピーを行ってください。ランタイム DDF を変更するときには、必ず変更前にその DDF のバックアップ コピーを行ってください。最初にデータベースのセキュリティを有効にする場合は、セキュリティなしの辞書のバックアップ コピーと、セキュリティ付きの辞書のバックアップ コピーを行います。
非標準 DDF を使用しているかどうかを知るにはどうしたらよいですか?
Btrieve ユーティリティで編集できる場合、その DDF は標準の辞書ファイルではありません。標準の辞書ファイルは、Btrieve で直接アクセスすることができません。このロック アウトは、リレーショナル エンジンのみが辞書へ書き込みできることを保証する安全な機能です。DDF は互いに、そしてデータ ファイルと常に同期化されている必要があるたいへん重要なファイルです。
標準の辞書のテーブル名およびフィールド名は大文字小文字を区別しません。file.ddf の列 Xf$Name と field.ddf の 列 Xe$Name の列定義で大文字小文字を区別するかどうかを設定するフラグがあり、これらの値が大文字小文字を区別しないこと示しています。
DDF は Btrieve ファイルなので、Function Executor を使用して開き、表示することができます(更新はできません)。これは、file.ddf または field.ddf の内容を確認する 1 つの方法です。
非標準の辞書 DDF の中には、 file.ddf、field.ddf および index.ddf が存在しないものがあります。このような辞書は、Zen 製品で動作しません。たとえば、file.ddf ではなく x$file.ddf というファイルがある場合は、その DDF は非標準であることがわかります。
非標準の DDF は通常、ZenCC や PSQL リレーショナル エンジンで正しく動作しません。
異なるデータベース間で DDF を混合して統合させることができますか?
DDF ファイルの完全なセットは 1 つの単位として考える必要があります。DDF を 1 つも持たないデータベースと別のデータベースの DDF とを混合することができます。
DDF Sniffer はどうなったのでしょう?
DDF Sniffer は、1998 年に Smithware 社からの権利の取得により Zen に追加されました。現在は独立した製品としては使用できません。DDF Sniffer の機能は ZenCC と DDF Builder に統合されました。
類似する 2 つの Btrieve ファイルがあり、一方のファイルに DDF を作成しました。2 つのファイルは類似しているので、もう一方の Btrieve ファイルでも同じ DDF を使うことができますか?
2 つのファイルがどのように似ているかによって答えは異なります。2 つのファイルのレコード数が違うだけなら、同じ DDF ファイルを使用することができます。フィールドまたはインデックスの数、順序、名前または型が異なれば、同じ DDF は使えません。つまり、2 つのファイルのレコード構造が完全に一致している場合にのみ同じ DDF が使用できます。
Btrieve ファイルのオーナー ネームのセットを持っています。DSN を作成した後で、ODBC を使用してファイルを開くことができません。なぜでしょうか?
Btrieve ファイルがオーナー ネームを持つ場合、ODBC アクセスにはデータベース セキュリティを使用する必要があります。ZenCC でデータベース セキュリティを有効にしてください。『
Advanced Operations Guide』の
Zen エクスプローラーを使用してセキュリティを有効にするにはおよび
オーナー ネームおよび SQL アクセスを参照してください。
注意: Master ユーザーのパスワードは忘れないでください。パスワードがないと、データベース内でセキュリティを無効にしたり管理者タスクを実行することはできません。パスワードを忘れてしまった場合に備えて、セキュリティを有効にする前に DDF をバックアップしておくこともできます。
次に、オーナー ネームを定義したデータ ファイルへの Master ユーザー アクセスを許可します。オーナー ネームを持つ各テーブルに対し、次の SQL ステートメントを発行することによってアクセスを許可することができます。
GRANT ALL ON my_table 'ownername' TO Master
上記のステートメントを入力する場合は、変数個所をテーブルの実際の名前とそのテーブルの適切なオーナー ネームに置き換えてください。各データ ファイルは ODBC テーブルに対応していることを覚えておいてください。どのテーブルがどのデータ ファイルに対応しているかがわからない場合は、ZenCC を使用して見つけてください。ZenCC 内でテーブルを右クリックし、[プロパティ]を選択します。ツリーで[情報]をクリックします。[テーブルの場所]フィールドは、そのテーブル定義によって参照されるファイルを示します。
セキュリティが重要な場合は、ユーザーを作成し、データベースにアクセスすると思われるすべてのユーザーに権限を割り当てます。これは、SQL で CREATE GROUP および GRANT ステートメントを使用して行います。その後、ZenCC でユーザーやグループを追加することができます。『
Advanced Operations Guide』の
ユーザーとグループを参照してください。
セキュリティが重要でない場合、PUBLIC にアクセスを許可すれば、多くのユーザーの作成や権限の割り当てを行う必要がありません。PUBLIC ではネットワーク上のだれもがデータにアクセスできます。次のステートメントを使用することができます。
GRANT ALL ON my_table 'ownername' TO PUBLIC
リレーショナル エンジン用のクライアント側のリクエスターがありますか?
SQL アプリケーションをサポートする DOS リクエスターはありませんが、Windows 用の Zen クラインアント ソフトウェアには ODBC クライアント コンポーネントが含まれており、リモート サーバー エンジンへ接続することができます。
Zen のアクセス方法は ODBC のみですか?
いいえ、ほかにも方法があります。ODBC や長年その有効性が認められている Btrieve API に加え、OLE DB プロバイダー、JDBC ドライバー、純粋な Java インターフェイス、あるいは ActiveX コントロールを使用してアプリケーションを開発できます。
ほかのいくつかの製品のように、すべてのデータ、データ定義、ストアド プロシージャ、セキュリティ、テーブルの関係などが含まれる単一のデータベースがありますか?
ありません。Zen は、データを別々のファイルに保存します。リレーショナル テーブル定義ごとに 1 つのファイルとなります。データ定義、ユーザー/グループ定義などのメタ データは、DDF ファイルに保存されます。各 DDF ファイルの拡張子は ".ddf" です。
リレーショナル エンジンには、データにアクセスまたはデータに影響するよう設計されたストアド プロシージャ、またはほかのタイプのスクリプトを実行できるスケジューラがありますか?
リレーショナル エンジンにはスケジューラがありません。
アップグレードおよび移行
アップグレードと移行に関してよく寄せられる質問
既存の Btrieve ファイルを使用してテーブルを作成する場合、ウィザードで表示される列数が実際の Btrieve ファイルの列数より少ないです。何が間違っているのでしょうか?
Btrieve ファイルに含まれるファイル構造に関する情報量は限られています。テーブル作成ウィザードでは、ファイルのインデックスからいくつかのフィールド定義を取得できますが、取得後も、2 つ以上の実際のフィールドを含むデータ セグメントが残る場合があります。ウィザードでは内容を解析する方法がありません。レコード構造を自身で理解してこれらのフィールドを分割し、レコード内のすべてのフィールドと一致するテーブル定義をビルドする必要があります。
その他
その他のトピックに関してよく寄せられる質問
Btrieve レコードをファイルにダンプしたのですが、そのファイルを読み取ることができませんでした。どうしてでしょう?
Btrieve の Maintenance ユーティリティを使用してレコードを保存またはダンプした場合、結果ファイルには各レコードのバイナリ イメージが含まれます。レコードが文字データで完全に構成されなければ、実際の内容を読み取ることができません。
Zen が ASCII の読み取り可能な形式でレコードをダンプできる唯一の方法は、DDF を読み取って、レコードの仕様全体を取得することです。Btrieve ではレコード長、インデックスのデータ型およびインデックスの長さのみを持ちます。Btrieve は、これら以外のレコード内容を解析するための情報を持ちません。
Zen をトレース モードで実行できますか?
はい、Windows で Enterprise Server、Cloud Server、または Client を使用している場合には実行できます。
Windows サーバー
エンジンをデバッグ モードで実行するには、実行するシステムの管理者権限が必要です。
1 ZenCC を使用し、目的のサーバー エンジンを右クリックして[プロパティ]を選択します。
2 [デバッグ]をクリックし、[トレース オペレーションの実行]オプションの値をオンにして、[OK]をクリックします。
エンジンを再起動する必要はありません。
『
Advanced Operations Guide』の
トレース オペレーションの実行も参照してください。
メモ:オペレーションをトレースした後は[トレース オペレーションの実行]オプションをオフにし、[編集]>[適用]をクリックします。トレース モードで Zen を実行した場合、パフォーマンスが低下します。
Windows クライアント
PSA ネットワーク接続テストを実行し、ネットワーク接続を確認します。
アクティブ インストールのテストを参照してください。
さらに、ある種の低レベルな問題のトラブルシュートにはクライアントのトレースが使用できます。一般的に、低レベルのトレースは不要で、このようなトレースは熟練したサポート スタッフが使用するためのものです。低レベルのクライアントのトレースを実行する方法は、製品のベンダーまたは Actian のテクニカル サポートが説明します。
データ ファイルやインデックス内で不要部分削除を行いますか?たとえば、削除したレコードの領域は回復または再利用されますか?
行います。削除したレコードの領域は、以降の挿入で再利用されます。ファイル内の空き領域は、ディスクにデアロケートされることはありません。インデックス バランスがオンになっている場合は、インデックス ページ内の未使用領域も再利用されます。『
Advanced Operations Guide』の
Rebuild ツールの概念を参照してください。
データベースがオンラインでバックアップできる機能は何ですか?多くのトランザクションを開いている状態でバックアップを行っているときにサーバーがダウンした場合はどうなりますか?
Continuous オペレーションを使えば、使用中のデータ ファイルのセットを安全にバックアップできる特別な "セーフ モード" に置くことができます。データ ファイルが Continuous オペレーション モードの間、それらのデータ ファイルは変更されず、特別なデルタ ファイルにすべてのデータベース操作の結果を保存します。バックアップが完了した後、データ ファイルは Continuous オペレーション モードから削除する必要があり、その時点のデルタ ファイルに保存された変更が使用中のファイルにロール インされます。
データ ファイルが Continuous オペレーション モード中にサーバーがダウンした場合、次回そのデータ ファイルにアクセスしたときには、データベース エンジンが既存のデルタ ファイルを検出してその時点の変更をロール インします。
データ ファイルを Continuous オペレーション モードにするには、『Advanced Operations Guide』で説明されている BUTIL -STARTBU コマンドまたは Maintenance ユーティリティを使用します。