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)
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