ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

テーブルロック待ちの発生原因が分かりません

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2007-5-10 15:43 | 最終変更
atushi  半人前 居住地: 長野県  投稿数: 30
kkubozono様、こんにちは

>作業時、MagicV9PLUSにバンドルされていたSP1を上書きにて
>SP3にアップグレードしました。

・Pervasive V8 ワークグループのインストールは、
MagicV9PLUSにバンドル※されているのをインストールしてから、
一度、アンインストールして新しいサービスパック(SP3)を
インストールした方が、安定して動作すると思われます。
※バンドルされているのを入れないと、ライセンスが入りません。
 アンインストールしてもライセンス情報は、消えません。

・後、考えられるのは、Btrieve/Pervasive 2000i専用のDLL関連を
作業フォルダなどにあえてコピーして使っているとか。
(もしあったら削除して下さい。)

・その他は、断定はできませんが、セキュリティ関連ソフト/
機器にて、ポートをふさいでいるとか?メモリ不足とか?

>ワークファイルの設定の件ですが、データベース設定では
>分けておらず、DBテーブル欄に論理名を記述し、その論理名に
>ファイルパスを記述しています。

テーブル辞書のDBテーブルの論理名だとしたら、
ファイルパスを設定すれば、大丈夫そうですね。
PGのDBテーブルの式設定の場合でも同様です。

<ワーク用フォルダ作成について>
・はじめのワーク用フォルダの作成ですが、考えてみたら
 ログオンスクリプトに以下を追加してもできました。

(例)フォルダがないときのみ、フォルダを作成。
IF NOT EXIST "X:\WORK\%COMPUTERNAME%" (MD "X:\WORK\%COMPUTERNAME%")

※[X:\WORK]以下に、環境変数でフォルダを作成。
 フォルダがあった場合の処理は、次行より記述。

>アドバイス頂いた様に、ワークグループ版を使用せず、
>環境変数を使用し、サーバ版で処理する方向で検討したいと
>思います。

・Pervasive クライアントをインストールしてみると
わかりますが、Pervasive サーバー上のサーバー設定が
反映されるので、クライアントでは設定をする必要がなく、
ライセンスもサーバー管理なので、運用は断然楽だと思います。
またタスク常駐ではなく、サービス起動で動作して、
メモリ消費量も少ないので、安定すると思われます。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-5-9 15:42
kkubozono  新米   投稿数: 14
atushi様、度々ありがとうございます。

まず、すいません。
ワークグループ版は、SP3の間違いでした。
しかし、作業時、MagicV9PLUSにバンドルされていたSP1を上書きにてSP3にアップグレードしました。
AG-TECHさんのWebページをみると、
 #Windows 上の Server / Workgroup エンジンもしくはクライアン
 #トモジュール(リクエスタ)の Pervasive.SQL V8 Service Pack 2
 #(SP2) がインストールされている環境から Pervasive.SQL V8
 #Service Pack 3(SP3) へのアップグレード(上書きインストール)
 #作業を行うと不具合が発生することがありますので、
 #Pervasive.SQL V8 SP3 へのアップグレード作業を行う際には、事
 #前に Pervasive.SQL V8 SP2 のアンインストールをお薦めします。(http://www.agtech.co.jp/download/update/pervasive/vsqlv8.html)
との記載があり、SP1>SP2の上書アップデートは問題ないのか心配になってきました。

ワークファイルの設定の件ですが、データベース設定では分けておらず、
DBテーブル欄に論理名を記述し、その論理名にファイルパスを記述しています。

ところで、不具合機のうち一台だけ、別PCを準備してもらえることなり、
早速試したところ、問題なく使用することができました。
BtriveやPervasiveを使用していそうなものは見当たらないのですが、
他のアプリケーションとの兼ね合いなのかもしれません。

不具合の状況に関してさらに調べてみました。
異常機上のワークグループ版のPVSW.LOGには、
E 3112: ステータス 10055 が、最大限の 1024 バイトを受信中に返されました。
I Btrieve server not found. PNSL open session by name returned status = 10055.
が残っており、
サーバでnetstatコマンドにより使用ポートを見てみると、正常なクライアント間では、
Btriveインターフェースポート(3351)が使用されているのに、
異常機間とでは以下のようにPervasive(1583)のCLOSE_WAITが並んでいました。
TCP Server:1583 ClientPC:1092 CLOSE_WAIT
TCP Server:1583 ClientPC:1093 CLOSE_WAIT
TCP Server:1583 ClientPC:1094 CLOSE_WAIT
TCP Server:1583 ClientPC:1095 CLOSE_WAIT
TCP Server:1583 ClientPC:1099 CLOSE_WAIT
TCP Server:1583 ClientPC:1100 CLOSE_WAIT
TCP Server:1583 ClientPC:1101 CLOSE_WAIT
TCP Server:1583 ClientPC:1103 CLOSE_WAIT
TCP Server:1583 ClientPC:1104 CLOSE_WAIT
TCP Server:1583 ClientPC:1105 CLOSE_WAIT
TCP Server:1583 ClientPC:1106 CLOSE_WAIT
TCP Server:1583 ClientPC:1107 CLOSE_WAIT
TCP Server:1583 ClientPC:1108 CLOSE_WAIT
TCP Server:1583 ClientPC:1109 CLOSE_WAIT
TCP Server:1583 ClientPC:1110 CLOSE_WAIT
TCP Server:1583 ClientPC:1114 CLOSE_WAIT

原因はつかめませんが、アドバイス頂いた様に、ワークグループ版を使用せず、
環境変数を使用し、サーバ版で処理する方向で検討したいと思います。
ご意見、ありがとうございます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-5-9 11:29 | 最終変更
atushi  半人前 居住地: 長野県  投稿数: 30
kkubozono様、こんにちは

>また、現在の運用形態については、
>・クライアント用ワークファイルはクライアント側に
> 作成しています。

開発マシン以外で、ワークグループ版を入れている理由が
ようやくわかりました。
私の場合は、Pervasive サーバで運用しているときは、
クライアント側で作成したことはありません。

クライアント側にワークを作成する場合、
共有用テーブルとワーク用テーブルは、
データベース設定が分かれているのでしょうか?
テーブル辞書に直接パスを切るやり方になっているのでしょうか?

後、Pervasive サーバがSP3なのに、ワークグループ版が
SP2になっている部分は、少し気になります。
Pervasiveのホームページより、ワークグループ版のSP3を
ダウンロードしてインストールしてみては?
(はじめのインストールは複数台あるので大変ですが)

>・MFFはサーバ側に置いてあります。

クライアント上にMAGIC実行版をインストールして
クライアント上のMFFを起動する方が安定するとは思います。
MFF等必要なものは、ログオンスクリプトでXCOPY等で配布。
(はじめのインストールは複数台あるので大変ですが)

>Terminal番号毎にワーク作成フォルダを分ける等の処理変更は
>できれば避けたいなと思っています。
>そんなこと言ってる場合でもないのですが・・・)

データベースの位置を論理名設定すれば作業を軽減できます。
端末番号も良いですが、コンピュータ名(ネットワークで個別)を
使用しても良いと思います。

最初はフォルダがないので、自動作成するようにプログラム
しておくと作業を軽減できます。

(使用例)
MAGICの起動ショートカットで、論理名に環境変数をセット。
/[MAGIC_LOGICAL_NAMES]CLIENT=%COMPUTERNAME%
<CLIENTは、論理名>

試してはないですが、OSEnvGet ('COMPUTERNAME')などで
環境変数取得してセットする方法もあるとは思います。
投票数:2 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-5-9 10:16
kkubozono  新米   投稿数: 14
atushi様、レスありがとうございます。
すいません。確認はとっていないのですが、導入時の作業を振り返ってみると、
・リモートリクエストの受付に関しては、サーバON/全クライアントOFFに設定してあります。
・ファイル互換性は、8.xで統一してあります。
・チーム開発は行っていないのですが、開発時(MCF作成)には7.xで作成していますので、
 8.xでリポジトリ入力して試してみようと思います。

また、現在の運用形態については、
・クライアント用ワークファイルはクライアント側に作成しています。
・MFFはサーバ側に置いてあります。

Terminal番号毎にワーク作成フォルダを分ける等の処理変更はできれば避けたいなと思っています。
(そんなこと言ってる場合でもないのですが・・・)
ご意見ありがとうございます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-5-7 12:12 | 最終変更
atushi  半人前 居住地: 長野県  投稿数: 30
 kkubozono様、こんにちは。

 基本的な部分ですが、
 以下も確認してみて下さい。

・Pervasive サーバーがインストールされているサーバー上で、
 [Pervasive Control Center][設定][サーバー][アクセス]の
 [リモートリクエスタの受付]は[On]になっていますか?
 また、クライアント側のPervasive ワークグループで、
 [リモートリクエスタの受付]は全端末[Off]になっていますか?

・ファイル互換性は、作成ファイルのバージョンは、
 全端末で統一していますでしょうか?
 複数人で、チーム開発する場合、MCF及びテーブルの
 作成ファイルバージョン、サービスパック(Pervasive、MAGIC共)
 も統一していますでしょうか?

・Pervasive サーバー運用であれば、クライアント側は
 Pervasive ワークグループをアンインストールして
 Pervasive クライアントをインストールしてみては
 いかがでしょうか?
 クライアントPCのスペックが低いとワークグループでは、
 正常に動作しない経験があります。

 Pervasive クライアントは、CDからインストール※ではなく、
 サーバーの[C:\PVSW]フォルダを共有して、
 [\\サーバー名\PVSW\Clients\win[winなかったかも?]]以下の
 [Setup.exe]を各クライアント上からインストールします。
 Pervasive サーバーが、SP3になっていれば、
 Pervasive クライアントも、SP3としてインストールされます。
※CDインストールでSP1,2だと、SP3へのアップデートが面倒です。

・Pervasive サーバー運用ということで、
 作成ファイルは、全てサーバー上となっていますでしょうか?
 一時ファイルパスもサーバー側を指定していますでしょうか?
 また、各クライアントのワークファイルの作成場所は、
 サーバーフォルダ上にて、各クライアント毎、別フォルダ名で
 作成してみて下さい。

・あまり関係ないとは思いますが、Pervasive Control Centerの
 クライアント設定の[アプリケーションの特性]の
 スプラッシュスクリーンを[OFF]にして、表示しないように
 するとPervasive起動時の余計なリソースが消費されない
 ようになります。

・上記をやってもうまくいかない場合、
 テーブルロックになるファイルを、バックアップした後、
 テーブル辞書APGなどで、テキストファイル出力して、
 ファイルを削除して、テキスト入力して、
 作成ファイルバージョンで、再作成してみては?

 MCFも、作成ファイルバージョンで、再作成してみては?
 そのうえで、MFF作成して各クライアントに配布します。

<以下追記しました。:発言の編集機能にて>
・もしPervasive サーバーが停止していたら、起動して下さい。
・Pervasive サーバー通信中に、ネットワークケーブルが
 抜けたなどによるネットワークトラブルで通信ができなく
 なるとテーブルロックになる場合がまれにあります。
 その場合は、Pervasive サーバーが入っているサーバーより
 [monitor]を起動して、接続されていないのに、
 アクティブユーザーが存在するものを削除して下さい。
 ロックが解除されます。
投票数:2 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-4-26 17:55
kkubozono  新米   投稿数: 14
nkmt様、早速ありがとうございます。
帰社してフォーラムを確認して元気出ました。

引用:

サーバーも、クライアント側も、リモートリクエスト受付の部分しか変更していらっしゃらないのであれば、サーバーも、クライアント側もPervasive Control Centerで通信バッファサイズの3項目はMAX値に変更する。サポートプロトコルも余計な物は外し、TCP/IPのみにする。起動時のリソース割当はOn、自動再接続の有効化=On、などを試して欲しいなぁ・・・と思います。
今度、早速試してみようと思います。

引用:

MCFもリポジトリ出力、リネーム、リポジトリ入力で作り直す。
すいません。記入するのを忘れてました。MFFファイルで運用中です。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-4-26 13:56
nkmt  長老   投稿数: 1668
kkubozono様、こんにちは。

サーバーも、クライアント側も、リモートリクエスト受付の部分しか変更していらっしゃらないのであれば、サーバーも、クライアント側もPervasive Control Centerで通信バッファサイズの3項目はMAX値に変更する。サポートプロトコルも余計な物は外し、TCP/IPのみにする。起動時のリソース割当はOn、自動再接続の有効化=On、などを試して欲しいなぁ・・・と思います。

MCFもリポジトリ出力、リネーム、リポジトリ入力で作り直す。

Magicの実行エンジンをサーバ側に持たすのは、私はやった事ありません。

INIファイルも見てみたい所ではあります。

頑張って下さい。
投票数:2 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007-4-25 23:12
kkubozono  新米   投稿数: 14
お世話になります。
早速ですが、下記不具合の原因が特定できず困っております。
切り分け方法等の情報でも、お教えいただければありがたいです。
よろしくお願いします。

<形態>
・サーバ×1台
 OS:Windows2003Server
 DB:PervasiveSQLV8ServerSP3(10User+追加20User)

・クライアント×40台弱
 OS:WindowsXPproSP2
 DB:PervasiveSQLV8ワークグループ
  (MagicにバンドルされていたSP1をSP2へアップグレード。全PCをSP2に統一してあります。)
 ※閉域LAN内での運用のため、ファイアーウォールは無効としています。
 ※ログインは同一ユーザで行っているPCも複数あり、ローカルPCへのAdministratorsユーザ

・ネットワーク環境
 Workgroup環境/1000BaseT(クライアントNICまで)

<現象>
・クライアントPCからのMagicアプリケーションによるデータベースアクセス時にPervasive起動画面が白くなり、そのまま数十秒放置するとテーブルロック待ちとなる。(サーバ上のエンジンを見つけられないのでしょうか?)

<補足>
・不具合発生PCのワークグループエンジン。設定変更は、リモートリクエストの受付OFFのみです。
・同一設定内容のPC群の中で、特定の複数PCから発生しますが、法則が見つけ出せていない状態です。
・Magicの実行エンジンをクライアント側からサーバ側を使用するように変更すると復旧するPCとしないPCがある。
・不具合PCのPervasiveのログに"10055:###バイト以上のデータを受信しました・・・"のEログが残る。
・不具合PCでMonitorユーティリティにてサーバへ接続を行うとフリーズする。
・不具合PCでPSAによるネットワーク通信・トランザクショナルエンジン・リレーショナルエンジンの各テストでは異常は見受けられない。
・不具合PCでのサーバへの名前によるアクセスは問題ない。サーバへはユーザ登録済。
・LicenseManagerにも異常なく、上限(30User)まで余裕がある状態でも発生する。11User以上の接続も正常PCからは問題ない。
・PSAを使った再インストールも実施したのですが復旧しません。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約