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