人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

私は今、Access + SQL-Serverという構成で伝票を登録するシステムを保守しています。
システムは、概ねうまく運用できていますが、社内のネットワークのうちで本社から離れた
分室から伝票を登録しようとすると、まれに採番がうまくいかず、?1番という、
初期化状態の番号の伝票ができてしまうことがあります。(分室はVPNで本社と繋がれています)
この現象は再現性が100%ではなく、たまに起こる事故です。なので、原因として、おそらく
VPNなどが関係しているとは思うのですが、そこがはっきりせずに対応に苦慮しています。
このようなことが起こる原因と対応策をご存知の方がいらしたら

ご指導ご鞭撻のほどよろしくお願いいたします

●質問者: ひろひろ
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● oil999
●34ポイント

分室がAccessを使って、本社のSQL Server側で採番している。本社と分室はVPNで接続されているという状況ですね。

どのようなVPNをご利用なのか分からないので確実なことは言えませんが、VPNルーターがオンデマンド接続の設定になっていませんか。
オンデマンド接続だと一定間隔で回線が切断されるため、運悪く回線切断中にアクセスしようとするとSQL Serverに接続できません。
接続方法を常時接続に切り替えてみて下さい。


ひろひろさんのコメント
おっしゃる通りのネットワーク構成です。 VPNの設定はよくわからないのですが、 確か切り替えることはできないと聞いています。 VPNの接続設定が色々あることを知って参考になりました。 ありがとうございました。

2 ● pretaroe
●33ポイント ベストアンサー

採番方法によるかと思います。
初期値が-1ということなので、自前のロジックだと思います。

採番ロジックでログを出力して調査するのが良いかと思います。

もしくは、トランザクションの開始・終了の処理をきちんと書かれていなくて
途中でトランザクションが切れてしまうと、ダメだとかそういう感じなのかもしれません。

ロジック見直す方向が良いかと思うのですが・・・。

不正なデータがどんな状況であっても作成されるのは、よろしくないと思うので。

SQLServerのIDENTITYプロパティーを使用する方式にかえるとかでも
問題は解決するかもしれません。


ひろひろさんのコメント
回答ありがとうございます。 採番ロジックでログを取るというのは気づきませんでした。 ただ、まれに出る現象ですし、わざわざ分室で調査するというのもなかなか難しいのです。 IDENTITYプロパティを使えば問題はなくなりそうですね・・ただ、それは最後の手段にしたいと思っています。 回答ありがとうございました。

ひろひろさんのコメント
考えてみましたが、まず、ログをとって原因を調べるのが一番かと思いました。 時間さえあれば、そのようにしたいと思います。回答ありがとうございます。

3 ● きゃづみぃ
●33ポイント

>まれに採番がうまくいかず、?1番という、初期化状態の番号の伝票ができてしまうことがあります。

?1だったら再取得するようにすればいいだけだと思いますよ。


ひろひろさんのコメント
お答えありがとうございます。 なるほど、トランザクション中に採番しているのですが、 その時に-1だったら採番し直すのですね。 さしあたってまずはそれで試してみたいと思います。 ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ