none
[拡張イベント] 出力ファイル名にピリオドを含める名前を指定するとエラーが発生して登録できない RRS feed

  • 質問

  • いつもお世話になっております。

    拡張イベントを使用してユーザーの操作を記録するプログラムを作成しています。

    出力ファイル名に一意性を保つためにIPアドレスを付加して作成するようにしたところ

    下記のようなメッセージが出力され、セッションの作成に失敗してしまいました。

    実行したクエリ

    ----

    CREATE EVENT SESSION [SqlEvent-3_192.168.0.137-20190813144807] ON SERVER 
    ADD EVENT sqlserver.rpc_completed ( 
    ACTION(
    package0.event_sequence,
    sqlserver.client_app_name,
    sqlserver.client_hostname,
    sqlserver.database_name,
    sqlserver.server_instance_name,
    sqlserver.session_nt_username,
    sqlserver.session_server_principal_name,
    sqlserver.transaction_id,
    sqlserver.username)
    ), 
    ADD EVENT sql_batch_completed ( 
    ACTION(
    package0.event_sequence,
    sqlserver.client_app_name,
    sqlserver.client_hostname,
    sqlserver.database_name,
    sqlserver.server_instance_name,
    sqlserver.session_nt_username,
    sqlserver.session_server_principal_name,
    sqlserver.transaction_id,
    sqlserver.username)

    ADD TARGET package0.event_file(
    SET filename = N'C:\trace\SqlEvent-3_192.168.0.137-20190813144807.xel',
     max_file_size = (512),
     max_rollover_files = (40)) 
    WITH(
    MAX_MEMORY = 4096 KB,
     EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
     MAX_DISPATCH_LATENCY = 30 SECONDS,
     MAX_EVENT_SIZE = 0 KB,
     MEMORY_PARTITION_MODE = NONE,
     TRACK_CAUSALITY = OFF,
     STARTUP_STATE = ON)

    ----

    出力されたメッセージ

    ----

    対象 "package0.event_file" では、渡されたパラメーター "filename" が無効です。インデックス 0 のターゲット パラメーターが無効です

    ----

    ピリオドになっている部分をアンダーバーに置き換えて実行したところ問題なく作成できたので原因は

    ピリオドにあると考えています。できればそのままピリオドを使う方向で良い回避策があれば知りたいです。

    以上、よろしくお願いします。


    • 編集済み m-matsuda 2019年8月16日 4:49
    2019年8月13日 8:38

すべての返信

  • m-matsudaさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    本件につきまして、その後のご状況いかがでしょうか。
    追加でご確認いただいたことなどあれば、追記いただくことで回答がつきやすくなります。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~


    2019年8月15日 8:31
    モデレータ
  • 拡張イベントについては、上記のとおりですが、監査では、監査の名前にピリオドをつけた場合には

    出力されるファイル名には、ピリオドはなく"%8"に置き換えられていました。

    この置き換えがSQLServerの仕様なのかということも確認したい点なのですが

    まずは、拡張イベントの問題を解決したいと考えています。


    • 編集済み m-matsuda 2019年8月15日 10:08
    2019年8月15日 10:07
  • m-matsudaさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    ご説明によると、あなたのスクリプトを実行しようとしましたが、うまくいきました。 
    問題が権限に関連している可能性があり、フォルダーが存在しないとか(インスタンスの構成が移動された)、物事の全体のスルーである可能性があると思われます。

    また、同様の問題がある投稿を見つけましたので、それをご参照することで、原因の特定に役に立つでしょう。
    Can't start system_health extended events session

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年8月16日 8:36
    モデレータ
  • フォーラムオペレーターのHarukaさん。

    返信ありがとうございます。

    ファイル名のピリオドをアンダーバーに変えた場合は、成功したのですがこの事象については

    どのような理由が考えられますか?

    2019年8月16日 8:48
  • m-matsudaさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    実際の環境と実際の設定がわからないので、具体的にテストすることはできません。 
    はっきりした結果はありません。 
    私はそれがアクセス許可とファイル名と何か関係があると思います。これらのセクションを確認してください。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年8月20日 2:08
    モデレータ
  • フォーラムオペレーターのHarukaさん。

    返信ありがとうございます。

    Harukaさんのほうで検証したときの結果を見せていただくことはできないでしょうか?

    実行したクエリや作成したファイルが確認できたら幸いです。

    2019年8月20日 9:32
  • SQLServerのバージョンについて書いてくれていないけど、SQLServerのバージョン依存じゃないかなぁ…
    つまりピリオド使いたいなら回避策はバージョンを上げることに

    • NG Win7 + SQLServer2012SP4
    • NG Win10 + SQLServer2012SP4
    • OK Win10 + SQLServer2014SP3
    • OK Win10 + SQLServer2016SP2
    CREATE EVENT SESSION [test] ON SERVER 
    ADD EVENT sqlserver.sql_statement_completed(
        ACTION(sqlserver.sql_text)) 
    ADD TARGET package0.event_file(SET filename=N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\1.2.3.4Test.xel',max_file_size=(100))
    WITH (STARTUP_STATE=OFF)
    GO
    
    #消したり入れたり複数バージョン試すのめんどくさい

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2019年8月20日 17:43
  • m-matsudaさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    ご提供したスクリプトを実行したところ、「コマンドが正常に完了しました」と表示しました。次のスクリーンショットで確認できます。


    また、それは私のバージョン情報です。
    Microsoft SQL Server 2017(RTM)-14.0.1000.169(X64)
    Windows 10 Enterprise 10.0 <X64>上のDeveloper Edition(64ビット)(ビルド17763:)

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年8月21日 7:23
    モデレータ
  • m-matsudaさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問いただいた件につきまして、その後のご状況いかがでしょうか。
    また問題などあれば、追記いただくことで回答がつきやすくなります。

    参考になった投稿があれば、[回答としてマーク] をお願い致します。

    設定いただくことで、
    他のユーザーもお役に立つ回答を見つけやすくなります。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年8月28日 8:44
    モデレータ
  • 回答ありがとうございます。

    最初に検証した環境に関しての情報が足りなくてすいません。

    動作確認をWindows10で行っていますが、Windows Server 2012 R2で行っても同様の結果でしょうか?

    情報を提示が遅くなって申し訳ありませんが確認していただけると助かります。

    2019年9月10日 4:53
  • m-matsudaさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信いただきありがとうございます。

    ご提供したスクリプトをWindows Server 2012 R2で実行し、「コマンドが正常に完了しました」と表示されました。

    また、私のバージョン情報は以下となります。
    Microsoft SQL Server 2017(RTM-GDR)(KB4505224)-14.0.2027.2(X64)
    Windows Server 2012 R2 Datacenter 6.3 <X64>上のDeveloper Edition(64ビット)(ビルド9600:)(Hypervisor)

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年9月11日 8:25
    モデレータ
  • gekkaさん。

    回答ありがとうございます。見落としていて返信が遅くなってすいません。

    大変有用な情報ありがとうございます。

    バージョンを上げる以外に回避策はご存知ないでしょうか?

    2019年9月17日 5:56
  • Harukaさん。

    返信ありがとうございます。 gekkaさんの回答にもあるようにこの問題は、SQL Server のバージョンによる違いがあるようです。

    SQLServer 2012の場合には、回避策は何かありますでしょうか?

    バージョンアップがベストな方法でしょうか?


    • 編集済み m-matsuda 2019年9月17日 5:58
    2019年9月17日 5:57