Hi JB,

I just pushed an example to github, which shows the configuration and a 
reproduction guide: https://github.com/jojansen/jms-shutdown.git 
Maybe you have time to look into it? 

Regards,
Joerg

-----Original Message-----
From: Jörg Jansen 
Sent: Freitag, 2. Juli 2021 15:02
To: user@karaf.apache.org
Subject: RE: Shutdown issue ActiveMq

Sure, 

the feature looks like: 
<feature name="gs-lisa-activemq" version="${project.version}" 
description="Provide JMS connection factory and ActiveMqBroker">
    <feature>jms</feature>
    <feature version="[4,5)">spring</feature>
    <feature version="${activemq.version}">activemq-broker-noweb</feature>
    <feature version="${activemq.version}">activemq-client</feature>
    <feature version="${ops4j.pax.jms.version}">pax-jms-pool-pooledjms</feature>
    <feature version="${ops4j.pax.jms.version}">pax-jms-activemq</feature>
    <feature version="${camel.version}">camel-jms</feature>

    <config name="org.ops4j.connectionfactory-lisa-amq">
      name = lisa-amq
      osgi.jndi.service.name = jms/lisa-amq
      password = ${activemq.jms.password}
      connectionFactoryType = ConnectionFactory
      type = activemq
      url = ${activemq.url}
      user = ${activemq.jms.user}

      # hints for pax-jms-config to use selected 
org.ops4j.pax.jms.service.PooledConnectionFactoryFactory
      pool = pooledjms
      xa = false

      # pooled-jms specific configuration of 
org.messaginghub.pooled.jms.JmsPoolConnectionFactory
      pool.idleTimeout = 10
      pool.maxConnections = 10
      pool.blockIfSessionPoolIsFull = true
      pax.jms.managed = true
    </config>
  </feature>

Thanks and regards
Joerg

-----Original Message-----
From: Jean-Baptiste Onofre <j...@nanthrax.net>
Sent: Freitag, 2. Juli 2021 14:53
To: user@karaf.apache.org
Subject: Re: Shutdown issue ActiveMq

It should be fine if your feature installed pax-jms config has prerequisite.

Can you share snippet of your feature referencing activemq-broker ?

Regards
JB

> Le 2 juil. 2021 à 14:21, Jörg Jansen <joerg.jan...@inform-software.com> a 
> écrit :
> 
> It's installed as a prerequisite feature (which is referenced by my 
> customized boot feature). 
> 
> Regards,
> Joerg
> 
> -----Original Message-----
> From: Jean-Baptiste Onofre <j...@nanthrax.net>
> Sent: Freitag, 2. Juli 2021 14:07
> To: user@karaf.apache.org
> Subject: Re: Shutdown issue ActiveMq
> 
> Ah the broker is installed as a feature in Karaf ? I thought your broker was 
> outside of Karaf (standalone).
> 
> Does activemq-broker feature installed as boot feature ? Or do you install 
> after startup using feature:install ?
> 
> Regards
> JB
> 
>> Le 2 juil. 2021 à 11:14, Jörg Jansen <joerg.jan...@inform-software.com> a 
>> écrit :
>> 
>> Hi JB,
>> 
>> I'm using the AUTO ack, but switching to CLIENT doesn't make any difference. 
>> How can I change the AMQ pool?
>> From my understanding it should be the preferred way to use pooledjms.
>> 
>> This behavior sounds to me, that it may be be a ordering problem in my 
>> assembly. 
>> The broker should be shutdown after all cliens. 
>> 
>> Regards,
>> Joerg
>> 
>> -----Original Message-----
>> From: Jean-Baptiste Onofre <j...@nanthrax.net>
>> Sent: Freitag, 2. Juli 2021 09:52
>> To: user <user@karaf.apache.org>
>> Subject: Re: Shutdown issue ActiveMq
>> 
>> Hi,
>> 
>> Did you try with another kind of pooler ? Like "native" ActiveMQ pool 
>> instead of wrapped pooledjms ?
>> 
>> What kind of ack do you use in your Camel route ? AUTO (default) or CLIENT ?
>> 
>> Regards
>> JB
>> 
>>> Le 2 juil. 2021 à 08:05, Jörg Jansen <joerg.jan...@inform-software.com> a 
>>> écrit :
>>> 
>>> Hi everybody,
>>> 
>>> I'm facing a problem with our JMS connection, when shutting down the karaf 
>>> container. 
>>> The JMS connectionFactory is provided/configured via ops4j-jms.
>>> When shutting down karaf, I receive the message: "Caught exception trying 
>>> rollback() when putting session back into the pool, will invalidate. 
>>> javax.jms.IllegalStateException: The Session is closed".
>>> 
>>> Does anybody have an idea how to fix it? 
>>> Seaching for a workaround brings up to set the idleTimeout to 0, but this 
>>> has no effect. 
>>> 
>>> The currently used versions are: 
>>> Karaf: 4.3.2
>>> ActiveMq: 5.16.0
>>> Camel: 3.7.4
>>> 
>>> Any help would be really appreciated.
>>> 
>>> Additional details are available below.
>>> 
>>> Thanks in advance,
>>> Joerg
>>> 
>>> 
>>> ********************************************************************
>>> Stacktrace
>>> ********************************************************************
>>> 2021-07-02T07:46:30,260 | WARN  | Camel (gs-os-connector) thread #22 - 
>>> JmsConsumer[AMQ.GSLISA.OS.BUFFERED-SPX] | JmsPoolSession                   
>>> | 213 - org.messaginghub.pooled.jms - 1.2.1 | Caught exception trying 
>>> rollback() when putting session back into the pool, will invalidate. 
>>> javax.jms.IllegalStateException: The Session is closed
>>> javax.jms.IllegalStateException: The Session is closed
>>>     at 
>>> org.apache.activemq.ActiveMQSession.checkClosed(ActiveMQSession.java:772) 
>>> ~[?:?]
>>>     at 
>>> org.apache.activemq.ActiveMQSession.rollback(ActiveMQSession.java:597) 
>>> ~[?:?]
>>>     at 
>>> org.messaginghub.pooled.jms.JmsPoolSession.close(JmsPoolSession.java:112) 
>>> [!/:?]
>>>     at 
>>> org.springframework.jms.support.JmsUtils.closeSession(JmsUtils.java:109) 
>>> [!/:?]
>>>     at 
>>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.clearResources(DefaultMessageListenerContainer.java:1289)
>>>  [!/:?]
>>>     at 
>>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1135)
>>>  [!/:?]
>>>     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
>>> [?:?]
>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
>>> [?:?]
>>>     at java.lang.Thread.run(Unknown Source) [?:?]
>>> 
>>> 
>>> ********************************************************************
>>> Feature config
>>> ********************************************************************
>>> <feature name="gs-lisa-activemq" version="${project.version}" 
>>> description="Provide JMS connection factory and ActiveMqBroker" > 
>>> <feature>jms</feature>  <feature version="[4,5)">spring</feature> 
>>> <feature 
>>> version="${activemq.version}">activemq-broker-noweb</feature>
>>> <feature version="${activemq.version}">activemq-client</feature>
>>> <feature
>>> version="${ops4j.pax.jms.version}">pax-jms-pool-pooledjms</feature>
>>> <feature
>>> version="${ops4j.pax.jms.version}">pax-jms-activemq</feature>
>>> <feature version="${camel.version}">camel-jms</feature>
>>> 
>>> <config name="org.ops4j.connectionfactory-lisa-amq">
>>>  name = lisa-amq
>>>  osgi.jndi.service.name = jms/lisa-amq  password = 
>>> ${activemq.jms.password}  connectionFactoryType = ConnectionFactory 
>>> type = activemq  url = ${activemq.url}  user = ${activemq.jms.user}
>>> 
>>>  # hints for pax-jms-config to use selected 
>>> org.ops4j.pax.jms.service.PooledConnectionFactoryFactory
>>>  pool = pooledjms
>>>  xa = false
>>> 
>>>  # pooled-jms specific configuration of 
>>> org.messaginghub.pooled.jms.JmsPoolConnectionFactory
>>>  pool.idleTimeout = 10
>>>  pool.maxConnections = 10
>>>  pool.blockIfSessionPoolIsFull = true  pax.jms.managed = true 
>>> </config> </feature>
>>> 
>>> 
>> 
> 

Reply via email to