|
Home > Archive > WebSphere Application Server > May 2005 > Unable to get MDB to start within Server
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Unable to get MDB to start within Server
|
|
|
| Hi, running on Websphere v6 I have defined a ListenerPort within the Admin application for the server. I have then created a simple MessageDrivenBean and within the the ibm-ejb-jar-bnd.xmi file I have specified that it should use the listenerport with the
listenerInputPortName property.
But when I start Websphere it trys 5 times to activate the port and then gives up, what else should I do ?
[04/05/05 11:34:25:821 BST] 00000036 MDBListenerIm W WMSG0017E: Unable to lookup JMS resources, JNDI lookup exception: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
[04/05/05 11:34:25:868 BST] 00000036 MDBListenerIm W WMSG0019E: Unable to start MDB Listener Trade, JMSDestination jms/TradePortDestination : javax.naming.NameNotFoundException: Context: kestrelNode01Cell/nodes/kestrelNode01/servers/server1, name: jms/T
radePortDestination: First component in name jms/TradePortDestination not found. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
at com.ibm.ws.naming.ipcos.WsnOptimizedNamingImpl. handleNameNotFound(WsnOptimizedNamingImp
l.java:2006)
at com.ibm.ws.naming.ipcos.WsnOptimizedNamingImpl. getNextWsnOptimizedNamingContext(WsnOpti
mizedNamingImpl.java:1322)
at com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase. getTargetContext(WsnOptimizedNamingImplB
ase.java:3024)
at com.ibm.ws.naming.cosbase. WsnOptimizedNamingImplBase$LeafOperation
Data.<init>(WsnOptimizedNamingImplBase.java:3489)
at com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase. resolve_complete_info(WsnOptimizedNaming
ImplBase.java:1427)
at com.ibm.WsnOptimizedNaming._NamingContextStub.resolve_complete_info(Unknown Source)
at com.ibm.ws.naming.jndicos.CNContextImpl.cosResolve(CNContextImpl.java:4045)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1742)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1703)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1410)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1290)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:144)
at javax.naming.InitialContext.lookup(InitialContext.java:361)
at com.ibm.ejs.jms.listener.MDBListenerImpl.createResources(MDBListenerImpl.java:230)
at com.ibm.ejs.jms.listener.MDBListenerImpl.internalStart(MDBListenerImpl.java:681)
at com.ibm.ejs.jms.listener.MDBListenerImpl.start(MDBListenerImpl.java:612)
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.start(MDBListenerManagerImpl.java:605)
at com.ibm.ejs.jms.listener.MsgListenerPort.add(MsgListenerPort.java:165)
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl. startApplicationMDBs(MDBListenerManagerI
mpl.java:828)
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.stateChanged(MDBListenerManagerImpl.java:799)
at com.ibm.ws.runtime.component.MessageListenerImpl.stateChanged(MessageListenerImpl.java:140)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.stateChanged(ApplicationMgrImpl.java:973)
at com.ibm.ws.runtime.component.DeployedApplicationImpl. fireDeployedObjectEvent(DeployedApplicat
ionImpl.java:1011)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.setState(DeployedApplicationImpl.java:206)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.setState(DeployedApplicationImpl.java:201)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:736)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:685)
at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:1705)
at com.ibm.ws.runtime.component.ComponentImpl$_AsynchInitializer.run(ComponentImpl.java:304)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1394)
| |
| David Currie 2005-05-04, 6:02 pm |
| Paul,
As the warning states - it couldn't find a JMS destination called
jms/TradePortDestination. Have you defined this?
Regards,
David
| |
|
| I specified it when I created the ListenerPort, I havent metione dit anywhere else yet, am I meant to ?
| |
| Joseph Marques 2005-05-04, 6:02 pm |
| Yes, when you create a ListenerPort you are only specifying that you
want it to use other resources. You still need to go into the JMS
provider section and define the appropriate connection factory and
destination, the latter of which must point to a physical provider resource.
-joe
paul_t100@fastmail.fm wrote:
> I specified it when I created the ListenerPort, I havent metione dit anywhere else yet, am I meant to ?
| |
|
| Aaah, ok Ive just discovered this, Ill try this tommorrow and post the results.
| |
|
| Ok, Ive had some limited success.
In Resources/JMSAdaptors/Default Messaging Ive created:
JMS Connection Factory
JMS Queue Connection factory
JMS Queue
I also created a bus called 'Bus1' as part of this which they refer to.
I then created an Activation Specification, in the JNDI Destination Name I referenced the JMS name for the Queue I created.
Then for my Enterprise Application I modified its MDB listener binding to use the Activation Spec.
I then restart the server and it started with no errors.
I have a couple of questions though, I originally tried to use a Listener Port for the service but when this referenced my newly created JMS items and restarted the server it complained that "WMSG0063E:It is not valid to specify a default messaging Java M
essage Service (JMS) resource for a listener port". So what are they used for for, what are the pros/cons of using an Activation Spec opposed to a Listener Port, are these both Webspehere specific ?
I have not yet managed to get my standalone JMSClient to work though. I have made some progress but have had to add many libraries from websphere/lib and from websphere/installed/channels which doesnt seem right. I thought maybe I am using the wrong Initi
alContext, I am using com.ibm.websphere.naming.WsnInitialContextFactory is this right.
It falls over with the following error:
WARNING: SIB_MESSAGE
JMS failed with javax.jms.JMSException: CWSIA0241E: An exception was received during the call to the method JmsManagedConnectionFactoryImpl.createConnection: com.ibm.websphere.sib.exception.SIResourceException: CWSIT0006E: It is not possible to contact a
messaging engine in bus Bus1..
linked exception com.ibm.websphere.sib.exception.SIResourceException: CWSIT0006E: It is not possible to contact a messaging engine in bus Bus1.
I created Bus1 earlier but dont understand what it is, what else do i have to configure for it?
If anybody could point me to a decent source of documentation for this stuff that would be great, because the online help doesnt really explain what these various entities are.
| |
| David Currie 2005-05-06, 7:49 am |
| Paul,
Listener ports are used for JMS providers that implement the old JMS
Application Server Facilities (ASF) to provide MDB support. This
includes WebSphere MQ JMS and the WAS Version 5 Default Messaging
Provider. Activation specifications are used for JMS providers (and
other resource adapters) that use the new JCA message-inflow contract to
support MDBs. This includes the WAS Version 6 Default Messaging Provider.
Regarding your client problems: you should note that a thin client
application using JARs copied from an install is not supported. You
should be using one of the client installations:
http://publib.boulder.ibm.com/infoc...appclients.html
That said, the following link describes the configuration required to
find a messaging engine on the bus from a client:
http://publib.boulder.ibm.com/infoc...s/cjb0001_.html
Regards,
David
| |
|
| > That said, the following link describes the
> configuration required to
> find a messaging engine on the bus from a client:
>
> http://publib.boulder.ibm.com/infocenter/ws60help/topi
> c/com.ibm.websphere.pmc.nd.doc/concepts/cjb0001_.html
>
> Regards,
> David
Hi David!
I am also facing the same problem as Paul, my mdb is working fine, but when I try the jms client, it fails with the same error as Paul's (that is CWSIT0006E: not possible to contact messaging engine). I went through the link you mentioned and changed the
bootstrap server mentioned in the JMS connection factory settings to <myserver>:7276:BootstrapBasicMessaging, the end point 7276 is valid and I checked it in the ports page. But I am still not able to lookup the messaging engine. I can also see that a me
ssaging engine "<myserver><mynode>.server1-<busname>" is also running. The document also mentioned about the bus choosing a messaging engine that supports "desired target transport chain". What is it and how do I configure it, if I need to?
Thanks
Apurba
| |
|
| I got my client working in the end. It isnt completely standalone though, it is run by a websphere program (launchclient) but is ran outside of the Container. For my situation this will be ok I think because my client can be called by stanalone clients if
neccessary. I used the following article for my configuration:
http://www-128.ibm.com/developerwor...04_reinitz.html
I think the key was creating a jar file with application-client.xml and ibm-application-client-bnd.xmi files and running it using launchclient.
| |
|
| Hi Paul!
Are you running the client on the same machine as server or are you running it on a different machine, with the standalone client we are able to do the lookup, it is during the part where it tries to locate the messaging engine, that it bombs.
Thanks
Apurba
| |
|
|
|
|
|