Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Integration WebLogic JMS with MDB hosted in WebSphere

18 views
Skip to first unread message

andrew...@wolterskluwer.com

unread,
Sep 27, 2006, 4:14:50 PM9/27/06
to
We are trying to deploy an application with a MDB to a WebSphere Server, using WebLogic's JMS implementation. We have been successful at getting the two to talk but WebLogic throws an exception when WebSphere tries to startup the MDB.

The problem seems to be that WebSphere is calling createConnectionConsumer on the WebLogic JMS Connection. According to the J2EE specification this is not allowed, hence the error. Has anyone else been successful at using WebLogic's JMS implementation with WebSphere?

[9/26/06 23:44:15:389 CDT] 7eaa3b49 JMSExceptionL E WMSG0018E: Error on JMSConnection for MDB MyAppMDB , JMSDestination jms/WeblogicRecv : weblogic.jms.common.IllegalStateException: connection consumer only supported on server
at weblogic.jms.client.JMSConnection.createConnectionConsumer(JMSConnection.java:744)
at weblogic.jms.client.JMSConnection.createConnectionConsumer(JMSConnection.java:479)
at com.ibm.ejs.jms.JMSQueueConnectionHandle.createConnectionConsumer(JMSQueueConnectionHandle.java:118)
at com.ibm.ejs.jms.listener.MDBListenerImpl.createResources(MDBListenerImpl.java:439)
at com.ibm.ejs.jms.listener.MDBListenerImpl.internalStart(MDBListenerImpl.java:611)
at com.ibm.ejs.jms.listener.MDBListenerImpl.start(MDBListenerImpl.java:535)
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.start(MDBListenerManagerImpl.java:482)
at com.ibm.ejs.jms.listener.MsgListenerPort.add(MsgListenerPort.java:152)
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.startApplicationMDBs(MDBListenerManagerImpl.java:715)
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.stateChanged(MDBListenerManagerImpl.java:686)
at com.ibm.ws.runtime.component.MessageListenerImpl.stateChanged(MessageListenerImpl.java:151)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.stateChanged(ApplicationMgrImpl.java:487)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectEvent(DeployedApplicationImpl.java:791)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.setState(DeployedApplicationImpl.java:157)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.setState(DeployedApplicationImpl.java:153)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:589)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:311)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:268)
at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:152)
at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:246)
at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at com.ibm.ws.bootstrap.WSLauncher.run(WSLauncher.java:222)
at java.lang.Thread.run(Thread.java:568)

David Currie

unread,
Sep 28, 2006, 6:08:44 AM9/28/06
to
I know nothing about WebLogic JMS but, as the error indicates,
createConnectionConsumer should be permitted to be called by a server,
just not by an application client. Is there some other WebLogic
connection factory class or a property on the connection factory that
you need to set to indicate that it is going to be used by the server?

If all else fails, you can tell WebSphere not to use the Application
Server Facilities (ASF) but instead just poll the JMS provider using a
normal JMS receive. This is likely to be less efficient though. This can
be achieved by setting the NON.ASF.RECEIVE.TIMEOUT custom property:
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.doc/info/ae/ae/umb_prolscp.html

Regards,
David

0 new messages