1 Reply Latest reply on May 23, 2017 9:44 AM by Justin Bertram

    Messaging subsystem connectionfactory not available when an application starts

    ravi narayanan Expert

      Dear All,

      I have an switchyard application which connects to hornetQ using camel JMS component.

       

      When i restart the server the applications connecting to hornetQ fails to start.But when i redeploy the application it starts successfully.

       

      Attached logs for your reference.

       

      JBAS014777:   Services which failed to start:      service jboss.deployment.unit."DocumentEuWriteDispatcher.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.unit."DocumentEuWriteDispatcher.jar".SwitchYardService: org.switchyard.SwitchYardException: org.apache.camel.FailedToCreateRouteException: Failed to create route V1CamelJmsBindingModel/DocumentEuWriteDispatcherService@jms1#-1783969852: Route[[From[jms:queue:DOCUMENT.EU.IN.WRITE?connectionFactory... because of Failed to resolve endpoint: jms://queue:DOCUMENT.EU.IN.WRITE?connectionFactory=%23ConnectionFactory&disableReplyTo=true due to: No bean could be found in the registry for: ConnectionFactory of type: javax.jms.ConnectionFactory

            service jboss.deployment.unit."LocationEuDeferredDispatcher.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.unit."LocationEuDeferredDispatcher.jar".SwitchYardService: org.switchyard.SwitchYardException: org.apache.camel.FailedToCreateRouteException: Failed to create route V1CamelJmsBindingModel/LocationEuDeferredDispatcherService@jms1#1395300148: Route[[From[jms:queue:Location.Eu.In.Deferred?connectionFact... because of Failed to resolve endpoint: jms://queue:Location.Eu.In.Deferred?connectionFactory=%23ConnectionFactory&disableReplyTo=true due to: No bean could be found in the registry for: ConnectionFactory of type: javax.jms.ConnectionFactory

            service jboss.deployment.unit."DocumentEuDeferredDispatcher.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.unit."DocumentEuDeferredDispatcher.jar".SwitchYardService: org.switchyard.SwitchYardException: org.apache.camel.FailedToCreateRouteException: Failed to create route V1CamelJmsBindingModel/DocumentEuDeferredDispatcherService@jms1#-1027751654: Route[[From[jms:queue:DOCUMENT.EU.IN.DEFERRED?connectionFact... because of Failed to resolve endpoint: jms://queue:DOCUMENT.EU.IN.DEFERRED?connectionFactory=%23ConnectionFactory&disableReplyTo=true due to: No bean could be found in the registry for: ConnectionFactory of type: javax.jms.ConnectionFactory

            service jboss.deployment.unit."claimsOutWrite.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.unit."claimsOutWrite.jar".SwitchYardService: org.switchyard.SwitchYardException: Failed to create route claimsInAckRouter at: >>> DoTry[[process[ref:PrepareAuditCallProcessor], WireTap[switchyard://AuditLoggerService], SetProperty[OriginalesbMessage, simple{${body}}], Log[Received Message ${body}], To[xslt:xslt/create-response.xslt], process[ref:SetCorrelationIDProcessor], To[jms:queue:claims.IN.ACK?connectionFactory=#ConnectionFactory&transacted=true], DoCatch[ null -> [process[ref:PrepareErrorHandlerCallProcessor], To[switchyard://ExceptionHandlerService]]]]] <<< in route: Route[[From[switchyard://claimsInAckService]] -> [DoTry[[proc... because of Failed to resolve endpoint: jms://queue:claims.IN.ACK?connectionFactory=%23ConnectionFactory&transacted=true due to: No bean could be found in the registry for: ConnectionFactory of type: javax.jms.ConnectionFactory

       

      Standalone.xml messaging configuration:

       

       

      <subsystem xmlns="urn:jboss:domain:messaging:1.3">

                  <hornetq-server>

                      <persistence-enabled>true</persistence-enabled>

                      <journal-type>NIO</journal-type>

                      <journal-min-files>2</journal-min-files>

       

       

                      <connectors>

                          <netty-connector name="netty" socket-binding="messaging"/>

                          <netty-connector name="netty-throughput" socket-binding="messaging-throughput">

                              <param key="batch-delay" value="50"/>

                          </netty-connector>

                          <in-vm-connector name="in-vm" server-id="0"/>

                      </connectors>

       

       

                      <acceptors>

                          <netty-acceptor name="netty" socket-binding="messaging"/>

                          <netty-acceptor name="netty-throughput" socket-binding="messaging-throughput">

                              <param key="batch-delay" value="50"/>

                              <param key="direct-deliver" value="false"/>

                          </netty-acceptor>

                          <in-vm-acceptor name="in-vm" server-id="0"/>

                      </acceptors>

       

                      <address-settings>

                          <address-setting match="#">

                              <dead-letter-address>jms.queue.DLQ</dead-letter-address>

                              <redelivery-delay>0</redelivery-delay>

                              <max-size-bytes>10485760</max-size-bytes>

                              <address-full-policy>BLOCK</address-full-policy>

                              <message-counter-history-day-limit>10</message-counter-history-day-limit>

                          </address-setting>

                      </address-settings>

       

                      <jms-connection-factories>

                          <connection-factory name="InVmConnectionFactory">

                              <connectors>

                                  <connector-ref connector-name="in-vm"/>

                              </connectors>

                              <entries>

                                  <entry name="java:/ConnectionFactory"/>

                              </entries>

                          </connection-factory>

                          <connection-factory name="RemoteConnectionFactory">

                              <connectors>

                                  <connector-ref connector-name="netty"/>

                              </connectors>

                              <entries>

                                  <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>

                              </entries>

                          </connection-factory>

                          <pooled-connection-factory name="hornetq-ra">

                              <transaction mode="xa"/>

                              <connectors>

                                  <connector-ref connector-name="in-vm"/>

                              </connectors>

                              <entries>

                                  <entry name="java:/JmsXA"/>

                              </entries>

                          </pooled-connection-factory>

                          <pooled-connection-factory name="hornetq-ra-in">

                              <transaction mode="xa"/>

                              <connectors>

                                  <connector-ref connector-name="in-vm"/>

                              </connectors>

                              <entries>

                                  <entry name="java:/JmsXAIn"/>

                              </entries>

                          </pooled-connection-factory>

                      </jms-connection-factories>

                      <jms-destinations>

                          <jms-queue name="DOCUMENT.OUT.ACK">

                              <entry name="java:/jms/queue/DOCUMENT.OUT.ACK"/>

                              <entry name="java:jboss/exported/jms/queue/DOCUMENT.OUT.ACK"/>

                          </jms-queue>

                         <jms-queue name="TEST1.OUT.ACK">

                              <entry name="java:/jms/queue/TEST1.OUT.ACK"/>

                              <entry name="java:jboss/exported/jms/queue/TEST1.OUT.ACK"/>

                          </jms-queue>

                          <jms-queue name="TEST2.OUT.ACK">

                              <entry name="java:/jms/queue/TEST2.OUT.ACK"/>

                              <entry name="java:jboss/exported/jms/queue/TEST2.OUT.ACK"/>

                          </jms-queue>

                      </jms-destinations>

                  </hornetq-server>

              </subsystem>

       

      is there a possibility to create a dummy barrier deployable that waits a bit and then starts the camel route or SY bindings.