You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by john robens <jr...@interlated.com.au> on 2010/06/20 12:56:26 UTC

config for InOut messages and restarting the server

Hi, wondering if you can help me.

I have a setup with the client as a Grails web-application, communicates
with a broker embedded in a spring server on the back end.

What I would like to solve, is that if the server is restarted the client
does not reconnect.

Grails client is configured as follows (resources.groovy):

case "production":

      // Not jencks - seems to be out of date.
      // Connect to server.
      _jmsConnectionFactory(ActiveMQConnectionFactory) {
        def server = ConfigurationHolder.config.caller.activemqServer
        brokerURL = server
      }

      jmsConnectionFactory(org.apache.activemq.pool.PooledConnectionFactory)
{
        connectionFactory = ref('_jmsConnectionFactory')
      }

      jmsConfig(org.apache.camel.component.jms.JmsConfiguration) {
        connectionFactory = ref('jmsConnectionFactory')
        transacted = true
        concurrentConsumers = 10
      }

      activemqServer(org.apache.activemq.camel.component.ActiveMQComponent)
{
        configuration = ref('jmsConfig')
      }


My url just has compression set:
tcp://server:61616?jms.useCompression=true


My messaging call is:

def response =
camelTemplate.requestBody("activemqServer:queue:checkForNewActivitiesDelta?requestTimeout=${requestTimeout}",
scoreboard)

My server is setup:

   <broker:broker useJmx="false" persistent="false" brokerName="tcp">
        <broker:destinationPolicy>
            <broker:policyMap>
                <broker:policyEntries>
          <!--          <broker:policyEntry topic=">"
advisoryForConsumed="true"/>  -->
                </broker:policyEntries>
            </broker:policyMap>
        </broker:destinationPolicy>

        <broker:transportConnectors>
            <broker:transportConnector name="tcp" uri="${activemq.uri}"/>
        </broker:transportConnectors>
    </broker:broker>


It happily processes along. If I kill the server and restart the call to
requestBody doesn't work:

Server complains with: 'Cannot publish to a deleted destination:
temp-queue:'
If I put on full trace logging, I just start getting 'InactivityMonitor'
messages in the client (Grails side).

I have read some similar posts that say it is a setting I can make with the
url called. I have been through ActiveMQ in Action and searched, but it is
not obvious to me.

Thanks
John
-- 
http://interlated.com.au
0434 996 607

Re: config for InOut messages and restarting the server

Posted by john robens <jr...@interlated.com.au>.
Thanks Dejan - this does exactly what I wanted.

If someone knows how to link failover with compression I would be highly
appreciative.

This thread seems to end with a dead end:
http://osdir.com/ml/users/2010-04/msg01209.html

Thanks
John

On 21 June 2010 18:46, Dejan Bosanac <de...@nighttale.net> wrote:

> Hi John,
>
> try using failover tranposport
>
> http://activemq.apache.org/failover-transport-reference.html
>
> Cheers
> --
> Dejan Bosanac - http://twitter.com/dejanb
>
> Open Source Integration - http://fusesource.com/
> ActiveMQ in Action - http://www.manning.com/snyder/
> Blog - http://www.nighttale.net
>
>
> On Sun, Jun 20, 2010 at 12:56 PM, john robens <jrobens@interlated.com.au
> >wrote:
>
> > Hi, wondering if you can help me.
> >
> > I have a setup with the client as a Grails web-application, communicates
> > with a broker embedded in a spring server on the back end.
> >
> > What I would like to solve, is that if the server is restarted the client
> > does not reconnect.
> >
> > Grails client is configured as follows (resources.groovy):
> >
> > case "production":
> >
> >      // Not jencks - seems to be out of date.
> >      // Connect to server.
> >      _jmsConnectionFactory(ActiveMQConnectionFactory) {
> >        def server = ConfigurationHolder.config.caller.activemqServer
> >        brokerURL = server
> >      }
> >
> >
>  jmsConnectionFactory(org.apache.activemq.pool.PooledConnectionFactory)
> > {
> >        connectionFactory = ref('_jmsConnectionFactory')
> >      }
> >
> >      jmsConfig(org.apache.camel.component.jms.JmsConfiguration) {
> >        connectionFactory = ref('jmsConnectionFactory')
> >        transacted = true
> >        concurrentConsumers = 10
> >      }
> >
> >
>  activemqServer(org.apache.activemq.camel.component.ActiveMQComponent)
> > {
> >        configuration = ref('jmsConfig')
> >      }
> >
> >
> > My url just has compression set:
> > tcp://server:61616?jms.useCompression=true
> >
> >
> > My messaging call is:
> >
> > def response =
> >
> >
> camelTemplate.requestBody("activemqServer:queue:checkForNewActivitiesDelta?requestTimeout=${requestTimeout}",
> > scoreboard)
> >
> > My server is setup:
> >
> >   <broker:broker useJmx="false" persistent="false" brokerName="tcp">
> >        <broker:destinationPolicy>
> >            <broker:policyMap>
> >                <broker:policyEntries>
> >          <!--          <broker:policyEntry topic=">"
> > advisoryForConsumed="true"/>  -->
> >                </broker:policyEntries>
> >            </broker:policyMap>
> >        </broker:destinationPolicy>
> >
> >        <broker:transportConnectors>
> >            <broker:transportConnector name="tcp" uri="${activemq.uri}"/>
> >        </broker:transportConnectors>
> >    </broker:broker>
> >
> >
> > It happily processes along. If I kill the server and restart the call to
> > requestBody doesn't work:
> >
> > Server complains with: 'Cannot publish to a deleted destination:
> > temp-queue:'
> > If I put on full trace logging, I just start getting 'InactivityMonitor'
> > messages in the client (Grails side).
> >
> > I have read some similar posts that say it is a setting I can make with
> the
> > url called. I have been through ActiveMQ in Action and searched, but it
> is
> > not obvious to me.
> >
> > Thanks
> > John
> > --
> > http://interlated.com.au
> > 0434 996 607
> >
>



-- 
http://interlated.com.au
0434 996 607

Re: config for InOut messages and restarting the server

Posted by Dejan Bosanac <de...@nighttale.net>.
Hi John,

try using failover tranposport

http://activemq.apache.org/failover-transport-reference.html

Cheers
--
Dejan Bosanac - http://twitter.com/dejanb

Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Sun, Jun 20, 2010 at 12:56 PM, john robens <jr...@interlated.com.au>wrote:

> Hi, wondering if you can help me.
>
> I have a setup with the client as a Grails web-application, communicates
> with a broker embedded in a spring server on the back end.
>
> What I would like to solve, is that if the server is restarted the client
> does not reconnect.
>
> Grails client is configured as follows (resources.groovy):
>
> case "production":
>
>      // Not jencks - seems to be out of date.
>      // Connect to server.
>      _jmsConnectionFactory(ActiveMQConnectionFactory) {
>        def server = ConfigurationHolder.config.caller.activemqServer
>        brokerURL = server
>      }
>
>      jmsConnectionFactory(org.apache.activemq.pool.PooledConnectionFactory)
> {
>        connectionFactory = ref('_jmsConnectionFactory')
>      }
>
>      jmsConfig(org.apache.camel.component.jms.JmsConfiguration) {
>        connectionFactory = ref('jmsConnectionFactory')
>        transacted = true
>        concurrentConsumers = 10
>      }
>
>      activemqServer(org.apache.activemq.camel.component.ActiveMQComponent)
> {
>        configuration = ref('jmsConfig')
>      }
>
>
> My url just has compression set:
> tcp://server:61616?jms.useCompression=true
>
>
> My messaging call is:
>
> def response =
>
> camelTemplate.requestBody("activemqServer:queue:checkForNewActivitiesDelta?requestTimeout=${requestTimeout}",
> scoreboard)
>
> My server is setup:
>
>   <broker:broker useJmx="false" persistent="false" brokerName="tcp">
>        <broker:destinationPolicy>
>            <broker:policyMap>
>                <broker:policyEntries>
>          <!--          <broker:policyEntry topic=">"
> advisoryForConsumed="true"/>  -->
>                </broker:policyEntries>
>            </broker:policyMap>
>        </broker:destinationPolicy>
>
>        <broker:transportConnectors>
>            <broker:transportConnector name="tcp" uri="${activemq.uri}"/>
>        </broker:transportConnectors>
>    </broker:broker>
>
>
> It happily processes along. If I kill the server and restart the call to
> requestBody doesn't work:
>
> Server complains with: 'Cannot publish to a deleted destination:
> temp-queue:'
> If I put on full trace logging, I just start getting 'InactivityMonitor'
> messages in the client (Grails side).
>
> I have read some similar posts that say it is a setting I can make with the
> url called. I have been through ActiveMQ in Action and searched, but it is
> not obvious to me.
>
> Thanks
> John
> --
> http://interlated.com.au
> 0434 996 607
>