システムは、概ねうまく運用できていますが、社内のネットワークのうちで本社から離れた
分室から伝票を登録しようとすると、まれに採番がうまくいかず、-1番という、
初期化状態の番号の伝票ができてしまうことがあります。(分室はVPNで本社と繋がれています)
この現象は再現性が100%ではなく、たまに起こる事故です。なので、原因として、おそらく
VPNなどが関係しているとは思うのですが、そこがはっきりせずに対応に苦慮しています。
このようなことが起こる原因と対応策をご存知の方がいらしたら
ご指導ご鞭撻のほどよろしくお願いいたします
採番方法によるかと思います。
初期値が-1ということなので、自前のロジックだと思います。
採番ロジックでログを出力して調査するのが良いかと思います。
もしくは、トランザクションの開始・終了の処理をきちんと書かれていなくて
途中でトランザクションが切れてしまうと、ダメだとかそういう感じなのかもしれません。
ロジック見直す方向が良いかと思うのですが・・・。
不正なデータがどんな状況であっても作成されるのは、よろしくないと思うので。
SQLServerのIDENTITYプロパティーを使用する方式にかえるとかでも
問題は解決するかもしれません。
分室がAccessを使って、本社のSQL Server側で採番している。本社と分室はVPNで接続されているという状況ですね。
どのようなVPNをご利用なのか分からないので確実なことは言えませんが、VPNルーターがオンデマンド接続の設定になっていませんか。
オンデマンド接続だと一定間隔で回線が切断されるため、運悪く回線切断中にアクセスしようとするとSQL Serverに接続できません。
接続方法を常時接続に切り替えてみて下さい。
おっしゃる通りのネットワーク構成です。
VPNの設定はよくわからないのですが、
確か切り替えることはできないと聞いています。
VPNの接続設定が色々あることを知って参考になりました。
ありがとうございました。
採番方法によるかと思います。
初期値が-1ということなので、自前のロジックだと思います。
採番ロジックでログを出力して調査するのが良いかと思います。
もしくは、トランザクションの開始・終了の処理をきちんと書かれていなくて
途中でトランザクションが切れてしまうと、ダメだとかそういう感じなのかもしれません。
ロジック見直す方向が良いかと思うのですが・・・。
不正なデータがどんな状況であっても作成されるのは、よろしくないと思うので。
SQLServerのIDENTITYプロパティーを使用する方式にかえるとかでも
問題は解決するかもしれません。
回答ありがとうございます。
採番ロジックでログを取るというのは気づきませんでした。
ただ、まれに出る現象ですし、わざわざ分室で調査するというのもなかなか難しいのです。
IDENTITYプロパティを使えば問題はなくなりそうですね・・ただ、それは最後の手段にしたいと思っています。
回答ありがとうございました。
考えてみましたが、まず、ログをとって原因を調べるのが一番かと思いました。
時間さえあれば、そのようにしたいと思います。回答ありがとうございます。
>まれに採番がうまくいかず、-1番という、初期化状態の番号の伝票ができてしまうことがあります。
-1だったら再取得するようにすればいいだけだと思いますよ。
お答えありがとうございます。
なるほど、トランザクション中に採番しているのですが、
その時に-1だったら採番し直すのですね。
さしあたってまずはそれで試してみたいと思います。
ありがとうございました。
回答ありがとうございます。
2013/01/24 00:09:39採番ロジックでログを取るというのは気づきませんでした。
ただ、まれに出る現象ですし、わざわざ分室で調査するというのもなかなか難しいのです。
IDENTITYプロパティを使えば問題はなくなりそうですね・・ただ、それは最後の手段にしたいと思っています。
回答ありがとうございました。
考えてみましたが、まず、ログをとって原因を調べるのが一番かと思いました。
2013/01/26 00:10:08時間さえあれば、そのようにしたいと思います。回答ありがとうございます。