StaticRouter and Unresponsive EPR
mheidt Feb 4, 2008 11:32 AMHello,
I have a problem with the following chain:
fs-listener->XMLValidation, SmooksTransfromation, StaticRoute to another Service:
<?xml version = "1.0" encoding = "UTF-8"?> <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5"> <providers> <fs-provider name="FSprovider1"> <fs-bus busid="danteTscmImportFileChannel"> <fs-message-filter directory="@INPUTDIR@" input-suffix=".xml" work-suffix=".esbWorking" post-delete="false" post-directory="@OUTPUTDIR@" post-suffix=".sentToEsb" error-delete="false" error-directory="@ERRORDIR@" error-suffix=".IN_ERROR" /> </fs-bus> </fs-provider> <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"> <jms-bus busid="danteTscmFileImportEsbImportEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/dante_tscm_file_import_Request_esb" /> </jms-bus> </jms-provider> <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"> <jms-bus busid="danteImportTSCMGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/dante_tscm_import_Request_gw" /> </jms-bus> <jms-bus busid="danteImportTSCMEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/dante_tscm_import_Request_esb" /> </jms-bus> </jms-provider> </providers> <services> <service category="DanteTscm" name="ValidationImportListener" description="Import Validation TSCM-XML Listener"> <listeners> <fs-listener name="FileGateway" busidref="danteTscmImportFileChannel" maxThreads="1" is-gateway="true" schedule-frequency="10"> </fs-listener> <jms-listener name="importTSCMFileAction" busidref="danteTscmFileImportEsbImportEsbChannel" maxThreads="1"> </jms-listener> </listeners> <actions mep="OneWay"> <action name="validate" class="com.dai.dante_tscm.esb.XMLImportListenerAction" process="displayMessage,validateXMLFile"> <property name="exceptionMethod" value="onFailure" /> </action> <action name="transform" class="org.jboss.soa.esb.actions.converters.SmooksTransformer"> <property name="resource-config" value="/smooks-res.xml" /> <property name="java-output-location" value="$default" /> </action> <action name="routeAction" class="org.jboss.soa.esb.actions.StaticRouter"> <property name="destinations"> <route-to destination-name="tscm_import" service-category="DanteTscm" service-name="TSCMImportListener" /> </property> </action> </actions> </service> <service category="DanteTscm" name="TSCMImportListener" description="Import Component Variants Listener"> <listeners> <jms-listener name="ImportTSCMGateway" busidref="danteImportTSCMGwChannel" maxThreads="1" is-gateway="true"> </jms-listener> <jms-listener name="ImportTSCMEsb" busidref="danteImportTSCMEsbChannel" maxThreads="1" is-gateway="false"/> </listeners> <actions mep="OneWay"> <action name="import" class="com.dai.dante_tscm.esb.TSCMImportListenerAction" process="displayMessage"> </action> </actions> </service> </services> </jbossesb>
Error Message occurs in "routeAction".
Without this action, everything is ok.
And sending just the DanteTscm/TSCMImportListener through JMS is fine as well
17:20:14,464 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/DeadMessageQueue/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/dante_tscm_file_import_Request_esb/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/> > ] MessageID: ID:30-12021419876051 RelatesTo: jms:correlationID#f29c755c-1ed2-43b9-8c99-19088cb2bf43 ] 17:20:14,464 ERROR [DanteActionLifecycle] ErrorMessage couldn't be sent org.jboss.soa.esb.listeners.message.MessageDeliverException: Failed to deliver message [header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost/queue/dante_tscm_file_import_Request_esb/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : 1/> > ] MessageID: ID:30-12021419876051 RelatesTo: jms:correlationID#f29c755c-1ed2-43b9-8c99-19088cb2bf43 ]] to Service [JBossESB-Internal:DeadLetterService]. Check for errors. at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:279) at org.jboss.soa.esb.client.ServiceInvoker.deliverAsync(ServiceInvoker.java:184) at org.jboss.soa.esb.client.ServiceInvoker.deliverToDeadLetterService(ServiceInvoker.java:226) at org.jboss.soa.esb.client.ServiceInvoker.deliverAsync(ServiceInvoker.java:194) at com.dai.dante.esb.DanteActionLifecycle.onFailure(DanteActionLifecycle.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processException(ActionProcessorMethodInfo.java:190) at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.processException(OverriddenActionLifecycleProcessor.java:94) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifyException(ActionProcessingPipeline.java:582) at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:330) at org.jboss.soa.esb.listeners.message.MessageAwareListener$1.run(MessageAwareListener.java:303) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Can I force the StaticRouter to use the gateway?
Or is the StaticRouter the wrong tool to use?