zoukankan      html  css  js  c++  java
  • 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地址。

  • 相关阅读:
    Linux注意到Makefile
    coco2dx c++ HTTP实现
    怎么样putty打开图形化管理工具,在终端上
    javabean总结
    发布Ubuntu/Linux系统cache,增加可用内存空间
    Java获得正则表达式
    uva 11992 为矩阵更新查询段树
    oracle在schema是什么意思?
    zoj 3288 Domination (可能dp)
    学习算法
  • 原文地址:https://www.cnblogs.com/isMe/p/547180.html
Copyright © 2011-2022 走看看