• MSMQ适配器的配置说明(转载)


     MSMQ适配器的地址格式:

    MSMQ://FORMATNAME:Direct=tcp:192.168.6.16\private$\QueueName

    对于IMSMQQueueInfoPathName这个属性,它只接受这样的语法:

    "myComputer\myPublicQueue"

    "otherComputer\otherPublicQueue"

    "myComputer\Private$\myPrivateQueue"

    ".\myPublicQueue"

    ".\Private$\myPrivateQueue"

    而不接受这样的IP标示:

    xxx.xxx.xxx.xxx \private$\yourqname

    因为并没有可供使用的语法指明这个地址是IP地址,所以MS不支持这种写法,会返回错误MQ_ERROR_ILLEGAL_PATHNAME (C00E0014)

    对于FormatName这个属性,它才接受你的各种各样DIRECT语法:

    Direct=tcp:MyMachineHostName \private$\yourqname

    Direct=tcp:xxx.xxx.xxx.xxx \private$\yourqname

                   PUBLIC=QueueGUID

                   DIRECT=Protocol:ComputerAddress\QueueName

                   DIRECT=OS:ComputerName\private$\QueueName

    PRIVATE=ComputerGUID\QueueNumber

    因为它可以显式指明使用的协议。

    如果你不小心给FormatName这个属性赋值

    MyMachineHostName \private$\yourqname,那就会得到

    MQ_ERROR_ILLEGAL_FORMATNAME (C00E001E)这个错误。

    同样,如果你不小心给PathName这个属性赋值

    direct=tcp:172.xx.xx.xx\private$\YourMQName,那就会得到

    MQ_ERROR_ILLEGAL_PATHNAME (C00E0014)这个错误。

    这两个属性真的不一样啊,不要搞混了。

    我的其他建议:

    如果你本机的MSMQ安装模式是Workgroup模式:

    只能使用.\private$\ YourPrivateMQName来访问本机的私有MSMQ队列。

    而不能使用.\ YourPublicMQName,即本机的公用队列你无法访问,只有在AD模式下才可以访问公用队列。

    谨慎起见,我进一步建议你不要在FormatName属性上使用DIRECT语法,因为:

    MSMQ1.0并不是完全支持DIRECT语法,MSMQ2.0才支持的。

    最好用PathName属性。

    所以,一般请这么使用PathName

    MyMachineHostName \ YourPublicMQName

    除非你要在Internet上访问远端MSMQ,再使用FormatName属性指定对方IP地址。

  • 相关阅读:
    iOS-汽车品牌app
    iOS-英雄联盟人物展示
    工作与梦想中的工作:给计算机专业学生的建议
    c++ 宏的使用
    c++ 预处理的应用
    iOS-UItableView 多组表格
    ios-代理模式 协议小结
    c++有符号变量和无符号变量相加的结果
    ios-图片轮播器
    ios-倒计时
  • 原文地址:https://www.cnblogs.com/isMe/p/547180.html
Copyright © 2020-2023  润新知