You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "Ali, Mohammad" <Mo...@genpact.com> on 2014/07/18 15:39:58 UTC
JMS producer creating connection for every message causing
performance issue
Hi,
We are using camel JMS component(producer) to send message to IBM MQ and using camel 2.9.0 version. We observe that JMS producer is creating connection with every message which is hitting the performance badly. Is there any option to set so that same connection will be used for evary message?
Thanks & Regards,
Shadab
This e-mail (and any attachments), is confidential and may be privileged. It may be read, copied and used only
by intended recipients. Unauthorized access to this e-mail (or attachments) and disclosure or copying of its
contents or any action taken in reliance on it is unlawful. Unintended recipients must notify the sender immediately
by e-mail/phone & delete it from their system without making any copies or disclosing it to a third person.
Re: JMS producer creating connection for every message causing
performance issue
Posted by Matt Sicker <bo...@gmail.com>.
You'd need some sort of stale connection checking. If you combined
commons-pool2 with the JMS API, you could make a simple connection pool
that uses ConnectionFactory to create new connection objects. This library
has a bunch of pooling concepts already coded in (like
activating/passivating, borrowing from the pool, returning to the pool,
abandoned object timeouts, etc.), so it shouldn't be too hard to implement,
really. I tried it out myself and it seems almost *too* straightforward!
On 22 July 2014 06:50, Ali, Mohammad <Mo...@genpact.com> wrote:
> Thanks for your reply Matt. I have tried using CachingConnectionFactory
> and now it creates only one connection. But the issue with this is when I
> stop the camel route, I can see the connection is still open in the IBM MQ
> explorer. Also when I restart the camel route again it creates a new
> connection again and with every restart the connection count increases. To
> release the connection I have to restart my application.
> Is there a way where I can explicitly close the session when I am stopping
> the camel route?
>
>
> Regards,
> Shadab
>
>
> -----Original Message-----
> From: Matt Sicker [mailto:boards@gmail.com]
> Sent: Monday, July 21, 2014 8:09 PM
> To: Camel Users
> Subject: Re: JMS producer creating connection for every message causing
> performance issue
>
> The CachingConnectionFactory should keep a single Connection open that is
> returned by that factory. I'm not sure on the specifics, but it should do
> at least what you were originally asking about maintaining a single
> Connection.
>
>
> On 21 July 2014 02:18, Ali, Mohammad <Mo...@genpact.com> wrote:
>
> > Hi,
> >
> > Mine is a standalone application, it's not EJB managed. I am using IBM
> > Websphere MQ as JMS provider, and read in IBM forum that from WAS-7
> > IBM has removed its connection pooling classes.
> > Will wrapping the IBM connection factory class in spring provided
> > CachingConnectionFactory will do connection pooling?
> >
> > Regards,
> > Shadab
> >
> > -----Original Message-----
> > From: Matt Sicker [mailto:boards@gmail.com]
> > Sent: Saturday, July 19, 2014 1:22 AM
> > To: Camel Users
> > Subject: Re: JMS producer creating connection for every message
> > causing performance issue
> >
> > There's a bunch of info on this page about that:
> > http://activemq.apache.org/jmstemplate-gotchas.html
> >
> > In short, unless the javax.jms.ConnectionFactory object you're using
> > is using connection pooling, you need to do something special.
> >
> > Is your ConnectionFactory an EJB-managed implementation? If you're on
> > WebSphere, it should be.
> >
> >
> > On 18 July 2014 12:12, Ali, Mohammad <Mo...@genpact.com> wrote:
> >
> > > Hi Matt,
> > >
> > > I am using camel-jms.
> > >
> > > Regards,
> > > Shadab
> > >
> > > -----Original Message-----
> > > From: Matt Sicker [mailto:boards@gmail.com]
> > > Sent: Friday, July 18, 2014 10:17 PM
> > > To: Camel Users
> > > Subject: Re: JMS producer creating connection for every message
> > > causing performance issue
> > >
> > > Are you using camel-jms or camel-sjms?
> > >
> > >
> > > On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com>
> wrote:
> > >
> > > > Hi,
> > > >
> > > > We are using camel JMS component(producer) to send message to IBM
> > > > MQ and using camel 2.9.0 version. We observe that JMS producer is
> > > > creating connection with every message which is hitting the
> > > > performance badly. Is there any option to set so that same
> > > > connection will be used for evary message?
> > > >
> > > >
> > > > Thanks & Regards,
> > > > Shadab
> > > >
> > > > This e-mail (and any attachments), is confidential and may be
> > privileged.
> > > > It may be read, copied and used only by intended recipients.
> > > > Unauthorized access to this e-mail (or
> > > > attachments) and disclosure or copying of its contents or any
> > > > action taken in reliance on it is unlawful. Unintended recipients
> > > > must notify the sender immediately by e-mail/phone & delete it
> > > > from their system without making any copies or disclosing it to a
> third person.
> > > >
> > > >
> > >
> > >
> > > --
> > > Matt Sicker <bo...@gmail.com>
> > >
> > > This e-mail (and any attachments), is confidential and may be
> privileged.
> > > It may be read, copied and used only by intended recipients.
> > > Unauthorized access to this e-mail (or
> > > attachments) and disclosure or copying of its contents or any action
> > > taken in reliance on it is unlawful. Unintended recipients must
> > > notify the sender immediately by e-mail/phone & delete it from their
> > > system without making any copies or disclosing it to a third person.
> > >
> > >
> >
> >
> > --
> > Matt Sicker <bo...@gmail.com>
> >
> > This e-mail (and any attachments), is confidential and may be privileged.
> > It may be read, copied and used only
> > by intended recipients. Unauthorized access to this e-mail (or
> > attachments) and disclosure or copying of its contents or any action
> > taken in reliance on it is unlawful. Unintended recipients must notify
> > the sender immediately by e-mail/phone & delete it from their system
> > without making any copies or disclosing it to a third person.
> >
> >
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its
> contents or any action taken in reliance on it is unlawful. Unintended
> recipients must notify the sender immediately
> by e-mail/phone & delete it from their system without making any copies or
> disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>
RE: JMS producer creating connection for every message causing
performance issue
Posted by "Ali, Mohammad" <Mo...@genpact.com>.
Thanks for your reply Matt. I have tried using CachingConnectionFactory and now it creates only one connection. But the issue with this is when I stop the camel route, I can see the connection is still open in the IBM MQ explorer. Also when I restart the camel route again it creates a new connection again and with every restart the connection count increases. To release the connection I have to restart my application.
Is there a way where I can explicitly close the session when I am stopping the camel route?
Regards,
Shadab
-----Original Message-----
From: Matt Sicker [mailto:boards@gmail.com]
Sent: Monday, July 21, 2014 8:09 PM
To: Camel Users
Subject: Re: JMS producer creating connection for every message causing performance issue
The CachingConnectionFactory should keep a single Connection open that is returned by that factory. I'm not sure on the specifics, but it should do at least what you were originally asking about maintaining a single Connection.
On 21 July 2014 02:18, Ali, Mohammad <Mo...@genpact.com> wrote:
> Hi,
>
> Mine is a standalone application, it's not EJB managed. I am using IBM
> Websphere MQ as JMS provider, and read in IBM forum that from WAS-7
> IBM has removed its connection pooling classes.
> Will wrapping the IBM connection factory class in spring provided
> CachingConnectionFactory will do connection pooling?
>
> Regards,
> Shadab
>
> -----Original Message-----
> From: Matt Sicker [mailto:boards@gmail.com]
> Sent: Saturday, July 19, 2014 1:22 AM
> To: Camel Users
> Subject: Re: JMS producer creating connection for every message
> causing performance issue
>
> There's a bunch of info on this page about that:
> http://activemq.apache.org/jmstemplate-gotchas.html
>
> In short, unless the javax.jms.ConnectionFactory object you're using
> is using connection pooling, you need to do something special.
>
> Is your ConnectionFactory an EJB-managed implementation? If you're on
> WebSphere, it should be.
>
>
> On 18 July 2014 12:12, Ali, Mohammad <Mo...@genpact.com> wrote:
>
> > Hi Matt,
> >
> > I am using camel-jms.
> >
> > Regards,
> > Shadab
> >
> > -----Original Message-----
> > From: Matt Sicker [mailto:boards@gmail.com]
> > Sent: Friday, July 18, 2014 10:17 PM
> > To: Camel Users
> > Subject: Re: JMS producer creating connection for every message
> > causing performance issue
> >
> > Are you using camel-jms or camel-sjms?
> >
> >
> > On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com> wrote:
> >
> > > Hi,
> > >
> > > We are using camel JMS component(producer) to send message to IBM
> > > MQ and using camel 2.9.0 version. We observe that JMS producer is
> > > creating connection with every message which is hitting the
> > > performance badly. Is there any option to set so that same
> > > connection will be used for evary message?
> > >
> > >
> > > Thanks & Regards,
> > > Shadab
> > >
> > > This e-mail (and any attachments), is confidential and may be
> privileged.
> > > It may be read, copied and used only by intended recipients.
> > > Unauthorized access to this e-mail (or
> > > attachments) and disclosure or copying of its contents or any
> > > action taken in reliance on it is unlawful. Unintended recipients
> > > must notify the sender immediately by e-mail/phone & delete it
> > > from their system without making any copies or disclosing it to a third person.
> > >
> > >
> >
> >
> > --
> > Matt Sicker <bo...@gmail.com>
> >
> > This e-mail (and any attachments), is confidential and may be privileged.
> > It may be read, copied and used only by intended recipients.
> > Unauthorized access to this e-mail (or
> > attachments) and disclosure or copying of its contents or any action
> > taken in reliance on it is unlawful. Unintended recipients must
> > notify the sender immediately by e-mail/phone & delete it from their
> > system without making any copies or disclosing it to a third person.
> >
> >
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its contents or any action
> taken in reliance on it is unlawful. Unintended recipients must notify
> the sender immediately by e-mail/phone & delete it from their system
> without making any copies or disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>
This e-mail (and any attachments), is confidential and may be privileged. It may be read, copied and used only
by intended recipients. Unauthorized access to this e-mail (or attachments) and disclosure or copying of its
contents or any action taken in reliance on it is unlawful. Unintended recipients must notify the sender immediately
by e-mail/phone & delete it from their system without making any copies or disclosing it to a third person.
Re: JMS producer creating connection for every message causing
performance issue
Posted by Matt Sicker <bo...@gmail.com>.
The CachingConnectionFactory should keep a single Connection open that is
returned by that factory. I'm not sure on the specifics, but it should do
at least what you were originally asking about maintaining a single
Connection.
On 21 July 2014 02:18, Ali, Mohammad <Mo...@genpact.com> wrote:
> Hi,
>
> Mine is a standalone application, it's not EJB managed. I am using IBM
> Websphere MQ as JMS provider, and read in IBM forum that from WAS-7 IBM has
> removed its connection pooling classes.
> Will wrapping the IBM connection factory class in spring provided
> CachingConnectionFactory will do connection pooling?
>
> Regards,
> Shadab
>
> -----Original Message-----
> From: Matt Sicker [mailto:boards@gmail.com]
> Sent: Saturday, July 19, 2014 1:22 AM
> To: Camel Users
> Subject: Re: JMS producer creating connection for every message causing
> performance issue
>
> There's a bunch of info on this page about that:
> http://activemq.apache.org/jmstemplate-gotchas.html
>
> In short, unless the javax.jms.ConnectionFactory object you're using is
> using connection pooling, you need to do something special.
>
> Is your ConnectionFactory an EJB-managed implementation? If you're on
> WebSphere, it should be.
>
>
> On 18 July 2014 12:12, Ali, Mohammad <Mo...@genpact.com> wrote:
>
> > Hi Matt,
> >
> > I am using camel-jms.
> >
> > Regards,
> > Shadab
> >
> > -----Original Message-----
> > From: Matt Sicker [mailto:boards@gmail.com]
> > Sent: Friday, July 18, 2014 10:17 PM
> > To: Camel Users
> > Subject: Re: JMS producer creating connection for every message
> > causing performance issue
> >
> > Are you using camel-jms or camel-sjms?
> >
> >
> > On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com> wrote:
> >
> > > Hi,
> > >
> > > We are using camel JMS component(producer) to send message to IBM MQ
> > > and using camel 2.9.0 version. We observe that JMS producer is
> > > creating connection with every message which is hitting the
> > > performance badly. Is there any option to set so that same
> > > connection will be used for evary message?
> > >
> > >
> > > Thanks & Regards,
> > > Shadab
> > >
> > > This e-mail (and any attachments), is confidential and may be
> privileged.
> > > It may be read, copied and used only by intended recipients.
> > > Unauthorized access to this e-mail (or
> > > attachments) and disclosure or copying of its contents or any action
> > > taken in reliance on it is unlawful. Unintended recipients must
> > > notify the sender immediately by e-mail/phone & delete it from their
> > > system without making any copies or disclosing it to a third person.
> > >
> > >
> >
> >
> > --
> > Matt Sicker <bo...@gmail.com>
> >
> > This e-mail (and any attachments), is confidential and may be privileged.
> > It may be read, copied and used only
> > by intended recipients. Unauthorized access to this e-mail (or
> > attachments) and disclosure or copying of its contents or any action
> > taken in reliance on it is unlawful. Unintended recipients must notify
> > the sender immediately by e-mail/phone & delete it from their system
> > without making any copies or disclosing it to a third person.
> >
> >
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its
> contents or any action taken in reliance on it is unlawful. Unintended
> recipients must notify the sender immediately
> by e-mail/phone & delete it from their system without making any copies or
> disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>
RE: JMS producer creating connection for every message causing
performance issue
Posted by "Ali, Mohammad" <Mo...@genpact.com>.
Hi,
Mine is a standalone application, it's not EJB managed. I am using IBM Websphere MQ as JMS provider, and read in IBM forum that from WAS-7 IBM has removed its connection pooling classes.
Will wrapping the IBM connection factory class in spring provided CachingConnectionFactory will do connection pooling?
Regards,
Shadab
-----Original Message-----
From: Matt Sicker [mailto:boards@gmail.com]
Sent: Saturday, July 19, 2014 1:22 AM
To: Camel Users
Subject: Re: JMS producer creating connection for every message causing performance issue
There's a bunch of info on this page about that:
http://activemq.apache.org/jmstemplate-gotchas.html
In short, unless the javax.jms.ConnectionFactory object you're using is using connection pooling, you need to do something special.
Is your ConnectionFactory an EJB-managed implementation? If you're on WebSphere, it should be.
On 18 July 2014 12:12, Ali, Mohammad <Mo...@genpact.com> wrote:
> Hi Matt,
>
> I am using camel-jms.
>
> Regards,
> Shadab
>
> -----Original Message-----
> From: Matt Sicker [mailto:boards@gmail.com]
> Sent: Friday, July 18, 2014 10:17 PM
> To: Camel Users
> Subject: Re: JMS producer creating connection for every message
> causing performance issue
>
> Are you using camel-jms or camel-sjms?
>
>
> On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com> wrote:
>
> > Hi,
> >
> > We are using camel JMS component(producer) to send message to IBM MQ
> > and using camel 2.9.0 version. We observe that JMS producer is
> > creating connection with every message which is hitting the
> > performance badly. Is there any option to set so that same
> > connection will be used for evary message?
> >
> >
> > Thanks & Regards,
> > Shadab
> >
> > This e-mail (and any attachments), is confidential and may be privileged.
> > It may be read, copied and used only by intended recipients.
> > Unauthorized access to this e-mail (or
> > attachments) and disclosure or copying of its contents or any action
> > taken in reliance on it is unlawful. Unintended recipients must
> > notify the sender immediately by e-mail/phone & delete it from their
> > system without making any copies or disclosing it to a third person.
> >
> >
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its contents or any action
> taken in reliance on it is unlawful. Unintended recipients must notify
> the sender immediately by e-mail/phone & delete it from their system
> without making any copies or disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>
This e-mail (and any attachments), is confidential and may be privileged. It may be read, copied and used only
by intended recipients. Unauthorized access to this e-mail (or attachments) and disclosure or copying of its
contents or any action taken in reliance on it is unlawful. Unintended recipients must notify the sender immediately
by e-mail/phone & delete it from their system without making any copies or disclosing it to a third person.
Re: JMS producer creating connection for every message causing
performance issue
Posted by Matt Sicker <bo...@gmail.com>.
There's a bunch of info on this page about that:
http://activemq.apache.org/jmstemplate-gotchas.html
In short, unless the javax.jms.ConnectionFactory object you're using is
using connection pooling, you need to do something special.
Is your ConnectionFactory an EJB-managed implementation? If you're on
WebSphere, it should be.
On 18 July 2014 12:12, Ali, Mohammad <Mo...@genpact.com> wrote:
> Hi Matt,
>
> I am using camel-jms.
>
> Regards,
> Shadab
>
> -----Original Message-----
> From: Matt Sicker [mailto:boards@gmail.com]
> Sent: Friday, July 18, 2014 10:17 PM
> To: Camel Users
> Subject: Re: JMS producer creating connection for every message causing
> performance issue
>
> Are you using camel-jms or camel-sjms?
>
>
> On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com> wrote:
>
> > Hi,
> >
> > We are using camel JMS component(producer) to send message to IBM MQ
> > and using camel 2.9.0 version. We observe that JMS producer is
> > creating connection with every message which is hitting the
> > performance badly. Is there any option to set so that same connection
> > will be used for evary message?
> >
> >
> > Thanks & Regards,
> > Shadab
> >
> > This e-mail (and any attachments), is confidential and may be privileged.
> > It may be read, copied and used only
> > by intended recipients. Unauthorized access to this e-mail (or
> > attachments) and disclosure or copying of its contents or any action
> > taken in reliance on it is unlawful. Unintended recipients must notify
> > the sender immediately by e-mail/phone & delete it from their system
> > without making any copies or disclosing it to a third person.
> >
> >
>
>
> --
> Matt Sicker <bo...@gmail.com>
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its
> contents or any action taken in reliance on it is unlawful. Unintended
> recipients must notify the sender immediately
> by e-mail/phone & delete it from their system without making any copies or
> disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>
RE: JMS producer creating connection for every message causing
performance issue
Posted by "Ali, Mohammad" <Mo...@genpact.com>.
Hi Matt,
I am using camel-jms.
Regards,
Shadab
-----Original Message-----
From: Matt Sicker [mailto:boards@gmail.com]
Sent: Friday, July 18, 2014 10:17 PM
To: Camel Users
Subject: Re: JMS producer creating connection for every message causing performance issue
Are you using camel-jms or camel-sjms?
On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com> wrote:
> Hi,
>
> We are using camel JMS component(producer) to send message to IBM MQ
> and using camel 2.9.0 version. We observe that JMS producer is
> creating connection with every message which is hitting the
> performance badly. Is there any option to set so that same connection
> will be used for evary message?
>
>
> Thanks & Regards,
> Shadab
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its contents or any action
> taken in reliance on it is unlawful. Unintended recipients must notify
> the sender immediately by e-mail/phone & delete it from their system
> without making any copies or disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>
This e-mail (and any attachments), is confidential and may be privileged. It may be read, copied and used only
by intended recipients. Unauthorized access to this e-mail (or attachments) and disclosure or copying of its
contents or any action taken in reliance on it is unlawful. Unintended recipients must notify the sender immediately
by e-mail/phone & delete it from their system without making any copies or disclosing it to a third person.
Re: JMS producer creating connection for every message causing
performance issue
Posted by Matt Sicker <bo...@gmail.com>.
Are you using camel-jms or camel-sjms?
On 18 July 2014 08:39, Ali, Mohammad <Mo...@genpact.com> wrote:
> Hi,
>
> We are using camel JMS component(producer) to send message to IBM MQ and
> using camel 2.9.0 version. We observe that JMS producer is creating
> connection with every message which is hitting the performance badly. Is
> there any option to set so that same connection will be used for evary
> message?
>
>
> Thanks & Regards,
> Shadab
>
> This e-mail (and any attachments), is confidential and may be privileged.
> It may be read, copied and used only
> by intended recipients. Unauthorized access to this e-mail (or
> attachments) and disclosure or copying of its
> contents or any action taken in reliance on it is unlawful. Unintended
> recipients must notify the sender immediately
> by e-mail/phone & delete it from their system without making any copies or
> disclosing it to a third person.
>
>
--
Matt Sicker <bo...@gmail.com>