C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.10196 の関連記事表示

<< 0 >>
■10196  Re[2]: ジャーナルキューの参照
□投稿者/ カンタービレ -(2007/11/13(Tue) 13:41:55)
    2007/11/13(Tue) 13:48:55 編集(投稿者)

    No10188 (れい さん) に返信
    >
    > 今環境がなくて試せないので、
    > アドバイス程度です。
    >
    >>渡しているパスは "マシン名\private$\キュー名\journal$" デス。
    >
    > ずっと忘れてましたが、
    > MessageQueueのコンストラクタでpathを渡すとそのpathは検証されないようで、
    > 変なパスが指定できちゃいます。たぶんバグなんですが。
    > オブジェクトを作ってからプロパティでpathを設定したほうがいいです。
    > #後でフィードバックにあげときます。
    >
    > アドバイスですが。
    >
    > MessageQueueのFormatNameプロパティは正常になってますか?
    > FormatNameが実際に使われるので、これが変だとだめです。
    > なんか昔はprivate$とかjournal$が小文字だと変になったような気がしますが、よく覚えてません。
    >
    > コンストラクタで"FormatName: XXX"形式で指定してもだめですか?
    >
    > それと、エラーの詳細をください。
    > StackTraceとか。
    >
    > どっちにしろ、バグくさいなぁ

    アドバイスありがとうございマス。
    現状の1.0からのアップグレードソースを変更せずに検証してみました。

    [1回目]
    コンストラクタへの指定   :FormatName:DIRECT=OS:サーバ名\private$\キュー名\journal$

    MQインスタンスのFormatName :DIRECT=OS:サーバ名\private$\キュー名\journal$
    MQインスタンスのPath    :FormatName:DIRECT=OS:サーバ名\private$\キュー名\journal$
    MQインスタンスのQueueName :形式が無効です。
    MQインスタンスのMachineName:形式が無効です。

    形式名は無効です。
    場所 System.Messaging.MessageQueue.MQCacheableInfo.get_ReadHandle()
    場所 System.Messaging.MessageEnumerator.get_Handle()
    場所 System.Messaging.MessageEnumerator.MoveNext(TimeSpan timeout)
    場所 System.Messaging.MessageEnumerator.MoveNext()

    [2回目]
    コンストラクタへの指定   :サーバ名\private$\キュー名\journal$

    MQインスタンスのFormatName :無効なキューのパス名です。
    MQインスタンスのPath    :サーバ名\private$\キュー名\journal$
    MQインスタンスのQueueName :private$\キュー名\journal$
    MQインスタンスのMachineName:サーバ名

    無効なキューのパス名です。
    場所 System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath(String queuePath, Boolean throwException)
    場所 System.Messaging.MessageQueue.get_FormatName()
    場所 System.Messaging.MessageQueue.GetMessageEnumerator()

    旧バージョンでは2回目がうまく動くような感じなのデスが、2005ではエラーとなっているようデス。
    ご指摘のあったキュー名やパスをインスタンス生成後に動的に設定してみましたが
    空のインスタンスを生成後にPathを指定した時点で例外・・もしくは
    MachineName、QueueNameを指定し、Pathプロパティがセットされたのを確認してみてもダメデス。。
    FormatNameプロパティはReadOnlyなので直接指定も出来ず・・・書き方が悪いのでしょうか。。

    [追記]
    ちなみに、同じフォーマットでローカルホストを指定した場合は例外発生しません。
    ローカルコンピュータのネットワーク名で、localhostではありません。
    前は例外発生しなかったのにぃぃぃ・・ぎゃぼん・・・
記事No.10171 のレス /過去ログ23より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -