[
https://jira.jboss.org/jira/browse/JBESB-2133?page=com.atlassian.jira.plu...
]
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