Message Driven bean not able to listen to IBM MQ
Hello,
I am trying to implement a Mesage Driven Bean on Weblogic 7.0.This MDB
would listen on a particular queue of IBM MQ.
I have written a Weblogic startUp class which registers the factory
into Weblogic JNDI.Am I supposed to register the queue as well? I am
confused about the queue part. In the deployement descriptor of the
MDB (weblogic-ejb-jar.xml), we have the the <destination-jndi-name>
tag which should be the Queue name (in my case the IBM MQ queue ). Am
I supposed to register that in the Weblogic JNDI as well? I mean do I
add the Queue part in my Weblogic start-up class as well? Else how
will The Queue be obtained?
I am sort of confused on this . I get the error :
<Apr 16, 2003 3:17:14 PM EDT> <Warning> <EJB> <010061> <The
Message-Driven EJB: SimpleMDB is unable
to connect to the JMS destination: ivtQ. The EJB container will
automatically attempt to re-establis
h the connection with the JMS server. This warning may occur during
WebLogic Cluster start-up if the
JMS destination is located on another server. When the JMS server
connection is re-established, the
Message-Driven EJB will again receive JMS messages.
The Error was:
The JMS destination with the JNDI name: ivtQ could not be found.
Please ensure that the JNDI name in
the weblogic-ejb-jar.xml is correct, and the JMS destination has been
deployed.>
Please guide .I am trying to find out this information(which isn`t
very difficult i think ) since quite a few days now but I have got no
reply whatsoever.Please let me know if I am posting in the wrong group
or should I place my query in some other group where I can get a
better response.
Thanks and regards,
Milan Doshi
I'm not familiar with this stuff, but Greg is out, so
hey, I'll give it a shot. Some random thoughts:
It seems odd that the MDB can find the factory in JNDI but
not the queue.
Make sure that the startup class is actually running the code
you think it is. Put println's before and after the queue binding
code. And as the white-paper suggests, use the "failure is
fatal" option for the startup class so that you know
if the class worked or not...
Put some trace code in the ignored "NumberFormatException" catch below.
Carefully check you log to see if there are other warnings or errors.
Note that you may wish to use MQ JNDI instead of createQueue
in the startup class to look up the queue. The "createQueue()"
will not necessarily return an object that is JNDI "capable", (vendor
specific)... If this is the case, then you will need to
write a "wrapper" class that implements Serializable but
finds its wrapped factory via some sort of static lookup.
Tom, BEA
P.S. Note that WebLogic 8.1 provides the ability
to "wrap" and deploy foreign JMS resources administratively
via the console. No startup class needed...
Milan Doshi wrote:
> Thanks for the response.
>
> I have written the startUp class but I am getting the following error:
>
> The Error was:
> The JMS destination with the JNDI name: MySenderQueue could not be
> found. Please ensure that the
> JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS
> destination has been deployed.>
>
> =====
>
> My startup class is as follows:
>
> String qmPort = (String)args.get(QM_PORT_PROPERTY);
> String qmHost = (String)args.get(QM_HOST_PROPERTY);
> String qmName = (String)args.get(QM_NAME_PROPERTY);
>
> MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
>
> factory.setQueueManager(qmName);
> factory.setHostName(qmHost);
> if (qmPort != null)
> {
> try
> {
> int portNum = Integer.parseInt(qmPort);
> factory.setPort(portNum);
> }
> catch (NumberFormatException ignore)
> {
>
> }
> }
> if (qmHost == null)
> {
> factory.setTransportType(JMSC.MQJMS_TP_BINDINGS_MQ);
>
>
> }
> else
> {
> factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
> }
>
> InitialContext context = new InitialContext();
> context.bind(jndiName, factory);
>
> QueueConnection connection = factory.createQueueConnection();
> boolean transacted = false;
> QueueSession session = connection.createQueueSession( transacted,
> Session.AUTO_ACKNOWLEDGE);
> Queue ioQueue = session.createQueue("MySenderQueue");
>
> context.bind("MySenderQueue",ioQueue);
> context.close();
>
>
> ===================================================
>
> My Weblogic-ejb-jar.xml is like this:
>
> <weblogic-ejb-jar>
> <weblogic-enterprise-bean>
> <ejb-name>SimpleMDB</ejb-name>
> <message-driven-descriptor>
> <pool>
> <max-beans-in-free-pool>8</max-beans-in-free-pool>
> <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
> </pool>
> <destination-jndi-name>MySenderQueue</destination-jndi-name>
> <connection-factory-jndi-name>
> MyQCF
> </connection-factory-jndi-name>
> </message-driven-descriptor>
> </weblogic-enterprise-bean>
> </weblogic-ejb-jar>
>
> ======================================================
>
> Can you please guide me what is wrong in registering the Queue?
>
> Thanks once again for the response,
>
> Milan Doshi
>
>
> "Greg Brail" <[email protected]> wrote in message news:<[email protected]>...
>
>>You don't have to use a startup class to do this unless you want to. If you
>>use IBM's "JMSAdmin" tool to register the MQ connection factory and
>>destination objects into a JNDI provider, then you need only specify the
>>right JNDI stuff in weblogic-ejb-jar.xml. You might want to look at the
>>white paper for more information on exactly how to do this:
>>
>>http://dev2dev.bea.com/resourcelibrary/whitepapers/jmsproviders.jsp
>>
>>However, there might be reasons to use the startup class anyway. With the
>>startup class, you don't have to mess with a JNDI provider for MQ. The white
>>paper also contains a sample startup class.
>>
>>If you do this with a startup class, you do indeed need to bind BOTH the
>>MQSeries ConnectionFactory and Queue objects into WebLogic JNDI. You then
>>need to make the MDB use those particular objects (the ones you created in
>>the startup class) for both the connection factory and the queue. The
>>resulting weblogic-ejb-jar.xml file would look like this:
>>
>><weblogic-ejb-jar>
>> <weblogic-enterprise-bean>
>> <ejb-name>YourMDBName</ejb-name>
>> <message-driven-descriptor>
>> <pool>
>> <max-beans-in-free-pool>8</max-beans-in-free-pool>
>> <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
>> </pool>
>> <destination-jndi-name>
>> YourQueueNameFromTheStartupClass
>> </destination-jndi-name>
>> <connection-factory-jndi-name>
>> ConnectionFactoryNameFromTheStartupClass
>> </connection-factory-jndi-name>
>> </message-driven-descriptor>
>> </weblogic-enterprise-bean>
>></weblogic-ejb-jar>
>>
>>Hope this helps.
>>
>> greg
>>
>>"Milan Doshi" <[email protected]> wrote in message
>>news:[email protected]...
>>
>>>Hello,
>>>
>>>I am trying to implement a Mesage Driven Bean on Weblogic 7.0.This MDB
>>>would listen on a particular queue of IBM MQ.
>>>
>>>I have written a Weblogic startUp class which registers the factory
>>>into Weblogic JNDI.Am I supposed to register the queue as well? I am
>>>confused about the queue part. In the deployement descriptor of the
>>>MDB (weblogic-ejb-jar.xml), we have the the <destination-jndi-name>
>>>tag which should be the Queue name (in my case the IBM MQ queue ). Am
>>>I supposed to register that in the Weblogic JNDI as well? I mean do I
>>>add the Queue part in my Weblogic start-up class as well? Else how
>>>will The Queue be obtained?
>>>
>>>I am sort of confused on this . I get the error :
>>>
>>><Apr 16, 2003 3:17:14 PM EDT> <Warning> <EJB> <010061> <The
>>>Message-Driven EJB: SimpleMDB is unable
>>>to connect to the JMS destination: ivtQ. The EJB container will
>>>automatically attempt to re-establis
>>>h the connection with the JMS server. This warning may occur during
>>>WebLogic Cluster start-up if the
>>> JMS destination is located on another server. When the JMS server
>>>connection is re-established, the
>>> Message-Driven EJB will again receive JMS messages.
>>>The Error was:
>>>The JMS destination with the JNDI name: ivtQ could not be found.
>>>Please ensure that the JNDI name in
>>> the weblogic-ejb-jar.xml is correct, and the JMS destination has been
>>>deployed.>
>>>
>>>Please guide .I am trying to find out this information(which isn`t
>>>very difficult i think ) since quite a few days now but I have got no
>>>reply whatsoever.Please let me know if I am posting in the wrong group
>>>or should I place my query in some other group where I can get a
>>>better response.
>>>
>>>Thanks and regards,
>>>
>>>Milan Doshi
>>
Similar Messages
-
JMS / Message Driven Bean not processing message
I am having a problem getting an MDB to work on Weblogic Server 7x.
Basically I have written a simple Bean which simply prints a message.
I have a JMS client which creates a message (javax.jms.TextMessage)
and successfully adds it to the queue (javax.jms.Queue). The code
looks as follows:
public void sendText(String message) throws Exception
TextMessage textMessage = getQueueSession().createTextMessage();
System.out.println("Created Message: "+message);
textMessage.clearBody();
textMessage.setText(message);
System.out.println("Sending Message");
getQueueSender().send(textMessage);
System.out.println("Sent Message");
The message is getting onto the queue as we can monitor this from the
weblogic console, everytime we run the JMS Test client the number of
messages on the queue increases however these message never seem to be
processed. Here is a sample of the ejb-jar.xml
<message-driven>
<display-name>JMSBatchReceiver</display-name>
<ejb-name>JMSBatchReceiver</ejb-name>
<ejb-class>com.batch.JMSBatchReceiverBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
Here is a sample from the weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>JMSBatchReceiver</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>5</max-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/BatchQueue</destination-jndi-name>
<connection-factory-jndi-name>jms/BatchQueueConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
And here is an excerpt from the config.xml;
<JMSConnectionFactory JNDIName="jms/BatchQueueConnectionFactory"
Name="jms/BatchQueueConnectionFactory" Targets="myserver"/>
<JMSServer Name="JMSBatchServer" Targets="myserver">
<JMSQueue DeliveryModeOverride="Persistent"
JNDIName="jms/BatchQueue" Name="jms/BatchQueue"/>
</JMSServer>
Any ideas.....
Best Regards
Brian
Check the UserTransactions and XATransactions checkbox for your custom connection factory.
Tom Barnes wrote:
> Confirm that the bean is deployed by checking the server's
> deployments on the console.
>
> Check your server log for messages. If the MDB is failing to
> attach, it will log errors and warnings.
>
> I wonder if the "/" in your descriptor jars is messing things
> up as a special character? Try naming your JNDI resources
> without slashes.
>
> Note that there is no need to specify a connection factory for
> MDBs - the default one is usually fine.
>
> Tom
>
> Brian Seery wrote:
> > I am having a problem getting an MDB to work on Weblogic Server 7x.
> > Basically I have written a simple Bean which simply prints a message.
> > I have a JMS client which creates a message (javax.jms.TextMessage)
> > and successfully adds it to the queue (javax.jms.Queue). The code
> > looks as follows:
> >
> > public void sendText(String message) throws Exception
> > {
> > TextMessage textMessage = getQueueSession().createTextMessage();
> > System.out.println("Created Message: "+message);
> > textMessage.clearBody();
> > textMessage.setText(message);
> > System.out.println("Sending Message");
> > getQueueSender().send(textMessage);
> > System.out.println("Sent Message");
> > }
> >
> > The message is getting onto the queue as we can monitor this from the
> > weblogic console, everytime we run the JMS Test client the number of
> > messages on the queue increases however these message never seem to be
> > processed. Here is a sample of the ejb-jar.xml
> >
> > <message-driven>
> > <display-name>JMSBatchReceiver</display-name>
> > <ejb-name>JMSBatchReceiver</ejb-name>
> > <ejb-class>com.batch.JMSBatchReceiverBean</ejb-class>
> > <transaction-type>Container</transaction-type>
> > <message-driven-destination>
> > <destination-type>javax.jms.Queue</destination-type>
> > </message-driven-destination>
> > </message-driven>
> >
> > Here is a sample from the weblogic-ejb-jar.xml
> >
> > <weblogic-enterprise-bean>
> > <ejb-name>JMSBatchReceiver</ejb-name>
> > <message-driven-descriptor>
> > <pool>
> > <max-beans-in-free-pool>5</max-beans-in-free-pool>
> > </pool>
> > <destination-jndi-name>jms/BatchQueue</destination-jndi-name>
> > <connection-factory-jndi-name>jms/BatchQueueConnectionFactory</connection-factory-jndi-name>
> > </message-driven-descriptor>
> > </weblogic-enterprise-bean>
> >
> > And here is an excerpt from the config.xml;
> > <JMSConnectionFactory JNDIName="jms/BatchQueueConnectionFactory"
> > Name="jms/BatchQueueConnectionFactory" Targets="myserver"/>
> > <JMSServer Name="JMSBatchServer" Targets="myserver">
> > <JMSQueue DeliveryModeOverride="Persistent"
> > JNDIName="jms/BatchQueue" Name="jms/BatchQueue"/>
> > </JMSServer>
> >
> > Any ideas.....
> >
> > Best Regards
> >
> > Brian
Rajesh Mirchandani
Developer Relations Engineer
BEA Support
-
Message Driven Bean Not Working
I'm trying to make run in WebLogic 7 an MDB,
it seems well configured,
in the XML descriptor ,JNDI names of the destination and the ConnectionFactory
correspond respectively to a destination wich I have created after having created a JMS server in WBL7 and to a ConnectionFactory
in the client ,
I have
-first obtain an InitialContext
-then a look-up on the QueueConnectionFactory
-then createQueueConnectionFactory
-after createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
-after a look-up on the Queue
-and then .createSender(queue)
- and finally createTextMessage();
to have a simple Textmessagen
in the administration console of Weblogic
in "monitor all MDB du .jar"
for this MDB there 0 bean in Pool,0bean in use
and the JmsConnectionAlive indicate False,
it seems curious
and then in the doc they says something about permission
an "run as principal" wich need to be put to "receive"
but I didn't exactly understand where
because the doc isn't completle up-to-date
and refer to 6,it seems
because int the WBL7 the ACL are suppressed
somebody could help me,
thanks in advanceArman & bzoler,
Make that three of us. I, am using Weblogic 7 (patch 2) and JBuilder Weblogic edition 7.01. I have configured my JMS topic and can successfully send and receive messages with BEA's sample topic sender and receiver (found in
C:\bea\weblogic700\samples\server\src\examples\jms\topic, but modified for my factory and topic).
However, when I try to deploy my MDB and send messages to the topic via their client, no messages are received by the MDB. I know it is deploying OK, because I added a println to the ejbCreate method and it is getting displayed when the server is started.
Any ideas from anyone out there of where we may be going wrong? Is it possible that you are forced to use Security when using MDB?
-David -
Deployment of Message Driven Bean fails
Hi guys,
i use MQSeries as JMS Provider.
The Application (ear) has the following structure :
MDBApp.ear
contains
mqseries1.jar ,mqseries2.jar, mqseries3.jar , .. ( In the previous Version of NetWeaver is used a deployable Server library and referenced it from the jms-factories.xml )
mdb.jar (contains the Message Driven Bean)
Note :
the jms-resources.xml has the following content :
<?xml version="1.0" encoding="UTF-8"?>
<jms-resources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jms-resources.xsd">
<connection-factory>
<name>TestFactory</name>
<object-factory-type>
<object-factory-name>com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory</object-factory-name>
<class-name>com.ibm.mq.jms.MQXAQueueConnectionFactory</class-name>
<property>
<config-property-name>HOST</config-property-name>
<config-property-value>anIPAdress</config-property-value>
</property>
<property>
<config-property-name>QMGR</config-property-name>
<config-property-value>aQueueManagerID</config-property-value>
</property>
<property>
<config-property-name>PORT</config-property-name>
<config-property-value>aPort</config-property-value>
</property>
<property>
<config-property-name>TRAN</config-property-name>
<config-property-value>1</config-property-value>
</property>
</object-factory-type>
</connection-factory>
<destination>
<name>RA.IBMSOLLIST.ASSOLLIST.001</name>
<type>javax.jms.Queue</type>
<external-destination-type>
<link-connection-factory>TestFactory</link-connection-factory>
</external-destination-type>
</destination>
</jms-resources>
The Message Driven Bean code :
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType",
propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination",
propertyValue = "RA.IBMSOLLIST.ASSOLLIST.001"),
@ActivationConfigProperty(propertyName =
"connectionFactoryName", propertyValue = "TestFactory")
public class VMRaTestMessageDBean implements MessageListener {
/* (non-Javadoc)
@see javax.jms.MessageListener#onMessage(javax.jms.Message)
public void onMessage(Message arg0) {
// TODO Auto-generated method stub
The SDM gets following warning/error :
Description:
1. Exception has been returned while the 'vmtubes.de/ratestmdb~ear' was starting. Warning/Exception :
[ERROR CODE DPL.DS.6193] Error while ; nested exception is:
com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5030] Clusterwide exception: server ID 2198950:com.sap.engine.services.deploy.container.DeploymentException: Cannot activate endpoint for message-driven bean vmtubes.de/ratestmdbear*annotation|vmtubes.deratestmdb~ejb.jar*annotation|VMRaTestMessageDBean
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl$Actions.perform(ContainerInterfaceImpl.java:893)
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl.prepareStart(ContainerInterfaceImpl.java:425)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:219)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:179)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:445)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:337)
at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:550)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:251)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:392)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3389)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3375)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3278)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3251)
at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)
at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)
at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)
at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)
at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)
at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)
at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)
at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)
Caused by: com.sap.engine.services.ejb3.container.ActionException: Cannot activate endpoint for message-driven bean vmtubes.de/ratestmdbear*annotation|vmtubes.deratestmdb~ejb.jar*annotation|VMRaTestMessageDBean
at com.sap.engine.services.ejb3.runtime.impl.Actions_MDBEndpointActivation.perform(Actions_MDBEndpointActivation.java:94)
at com.sap.engine.services.ejb3.container.CompositeAction.perform(CompositeAction.java:81)
at com.sap.engine.services.ejb3.container.ApplicationStarter.perform(ApplicationStarter.java:59)
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl$Actions.perform(ContainerInterfaceImpl.java:887)
... 34 more
Caused by: javax.resource.NotSupportedException: javax.resource.spi.UnavailableException: The destination RA.IBMSOLLIST.ASSOLLIST.001 cannot be looked up. Last attempt performed : jms_vendor_queues_global/RA.IBMSOLLIST.ASSOLLIST.001
at com.sap.jms.resourceadapter.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:113)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:451)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findResourceAdapterByName(EndpointActivationImpl.java:154)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findAdapter(EndpointActivationImpl.java:85)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:58)
at com.sap.engine.services.ejb3.runtime.impl.Actions_MDBEndpointActivation.perform(Actions_MDBEndpointActivation.java:84)
... 37 more
Caused by: javax.resource.spi.UnavailableException: The destination RA.IBMSOLLIST.ASSOLLIST.001 cannot be looked up. Last attempt performed : jms_vendor_queues_global/RA.IBMSOLLIST.ASSOLLIST.001
at com.sap.jms.resourceadapter.RaActivation.setupDestination(RaActivation.java:345)
at com.sap.jms.resourceadapter.RaActivation.activate(RaActivation.java:121)
at com.sap.jms.resourceadapter.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:101)
... 42 more
Caused by: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of RA.IBMSOLLIST.ASSOLLIST.001.
at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:584)
at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:343)
at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:637)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.sap.jms.resourceadapter.RaActivation.setupDestination(RaActivation.java:343)
... 44 more
I use NetWeaver CE 7.1 SP05 .
LockeHi Vladimir,
i can't find the string "JMS Connector Container Application: vmtubes.de/ratestmdb~ear destination name: RA.IBMSOLLIST.ASSOLLIST.001" in the traces.
These are all the logentries while the deployment (read the entries from top to buttom):
Starting activation of JMS resource adapter endpoint factory. ActivationSpec is : applicationName=vmtubes.de/ratestmdb~ear,connectionFactoryName : Testfactory,mAcknowledgeMode : null,maxPoolSize : 50,mClientId : null,mDestinationName : RA.IBMSOLLIST.ASSOLLIST.001,mDestinationType : javax.jms.Queue,minPoolSize : 0,mMessageSelector : null,mSubscriptionDurability : null,mSubscriptionName : null,mReconnectAttempts : 10,mSleepBetweenAttempts : 1000,mParallelConsumers : 1
Performing JNDI lookup for obtaining connectionFactory : jms_vendor_factory_local/vmtubes.de/ratestmdb~ear/Testfactory
First attempt for lookup failed. That could happen for 6.40 applpication without application name. We will continute with the fallback chain. The JNDI lookup is : jms_vendor_factory_local/vmtubes.de/ratestmdb~ear/Testfactory
Performing JNDI lookup for obtaining connectionFactory : jms_vendor_factory_global/Testfactory
Attempt for lookup without application name failed. An attempt will be performed to use the default connectionFactory instead of the one supplied during deployment. The JNDI name is : jms_vendor_factory_global/Testfactory
Performing JNDI lookup for obtaining connectionFactory : jmsfactory/default/XAQueueConnectionFactory
JMS connection created:
================================== Connection ==================================
ID 9444418335539219
Type (Generic)Connection
Mode STOPPED
isClosed NO
client = null
server = com.sap.jms.server.remote.JMSRemoteServerImpl5ec877
packetFactory = com.sap.jms.protocol.PacketFactoryImpl12e8d47
thread pool = null
isClosed = false
runFlag = true
isRunning = true
ConnectionMetaData -
JMSVersion 1.1
PorviderVersion Version 1.0
SupportedJMSXProperties JMSXGroupID, JMSXGroupSeq
================================================================================
com.sap.jms.client.connection.RemoteQueueConnection13d601c isUsed = false
Attempt for lookup without application name failed. An attempt will be performed to use the default connectionFactory instead of the one supplied during deployment. The JNDI name is : jms_vendor_factory_global/Testfactory
Attempt for lookup of destination failed. That could happen for 6.40 applications without application name.An attempt will be performed without the application name. The JNDI name is : jms_vendor_queues_local/vmtubes.de/ratestmdb~ear/RA.IBMSOLLIST.ASSOLLIST.001
java.lang.ClassCastException: class javax.naming.Reference:null incompatible with interface javax.jms.Destination:library:jmscom.sap.engine.boot.loader.ResourceMultiParentClassLoader389922alive
at com.sap.jms.resourceadapter.RaActivation.setupDestination(RaActivation.java:320)
at com.sap.jms.resourceadapter.RaActivation.activate(RaActivation.java:121)
at com.sap.jms.resourceadapter.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:101)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:451)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findResourceAdapterByName(EndpointActivationImpl.java:154)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findAdapter(EndpointActivationImpl.java:85)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:58)
at com.sap.engine.services.ejb3.runtime.impl.Actions_MDBEndpointActivation.perform(Actions_MDBEndpointActivation.java:84)
at com.sap.engine.services.ejb3.container.CompositeAction.perform(CompositeAction.java:81)
at com.sap.engine.services.ejb3.container.ApplicationStarter.perform(ApplicationStarter.java:59)
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl$Actions.perform(ContainerInterfaceImpl.java:887)
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl.prepareStart(ContainerInterfaceImpl.java:425)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:219)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:179)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:445)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:337)
at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:550)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:251)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:392)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3389)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3375)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3278)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3251)
at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)
at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)
at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)
at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)
at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)
at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)
at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)
at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)
Connection, destination and serverSession pool have been initialized correctly. Delivery of JMS messages will be started.Connection = ================================== Connection ==================================
ID 9444418335539219
Type (Generic)Connection
Mode STOPPED
isClosed NO
ExceptionListener com.sap.jms.resourceadapter.RaActivation1fe79
client = com.sap.jms.server.remote.JMSRemoteClientImpl857822
server = RMI_P4: Local Dynamic Stub for impl -> com.sap.jms.server.remote.JMSRemoteServerImpl18f254f
P4 Remote Object Info : com.sap.engine.services.rmi_p4.server.P4ServerObjectInfo100
|- broker id : -752547698
|- server id : 2198950
|- client Id : -1
|- local Id : 2198950
|- is redirectable : false
|- redir Ident :
|- factory Name : null
|- objId : null
|- server loader name : null
|- connected : false
|- supportOptimization : true
|- protocol : 76 31 v1
Remote Interfaces :
Interface : [0] = com.sap.jms.server.remote.JMSRemoteServer
Interface : [1] = com.sap.engine.services.rmi_p4.interfaces.P4Notification
=========================================
Connection profiles :
connection profile : [0] = None:195.233.66.25:50004
=========================================
packetFactory = com.sap.jms.protocol.PacketFactoryImple9cc66
thread pool = com.sap.engine.core.service630.context.core.thread.ThreadSystemImpl1b57cfa
isClosed = false
runFlag = true
isRunning = true
ConnectionMetaData -
JMSVersion 1.1
PorviderVersion Version 1.0
SupportedJMSXProperties JMSXGroupID, JMSXGroupSeq
================================================================================
com.sap.jms.client.connection.RemoteQueueConnection16a7da2 isUsed = true, destination = queue:///RA.IBMSOLLIST.ASSOLLIST.001, pool = com.sap.jms.resourceadapter.RaServerSessionPool5e2ae5, activation spec = applicationName=vmtubes.de/ratestmdb~ear,connectionFactoryName : Testfactory,mAcknowledgeMode : null,maxPoolSize : 50,mClientId : null,mDestinationName : RA.IBMSOLLIST.ASSOLLIST.001,mDestinationType : javax.jms.Queue,minPoolSize : 0,mMessageSelector : null,mSubscriptionDurability : null,mSubscriptionName : null,mReconnectAttempts : 10,mSleepBetweenAttempts : 1000,mParallelConsumers : 1
JMS session created:
=================================== Session ====================================
ID: 17
Type: (Generic)Session
ConnectionID: 9444418335539219
AcknowledgeMode: Transacted session!
================================================================================
ActivationSpec could not be deployed/started due to internal problem, clean up will be performed, the activation spec was applicationName=vmtubes.de/ratestmdb~ear,connectionFactoryName : Testfactory,mAcknowledgeMode : null,maxPoolSize : 50,mClientId : null,mDestinationName : RA.IBMSOLLIST.ASSOLLIST.001,mDestinationType : javax.jms.Queue,minPoolSize : 0,mMessageSelector : null,mSubscriptionDurability : null,mSubscriptionName : null,mReconnectAttempts : 10,mSleepBetweenAttempts : 1000,mParallelConsumers : 1
javax.resource.spi.UnavailableException: javax.jms.InvalidDestinationException: Illegal destination!
at com.sap.jms.resourceadapter.RaActivation.activate(RaActivation.java:136)
at com.sap.jms.resourceadapter.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:101)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:451)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findResourceAdapterByName(EndpointActivationImpl.java:154)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findAdapter(EndpointActivationImpl.java:85)
at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:58)
at com.sap.engine.services.ejb3.runtime.impl.Actions_MDBEndpointActivation.perform(Actions_MDBEndpointActivation.java:84)
at com.sap.engine.services.ejb3.container.CompositeAction.perform(CompositeAction.java:81)
at com.sap.engine.services.ejb3.container.ApplicationStarter.perform(ApplicationStarter.java:59)
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl$Actions.perform(ContainerInterfaceImpl.java:887)
at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl.prepareStart(ContainerInterfaceImpl.java:425)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:219)
at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:179)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:420)
at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:445)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:337)
at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:550)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:251)
at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:392)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3389)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3375)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3278)
at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3251)
at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:99)
at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:62)
at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34)
at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:80)
at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:56)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:741)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:732)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:576)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:270)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:192)
at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:875)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)
at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)
at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)
at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)
at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)
at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)
Caused by: javax.jms.InvalidDestinationException: Illegal destination!
at com.sap.jms.client.session.Session.createConsumer(Session.java:1807)
at com.sap.jms.client.session.Session.createConsumer(Session.java:1795)
at com.sap.jms.client.connection.ConnectionConsumer.<init>(ConnectionConsumer.java:124)
at com.sap.jms.client.connection.Connection.createConnectionConsumer(Connection.java:167)
at com.sap.jms.resourceadapter.RaActivation.setUpConnectionConsumer(RaActivation.java:165)
at com.sap.jms.resourceadapter.RaActivation.activate(RaActivation.java:128)
... 43 more
An attempt to stop message delivery will be performed. Activation request was applicationName=vmtubes.de/ratestmdb~ear,connectionFactoryName : Testfactory,mAcknowledgeMode : null,maxPoolSize : 50,mClientId : null,mDestinationName : RA.IBMSOLLIST.ASSOLLIST.001,mDestinationType : javax.jms.Queue,minPoolSize : 0,mMessageSelector : null,mSubscriptionDurability : null,mSubscriptionName : null,mReconnectAttempts : 10,mSleepBetweenAttempts : 1000,mParallelConsumers : 1
JMS session closed:
=================================== Session ====================================
ID: 17
Type: (Generic)Session
ConnectionID: 9444418335539219
AcknowledgeMode: Transacted session!
================================================================================
Connection context doesn't exists ! id =
Removing unreferenced connection ID =
Connection context doesn't exists ! id =
Connection closed:
================================== Connection ==================================
ID 9444418335539219
Type (Generic)Connection
Mode STOPPED
isClosed YES
client = com.sap.jms.server.remote.JMSRemoteClientImpl857822
server = RMI_P4: Local Dynamic Stub for impl -> com.sap.jms.server.remote.JMSRemoteServerImpl18f254f
P4 Remote Object Info : com.sap.engine.services.rmi_p4.server.P4ServerObjectInfo100
|- broker id : -752547698
|- server id : 2198950
|- client Id : -1
|- local Id : 2198950
|- is redirectable : false
|- redir Ident :
|- factory Name : null
|- objId : null
|- server loader name : null
|- connected : false
|- supportOptimization : true
|- protocol : 76 31 v1
Remote Interfaces :
Interface : [0] = com.sap.jms.server.remote.JMSRemoteServer
Interface : [1] = com.sap.engine.services.rmi_p4.interfaces.P4Notification
=========================================
Connection profiles :
connection profile : [0] = None:195.233.66.25:50004
=========================================
packetFactory = com.sap.jms.protocol.PacketFactoryImple9cc66
thread pool = com.sap.engine.core.service630.context.core.thread.ThreadSystemImpl1b57cfa
isClosed = true
runFlag = false
isRunning = true
ConnectionMetaData -
JMSVersion 1.1
PorviderVersion Version 1.0
SupportedJMSXProperties JMSXGroupID, JMSXGroupSeq
================================================================================
com.sap.jms.client.connection.RemoteQueueConnection16a7da2 isUsed = true
Here the Telnet output :
>lookup jms_vendor_queues_local/vmtubes.de/ratestmdb~ear/RA.IBMSOLLIST.ASSOLLIST.001
Trying to connect...
Connected.
[Shell -> LOOKUP] Location : /jms_vendor_queues_local/vmtubes.de/ratestmdb~ear
/RA.IBMSOLLIST.ASSOLLIST.001
[Shell -> LOOKUP] Contains : Reference Class Name: com.ibm.mq.jms.MQQueue
Type: VER
Content: 1
Type: EXP
Content: -2
Type: PRI
Content: -2
Type: PER
Content: -2
Type: CCS
Content: 1208
Type: TC
Content: 0
Type: ENC
Content: 273
Type: FIQ
Content: 1
Type: QU
Content: RA.IBMSOLLIST.ASSOLLIST.001
Type: QMGR
Content:
[Shell -> LOOKUP] Class name : javax.naming.Reference
>llr -all -f com/ibm/mq/jms/MQQueue.class
jar:file:/C:/usr/sap/J2E/J00/j2ee/cluster/bin/ext/MQSLibrary/com.ibm.mq.jms.jar!
/com/ibm/mq/jms/MQQueue.class
jar:file:/C:/usr/sap/J2E/J00/j2ee/cluster/apps/vmtubes.de/mq%7Ebase%7Eserver%7El
ib/app_libraries_container/com.ibm.mq.jms.jar!/com/ibm/mq/jms/MQQueue.class
Locke -
Exception in setting up message-driven bean container: [MQJMS1010: not impl
Problem
=======
We are trying to configure and deploy a Message Driven
Bean to listen on a WebSphere MQ queue, using LDAP to
share knowledge of the Queue & Connection Factory.
But when we start the Sun One domain we get an exception:
javax.jms.JMSException: MQJMS1010: not implemented
(see log file at the end of this email)
Can anybody help please ?
The configuration of the various components are listed
below:
WebSphere MQ Configuration
==========================
Version 5.3
Queue Manager
QM_Test
Queues
PATH_MFP.Case.Request
Queue Type: Local
Channels
Channel_Test
Channel Type: Server Connection
Protocol Type: TCP/IP
LDAP configuration
==================
ldap://localhost/o=mqtest
cn=MFP_LOCAL_Factory
javaFactory=com.ibm.mq.jms.MQQueueConnectionFactoryFactory
javaClassName=com.ibm.mq.jms.MQQueueConnectionFactory
javaReferenceAddress=#3#QMGR#QM_Test
javaReferenceAddress=#6#CHAN#Channel_Test
javaReferenceAddress=#14#TM#SYSTEM.DEFAULT.MODEL.QUEUE
cn=MFP_LOCAL_Case_Request_Queue
javaFactory=com.ibm.mq.jms.MQQueueFactory
javaClassName=com.ibm.mq.jms.MQQueue
javaReferenceAddress=#9#QU#PATH_MFP.Case.Request
javaReferenceAddress=#10#QMGR#QM_Test
EJB configuration
=================
ejb-jar.xml
<message-driven>
<display-name>ServerMessageDrivenBean</display-name>
<ejb-name>ServerMessageDrivenBean</ejb-name>
<ejb-class>nz.co.acc.emi.server.connector.mdb.ServerMessageDrivenBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
sun-ejb-jar.xml
<ejb>
<ejb-name>ServerMessageDrivenBean</ejb-name>
<jndi-name>MFP_LOCAL_Case_Request_Queue</jndi-name>
<mdb-connection-factory>
<jndi-name>MFP_LOCAL_Factory</jndi-name>
</mdb-connection-factory>
</ejb>
Sun One configuration
=====================
MFPProcessing: JNDI: External Resources
MFP_LOCAL_Factory Enabled javax.jms.QueueConnectionFactory
JNDI Name: MFP_LOCAL_Factory
Resource Type: javax.jms.QueueConnectionFactory
JNDI Lookup: cn=MFP_LOCAL_Factory
Factoryclass: com.sun.jndi.ldap.LdapCtxFactory
Properties:
java.naming.provider.url ldap://localhost:389/o=mqtest
java.naming.security.authentication none
MFP_LOCAL_Case_Request_Queue Enabled javax.jms.Queue
JNDI Name: MFP_LOCAL_Case_Request_Queue
Resource Type: javax.jms.Queue
JNDI Lookup: cn=MFP_LOCAL_Case_Request_Queue
Factoryclass: com.sun.jndi.ldap.LdapCtxFactory
Properties:
java.naming.provider.url ldap://localhost:389/o=mqtest
server.xml
<mdb-container steady-pool-size="10" pool-resize-quantity="2" max-pool-size="60" idle-timeout-in-seconds="600" monitoring-enabled="true" log-level="FINEST" />
<jms-service port="1240" admin-user-name="admin" admin-password="admin" init-timeout-in-seconds="30" enabled="true" log-level="FINE" />
Sun One log file
================
server.log
[01/Mar/2004:10:06:48] INFO ( 657): CORE1116: Sun ONE Application Server 7.0.0_01
[01/Mar/2004:10:06:51] INFO ( 657): CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_01] from [Sun Microsystems Inc.]
[01/Mar/2004:10:07:09] INFO ( 657): JMS5023: JMS service successfully started. Instance Name = domain1_MFPProcessing, Home = [C:/Sun/AppServer7/imq/bin].
[01/Mar/2004:10:07:13] INFO ( 657): JTS5014: Recoverable JTS instance, serverId = [100]
[01/Mar/2004:10:07:14] INFO ( 657): RAR5060: Install JDBC Datasources ...
[01/Mar/2004:10:07:14] INFO ( 657): RAR5059: Binding [JDBC DataSource Name: jdbc/MfsDataSourceJConn, Pool Name: MFSConnectionPool]
[01/Mar/2004:10:07:15] INFO ( 657): JMS5015: Install JMS resources ...
[01/Mar/2004:10:07:47] WARNING ( 657): [EntityContainer] Created EntityContainer....
[01/Mar/2004:10:07:49] INFO ( 657): LDR5010: All ejb(s) of [mfs] loaded successfully!
[01/Mar/2004:10:07:52] INFO ( 657): MDB00044: Deploying message-driven bean [emi:ServerMessageDrivenBean], consuming from [MFP_LOCAL_Case_Request_Queue]
[01/Mar/2004:10:07:52] FINE ( 657): Messages delivery is part of a container-managed tx
[01/Mar/2004:10:07:52] FINE ( 657): emi:ServerMessageDrivenBean:reconnect-delay-in-seconds=60, reconnect-max-retries=60, reconnect-enabled=true
[01/Mar/2004:10:07:53] INFO ( 657): MDB00028: [emi:ServerMessageDrivenBean]: Message-driven bean container using external connection factory object: [com.ibm.mq.jms.MQQueueConnectionFactory]
[01/Mar/2004:10:07:55] FINE ( 657): emi:ServerMessageDrivenBean: Setting message-driven bean pool max-pool-size=60, steady-pool-size=10, pool-resize-quantity=2, idle-timeout-in-seconds=600
[01/Mar/2004:10:07:55] FINE ( 657): Initializing server session factory
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] INFO ( 657): MDB0001: Create message-driven bean pool with maximum pool size [60], bean idle timeout [600] seconds
[01/Mar/2004:10:07:55] SEVERE ( 657): MDB00030: [emi:ServerMessageDrivenBean]: Exception in setting up message-driven bean container: [MQJMS1010: not implemented]
[01/Mar/2004:10:07:55] FINE ( 657): MDB00018: [emi:ServerMessageDrivenBean]: Closing message-driven bean container connection
[01/Mar/2004:10:07:55] WARNING ( 657): [AbstractPool]: Cancelled pool timer task at: Mon Mar 01 10:07:55 NZDT 2004
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] SEVERE ( 657): MDB00017: [ServerMessageDrivenBean]: Exception in creating message-driven bean container: [javax.jms.JMSException: MQJMS1010: not implemented]
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] SEVERE ( 657): javax.jms.JMSException
javax.jms.JMSException: MQJMS1010: not implemented
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:418)
at com.ibm.mq.jms.MQQueueConnection.createConnectionConsumer(MQQueueConnection.java:602)
at com.sun.enterprise.jms.ConnectionWrapperBase.createConnectionConsumer(ConnectionWrapperBase.java:151)
at com.sun.ejb.containers.MessageBeanHelperQueueImpl.doSetup(MessageBeanHelperQueueImpl.java:67)
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:419)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.AbstractManager.load(AbstractManager.java:134)
at com.iplanet.ias.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:168)
at com.iplanet.ias.server.ApplicationServer.onStartup(ApplicationServer.java:269)
at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:162)
[01/Mar/2004:10:07:55] SEVERE ( 657): EJB5090: Exception in creating EJB container [javax.jms.JMSException: MQJMS1010: not implemented]
[01/Mar/2004:10:07:55] SEVERE ( 657): appId=emi moduleName=emiEjb_jar ejbName=ServerMessageDrivenBean
[01/Mar/2004:10:07:55] SEVERE ( 657): LDR5004: UnExpected error occured while creating ejb container
javax.jms.JMSException: MQJMS1010: not implemented
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:418)
at com.ibm.mq.jms.MQQueueConnection.createConnectionConsumer(MQQueueConnection.java:602)
at com.sun.enterprise.jms.ConnectionWrapperBase.createConnectionConsumer(ConnectionWrapperBase.java:151)
at com.sun.ejb.containers.MessageBeanHelperQueueImpl.doSetup(MessageBeanHelperQueueImpl.java:67)
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:419)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.AbstractManager.load(AbstractManager.java:134)
at com.iplanet.ias.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:168)
at com.iplanet.ias.server.ApplicationServer.onStartup(ApplicationServer.java:269)
at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:162)
[01/Mar/2004:10:07:55] WARNING ( 657): CORE5021: Application NOT loaded: [emi]
[01/Mar/2004:10:07:55] INFO ( 657): WEB0100: Loading web module [mfs:mfs.war] in virtual server [MFPProcessing] at [mfs]
[01/Mar/2004:10:08:31] INFO ( 657): HTTP3072: HTTP listener http-listener-1 [http://ch042dysz0405:1080] ready to accept requests
[01/Mar/2004:10:08:31] INFO ( 657): CORE3274: successful server startup
[01/Mar/2004:10:08:33] INFO ( 657): CORE5053: Application onReady complete.Hi,
You have not created the jms destination queue object
jms/Warehouse
Your server logs says it cannot find the destination queue object.It has got nothing to do with jndi name of your bean
Create jms destination queue object using
asadmin>create-jms-resource instance <instance_name> resourcetype javax.jms.Queue --property imqDestinationName=<NAme> jms/Warehouse
Then use list-jms-resources <instance_name> to
find if jms/Warehouse destionation queue object has been created.
Get back in case of any issues -
Message driven bean example is not working
Hi,
i tried message driven bean example on J2ee 6.20. I am able to make connection factory, but when i tried to deploy ear file a get an exception:
Error occurred
com.inqmy.services.deploy.container.DeploymentException: java.lang.NullPointerEx
ception
at com.inqmy.services.ejb20.EJBAdmin.commitDeploy(EJBAdmin.java:604)
at com.inqmy.services.deploy.server.DeployServiceImpl.commit(DeployServi
ceImpl.java:2897)
at com.inqmy.services.deploy.server.DeployServiceImpl.deploy1(DeployServ
iceImpl.java:524)
at com.inqmy.services.deploy.server.DeployServiceImpl.deploy(DeployServi
ceImpl.java:139)
at com.inqmy.services.deploy.command.DeployCommand.exec(DeployCommand.ja
va:142)
at com.inqmy.services.shell.processor.environment.CommandBase.exec(Comma
ndBase.java:124)
at com.inqmy.services.shell.processor.Interpreter.applyLineCommand(Inter
preter.java:391)
at com.inqmy.services.shell.processor.Interpreter.apply(Interpreter.java
:150)
at com.inqmy.services.shell.processor.Shell.work(Shell.java:150)
at com.inqmy.services.shell.processor.managers.ScriptProcessThread.run(S
criptProcessThread.java:128)
in visual administrator I can see the right queue and for few seconds this queue have one consumer.
thank
JJHi,
but this example was in guide to this version.
Ok, in case it is not possible to use MDB, how should i handle long time consumpting functions in EP enviroment?
(customer has only EP6SP2 and he need to send a lot of mails after user request and i dont want to leave user waiting till that function ends. - should i start new thread in portal?)
JJ -
Message-driven bean CMT can not be supported
Hi,
I�m trying to use IBM MQSeries 5.3 with S1AS7. The AS and MQ run under W2K SP3. At first I had no problem with deploying and running samples. I used C:\Sun\AppServer7\samples\ejb\mdb\simple\
I was able to put a test message into MQSeries queue and I saw it was processed by the MDB
Then I decided to change <transaction-type> from �Bean� to �Container� and I added <assembly-descriptor> where I set <trans-attribute> as �Required�.
Here is my new ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<!-- Copyright 2002 Sun Microsystems, Inc. All rights reserved. -->
<ejb-jar>
<display-name>SimpleMessageJAR</display-name>
<enterprise-beans>
<message-driven>
<display-name>SimpleMessageEJB</display-name>
<ejb-name>SimpleMessageEJB</ejb-name>
<ejb-class>samples.ejb.mdb.simple.ejb.SimpleMessageBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>SimpleMessageEJB</ejb-name>
<method-name>onMessage</method-name>
<method-params>
<method-param>javax.jms.Message</method-param>
</method-params>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
In this case I have the following server.log
[15/Dec/2002:15:29:00] FINE ( 1700): Requesting Server Session at: 1039955340843
[15/Dec/2002:15:29:00] FINE ( 1700): Got Server Session at: 1039955340859(1039955340843)
[15/Dec/2002:15:29:00] INFO ( 1700): CORE3282: stdout: In SimpleMessageBean.SimpleMessageBean()
[15/Dec/2002:15:29:00] FINEST ( 1700): Thread[MQQueueAgent (MYASQUEUE),5,RMI Runtime]: got session: com.sun.enterprise.jms.SessionWrapperBase@3c9616 from com.iplanet.ias.ejb.containers.IASServerSessionImpl@3508c0
[15/Dec/2002:15:29:00] INFO ( 1700): CORE3282: stdout: In SimpleMessageBean.setMessageDrivenContext()
[15/Dec/2002:15:29:00] INFO ( 1700): CORE3282: stdout: In SimpleMessageBean.ejbCreate()
[15/Dec/2002:15:29:00] FINEST ( 1700): start(): calling notify... com.iplanet.ias.ejb.containers.IASServerSessionImpl@3508c0
[15/Dec/2002:15:29:00] FINEST ( 1700): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@3508c0
[15/Dec/2002:15:29:00] FINEST ( 1700): Thread[Thread-28,5,RMI Runtime]: run(): calling Session.run() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@3508c0
[15/Dec/2002:15:29:00] FINEST ( 1700): Thread[Thread-28,5,RMI Runtime]: message-driven bean container onMessage :
JMS Message class: jms_text
JMSType: null
JMSDeliveryMode: 1
JMSExpiration: 0
JMSPriority: 0
JMSMessageID: ID:414d5120514d5f636c6f7564202020200628fc3d2000020f
JMSTimestamp: 1039955340820
JMSCorrelationID:null
JMSDestination: null
JMSReplyTo: null
JMSRedelivered: false
JMS_IBM_PutDate:20021215
JMSXAppID:C:\WINNT\system32\mmc.exe
JMS_IBM_Format:MQSTR
JMS_IBM_PutApplType:11
JMS_IBM_MsgType:8
JMSXUserID:alex
JMS_IBM_PutTime:12290082
JMSXDeliveryCount:1
111111111111111111
[15/Dec/2002:15:29:00] FINEST ( 1700): beforeMessageDelivery() not called
[15/Dec/2002:15:29:00] INFO ( 1700): MDB00040: [mdb-simple:SimpleMessageEJB]: Message-driven bean CMT can not be supported.
[15/Dec/2002:15:29:00] SEVERE ( 1700): MDB0008: Session.run() throws Exception [Message-driven bean CMT can not be supported.]
[15/Dec/2002:15:29:00] SEVERE ( 1700): MDB0009: Session.run() throws Exception
java.lang.RuntimeException: Message-driven bean CMT can not be supported.
at com.sun.enterprise.jms.SessionWrapperBase.run(SessionWrapperBase.java:200)
at com.iplanet.ias.ejb.containers.IASServerSessionImpl.run(IASServerSessionImpl.java:191)
at java.lang.Thread.run(Thread.java:536)
[15/Dec/2002:15:29:00] FINEST ( 1700): Thread[Thread-28,5,RMI Runtime]: in run(): return object com.iplanet.ias.ejb.containers.IASServerSessionImpl@3508c0 to pool ...
[15/Dec/2002:15:29:00] FINEST ( 1700): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@3508c0
If I use internal AS JMS I don�t have any trouble. Everything works fine.
Why it is possible to use MDB CMT with internal AS JMS provider?
What should I do to create MDB CMT with IBM MQSeries?
Alexei GladkovHi Alexei,
Sun ONE Application Server 7 does not support CMT MDBs with 3rd party JMS providers. (As you note, BMT MDBs work with MQSeries and Sun ONE App Server).
With the advent of the next J2EE CA spec version (1.5) and J2EE 1.4, a standard means of hooking JMS providers into app servers and MDBs will be made available. Shortly after J2EE 1.4 is released, you'll see this support in Sun ONE App Server.
From the J2EE 1.4 spec: "The Connector API now supports integration with asynchronous messaging systems, including the ability to plug in JMS providers."
Thanks,
Chris -
Message-driven bean destination name not found error
Hi,
I am getting this error when I attempt to deploy the Warehouse message-driven bean example/tutorial. I followed the steps in the JMS Queue Simple Sample Application included with the server to set up the queue and queue factory, but I don't think the app. is even getting that far. I can not figure out why I'm get this error. I have looked at everything I can think of, but I'm obviously missing something. Here is the error from the server log.
INFO ( 2252): JMS5015: Install JMS resources ...
INFO ( 2252): JMS5002: Binding [< JMS Destination: jms/WarehouseQueue, javax.jms.Queue, [ imqDestinationName=WarehouseQueue ] >]
INFO ( 2252): JMS5002: Binding [< JMS Connection Factory: jms/WarehouseQueueConnectionFactory, javax.jms.QueueConnectionFactory, [ imqBrokerHostName=localhost , imqBrokerHostPort=7676 ] >]
INFO ( 2252): HTTP3072: HTTP listener http-listener-1 [http://ibankdev2:80] ready to accept requests
INFO ( 2252): CORE3274: successful server startup
INFO ( 2252): CORE5053: Application onReady complete.
INFO ( 2252): MDB00044: Deploying message-driven bean [MDBApp:Warehouse], consuming from [jms/Warehouse]
SEVERE ( 2252): MDB00015: [MDBApp:Warehouse]: Message-driven bean destination name [jms/Warehouse] not found
SEVERE ( 2252): javax.naming.NameNotFoundException
javax.naming.NameNotFoundException: Warehouse not found
at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:185)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:157)
at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:161)
at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:78)
at org.omg.stub.com.sun.enterprise.naming._SerialContextProviderImpl_Tie._invoke(Unknown Source)
at com.sun.corba.ee.internal.corba.ServerDelegate.dispatch(ServerDelegate.java:375)
at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:275)
at com.sun.corba.ee.internal.iiop.LocalClientRequestImpl.invoke(LocalClientRequestImpl.java:96)
at com.sun.corba.ee.internal.corba.ClientDelegate.invoke(ClientDelegate.java:237)
at com.sun.corba.ee.internal.corba.ClientDelegate.invoke(ClientDelegate.java:279)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at org.omg.stub.com.sun.enterprise.naming._SerialContextProvider_Stub.lookup(Unknown Source)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:138)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:317)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:134)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:110)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:294)
at com.iplanet.ias.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:424)
at com.iplanet.ias.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:408)
at com.iplanet.ias.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:291)
at com.iplanet.ias.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:99)
at com.iplanet.ias.admin.server.core.channel.AdminChannelServer.sendNotification(AdminChannelServer.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
SEVERE ( 2252): MDB00030: [MDBApp:Warehouse]: Exception in setting up message-driven bean container: [MDBApp:Warehouse: Message-driven bean destination jms/Warehouse not found]
SEVERE ( 2252): MDB00017: [Warehouse]: Exception in creating message-driven bean container: [javax.jms.JMSException: MDBApp:Warehouse: Message-driven bean destination jms/Warehouse not found]
SEVERE ( 2252): javax.jms.JMSException
javax.jms.JMSException: MDBApp:Warehouse: Message-driven bean destination jms/Warehouse not found
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:340)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:134)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:110)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:294)
at com.iplanet.ias.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:424)
at com.iplanet.ias.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:408)
at com.iplanet.ias.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:291)
at com.iplanet.ias.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:99)
at com.iplanet.ias.admin.server.core.channel.AdminChannelServer.sendNotification(AdminChannelServer.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
SEVERE ( 2252): EJB5090: Exception in creating EJB container [javax.jms.JMSException: MDBApp:Warehouse: Message-driven bean destination jms/Warehouse not found]
SEVERE ( 2252): appId=MDBApp moduleName=EJBModule_Warehouse_jar ejbName=Warehouse
SEVERE ( 2252): LDR5004: UnExpected error occured while creating ejb container
javax.jms.JMSException: MDBApp:Warehouse: Message-driven bean destination jms/Warehouse not found
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:340)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:134)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:110)
at com.iplanet.ias.server.ApplicationManager.applicationDeployed(ApplicationManager.java:294)
at com.iplanet.ias.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:424)
at com.iplanet.ias.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:408)
at com.iplanet.ias.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:291)
at com.iplanet.ias.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:99)
at com.iplanet.ias.admin.server.core.channel.AdminChannelServer.sendNotification(AdminChannelServer.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
WARNING ( 2252): CORE5021: Application NOT loaded: [MDBApp]
WARNING ( 2252): ADM5603:Event listener error [Error while deploying application [MDBApp]. Please refer to the server log for more details. ]
My bean name is Warehouse, jms/Warehouse is the JNDI and is mapped to MDBPack.WarehouseBean.class. MDBPack is in the classpath on the server. I guessed that the physical destination name was WarehouseQueue, but using Warehouse produced the same result. Please let me know if there is anything I could be missing. TIA
--MichelleHi,
You have not created the jms destination queue object
jms/Warehouse
Your server logs says it cannot find the destination queue object.It has got nothing to do with jndi name of your bean
Create jms destination queue object using
asadmin>create-jms-resource instance <instance_name> resourcetype javax.jms.Queue --property imqDestinationName=<NAme> jms/Warehouse
Then use list-jms-resources <instance_name> to
find if jms/Warehouse destionation queue object has been created.
Get back in case of any issues -
Message Driven Bean deployment warnings * not active
Hi I´m facing this problem, I test the queue destination with an external client and everything is ok, but then when I try to deploy the Message - Driver - bean on CE the next error comes out , any help will be appreciated.
Deploying file(s): C:Documents and Settingse100009workspace.jdi xenapjmsEAR xenapjmsEAR.ear --- Status: Deploy finished with warnings. --- Description: S U M M A R Y ~~~~~~~~~~~~~~~~~~~ Successfully deployed: 0 Deployed with warnings: 1 Failed deployments: 0 ~~~~~~~~~~~~~~~~~~~ 1. File:C:Documents and Settingse100009workspace.jdi xenapjmsEAR xenapjmsEAR.ear Name:fxenapjmsEAR Vendor:com.sap Location:localhost Version:2010.02.02.12.47.07 Deploy status:Warning Version:HIGHER Description: 1. Warning occurred on server 9111850 during update com.sap/fxenapjmsEAR : SessionsTakerTest: Following tests could not be executed because of failed precondition test "SessionsTakerTest" : Classes Exposure Check, Business Interfaces Check, file: fxenapjms.jar, column -1, line -1, severity: warning 2. Exception has been returned while the com.sap/fxenapjmsEAR was starting. Warning/Exception :[ ][[ERROR CODE DPL.DS.6193] Error while ; nested exception is: com.sap.engine.services.deploy.exceptions.ServerDeploymentException: Clusterwide exception: [server ID 9111850:The destination jmsqueues/default/sapDemoQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/jmsqueues/default/sapDemoQueue -> Path to object does not exist at jmsqueues, the whole lookup name is jms_vendor_queues_global/jmsqueues/default/sapDemoQueue. server ID 9111850:com.sap.engine.services.deploy.container.DeploymentException: Cannot activate endpoint for message-driven bean com.sap/fxenapjmsEARannotation|fxenapjms.jarannotation|fxenapmjbBean at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl$Actions.perform(ContainerInterfaceImpl.java:903) at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl.prepareStart(ContainerInterfaceImpl.java:435) at com.sap.engine.services.deploy.server.utils.container.ContainerWrapper.prepareStart(ContainerWrapper.java:363) at com.sap.engine.services.deploy.server.application.StartTransaction.prepareCommon(StartTransaction.java:228) at com.sap.engine.services.deploy.server.application.StartTransaction.prepare(StartTransaction.java:186) at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:502) at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:544) at com.sap.engine.services.deploy.server.application.ParallelAdapter.super_MakeAllPhases(ParallelAdapter.java:286) at com.sap.engine.services.deploy.server.application.StartTransaction.makeAllPhasesImpl(StartTransaction.java:555) at com.sap.engine.services.deploy.server.application.ParallelAdapter.runInTheSameThread(ParallelAdapter.java:197) at com.sap.engine.services.deploy.server.application.ParallelAdapter.makeAllPhasesAndWait(ParallelAdapter.java:358) at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3432) at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3418) at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3308) at com.sap.engine.services.deploy.server.DeployServiceImpl.startApplicationAndWait(DeployServiceImpl.java:3280) at com.sap.engine.services.dc.lcm.impl.J2EELCMProcessor.doStart(J2EELCMProcessor.java:105) at com.sap.engine.services.dc.lcm.impl.LifeCycleManagerImpl.start(LifeCycleManagerImpl.java:78) at com.sap.engine.services.dc.cm.deploy.impl.LifeCycleManagerStartVisitor.visit(LifeCycleManagerStartVisitor.java:34) at com.sap.engine.services.dc.cm.deploy.impl.DeploymentItemImpl.accept(DeploymentItemImpl.java:83) at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcessLCMDeplItem(DefaultDeployPostProcessor.java:91) at com.sap.engine.services.dc.cm.deploy.impl.DefaultDeployPostProcessor.postProcess(DefaultDeployPostProcessor.java:61) at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doPostProcessing(DeployerImpl.java:862) at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.performDeploy(DeployerImpl.java:810) at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.doDeploy(DeployerImpl.java:640) at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:359) at com.sap.engine.services.dc.cm.deploy.impl.DeployerImpl.deploy(DeployerImpl.java:248) at com.sap.engine.services.dc.cm.deploy.impl.DeployerImplp4_Skel.dispatch(DeployerImplp4_Skel.java:897) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:355) at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:67) at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:41) at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:977) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:57) at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55) at com.sap.engine.core.thread.execution.Executable.run(Executable.java:109) at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314) Caused by: com.sap.engine.services.ejb3.container.ActionException: Cannot activate endpoint for message-driven bean com.sap/fxenapjmsEARannotation|fxenapjms.jarannotation|fxenapmjbBean at com.sap.engine.services.ejb3.runtime.impl.Actions_MDBEndpointActivation.perform(Actions_MDBEndpointActivation.java:94) at com.sap.engine.services.ejb3.container.CompositeAction.perform(CompositeAction.java:81) at com.sap.engine.services.ejb3.container.ApplicationStarter.perform(ApplicationStarter.java:59) at com.sap.engine.services.ejb3.container.ContainerInterfaceImpl$Actions.perform(ContainerInterfaceImpl.java:897) ... 35 more Caused by: javax.resource.NotSupportedException: javax.resource.spi.UnavailableException: The destination jmsqueues/default/sapDemoQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/jmsqueues/default/sapDemoQueue at com.sap.jms.resourceadapter.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:128) at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:531) at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findResourceAdapterByName(EndpointActivationImpl.java:155) at com.sap.engine.services.connector.jca15.EndpointActivationImpl.findAdapter(EndpointActivationImpl.java:86) at com.sap.engine.services.connector.jca15.EndpointActivationImpl.activateEndpoint(EndpointActivationImpl.java:59) at com.sap.engine.services.ejb3.runtime.impl.Actions_MDBEndpointActivation.perform(Actions_MDBEndpointActivation.java:84) ... 38 more Caused by: javax.resource.spi.UnavailableException: The destination jmsqueues/default/sapDemoQueue cannot be looked up. Last attempt performed : jms_vendor_queues_global/jmsqueues/default/sapDemoQueue at com.sap.jms.resourceadapter.RaActivation.setupDestination(RaActivation.java:361) at com.sap.jms.resourceadapter.RaActivation.activate(RaActivation.java:126) at com.sap.jms.resourceadapter.ResourceAdapterImpl.endpointActivation(ResourceAdapterImpl.java:115) ... 43 more Caused by: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at jmsqueues, the whole lookup name is jms_vendor_queues_global/jmsqueues/default/sapDemoQueue. at com.sap.engine.services.jndi.implserver.ServerContextImpl.getLastContainer(ServerContextImpl.java:184) at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:489) at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:321) at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:619) at javax.naming.InitialContext.lookup(InitialContext.java:351) at javax.naming.InitialContext.lookup(InitialContext.java:351) at com.sap.jms.resourceadapter.RaActivation.setupDestination(RaActivation.java:359) ... 45 moreHi Isaac
The JMS destination jmsqueues/default/sapDemoQueue cannot be found. You have to configure the destination on the server before the deployment or you have to put the destination's declaration in file jms-resources.xml.
BR, Siarhei -
Message driven bean: resource not created
Hi,
I'm having trouble deploying a simple test app that I've created (in App Server Platform Edition 8.0). It contains a servlet, that posts messages to a queue, and which appears to work fine. There is also a message-driven bean that receives these messages, but it will not deploy as is. I would be grateful for any assistance in working out why. Apologies if I'm missing something obvious, but the technology is quite new to me.
I get the following error in the server log -
[#|2004-07-14T14:03:49.640+0100|SEVERE|sun-appserver-pe8.0|javax.enterprise.system.container.ejb|_ThreadID=12;|EJB5090: Exception in creating EJB container [com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : joeMDB]|#]
[#|2004-07-14T14:03:49.656+0100|SEVERE|sun-appserver-pe8.0|javax.enterprise.system.container.ejb|_ThreadID=12;|appId=mdbtest moduleName=ejb-jar-ic_jar ejbName=joeMDB|#]
[#|2004-07-14T14:03:49.656+0100|SEVERE|sun-appserver-pe8.0|javax.enterprise.system.core.classloading|_ThreadID=12;|LDR5004: UnExpected error occured while creating ejb container
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : joeMDB
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:296)
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeInfo(ActiveJmsResourceAdapter.java:232)
at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:139)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:189)
- which I can't find referenced in any other forum post. The relevant deployment descriptors are as follows -
ejb-jar.xml -
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" version="2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<display-name>mdbJar</display-name>
<enterprise-beans>
<message-driven>
<ejb-name>joeMDB</ejb-name>
<ejb-class>joeMDB</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Container</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-link>jms/JoeDestQueue</message-destination-link>
<message-destination-ref>
<message-destination-ref-name>jmsJoeDestQueue</message-destination-ref-name>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-usage>Consumes</message-destination-usage>
<message-destination-link>jms/JoeDestQueue</message-destination-link>
</message-destination-ref>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>joeMDB</ejb-name>
<method-name>onMessage</method-name>
<method-params>
<method-param>javax.jms.Message</method-param>
</method-params>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<message-destination>
<message-destination-name>jms/JoeDestQueue</message-destination-name>
</message-destination>
</assembly-descriptor>
</ejb-jar>
sun-ejb-jar.xml -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.0 EJB 2.1//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_2_1-0.dtd">
<sun-ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee">
<enterprise-beans>
<unique-id>0</unique-id>
<ejb>
<ejb-name>joeMDB</ejb-name>
<jndi-name>joeMDB</jndi-name>
<pass-by-reference>false</pass-by-reference>
<mdb-connection-factory>
<jndi-name>jms/joeFactory</jndi-name>
</mdb-connection-factory>
<jms-max-messages-load>1</jms-max-messages-load>
<is-read-only-bean>false</is-read-only-bean>
<refresh-period-in-seconds>-1</refresh-period-in-seconds>
<cmt-timeout-in-seconds>0</cmt-timeout-in-seconds>
<gen-classes/>
<bean-pool>
<steady-pool-size>-1</steady-pool-size>
<resize-quantity>-1</resize-quantity>
<max-pool-size>-1</max-pool-size>
<pool-idle-timeout-in-seconds>-1</pool-idle-timeout-in-seconds>
<max-wait-time-in-millis>-1</max-wait-time-in-millis>
</bean-pool>
</ejb>
<message-destination>
<message-destination-name>jms/JoeDestQueue</message-destination-name>
<jndi-name>jms/JoeDestQueue</jndi-name>
</message-destination>
</enterprise-beans>
</sun-ejb-jar>
Thanks,
JoeHi, Joe,
The message says that
JMS resource not created : joeMDB
The command to add the missing Queue:
asadmin create-jms-resource user admin restype javax.jms.Queue JoeDestQueue
Please note:
in your sun-ejb-jar.xml, the real JNDI name for the Queue is JoeDestQueue.
Double check the namings for the Queue in both ejb-jar.xml and sun-ejb-jar.xml.
You only need two names for one Queue: one is for JNDI, one is for reference.
_Dianne -
Message Driven Bean debugging not supported in 9.0.3?
Message Driven Beans are now supported with the preview of 9.0.3, but you can't debug into them using the embedded container? Will this be resolved for the release version?
Brice --
Are you using the embedded help system or hosted documentation? I've just double-checked, and with the full jdev install, the "About Debugging PL/SQL Programs and Java Stored Procedures" is loading fine for me.
The PL/SQL variable should show up as well, without anything needing to be enabled on the server. What database version are you using, and what are the datatypes of the PL/SQL variables?
-- Brian
Hello,
We have downloaded JDev 903 Preview to try out the new PL/SQL debugging features, but it seems we are unable to inspect/watch/debug PL/SQL variables. The relevant panels are simply blank.
Strangely enough, the help files are also lacking on the subject (e.g. the "About debugging PL/SQL" help topic does not seem to exist).
Is there an option to turn on in the database server to view PL/SQL variables ?
Thanks
Regards
Brice -
Dynamic queue listener in Message driven bean
Hi all
I wonder if exists a way for creating a message driven bean that reads messages from a queue defined on fly.
I mean I'd like to create an mdb that read from queue ,where the queue name is defined in a data base table .
Hope to be clear.
Thanks in advanceYes, you can use either a queue or a topic to drive an MDB.
There are a number of discussion threads related to MDB's in
weblogic.develoepr.interest.jms.
"Herman Lam" <[email protected]> wrote in message
news:3ac891da$[email protected]..
>
Hi Folk:
Does anyone know whether the Weblogic 6.0 EJB 2.0 Message Driven Bean cansupport
queue event for the OnMessage( javax.jms.Message messagenmae)
callback method or does it only support publisher/subscriber event ?
Best Regards
Herman -
A Question About Message Driven Bean Exception Handling
"Your onMessage method should handle all exceptions. It must not throw checked exceptions, and throwing a RuntimeException is considered a programming error."
The above sentence is from the JMS documentation.
I will use a message driven bean for guarenteeing to send an email with some critical info in case of an unexpected system failure. Say I was not able to save into db some critical info, therefore I want to send that info to myself with a mail to be able to handle that situation manually. Now in case of failure I will send a message to a queue which contains the critical info, and a message driven bean will listen for the message and send email to me. But what if the message driven bean fails ? If I am to handle any exceptions on my onMessage method, how will the messaging system be able to redeliver that message ? It seems to me the message will not remain in the queue anymore(I have consumed it) ?
Any help appreciated, thanks in advance.Fatih.Karakoc wrote:
"Your onMessage method should handle all exceptions. It must not throw checked exceptions, and throwing a RuntimeException is considered a programming error."
The above sentence is from the JMS documentation.
I will use a message driven bean for guarenteeing to send an email with some critical info in case of an unexpected system failure. Say I was not able to save into db some critical info, therefore I want to send that info to myself with a mail to be able to handle that situation manually. Now in case of failure I will send a message to a queue which contains the critical info, and a message driven bean will listen for the message and send email to me. But what if the message driven bean fails ? If I am to handle any exceptions on my onMessage method, how will the messaging system be able to redeliver that message ? It seems to me the message will not remain in the queue anymore(I have consumed it) ?
You can configure your queue to guarantee delivery. If you use JTA you can also make it transational, so the message is put back on the queue in the event of failure. Your configuration should also include max retries and a failure queue to make sure you don't get stuck in an infinite loop where a message can never be processed.
Which app server are you using? WebLogic makes it pretty easy to set these config parameters.
% -
Message Driven Bean (MDB) for AQ Queue cannot start
I am working on the creating a message driven bean in Managed OC4J 10.1.3.0 to consume messages from AQ Queue. I am using a Oracle AS generic JMS connector and a resource adapter to create a message listener for the MDB.
I am able to make successful connections to the AQ and also consume messages, but if i try to start the MDB using the Oracle Application Server Web Admin console, the MDB fails to start, i have to restart the entire OC4J instance to restart the MDB.
The error on the Admin Console says "Failed to start MDB. Please see log for details." , but the problem is nothing is written to the log file.
I have tried setting the logging level in web admin console to FINER but still no new errors are written to the log file. I have checked the opmn logs, instance logs as well the home logs.
Please help, since this issue will further help us decide whether we need to go with the implementation or not.As far as I know XMLType JMS messages are not supported when using OJMS. They might be for OC4J 10.1.3, but I thought it's an AQ limitation rather than an OC4J one.. To be sure you might just log a TAR on Metalink.
hth,
Bastiaan -
Message Driven Bean and transaction handling
We are using container managed transactions with MDB's running on OC4J version 10.1.2. We have two database serveres, both running Oracle 10g.
The MDB consume messages from the AQ-database through JMS (connected to a JDBC datasource registered as "jdbc/OracleAQDS").
The MDB onMessage() code update the second database, using a JDBC datasource registered as "jdbc/OracleDBDS".
We need atomic behaviour - if the MDB enforce a roll-back we want the updates aginst the second database to be rolled-back as well.
(1) Should we use XA-datasources since AQ and DB runs on two different servers or do the OC4J container "magically" provide two-phase-commit for us?
(2) If the MDB does a roll-back we would like to add an error record to a database table. Can we configure a third datasource and prevent if from beeing part of the container managed MDB roll-back?
(3) When the MDB force a roll-back, is there some way for us to override the retry-delay in our Java code? If we catch certain errors during processing in onMessage we know that it is not necessary to retry for at least one hour (while less severe errors should be retried in just seconds).{color:#008000}Hi Friends,
Thought of updating the answers for my questions in case somebody else would find it helpful.
{color}
{color:#999999}{color:#00ccff}I'm trying to make message driven bean and use the OnListener method.
But since I'm doing this for the first time I have very limited knowledge.
The following are my doubts :
1. Should I have a main function while using the MDB?{color}
{color:#008000} There is no need for any main function.{color}
{color:#00ccff}2. Is it mandatory to have JNDI setup done?
{color} {color}{color:#008000} There is no need for any JNDI setup done. But you need to configure the details on the
Websphere by creating valid entries inside Resources namely -
Queue Connection Factory, Queues and Listener Ports under the server.
Thanks,
Arun Prithviraj{color}
Maybe you are looking for
-
Is there a way to detect each pulse of a signal
Hi All, I need to detect every pulse of my input signal pulse, is there a way to do that, I tried using basic level triggering but the trigger doesnot switch true and false between pulses. I need to detect the input pulse for some ms and then genera
-
I have a airport time capsule, an older airport extreme, and an older airport express. I want to hard wire my Mac Mini to the network. What is the best arrangement of the devices? which ones should be hard wired to optimize extending the network?
-
How to change multiple artboardsizes AND objects in it?
Hi everyone I want to know if there's a possible to change multiple artboards AND the objects that you make in it, scale proportionally? I'm able to change my artboards independent but not al the artboards on the same time. Is there an option for tha
-
Text Spam to VZW Access Manager - @ $.20 a pop
I was surprised when I booted up Access Manager today to find a "..Great Deal for Home Mortages.." and I just found out it cost me 20 cents to receive it. How that happened I don't know because I don't even know my Verizon USB modem number, much
-
Implementing slicers to apply 'OR' criteria instead of 'AND'
In my dataset, there is one record per investment and separate fields for 'Funding Team', 'Managing Team' and 'Supporting Team'. For a given investment these fields may or may not have the same value. The pivot table I've created has one record per