none
イベントログのメッセージに%が含まれる。 RRS feed

  • 質問

  • MicroStrategy というサーバ製品で、サービスを起動すると、エラーになり、以下のイベントログを出力する場合があります。

    Windows のイベントログで[全般]タブを見ると、以下のメッセージが出力されています。

    =====================================================
    MicroStrategy Intelligence Server
    サービスは、次のサービス固有エラーで終了しました:
    %%4294967295 =====================================================

    このメッセージを別のアプリケーションがWindows イベントログAPIで受け取ろうとするのですが、

    これが出力されると、「%%4294967295」の部分がWindows イベントログAPIで「%」が特殊文字として実装されているため、Windows APIからイベントログ文字列を正常に受け取れず、パースに失敗し、アプリケーションがエラーメッセージを受け取ることができません

    MicroStrategy社のサポートに問い合わせたところ以下の内容が返ってきました。

    -----------------

    調査しましたところ、ご指摘のメッセージは

    windows イベントビューアが提示した内容になるようです。
    このエラーコードはMicrosoft Windowsより一般に
    使用されているフォマットのようで、弊社製品側の仕様ではございません。
    下記URLより、ご参考いただければ幸いです。
    http://www.dllmissingfix.com/windows-error/80983.html

    -----------------

    Windowsが一般的に使用しているフォーマットが、Windowsが提供しているAPIに準拠していないのも変だと思うのですが、実際はどうなのでしょうか?

    Windows側でそのように出してしまうので、アプリケーションのプログラムでは制御できないものなのかを教えてください。

    2017年2月7日 1:37

回答

  • こんにちは。

    こちらのイベントログ、Windows のAPIとおっしゃっているのですが、具体的にどの API のことでしょうか。

    イベントログ上は正常に出力されているということは、Windows の API は正常に動作しているのではないでしょうか?

    「別のアプリケーション」が文字列をうまく操れていないは、そのアプリケーションの実装に問題があることが考えられませんか。


    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

    2017年2月7日 9:35

すべての返信

  • こんにちは。

    こちらのイベントログ、Windows のAPIとおっしゃっているのですが、具体的にどの API のことでしょうか。

    イベントログ上は正常に出力されているということは、Windows の API は正常に動作しているのではないでしょうか?

    「別のアプリケーション」が文字列をうまく操れていないは、そのアプリケーションの実装に問題があることが考えられませんか。


    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

    2017年2月7日 9:35
  • 詳しくはわかりませんが、イベントを監視している別のアプリケーション(Operations Manager - HP)を調査しているTmが言っていたことなので、おそらく、プログラム内で、以下のいずれかのライブラリを使用していると思われます。

    1. .NET Framework クラス ライブラリの EventLog クラス      
    2. Windows Management Instrumentation (WMI)       
    3. .NET Framework クラス ライブラリの Eventing.Reader.EventLogReader クラス       
    4. Log Parser (Interop.MSUtil.dl) ユーティリティ       
    5. Win32 API の **EventLog** API

    このライブラリ自体がエラーを出しているとなると、本来イベントログを出力する側のアプリケーション(今回はMicroStrategyという製品の)が、制御できるのではないかと思っているのですが、MicroStrategyサポートからは「Windowsのフォーマットで%付きのメッセージが入ってしまうのです」といっていたようなので、実際にイベントログの「全般」のメッセージに%付きの文字が出てしまうのか確認したかったのです。(このエラー番号ではないですが、Tomcatなどでは起動時エラーで、%%2や%%4などが「詳細」パラメータにはいってはきますが「全般」のメッセージには%などは入っておらず、きちんとメッセージが入ってきていました。)

    エラーを出しているアプリケーション(MicroStrategy)以外のサーバ製品でいろいろ試してみたのですが、「4294967295」のエラーを再現するのが難しく、このエラーのメッセージが出力側のアプリケーションで制御できないものなの(「別のアプリケーション」で対処するしかないもの)か、それとも本来制御可能なのに、対処していないのか(MicroStrategy側のバグで、修正依頼を出すべき)がわからない状態です。

    現在「別のアプリケーション」側で対処を考えているのですが、結構大変なものであるため、出力側のアプリケーションに直させられるものであれば直させたいと思い、Windows側の制御を確認したかったのですが、こちらではWindows自体の仕様はわからないということのようですので、この質問は取り下げさせていただきます。

    お騒がせいたしました。

    2017年2月8日 6:33