今まで稼働していたプログラムが稼働しなくなった
客先で稼働していたプログラムが起動すると親タスクのタスク前処理でフリーズしてしまい
稼働できなくなった。
当方の環境では動作している。
客先環境
サーバー Win2019Server+SQLServer2019STD メモリー16GB
クライアント Win10Pro UnipaasV1Plusクライアント ワークファイル用にPervasiveSQLWG V10 3台
当方環境 Wi11Pro UnipaasV1Plus Studio SQLServer2019Essential
Unipaasで作成した業務管理システムをクライアント3台で稼働させています。
先々週までは問題なく稼働していましたが、1台で顧客マスター保守が起動できなくなり、
翌々日までには他の2台でも起動できなくなりました。
当方のテスト環境に客先のバックアップデータを復元して確認しましたが正常に動作します。
客先のPCに対してキャビネットファイルを再作成して入れ替えたり、Unipaasの再インストール・サーバー機のSQLServerの再インストールを行っても結果は同じです。
プログラムの構造は次のようになっています。
タスク前処理でパラメーターので顧客コードを渡されれば保守対象の顧客コードを更新してカーソルが保守対象顧客コードに止まる。
消費税率と対象年度をサブプログラムのCALLにより取得して表示。
保守対象顧客コードを指定すれば顧客マスターをLinkして子タスクで各項目の保守を行う作りです。
正常に稼働する当方の環境でのロギングは次のようになっています。
<128278475505769410> 09:35:59.717 [Action ] - >>ロード開始 オンライン タスク - '顧客マスター保守(閉店チェック)' in 修正 モード (タスク インスタンス: 3)
<128278475505769410> 09:35:59.717 [Action ] - 終了 タスクの読込
<128278475505769410> 09:35:59.728 [Action ] - 開始 タスク前
<128278475505769410> 09:35:59.728 [Action ] - フロー - 項目更新: 'L: V:タスクレベル' <== exp #1
<128278475505769410> 09:35:59.728 [Action ] - 再計算 - 'V:タスクレベル'
<128278475505769410> 09:35:59.938 [Action ] - フロー - 条件: 式 = 2, 結果 = False
<128278475505769410> 09:35:59.938 [Action ] - フロー - ブロック I=If: [実行しません]
<128278475505769410> 09:35:59.941 [Action ] - フロー - ブロック N=End:
<128278475505769410> 09:35:59.942 [Action ] - フロー - コール P=プログラム :: SUB/消費税率・年度取得 (#178)
<128278475505769410> 09:35:59.961 [Action ] - DBテーブルのオープン - 'コントロールファイル (#3) (R,W)'
<128278475505769410> 09:35:59.963 [Action ] - >>ロード開始 バッチ タスク - 'SUB/消費税率・年度取得' in 修正 モード (タスク インスタンス: 4, 常駐)
<128278475505769410> 09:35:59.963 [Action ] - 終了 タスクの読込
<128278475505769410> 09:35:59.969 [Action ] - 物理トランザクション書込 4
<128278475505769410> 09:35:59.975 [Action ] - レコード読込
<128278475505769410> 09:35:59.978 [Action ] - 開始 レコード後
<128278475505769410> 09:35:59.978 [Action ] - フロー - コメント:
<128278475505769410> 09:35:59.979 [Action ] - フロー - 項目更新: 'BX: V:消費税率1開始日' <== exp #2
<128278475505769410> 09:35:59.981 [Action ] - フロー - 項目更新: 'BY: V:消費税率2開始日' <== exp #3
<128278475505769410> 09:35:59.982 [Action ] - フロー - コメント:
<128278475505769410> 09:35:59.983 [Action ] - フロー - 条件: 式 = 4, 結果 = True
<128278475505769410> 09:35:59.984 [Action ] - フロー - ブロック I=If:
<128278475505769410> 09:35:59.985 [Action ] - フロー - コメント:
<128278475505769410> 09:35:59.986 [Action ] - フロー - 条件: 式 = 5, 結果 = True
<128278475505769410> 09:35:59.987 [Action ] - フロー - 項目更新: 'U: P_消費税率' <== exp #6
<128278475505769410> 09:35:59.989 [Action ] - フロー - コメント:
<128278475505769410> 09:35:59.990 [Action ] - フロー - 条件: 式 = 7, 結果 = False
<128278475505769410> 09:35:59.991 [Action ] - フロー - 項目更新: 'U: P_消費税率' <== exp #8 [実行しません]
<128278475505769410> 09:35:59.993 [Action ] - フロー - ブロック N=End:
<128278475505769410> 09:35:59.994 [Action ] - フロー - コメント:
<128278475505769410> 09:35:59.995 [Action ] - フロー - コメント:
<128278475505769410> 09:35:59.996 [Action ] - フロー - 条件: 式 = 9, 結果 = False
<128278475505769410> 09:35:59.997 [Action ] - フロー - ブロック I=If: [実行しません]
<128278475505769410> 09:35:59.998 [Action ] - フロー - ブロック N=End:
<128278475505769410> 09:35:59.999 [Action ] - フロー - コメント:
<128278475505769410> 09:36:00.001 [Action ] - フロー - コメント:
<128278475505769410> 09:36:00.003 [Action ] - フロー - 項目更新: 'V: P_処理年度' <== exp #12
<128278475505769410> 09:36:00.006 [Action ] - フロー - 項目更新: 'W: P_処理年月' <== exp #13
<128278475505769410> 09:36:00.007 [Action ] - フロー - 項目更新: 'X: P_期首年月日' <== exp #14
<128278475505769410> 09:36:00.009 [Action ] - フロー - 項目更新: 'Y: P_期末年月日' <== exp #15
<128278475505769410> 09:36:00.010 [Action ] - フロー - 項目更新: 'Z: P_消費税端数' <== exp #16
<128278475505769410> 09:36:00.011 [Action ] - フロー - 項目更新: 'BA: P_金額端数' <== exp #17
<128278475505769410> 09:36:00.012 [Action ] - 終了 レコード後
<128278475505769410> 09:36:00.019 [Action ] - トランザクションのコミット 4
<128278475505769410> 09:36:00.020 [Action ] - 開始 クローズ処理 バッチ タスク - 'SUB/消費税率・年度取得' (タスク インスタンス: 4)
<128278475505769410> 09:36:00.060 [Action ] - Closed database コントロールファイル (#3)
<128278475505769410> 09:36:00.065 [Action ] - <<終了 クローズ処理 タスク
<128278475505769410> 09:36:00.065 [Action ] - フロー - コメント:
<128278475505769410> 09:36:00.066 [Action ] - 終了 タスク前
<128278475505769410> 09:36:00.068 [Action ] - タスクモードを変更 - 修正
<128278475505769410> 09:36:00.076 [Action ] - トランザクション読込 0
<128278475505769410> 09:36:00.076 [Action ] - レコード読込
<128278475505769410> 09:36:00.086 [Action ] - トランザクションのコミット 0
<128278475505769410> 09:36:00.089 [Action ] - フロー - 項目 V=変数 'V:保守顧客コード' (通常モード 前方)
<128278475505769410> 09:36:00.095 [Action ] - >> イベント処理中 [コンテキストがフォーカス取得(G)] コントロール名 : [V:保守顧客コード]
<440329362523676610> 09:36:00.469 [Action ] - >> イベント処理中 [コンテキストがフォーカス喪失(L)] コントロール名 : [ 無効 ]
<128278475505769410> 09:36:08.166 [Action ] - >> イベント処理中 [コンテキストがフォーカス喪失(L)] コントロール名 : [V:保守顧客コード]
これが客先だと
<128278475505769410> 09:35:59.717 [Action ] - >>ロード開始 オンライン タスク - '顧客マスター保守(閉店チェック)' in 修正 モード (タスク インスタンス: 3)
<128278475505769410> 09:35:59.717 [Action ] - 終了 タスクの読込
<128278475505769410> 09:35:59.728 [Action ] - 開始 タスク前
<128278475505769410> 09:35:59.728 [Action ] - フロー - 項目更新: 'L: V:タスクレベル' <== exp #1
<128278475505769410> 09:35:59.728 [Action ] - 再計算 - 'V:タスクレベル'
<128278475505769410> 09:35:59.938 [Action ] - フロー - 条件: 式 = 2, 結果 = False
<128278475505769410> 09:35:59.938 [Action ] - フロー - ブロック I=If: [実行しません]
<128278475505769410> 09:35:59.941 [Action ] - フロー - ブロック N=End:
<440329362523676610> 09:36:00.469 [Action ] - >> イベント処理中 [コンテキストがフォーカス喪失(L)] コントロール名 : [ 無効 ]
客先では、親タスクのフォームが表示されずに固まっている状態になります。
フォームが表示されても、カーソルがどこにも止まらず、マウス操作・キー操作を受け付けない状態の場合もあります。
因みに「SUB/消費税率・年度取得」のサブプログラムは他の処理でも頻繁にCALLしている物で、他の処理では正常に動作しています。
また、アンチウィルスは客先と当方で同じソフト(ESET)を使用しています。
何が原因で客先で動作しなくなったのか解らずに困っています。
どなたかのご教示を御願いします。
-
全部がダメならライセンスファイルとか怪しいですけど、一部で
同じプログラムで環境によって動かなくなるとなるというと、フォルダ構成、iniファイルやWindowsアップデートを疑いますが
ログを見る限り、消費税のサブプロが呼べてないので、誰もモデルもプログラムも変えてないならあとはロックファイルでも変に残ってるとかくらいしか思いつきませんね -
Sun niharaさん ありがとうございます。
WindowsUpdateは 23H2→24H2 みたいな大きなUpdateは掛かっていなかったはずです。
ログを見る限りでは SUB/消費税率・年度取得 をCALLする前に コンテキスト消失になっているので
何なのだろうという感じです。 -
サププロへの引数とかは大丈夫でしたか?
徐々にダメになっていったとなると
Windowsアップデートは一番怪しいんですけどねー
あとは試すとしたらプログラム毎リポジトリの入出力とかですかね
昔、レコード後に何もしていない一行を追加したら動くけど、消すと落ちるって言うのはありましたけど、magic毎落ちてたので
今回は綺麗に諦めてるか処理中なように思えますし、mgerrorも残ってないのでしたら
いーさぼに聞くのが早いとは思います -
Sun Niharaさん ありがとうございます。
本日、客先に出向いてチェックしました。
私のパソコンに客先サーバーに接続する実行環境を設定して動作させたところ、
問題なく顧客保守は動作しました。
3台の客先クライアントで改めて動作確認すると、1台は画面表示まで行って止まり、残りの
2台は画面表示まで行かなくて止まっていました。
どうもパソコンの環境による物ではないかと思います。
画面表示まで進んだパソコンは Wi10Pro 2009
画面表示まで行かなかったパソコンは Wi11Pro 24H2 と Wi10Pro 2009 でした。
WindowsUpdateが原因でもなさそうです。
今現在、サーバ・クライアント共にウィルス検査を行っているところです。
何か解ったことがありましたら報告させていただきます。 -
Ace_Nagashimaさん、
「コンテキストがフォーカス喪失」というのは、ひょっとして画面がフリーズした状態になってしまって、やむを得ずマウスでどこかをクリックしたりするとそうなるという状況なのではないでしょうか?
-
Tandaさん ありがとうございます。
プログラムをメニューからコールしただけで何も操作していない状態です。
社内に客先パソコンと同程度のスペックの予備パソコンがありますので
客先システムをセッテイングして設置し、動作確認する予定です。
この予備機で動作するとなれば、客先パソコンに何らかの問題があることになると思います。また、ウィルス検査の結果は特に問題になるような物では有りませんでした。
-
Ace_Nagashimaさん、
ウィルス対策ソフト自体の動きはチェックされましたか?
-
Tandaさん、ありがとうございます。
ウィルス対策ソフトはEset EndPointの最新版です。
検査ログを見る限りではダウンロードした「CCleaner」というレジストリクリーニングソフトの
インストーラーが脅威と判定されたくらいでした。 -
Ace_Nagashimaさん、
最近のウィルス対策ソフトは、バージョンが新しくなればなるほど、動きが重くなるようですよ。
Windows Defenderも、然りですね。
サインインしてコメントを残してください。
コメント
9件のコメント