Author |
Message
|
anderc1 |
Posted: Fri Jul 08, 2005 7:15 am Post subject: JMS Connections eating CPU |
|
|
 Acolyte
Joined: 11 Sep 2002 Posts: 55 Location: Research Triangle Park, NC
|
Developers recently implemented a couple of apps using WAS which connects to a MQ(5.3) server using JMS (client mode). This is my first experience with JMS so I am pretty clueless on the idiosyncrasies of JMS.
Got a call from the Linux admin that the MQ server was CPU bound. Using MQMon checked the channel status and there are 25 server connections from the WAS server. Looked at the processes on the Linux box and there are 23 processes from the WAS server. Under the command column for each of the processes from the WAS server, there is a javac command. My assumption is that for JMS to establish a svrconn connection to the Qmgr, it is running a java app for each connection. Is this a true assumption? How can I limit the svrconn connections to my Qmgr? Or is this a case of connections not being closed when they are not being used? |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 08, 2005 7:26 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
It's probably not 25 processes, it's probably just 25 threads.
Also, it is confusing that these are javac - as that it the compiler, not the runtime...
JMS will not close connections arbitrarily - it establishes a pool of connections, and doles those out as needed - in the same way of a database connection pool. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
anderc1 |
Posted: Fri Jul 08, 2005 7:52 am Post subject: |
|
|
 Acolyte
Joined: 11 Sep 2002 Posts: 55 Location: Research Triangle Park, NC
|
So what would be kicking of the compiler? Got 23 of the following, beit threads or processes, which appear to correlate to svrconn's.
24154 root 25 0 26680 26M 12152 R 20.6 1.0 9355m javac |
|
Back to top |
|
 |
jefflowrey |
Posted: Sun Jul 10, 2005 11:48 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
anderc1 wrote: |
So what would be kicking of the compiler? |
I don't know.
That's why it's confusing.
anderc1 wrote: |
Got 23 of the following, beit threads or processes, which appear to correlate to svrconn's.
24154 root 25 0 26680 26M 12152 R 20.6 1.0 9355m javac |
You should be able to have the MQ Administrator do a display channel status type(handle) on the svrconn to see the processes that are associated, and see if these are the same things. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
anderc1 |
Posted: Mon Jul 11, 2005 6:43 am Post subject: |
|
|
 Acolyte
Joined: 11 Sep 2002 Posts: 55 Location: Research Triangle Park, NC
|
Opened a PMR with IBM late Friday, no word from them yet, which is odd. Normally they respond pretty quick. I'll post whatever they find. |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Jul 11, 2005 11:50 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
does the Process running the Trigger Monitor have following environmental variable set ?
JAVA_COMPILER=NONE ?? |
|
Back to top |
|
 |
anderc1 |
Posted: Tue Jul 12, 2005 10:58 am Post subject: |
|
|
 Acolyte
Joined: 11 Sep 2002 Posts: 55 Location: Research Triangle Park, NC
|
Update: IBM's recommendation is to install CSD10 with 2 efixes not included in the CSD. According to IBM Level 2 "this is necessary only if you have Java applications communicating to WebSphere MQ." Haven't done this yet.
Working with a developer figured out the javac threads are not svrconn connections coming from WAS but are from a java app being called from a MQ process. So the SVRCONN channels had nothing to do with eating the CPU's. This brings up fjb_saper's suggestion of setting the env variable JAVA_COMPILER=NONE. Going to pursue that with the developer that implemented the app. |
|
Back to top |
|
 |
teal |
Posted: Tue Jul 12, 2005 1:00 pm Post subject: |
|
|
 Acolyte
Joined: 15 Dec 2004 Posts: 66
|
what are the two additional efixes they recommeded aside from CSD10?
thanks! |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jul 12, 2005 1:20 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
I am not sure that you are allowed to compile (javac) in a triggered app. ?
Anyway what would need you to compile something at runtime ?
My suggestion is: review the design....
Enjoy  |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Jul 12, 2005 1:39 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
|
Back to top |
|
 |
teal |
Posted: Tue Jul 12, 2005 1:54 pm Post subject: |
|
|
 Acolyte
Joined: 15 Dec 2004 Posts: 66
|
I dont see anything related to this in the CSD10 documentation.
I would love to know those 2 efix numbers anderc.. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Jul 12, 2005 2:15 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
teal wrote: |
I would love to know those 2 efix numbers anderc.. |
They are directly referred to and named in the link that Peter posted.
fjb_saper wrote: |
I am not sure that you are allowed to compile (javac) in a triggered app. ? |
I suspect it's a JIT kind of thing - perhaps dynamic class loading from serialized messages or something.
Or something insane, like trying to use MQ to schedule daily builds. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jul 12, 2005 6:18 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
There are other ways to compile without using javac once your jvm is started.
You should not compile code from the trigger monitor.
If need be use root and do su - user -c "javac ...." to place the compilation process in a different environment !!!
Anyway when we trigger a java app it runs in the background.
Remember you cannot run a java app in the foreground if it uses any way of displaying something (JSP / swing/ JSF)...
Reason: The trigger monitor will most likely get started at machine startup and as such have no display terminal / variable for X11 server attached to it.
So your triggered java process is all bothered and has nowhere to go but for a long exception or a core dump....
Enjoy  |
|
Back to top |
|
 |
|