mggui.dll のエラーについて
アドバンス情報の川島です。
クライアントサーバ型のシステムを稼働させたのですがmgerror.logに下記のようなエラー(.net)のエラーが出力されます。
内容:
<-1> 21/04/2021 18:47:47.537 [Error ] - [MgGui.dll] System.NullReferenceException :
場所 com.magicsoftware.unipaas.gui.low.GuiCommandQueueBase.setText(GuiCommand guiCommand)
場所 com.magicsoftware.unipaas.gui.low.GuiCommandQueueBase.Run()
オブジェクト参照がオブジェクト インスタンスに設定されていません。, Program: "A(バッチ).B(バッチ).C(オンライン画面)".
<-1> 21/04/2021 18:47:47.580 [Error ] - [MgGui.dll]
場所 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
場所 System.Environment.get_StackTrace()
場所 com.magicsoftware.rte.CoreExecutor.WriteExceptionToLog(Int64 contextID, String msg)
場所 com.magicsoftware.rte.GuiEventsProcessor.WriteExceptionToLog(String message)
場所 com.magicsoftware.unipaas.Events.WriteExceptionToLog(String msg)
場所 com.magicsoftware.unipaas.Events.WriteExceptionToLog(Exception ex)
場所 com.magicsoftware.unipaas.gui.low.GuiCommandQueueBase.Run()
場所 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
場所 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
場所 System.Delegate.DynamicInvokeImpl(Object[] args)
場所 System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
場所 System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
場所 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
場所 System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
場所 System.Windows.Forms.Control.InvokeMarshaledCallbacks()
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
場所 System.Windows.Forms.Form.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
場所 com.magicsoftware.unipaas.gui.low.GUIMain.messageLoop()
場所 com.magicsoftware.unipaas.Manager.MessageLoop()
場所 com.magicsoftware.rte.RTEmanager.ExecuteMainThread(String args)
場所 com.magicsoftware.rte.RTEmanager.Main(), Program: "メインプログラム".
これが複数記録されます。ただいつも出るわけでないようです。
関連プログラムのA,B,CはF8のエラーチェックは問題ありません。
1.このエラーは何を意味しているのでしょうか?(サポートによると画面系のエラーということでした)
2.チェックする箇所(プログラムまたは環境)はどこでしょうか?
過去のログを検索する同じような内容があるので参考にさせていただきます。
何かヒントをいただければ幸いです。よろしくお願いいたします。
幸いシステムの動作には問題が無いようです。
お願いいたします。
-
アドバンス情報の川島です。
unipassからXPA4.6.1のマイグレーションです。
ご指摘の過去ログは確認しています。ただ社内の環境で再現できないので空データビュー許可をYESしたら治ったとの確信がもてないので迷っています。
最新にする、というのはXPAのエンジンのとこでしょうか?
どうゆうときにこのエラーでるのかまたはこのエラーは何についてのエラーなのかわかりますでしょうか?
-
旧フォーラムで発言したものです。
私が確認できた現象発生条件は、V9Plusからxpa3.2へのマイグレーションで
タスク構成は、ヘッダ明細の親子タスクで子タスクの画面がファントムタスク
での表示になっていて、RM互換になっている場合となりますので、
サブフォームを使用していたり、RM互換でない場合は現象が解消できるかは
わかりません。
-
nagaiさん、補足説明をありがとうございます。
-
アドバンス情報の川島です。ご回答ありがとうございます。
確かに今回マイグレーションでRM互換も残っております。マイグレーションで多少手を入れたのですがそれが何かエラーとなっているのでしょうか?
nagaiさんは社内で再現することができたのでしょうか?
-
開発版のF7実行で確認できています。
同様な条件のプログラムは多数あるのですが、現象が発生したのは
2つのプログラムのみです。
原因は全くわかっていなく、色々と試している内にエラーがでなくなりました。
-
エラーが表示されている間、プログラムは正常に動作していましたか?
F8では検出できないですよね。
-
マイグレーション後のテストでは何の問題もなく動作していたので、
mgerror.logを見るまでは全く気づきませんでした。
もちろんF8チェックも引っかかりませんでした。
-
nagai様
同様な条件のプログラムは
空データビュー許可 =No
の状態でも発生しなかったのですか?
-
V9Plusからのマイグレーションの為、空のデータビュー許可はデフォルトの No のままで
現象発覚後、同様の作りのプログラムを再度実行確認したところ、2つのプログラム
だけがエラーを出力していました。
-
ご回答ありがとうございます。
そもそもこのエラーはXPAがどのような状態のときに発生するのですか?
nagai様のように社内で再現ができないので対処のしようが無い状態です。
もう少しプログラムを確認してみます。
ありがとうございました。
-
再現性のルールが見つからないときは本当に苦労しますね。
-
アドバンス情報の川島です。
事象に一貫性がないので、各ユーザーごとにmgerror.logを分けてユーザーを特性してヒアリングをしてみたいと思います。
この手の類のエラー、MSJのサポートではログから追えないんですかね?
-
このエラーログのみでは解析はできないですかね?
OSには何も出ていませんでした。
ご回答ありがとうございます。
-
アドバンス情報の川島です。
ご返信遅れまして申し訳ございません。
あれからいろいろと検証をしているのですが手詰まりな状態です。
確かにご指摘のようにRM互換となっております。発生頻度はあっても一日に一回程度で発生しない日は
まったく発生しません。 かつ社内ではまったく再現しません。
違いとしたら先方には実行版のみ、社内は開発版および実行版が両方入っております。
ひょっとしてインストールされている .netframeworkの違いでしょうか?
-
当たっているかどうか分かりませんが、magic.iniに下記の記述を行ったら直ったという人がいました。
[MAGIC_SPECIALS]SpecialLogInternalExceptions=N
要は、ログに出力しないというだけの設定なんだと思いますが。
-
横から失礼します
チェックボックスの再描画問題で、画面フォーム上・テーブルコントロールに配置していたチェックボックスが上手く再描画できなかった際の、チェックボックスのプロパティで対応、その後、PTがリリースされた際にそれをもどさなかったら、
「SpecialCheckBoxOwnerDraw=Yの設定を行うと、実行時にmgerror.logにエラーが出力されることがある問題」
に該当し、Mggui.dllのエラーが大量にmgerror.log へ記録された。
対応方法は、xpa 4.6.1 PT2環境で、チェックボックスのプロパティを元にもどした(uniPaaSと同じ & チェックボックスのデフォルトの設定)ところ、解消しました。
また、チェックボックス以外でも Mggui.dllのエラーが発生するケースもありました。
RM互換で多く発生しているというのは、知りませんでした。
[MAGIC_SPECIALS]SpecialLogInternalExceptions=N の設定は、何かしらの障害が今後発生していても、mgerror.log へ記録されないのはNGとおもい、適用していません。
サインインしてコメントを残してください。
コメント
17件のコメント