[esb-issues] [JBoss JIRA] Updated: (JBESB-2133) Connection failed still called method in "okMethod" ?

Chris Au (JIRA) jira-events at lists.jboss.org
Mon Oct 20 06:19:21 EDT 2008


     [ https://jira.jboss.org/jira/browse/JBESB-2133?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Au updated JBESB-2133:
----------------------------

    Description: 
I used below config to test the okMethod and exceptionMethod and found that the okMethod will still be called even the console throws exception about connection failed : 
<action name="displayMessage" class="com.oi.test.MyJMSListenerAction" 
						process="displayMessage" >
						<property name="exceptionMethod" value="myHandle"/> 
						<property name="okMethod" value="displayMessage"/> 
					</action>
                   	<action name="notificationAction" class="org.jboss.soa.esb.actions.Notifier">
                   		<property name="okMethod" value="notifyOK" />
						<property name="destinations">
							<NotificationList type="OK">
								<target class="NotifyQueues" >
									<queue connection-factory="SonicMQQueueConnectionFactory"
										jndi-URL="jnp://@domain@:1099"
										jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
										jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces"
										jndiName="SonicMQ_Queue_test" />
								</target>
							</NotificationList>
							<NotificationList type="err">
								<target class="NotifyConsole" />
								<target class="NotifyFiles" >
									<file URI="/error.log" />
								</target>
							</NotificationList>
						</property>
					</action>

The connection to sonicMQ tested successful when I did not shut that down on purpose to test the connectivity problem. What I am trying to do is to catch exception when the connection fails. But there does not seem to be a suitable workflow for that.

Here comes the exception in console : 

org.jboss.soa.esb.ConfigurationException: Failed to create an instance of Notifi
cationTarget class 'NotifyQueues'.
        at org.jboss.soa.esb.notification.NotificationTarget.fromParams(Notifica
tionTarget.java:148)
        at org.jboss.soa.esb.notification.NotificationList.notifyAll(Notificatio
nList.java:162)
        at org.jboss.soa.esb.actions.Notifier.notifyOK(Notifier.java:93)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.process
Success(ActionProcessorMethodInfo.java:165)
        at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcesso
r.processSuccess(OverriddenActionLifecycleProcessor.java:108)
        at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifySu
ccess(ActionProcessingPipeline.java:610)
        at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(
ActionProcessingPipeline.java:384)
        at org.jboss.soa.esb.listeners.message.MessageAwareListener$Transactiona
lRunner.run(MessageAwareListener.java:530)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: javax.jms.InvalidDestinationException: Queue not found: qOrder_test

        at progress.message.jimpl.MessageProducer.makeOpenRequest(Unknown Source
)
        at progress.message.jimpl.MessageProducer.<init>(Unknown Source)
        at progress.message.jimpl.QueueSender.<init>(Unknown Source)
        at progress.message.jimpl.Session.createProducer(Unknown Source)
        at org.jboss.internal.soa.esb.rosetta.pooling.JmsSession.createProducer(
JmsSession.java:180)
        at org.jboss.soa.esb.notification.NotifyQueues.createProducer(NotifyQueu
es.java:114)
        at org.jboss.soa.esb.notification.NotifyJMS.setUpProducers(NotifyJMS.jav
a:428)
        at org.jboss.soa.esb.notification.NotifyQueues.<init>(NotifyQueues.java:
71)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
        at org.jboss.soa.esb.notification.NotificationTarget.fromParams(Notifica
tionTarget.java:145)
        ... 14 more

  was:
I used below config to test the okMethod and exceptionMethod and found that the okMethod will still be called even the console throws exception about connection failed : 
<action name="displayMessage" class="com.oi.test.MyJMSListenerAction" 
						process="displayMessage" >
						<property name="exceptionMethod" value="myHandle"/> 
						<property name="okMethod" value="displayMessage"/> 
					</action>
                   	<action name="notificationAction" class="org.jboss.soa.esb.actions.Notifier">
                   		<property name="okMethod" value="notifyOK" />
						<property name="destinations">
							<NotificationList type="OK">
								<target class="NotifyQueues" >
									<queue connection-factory="SonicMQQueueConnectionFactory"
										jndi-URL="jnp://@domain@:1099"
										jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
										jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces"
										jndiName="SonicMQ_Queue_test" />
								</target>
							</NotificationList>
							<NotificationList type="err">
								<target class="NotifyConsole" />
								<target class="NotifyFiles" >
									<file URI="/error.log" />
								</target>
							</NotificationList>
						</property>
					</action>

The connection to sonicMQ tested successful when I did not shut that down on purpose to test the connectivity problem. What I am trying to do is to catch exception when the connection fails. But there does not seem to be a suitable workflow for that.



> Connection failed still called method in "okMethod" ?
> -----------------------------------------------------
>
>                 Key: JBESB-2133
>                 URL: https://jira.jboss.org/jira/browse/JBESB-2133
>             Project: JBoss ESB
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.4
>         Environment: jbossesb-server-4.4.GA
> OS : Windows-XP
>            Reporter: Chris Au
>
> I used below config to test the okMethod and exceptionMethod and found that the okMethod will still be called even the console throws exception about connection failed : 
> <action name="displayMessage" class="com.oi.test.MyJMSListenerAction" 
> 						process="displayMessage" >
> 						<property name="exceptionMethod" value="myHandle"/> 
> 						<property name="okMethod" value="displayMessage"/> 
> 					</action>
>                    	<action name="notificationAction" class="org.jboss.soa.esb.actions.Notifier">
>                    		<property name="okMethod" value="notifyOK" />
> 						<property name="destinations">
> 							<NotificationList type="OK">
> 								<target class="NotifyQueues" >
> 									<queue connection-factory="SonicMQQueueConnectionFactory"
> 										jndi-URL="jnp://@domain@:1099"
> 										jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
> 										jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces"
> 										jndiName="SonicMQ_Queue_test" />
> 								</target>
> 							</NotificationList>
> 							<NotificationList type="err">
> 								<target class="NotifyConsole" />
> 								<target class="NotifyFiles" >
> 									<file URI="/error.log" />
> 								</target>
> 							</NotificationList>
> 						</property>
> 					</action>
> The connection to sonicMQ tested successful when I did not shut that down on purpose to test the connectivity problem. What I am trying to do is to catch exception when the connection fails. But there does not seem to be a suitable workflow for that.
> Here comes the exception in console : 
> org.jboss.soa.esb.ConfigurationException: Failed to create an instance of Notifi
> cationTarget class 'NotifyQueues'.
>         at org.jboss.soa.esb.notification.NotificationTarget.fromParams(Notifica
> tionTarget.java:148)
>         at org.jboss.soa.esb.notification.NotificationList.notifyAll(Notificatio
> nList.java:162)
>         at org.jboss.soa.esb.actions.Notifier.notifyOK(Notifier.java:93)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.process
> Success(ActionProcessorMethodInfo.java:165)
>         at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcesso
> r.processSuccess(OverriddenActionLifecycleProcessor.java:108)
>         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifySu
> ccess(ActionProcessingPipeline.java:610)
>         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(
> ActionProcessingPipeline.java:384)
>         at org.jboss.soa.esb.listeners.message.MessageAwareListener$Transactiona
> lRunner.run(MessageAwareListener.java:530)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: javax.jms.InvalidDestinationException: Queue not found: qOrder_test
>         at progress.message.jimpl.MessageProducer.makeOpenRequest(Unknown Source
> )
>         at progress.message.jimpl.MessageProducer.<init>(Unknown Source)
>         at progress.message.jimpl.QueueSender.<init>(Unknown Source)
>         at progress.message.jimpl.Session.createProducer(Unknown Source)
>         at org.jboss.internal.soa.esb.rosetta.pooling.JmsSession.createProducer(
> JmsSession.java:180)
>         at org.jboss.soa.esb.notification.NotifyQueues.createProducer(NotifyQueu
> es.java:114)
>         at org.jboss.soa.esb.notification.NotifyJMS.setUpProducers(NotifyJMS.jav
> a:428)
>         at org.jboss.soa.esb.notification.NotifyQueues.<init>(NotifyQueues.java:
> 71)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
> orAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
> onstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>         at org.jboss.soa.esb.notification.NotificationTarget.fromParams(Notifica
> tionTarget.java:145)
>         ... 14 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the esb-issues mailing list