标签: msmq

在Windows上排队MSMQ的队列?

如果你想在Windows下使用排队产品进行持久消息传递,运行.NET 2.0及更高版本,那么今天存在哪些MSMQ替代品?我知道ActiveMQ(http://activemq.apache.org/),我看过WSMQ的引用(指向http://wsmq.net),但该网站似乎已经关闭.

还有其他选择吗?

.net messaging soa msmq

32
推荐指数
4
解决办法
2万
查看次数

MSMQ:从队列接收时,什么可能导致"资源不足以执行操作"错误?

MSMQ:从队列接收时,什么可能导致"资源不足以执行操作"错误?

当队列只保留2,000条消息时,每条消息的大小约为5KB.

msmq

29
推荐指数
3
解决办法
3万
查看次数

如何研究.NET中的非托管内存泄漏?

我有一个在MSMQ上运行的WCF服务.内存随着时间的推移逐渐增加,表明存在某种内存泄漏.我在本地运行该服务并使用PerfMon监控一些计数器.总CLR内存管理堆字节保持相对恒定,而进程的私有字节随时间增加.这让我相信存在某种非托管内存泄漏.假设存在非托管内存泄漏问题,我该如何解决这个问题?是否有任何工具可以用来向我提供有关导致非托管内存泄漏的提示?此外,我所有的服务都是从事务队列读取并写入数据库,所有这些都是DTC事务的一部分(通过要求服务合同上的事务来处理).我没有明确地使用COM或DllImports做任何事情.

提前致谢!

c# sql-server wcf memory-leaks msmq

27
推荐指数
2
解决办法
1万
查看次数

我应该使用MSMQ或SQL Service Broker进行交易吗?

我的团队负责人已经要求我调查MSMQ作为我们产品新版本的选项.我们在当前版本中使用SQL Service Broker.我已经完成了相当多的实验和谷歌搜索,以找到哪个产品更符合我的需求,但我想我会问我最熟悉的网站来编程答案.

一些细节:

  • 我们的客户端是.NET 1.1和2.0代码; 这是消息发送的地方.
  • SQL Server 2005实例中的目标.所有消息最终都是数据库更新或插入.
  • 我们将发送几个必须被视为交易的更新.
  • 我们必须拥有完美的消息可恢复性; 没有消息可以丢失.
  • 即使目标SQL服务器关闭,我们也必须是异步的并且能够接受消息.
  • 开发我们自己的排队解决方案不是一种选择; 我们是一个小团队.

到目前为止我发现的事情:

  • MSMQ和SQL Service Broker都可以完成这项工作.
  • 对于事务性消息来说,服务代理似乎更快.
  • Service Broker需要在某处运行SQL Server,而MSMQ需要在任何地方运行任何已配置的Windows机器.
  • MSMQ似乎更好/更快/更容易在群集中设置/运行.

我错过了什么吗?这里有明显的赢家吗?任何想法,经验或链接都会受到重视.谢谢!

编辑:我们最终坚持使用服务代理,因为我们的一些客户端代码中使用了自定义数据库框架(我们更好地处理事务).该代码捕获了事务的SQL,但没有.客户端代码也是.NET的1.1版本,因此我们必须升级所有客户端代码.谢谢你的帮助!

sql msmq transactions service-broker

25
推荐指数
1
解决办法
2万
查看次数

无权访问私有MSMQ

在XP机器上有一个由.net服务创建的私有消息队列.当我想在VB6应用程序中访问此私有队列时,我不断收到"访问被拒绝"错误.所以这似乎是一个安全问题,只有我不明白为什么即使我以管理员身份登录,我仍然无法访问在同一台机器上创建的队列.还有什么我必须考虑的事情.

关于如何在VB6中使用队列的示例

Public msgQueue As MSMQQueue

Private Sub OpenQueue()

    Dim MQ As New MSMQQueueInfo
        MQ .PathName = ".\Private$\incommingQueue"

    Set msgQueue = MQ.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)

End Sub
Run Code Online (Sandbox Code Playgroud)

vb6 msmq

25
推荐指数
2
解决办法
2万
查看次数

写入远程MSMQ

好的,这是一个非常简单和基本的问题.如果我在Windows机器A上有一个想要写入Windows机器B队列的应用程序,我是否需要在机器A上安装MSMQ(即使那里没有队列)?我刚刚开始为我的应用程序使用队列,并试图找出一些基本原理.

谢谢

.net windows msmq

24
推荐指数
2
解决办法
2万
查看次数

WCF msmq transactioned和工作单元

我构建了一个事务性的MSMQ WCF服务.我在我的操作中使用了以下属性:

[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
Run Code Online (Sandbox Code Playgroud)

我在服务中使用Nhibernate.使用Nhibernate我在会话中提交.如果我禁用Nhibernate提交,则会正确处理消息并从队列中删除.通过此提交,Nhibernate事务正确,但我的消息进入重试队列.

这是我进入Nhibernate服务跟踪的例外.

Description Handling an exception. Exception details: System.Transactions.TransactionAbortedException: The transaction has aborted. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Transaction'.
   at System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption)
   at System.Transactions.TransactionScope.SetCurrent(Transaction newCurrent)
   at System.Transactions.TransactionScope.PushScope()
   at System.Transactions.TransactionScope.Initialize(Transaction transactionToUse, TimeSpan scopeTimeout, Boolean interopModeSpecified)
   at System.Transactions.TransactionScope..ctor(Transaction transactionToUse, TransactionScopeAsyncFlowOption asyncFlowOption)
   at System.Transactions.TransactionScope..ctor(Transaction transactionToUse)
   at NHibernate.Transaction.AdoNetWithDistributedTransactionFactory.DistributedTransactionContext.System.Transactions.IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment)
   --- End of inner exception stack trace ---
   at System.Transactions.TransactionStatePromotedAborted.PromotedTransactionOutcome(InternalTransaction tx)
   at System.Transactions.TransactionStatePromotedEnded.EndCommit(InternalTransaction tx)
   at System.Transactions.CommittableTransaction.Commit()
   at System.ServiceModel.Dispatcher.TransactionInstanceContextFacet.Complete(Transaction transaction, Exception error)
Run Code Online (Sandbox Code Playgroud)

似乎nhibernate提交破坏了WCF上的事务.我找不到解决这个问题的方法.

任何帮助可能会受到赞赏

c# nhibernate wcf msmq transactions

24
推荐指数
1
解决办法
635
查看次数

MSMQ v数据库表

现有流程响应用户输入更改表中预订记录的状态字段.

我有另一个要编写的进程,它将为具有特定状态的记录异步运行.它将读取表记录,执行一些操作(包括对第三方Web服务的调用),并更新记录的状态字段以指示处理已完成(或错误,错误计数).

此操作听起来非常类似于队列.在这种情况下使用MSMQ而不是SQL表有什么好处和权衡,为什么我要选择一个而不是另一个?

我们的软件是在表格中添加和更新记录.

这是一项将执行异步处理的新工作(Windows服务).这需要"永远向上".

sql msmq message-queue

23
推荐指数
3
解决办法
6495
查看次数

为其他用户创建的专用队列设置MSMQ权限

之前在工作中使用我的PC的人设置了我需要访问的私有MSMQ.他们已离开银行,但权限仍然存在,我无法访问队列或授予自己编辑权限以取消限制.

我现在是这台机器上的管理员,所以我假设有一些方法可以让我改变一些东西.Been搜索高低,但我发现的大部分内容都与通过脚本做事有关.

任何帮助,赞赏,

谢谢

permissions msmq admin

23
推荐指数
3
解决办法
3万
查看次数

多播,消息传递,ActiveMQ与MSMQ?

我正在为我们的产品开发消息/通知系统.基本要求是:

  • 火与忘记
  • 持久性消息集,可能更新,留在那里直到发送者说要删除它们

这些库将用C#编写.Spring.NET刚刚发布了一个具有大量优秀消息抽象的里程碑版本,这很棒 - 我计划广泛使用它.我的基本问题归结为消息经纪人的问题.我的架构看起来像应用程序 - >消息代理队列 - >侦听的服务器应用程序,将所有消息分派到他们需要去的地方,并处理那些长期消息的生命周期 - >消息代理队列或主题 - >监听应用.

最后,问题是:我应该使用哪个消息代理?我偏向于ActiveMQ - 我们在上一个项目中使用它并喜欢它.我不能想到对它的单一攻击,除了它是Java,并且需要在某个地方的服务器上安装java,这对于将使用这项服务的一些人来说可能很难卖.我一直在关注的另一个选择是MSMQ.我出于某种未知原因对它有偏见,而且它似乎也没有很好的多播支持.

有没有人用MSMQ这样的东西?任何利弊,可能会以某种方式影响投票的东西?

最后一点,我们使用的是.NET 2.0.

messaging activemq-classic msmq

22
推荐指数
3
解决办法
2万
查看次数