JBoss SOA-P throws MQJCA1031: The method can only be called in the application client container.

Solution Verified - Updated -

Issue

  • We are using jms-jca-provider transacted WSMQ non-gateway queues. We get the following error.

    org.jboss.soa.esb.couriers.CourierServiceBindException: Failed to get JMS Session from pool.
         at org.jboss.internal.soa.esb.couriers.JmsCourier.getJmsSession(JmsCourier.java:163)
         at org.jboss.internal.soa.esb.couriers.JmsCourier.createMessageProducer(JmsCourier.java:383)
         at org.jboss.internal.soa.esb.couriers.JmsCourier.internalDeliver(JmsCourier.java:209)
         at org.jboss.internal.soa.esb.couriers.JmsCourier.deliver(JmsCourier.java:181)
         at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.deliver(TwoWayCourierImpl.java:189)
         at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.attemptDelivery(ServiceInvoker.java:576)
         at org.jboss.soa.esb.client.ServiceInvoker$EPRInvoker.access$200(ServiceInvoker.java:493)
         at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:343)
         at org.jboss.soa.esb.client.ServiceInvoker.deliverAsync(ServiceInvoker.java:233)
         at org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl.redeliver(DBMessageStoreImpl.java:394)
         at org.jboss.soa.esb.actions.MessageRedeliverer.process(MessageRedeliverer.java:74)
         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:615)
         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:574)
         at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:408)
         at org.jboss.soa.esb.listeners.ScheduleListener.onSchedule(ScheduleListener.java:121)
         at org.jboss.soa.esb.listeners.lifecycle.AbstractScheduledManagedLifecycle$1.onSchedule(AbstractScheduledManagedLifecycle.java:68)
         at org.jboss.soa.esb.schedule.SchedulerJob$ESBScheduledJob.execute(SchedulerJob.java:289)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
    Caused by: com.ibm.msg.client.jms.DetailedIllegalStateException: MQJCA1031: The method can only be called in the application client container. The application was not running in the application client container when this method was called.  Ensure that the application runs in the application client container, or modify the application to avoid this method call.
         at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:149)
         at com.ibm.mq.connector.services.JCAExceptionBuilder.buildException(JCAExceptionBuilder.java:86)
         at com.ibm.mq.connector.outbound.ConnectionWrapper.setExceptionListener(ConnectionWrapper.java:183)
         at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool$JmsSessionPool.initConnection(JmsConnectionPool.java:779)
         at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool$JmsSessionPool.getSession(JmsConnectionPool.java:718)
         at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.internalGetSession(JmsConnectionPool.java:252)
         at org.jboss.internal.soa.esb.rosetta.pooling.JmsConnectionPool.getSession(JmsConnectionPool.java:190)
         at org.jboss.internal.soa.esb.couriers.JmsCourier.getJmsSession(JmsCourier.java:159)
         ... 18 more
    

Environment

  • JBoss Enterprise SOA Platform (SOA-P) 4.3.0.GA upto CP02
  • Websphere  MQ version 7.0.1
  • Note:  We have not tested or certified this configuration.

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content