Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7996403
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T14:42:04+00:00 2026-06-04T14:42:04+00:00

I have a Message Driven Bean (MDB) deployed on WebSphere 7.0.0.21 which sends JMS

  • 0

I have a Message Driven Bean (MDB) deployed on WebSphere 7.0.0.21 which sends JMS messages on a SIB (Service Integration bus) queue.

The JMS resources are created:

@Resource(name = CONN_FACTORY, mappedName = CONN_FACTORY)
private QueueConnectionFactory connFactory;

@PostConstruct
public void postConstruct() {
  queueConnection = connFactory.createQueueConnection();
  queueSession = queueConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
  responseQueueSender = queueSession.createSender(getResponseQueue());
}

And destroyed:

@PreDestroy
public void preDestroy() {
  responseQueueSender.close();
  queueSession.close();
  queueConnection.close();
}

Sending like this:

TextMessage responseMessage = queueSession.createTextMessage("message");
responseQueueSender.send(responseMessage, DeliveryMode.PERSISTENT, Message.DEFAULT_PRIORITY, expirationTime);
queueSession.commit();

I have about 20 instances of my MDB. When I generate a lot of incoming messages to the MDB, problems arise. I got the following error:

CWSIA0053E: An exception was received during the call to the method JmsSessionImpl.getTransaction (#1): javax.resource.spi.IllegalStateException: CWSJR1121E: An internal error has occurred. During the call to the method getManagedConnection the exception javax.resource.spi.ResourceAllocationException: CWSJR1028E: An internal error has occurred. The exception com.ibm.ws.sib.processor.exceptions.SIMPConnectionUnavailableException: CWSIK0022E: The connection is closed to messaging engine seit3022Node01.server1-Payment and cannot be used. was received in method createManagedConnection. was thrown..

If I increase the Queue connection factory’s connection pool size a lot, the error occurs more seldom but it still exists. If I lower the pool size the error occurs very often.

How can the connection be closed? If I have a connection pool size greater than the number of concurrent MDB:s, how can a connection be closed?

There are various properties of the connection pool, but I can’t find any regarding closing connections in use… And my code definitely does not close any connection (except in @PreDestroy)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T14:42:05+00:00Added an answer on June 4, 2026 at 2:42 pm

    I’m not sure what causes the SIMPConnectionUnavailableException here, but the way you manage the connection in your MDB is not correct anyway. You should move the code in the postConstruct and preDestroy methods to onMessage method and not attempt to reuse the same connection. This is especially important if you want to ensure that the MDB has correct transactional behavior. Note that since the connection factory does connection pooling, requesting a connection per received message doesn’t cause overhead.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a MDB (Message driven bean) that receives messages with String which represent
I have an Message Driven Bean, which receives Audit messages. These messages also have
I have a message handler, which consumes from a JMS queue and that sends
We have an application that processes JMS message using a message driven bean. This
I have an java EE application which has one message-driven bean and it runs
I have an application which consists of message driven bean and a couple of
I have a web service , i add some extra class which have message
I have a message driven bean that throws exception under certain conditions. When it
I have a problem with message driven EJB. I have too applications Web Service
In my application, I have the following Message Driven Bean to connect to the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.