|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  catching an exception i don't want to catch | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | mtaylor314 | 
		  
		    
			  
				 Posted: Fri Sep 29, 2006 12:01 pm    Post subject: catching an exception i don't want to catch | 
				     | 
			   
			 
		   | 
		 
		
		   Newbie
 
 Joined: 19 Sep 2006 Posts: 9
  
  | 
		  
		    
			  
				Can anybody figure out why I am getting an exception here
 
I am using vb.net 2005 and MQ v5.3
 
 
   
	| Code: | 
   
  
	Imports System
 
Imports System.IO
 
Imports IBM.WMQ
 
 
Module Module1
 
 
    Private Function GetLine() As String
 
        Dim strmRdr As StreamReader
 
        strmRdr = New StreamReader("FileName.txt")
 
        Dim line As String = strmRdr.ReadLine()
 
        Return line
 
    End Function
 
    Sub Main(ByVal CmdArgs() As String)
 
        Dim mqQMgr As MQQueueManager                'MQQueueManager instance
 
        Dim mqQueue As MQQueue                      'MQQueue instance
 
        Dim mqMsg As MQMessage                      'MQMessage instance
 
        Dim queueName As String                     'Name of the Queue to use
 
        Dim mqPutMsgOpts As MQPutMessageOptions     'MQPutMessageOptions instance
 
        'Dim msgLen As Integer                       'Length of Message
 
        'Dim message As String                       'Message "buffer"
 
 
        'Testing for the QueueName
 
        If (CmdArgs.Length = 0) Then
 
            System.Console.WriteLine("Queue Name required, please enter Queue Name")
 
            End
 
        Else
 
            queueName = CmdArgs.GetValue(0)
 
        End If
 
 
        '"Try"ing to Create a MQQueueManager instance
 
        Try
 
            If (CmdArgs.Length > 2) Then
 
                'have queueName, queue manager name, and channel definition
 
                Dim channelDefinition As String = CmdArgs.GetValue(2)
 
                Dim channelName As String
 
                Dim transportType As String
 
                Dim connectionName As String
 
                Dim seperator As Char() = "/"
 
                Dim parts As String() = channelDefinition.Split(seperator)
 
 
                If (parts.Length > 0) Then
 
                    channelName = parts(0)
 
                End If
 
                If (parts.Length > 1) Then
 
                    transportType = parts(1)
 
                End If
 
                If (parts.Length > 2) Then
 
                    connectionName = parts(2)
 
                End If
 
                mqQMgr = New MQQueueManager(CmdArgs.GetValue(1), channelName, connectionName)
 
            Else
 
                If (CmdArgs.Length = 2) Then
 
                    'only queue name and queue manager name provided
 
                    mqQMgr = New MQQueueManager(CmdArgs.GetValue(1))
 
                Else
 
                    'queue name provide, use default queue manager name
 
                    mqQMgr = New MQQueueManager
 
                End If
 
            End If
 
        Catch mqe As IBM.WMQ.MQException
 
            'stop if failed
 
            System.Console.WriteLine("The creation of MQQueueManager ended", mqe.Message)
 
            End
 
        End Try
 
 
        'Try to open the queue
 
        Try
 
            mqQueue = mqQMgr.AccessQueue(queueName, MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING)
 
        Catch mqe As IBM.WMQ.MQException
 
            'stop if failed
 
            System.Console.WriteLine("MQQueueManager::AccessQueue ended with {0}", mqe.Message)
 
            End
 
        End Try
 
 
        'Read line from the data file and PUT them to the message queue
 
        Dim isContinue As Boolean = True
 
        Do While (isContinue = True)
 
            Try
 
                Dim line As String = GetLine()
 
                Dim lineLength = line.Length
 
                Do
 
                    If (lineLength > 0) Then
 
                        'Put the line to the queue
 
                        mqMsg = New MQMessage
 
                        mqMsg.WriteString(line)
 
                        mqMsg.Format = MQC.MQFMT_STRING
 
                        mqPutMsgOpts = New MQPutMessageOptions
 
                        Try             **********here's where I am catching exception**********************
 
                            mqQueue.Put(mqMsg, mqPutMsgOpts)
 
                        Catch mqe As IBM.WMQ.MQException
 
                            'Report the error
 
                            System.Console.WriteLine("MQQueue::Put ended with {0}", mqe.Message)
 
                        End Try
 
                    Else
 
                        'Quit loop if no more lines
 
                        isContinue = False
 
                    End If
 
                Loop
 
            Catch ex As Exception
 
                'The file wasn't read
 
                System.Console.WriteLine("File not read", ex.Message)
 
            End Try
 
        Loop
 
    End Sub
 
 
End Module | 
   
 
 
 
A lot of that code is copied from examples by IBM, I have a local queue named QUEUE1 and I have queue.manager.1 up and running.  If you need any more info, please let me know.  Thank you | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | mvic | 
		  
		    
			  
				 Posted: Fri Sep 29, 2006 3:35 pm    Post subject: Re: catching an exception i don't want to catch | 
				     | 
			   
			 
		   | 
		 
		
		    Jedi
 
 Joined: 09 Mar 2004 Posts: 2080
  
  | 
		  
		    
			  
				| What is the exception?  You should dump as much information from it as possible: it should wrap an MQ reason code (generally a 4-figure decimal number in the range 2000-3000) and completion code (for failure generally 2, sometimes 1). | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | mtaylor314 | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 5:13 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Newbie
 
 Joined: 19 Sep 2006 Posts: 9
  
  | 
		  
		    
			  
				The reason code is 2053 with the completion code of 2
 
   
	| Code: | 
   
  
	{"Error in the application."}
 
    CompCode: 2
 
    CompletionCode: 2
 
    Data: {System.Collections.ListDictionaryInternal}
 
    HelpLink: Nothing
 
    InnerException: Nothing
 
    Message: "Error in the application."
 
    Reason: 2053
 
    ReasonCode: 2053
 
    Source: "amqmdnet"
 
    StackTrace: "   at IBM.WMQ.MQQueue.Put(MQMessage message, MQPutMessageOptions pmo)
 
   at dataFileReadtoMQ.Module1.Main(String[] CmdArgs) in C:\Documents and Settings\mtaylor\My Documents\Visual Studio 2005\Projects\dataFileReadtoMQ\dataFileReadtoMQ\Module1.vb:line 90"
 
    TargetSite: {System.Reflection.RuntimeMethodInfo} | 
   
 
 | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | Vitor | 
		  
		    
			  
				 Posted: Mon Oct 02, 2006 5:29 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				A few moments with the documentation will reveal that 2053 is "queue full". 
 
 
I suspect whatever's reading QUEUE1 a) isn't working properly b) isn't working fast enough    
 
 
A third possibility is that the maximum depth of QUEUE1 is set too low, but that's a bit unlikely. _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | 
		    
		   | 
		 
	   
	 | 
   
 
  
	     | 
	 | 
	Page 1 of 1 | 
   
 
 
 
  
  	
	  
		
		  
 
  | 
		  You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |