This content has been marked as final. Show 9 replies
Try increasing the default thread pool size (or the user-defined thread pool size, if you're using one) to 25, assuming you have enough CPU power in the WLS server machine.
I suspect you're getting the exception while trying to use user-defined queues because you don't have the execute queue set up in the server - you need to set up an execute queue with the same name as the dispatch policy for your MDB.
if i trying to increase the default thread pool size (default thread count is 15) to 25, i got JMS Exception.
i am running on Solaris 8 OS with 1GB RAM and My MDB have Max Beans in Free Pool is 1000 and initial bean size is 500.still i am not able to pick up all messages at a time.
Could you post the JMSException you're getting?
if i increase the default thread count(weblogic.kernel.Default) 15 to 25, then i got this kind of exception ---->
<Nov 13, 2004 4:25:18 PM MYT> <Warning> <EJB> <BEA-010061> <The Message-Driven EJB: GCIFUpdTimeoutQMDB is unable to connect to the JMS destination: jms/IUTS_GCIF_UPD_TIMEOUT_Q. The Error was:
[EJB:011014]The Message-Driven EJB failed while creating a JMS Connection. The error was:
[EJB:010196]'javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for 'localhost:UTSD11'' Linked exception = 'com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2009
MQJE016: MQ queue manager closed channel immediately during connect
Closure reason = 2009'.
It appears that the foreign JMS provider is restricting the number of connections that can be made to it. I'd check the license restrictions/configuration of the foreign JMS provider and ensure it allows the required number of concurrent connections. The closure reason code 2009 should indicate what the problem is.
The number of concurrently active MDBs is controlled by two things in the descriptor settings:
dispatch-policy (name of thread pool to use)
max-beans-in-thread-pool (max number of beans)
When running in the default thread pool, the max number of concurrent MDBs is:
min(default-thread-pool-size/2 + 1, max-beans)
When running in a custom thread pool the max number is:
It so happens that the default size of the default execute thread pool is 15 - which explains why you are getting a maximum concurrency of 8.
For this information, and more, I highly recommend reading the MDB chapter of the EJB programmer's guide.
P.S. I think that it in most JVMs to get the best performance it is best to limit the number of concurrent threads. You may find that increasing the thread pool size to 500 (as it seems to be your intention to have 500 active concurrent jobs), will slow things down...
I'm getting this error :
[EJB:011014]The Message-Driven EJB failed while creating a JMS Connection. The error was: javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for '18.104.22.168:BT.QM.IVASCTG' Linked exception: com.ibm.mq.MQException: MQJE001: An MQException occurred: Completion Code 2, Reason 2059 MQJE011: Socket connection attempt refused Nested exception: com.ibm.mqservices.MQInternalException: MQJE001: An MQException occurred: Completion Code 2, Reason 2059 MQJE011: Socket connection attempt refused. javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for '22.214.171.124:BT.QM.IVASCTG' at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:569) at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:2328) at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:1749) at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:144) at com.ibm.mq.jms.MQQueueConnection.<init>(MQQueueConnection.java:54) at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:106) at weblogic.ejb.container.internal.JMSConnectionPoller.getConnection(JMSConnectionPoller.java:431) at weblogic.ejb.container.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:1645) at weblogic.ejb.container.internal.JMSConnectionPoller.connect(JMSConnectionPoller.java:750) at weblogic.ejb.container.internal.MDConnectionManager.timerExpired(MDConnectionManager.java:169) at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:259) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:179) NestedException Message is :MQJMS2005: failed to create MQQueueManager for '126.96.36.199:BT.QM.IVASCTG'
I doubt there is some problem with the binding of MQ to JMS??
can anyone pls help me on this.
It appears that the MQ JMS server is refusing connections from the MQ JMS client. I suggest looking up "MQJMS2005" in the IBM documentation and also checking if the IBM specific connection string '188.8.131.52:BT.QM.IVASCTG' is correct.
It might be that you reached the maximum number of channels in the MQ. By default it is 100. Check the MQ logs, and increase the maximum number of channels in the queue manager configuration file.