You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jim Gomes (JIRA)" <ji...@apache.org> on 2008/12/16 19:09:05 UTC
[jira] Resolved: (AMQNET-131) .NET Client is not receiving messages
[ https://issues.apache.org/activemq/browse/AMQNET-131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jim Gomes resolved AMQNET-131.
------------------------------
Resolution: Incomplete
Need a smaller repro case. Please re-open once a simpler case can be created.
> .NET Client is not receiving messages
> -------------------------------------
>
> Key: AMQNET-131
> URL: https://issues.apache.org/activemq/browse/AMQNET-131
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: ActiveMQ Client
> Environment: 1. Java Producer using Mule placing Messages into Queue.
> 2. ActiveMQ on JBoss web server, running on Linux
> 3. .NET Consumer running as Windows Service on Windows 2003 server
> Reporter: Sanjeev
> Assignee: Jim Gomes
> Priority: Critical
>
> I am using IMessageConsumer to receive messages from the queue using NMS on .NET.
> The listener is dying periodically within half-hour. I could see messages in the queue. But .NET Listener is not getting any messages.
> The messages are arriving after I restart the service.
> Please find below the code I am using
> Imports System
> Imports System.Collections.Generic
> Imports System.Text
> Imports System.Configuration
> Imports System.Threading
> Imports ActiveMQ
> Imports Spring.Messaging.Nms
> Imports Spring.Messaging.Nms.Listener
> Imports Business.RIO.Business
> Imports BusinessEntities.RIO.Entities
> Imports Exceptions.RMSExceptions
> Imports Utils.RIO.Utils
> Imports NMS
> Imports System.Xml
> Imports System.Timers
> Namespace ListenerConsole
> Public Class InterfaceBaseHelper
> #Region "Private Variables"
> Private config As ConfigurationEntity
> #End Region
> Public Sub New()
> config = New ConfigurationEntity()
> config.ServerName = ConfigurationManager.AppSettings("ServerName")
> config.LocationQueueName = ConfigurationManager.AppSettings("LocationQueueName")
> config.CustQueueName = ConfigurationManager.AppSettings("CustomerQueueName")
> config.WOQueueName = ConfigurationManager.AppSettings("WOQueueName")
> config.MeterQueueName = ConfigurationManager.AppSettings("MeterQueueName")
> config.InfraQueueName = ConfigurationManager.AppSettings("InfraQueueName")
> config.LocationAckQueueName = ConfigurationManager.AppSettings("LocationAcknowledgementQueueName")
> config.MeterAckQueueName = ConfigurationManager.AppSettings("MeterAcknowledgementQueueName")
> config.WOAckQueueName = ConfigurationManager.AppSettings("WOAcknowledgementQueueName")
> config.InfraAckQueueName = ConfigurationManager.AppSettings("InfraAcknowledgementQueueName")
> config.CustAckQueueName = ConfigurationManager.AppSettings("CustAcknowledgementQueueName")
> config.ErrorQueueName = ConfigurationManager.AppSettings("ErrorQueueName")
> config.ServerPollingIntervalInSeconds = Convert.ToInt32(ConfigurationManager.AppSettings("ServerConnectionPollingIntervalInSeconds"))
> facade = New RIOFacade(config)
> End Sub
> Dim timer As System.Timers.Timer
> Dim facade As RIOFacade
> ''' <summary>
> ''' Starts all queues
> ''' </summary>
> ''' <remarks></remarks>
> Public Sub ServiceStartUp()
> Try
> timer = New System.Timers.Timer()
> timer.Interval = config.ServerPollingIntervalInSeconds * 1000
> timer.Enabled = True
> OpenConnections()
> AddHandler timer.Elapsed, (AddressOf StartConnections)
> timer.Start()
> Catch ex As Exception
> ExceptionManager.HandleException(ex)
> RIOHelper.LogException(ex)
> End Try
> End Sub
> Dim lookupsCached As Boolean = False
> Private Sub OpenConnections()
> Try
>
> ListenLocationQueueMessaage()
> ListenMeterQueueMessaage()
> ListeninfraQueueMessaage()
> ListenWOQueueMessaage()
> RIOHelper.LogMessage("Connections Started.")
> Catch ex As Exception
> RIOHelper.LogMessage(ex.Message)
> ExceptionManager.HandleException(ex)
> End Try
> End Sub
> Private Sub StartConnections(ByVal sender As Object, ByVal e As ElapsedEventArgs)
> Try
> timer.Stop()
> CloseConnections()
> OpenConnections()
> Catch ex As Exception
> RIOHelper.LogMessage(ex.Message)
> ExceptionManager.HandleException(ex)
> End Try
> timer.Start()
> End Sub
> Private Sub CloseConnections()
> locConnectionFactory = Nothing
> locConsumer.Close()
> locConsumer.Dispose()
> locSession.Close()
> locSession.Dispose()
> locConnection.Close()
> locConnection.Dispose()
> mtrConnectionFactory = Nothing
> mtrConsumer.Close()
> mtrConsumer.Dispose()
> mtrSession.Close()
> mtrSession.Dispose()
> mtrConnection.Close()
> mtrConnection.Dispose()
> woConnectionFactory = Nothing
> woConsumer.Close()
> woConsumer.Dispose()
> woSession.Close()
> woSession.Dispose()
> woConnection.Close()
> woConnection.Dispose()
> infraConnectionFactory = Nothing
> infraConsumer.Close()
> infraConsumer.Dispose()
> infraSession.Close()
> infraSession.Dispose()
> infraConnection.Close()
> infraConnection.Dispose()
> End Sub
> #Region "Listerners"
> Dim locConnectionFactory As ConnectionFactory
> Dim locConnection As IConnection
> Dim locSession As ISession
> Dim locConsumer As IMessageConsumer
> ''' <summary>
> ''' Listener for Location queue
> ''' </summary>
> ''' <remarks></remarks>
> Private Sub ListenLocationQueueMessaage()
> locConnectionFactory = New ConnectionFactory(config.ServerName)
> locConnection = locConnectionFactory.CreateConnection()
> locSession = locConnection.CreateSession()
> locConsumer = locSession.CreateConsumer(locSession.GetQueue(config.LocationQueueName))
> AddHandler locConsumer.Listener, (AddressOf HandleLocation)
> End Sub
> Private Sub HandleLocation(ByVal message As IMessage)
> facade.ProcessLocation(TryCast(message, ITextMessage).Text)
> End Sub
> Dim mtrConnectionFactory As ConnectionFactory
> Dim mtrConnection As IConnection
> Dim mtrSession As ISession
> Dim mtrConsumer As IMessageConsumer
> ''' <summary>
> ''' Listener for Meter queue
> ''' </summary>
> ''' <remarks></remarks>
> Private Sub ListenMeterQueueMessaage()
> mtrConnectionFactory = New ConnectionFactory(config.ServerName)
> mtrConnection = mtrConnectionFactory.CreateConnection()
> mtrSession = mtrConnection.CreateSession()
> mtrConsumer = mtrSession.CreateConsumer(mtrSession.GetQueue(config.MeterQueueName))
> AddHandler mtrConsumer.Listener, (AddressOf HandleMeter)
> End Sub
> Private Sub HandleMeter(ByVal message As IMessage)
> facade.ProcessMeter(TryCast(message, ITextMessage).Text)
> End Sub
> Dim woConnectionFactory As ConnectionFactory
> Dim woConnection As IConnection
> Dim woSession As ISession
> Dim woConsumer As IMessageConsumer
> ''' <summary>
> ''' Listener for WorkOrder queue
> ''' </summary>
> ''' <remarks></remarks>
> Private Sub ListenWOQueueMessaage()
> woConnectionFactory = New ConnectionFactory(config.ServerName)
> woConnection = woConnectionFactory.CreateConnection()
> woSession = woConnection.CreateSession()
> woConsumer = woSession.CreateConsumer(woSession.GetQueue(config.WOQueueName))
> AddHandler woConsumer.Listener, (AddressOf HandleWO)
> End Sub
> Private Sub HandleWO(ByVal message As IMessage)
> facade.ProcessWO(TryCast(message, ITextMessage).Text)
> End Sub
> Dim infraConnectionFactory As ConnectionFactory
> Dim infraConnection As IConnection
> Dim infraSession As ISession
> Dim infraConsumer As IMessageConsumer
> ''' <summary>
> ''' Listener for Infra queue
> ''' </summary>
> ''' <remarks></remarks>
> Private Sub ListeninfraQueueMessaage()
> infraConnectionFactory = New ConnectionFactory(config.ServerName)
> infraConnection = infraConnectionFactory.CreateConnection()
> infraSession = infraConnection.CreateSession()
> infraConsumer = infraSession.CreateConsumer(infraSession.GetQueue(config.InfraQueueName))
> AddHandler infraConsumer.Listener, (AddressOf HandleInfra)
> End Sub
> Private Sub HandleInfra(ByVal message As IMessage)
> facade.ProcessInfra(TryCast(message, ITextMessage).Text)
> End Sub
> #End Region
> End Class
> End Namespace
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.