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
Similar Messages
-
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
>>
-
Message Driven Beans replying to messages
Hi
I'm trying to send a reply message from an MDB. What I have in mind is this:
1) in the onMessage() method of the bean, analyze the message and get the replyTo property of the message.
2) Set up the reply message and send the message back to the original sender.
I've done this using regular client-server apps, but not with MDB's. What I want to know is must I do the JNDI lookups to get the Connection factories etc in the MDB itself? Or is there some way I can get a session that already exists in the Bean Container (I'm using JBoss 3.0.2), to create the reply?
Thanks
DanielThere is no J2EE way to get hold of the session that was used, you have to do a lookup of a Connection Factory.
Thanks
Alasdair -
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 -
Message Driven Bean with Java Message Queue down
I have the following problem deploying my application.
It uses JMS and a remote openMQ for communication between servers. The problem is that the connection is not fully reliable so it can be up or down. For reconnecting I set the jms reconnect glassfish property so it reconnects if at some moment the connection gets lost. The problem arises when i try to deploy the application and there is no connection. It looks like it keeps retrying the connection but the application does not finish deployment until connection is available.
Is it possible to configure it in any way that the deployment continues even if there is no connection and keeps retrying until there is connection available?
Thanks a lot.
Approach 1
I'm trying to run the MDB initialization in a different thread. I tried both
I'm trying to assign a different thread to the MDB by two ways changing sun-ejb.jar.xml
<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>60</pool-idle-timeout-in-seconds>
</bean-pool>and also with
<use-thread-pool-id>a-new-thread-pool</use-thread-pool-id>But I had no luck. Looks like it's waiting for this thread to end since it looks like it's getting the new thread but it waits for that thread to end to finish starting application so, in my case, application doesn't get deployed correctly..
Approach 2
I tried to run jms service in a different thread also...
asadmin create-resource-adapter-config --threadpools a-new-thread-pool jmsraNo luckYou could try the JMSJCA resource adapter ( [https://jmsjca.dev.java.net/|https://jmsjca.dev.java.net/] ) ; this is expressly designed to allow a MDB to be deployed even though the MQ broker is not available. It will then try to establish the connection in a background thread.
Nigel -
Can you set isolation levels of message-driven bean transactions?
The problem: I have 3 different message-driven beans which each get a different type of message, except for a field that is common to all. That field is used as the primary key of an entity object. The message-driven beans configured to use a container managed transaction. Each message-driven bean, in processing the message, first does a lookup by primary key to see if the object associated with the key exists, and if it does not, it requests the entity's home object to create it. After that, they do further processing. The problem is that sometimes all the beans simultaneously get a message, resulting in each bean checking for the entity object at about the same time, and if they fail to find it (because none of them has created it yet), each creates an object, all with the same primary key. This is not caught until the beans start to complete their onMessage method, which I believe results in the container committing the transaction. One of the transactions will be committed successfully, while the other two will fail, get rolled back, and then be retried with the same message. The second time through, the other beans will find the entity object (since it has been created and committed) and they will complete correctly. In the end, they right thing occurs, except that there is a troubling exception or 2 in the log telling about the constraint violation (with the primary key) and the rollback. If it was just me, that would be fine, but our customer does not like to see exceptions in the log; that indicates to him that something is wrong.
So, I am looking for someway to make sure that the actions of the message-driven beans are serialized. One suggestion from a colleague was to set the isolation level of the transactions being used by the container in processing the message-driven beans' onMessage method. However, the documentation does not mention any way to do this for a message-driven bean. Suggestions?
Is the use of a UserTransaction a better way to do this? If I acquire a UserTransaction within the onMessage method of a message-driven bean, can I set its isolation level? How would this work? When I get a UserTransaction, does each client get a different transaction, or do they all get the same one?(1) The WebLogic JMS "unit-of-order" feature is a heavily adopted feature that was specifically designed to handle similar use cases - see the JMS developer guide for extensive documentation. In your use case, if "key" is used to define UOO, then there's no limit on the number of keys that can be processed concurrently, but messages for any particular key will be processed single-threaded in the order in which they were first submitted.
Note that if you're using distributed destinations, the UOO feature is still fully supported - but the developer and/or administrator needs to decide whether to configure the destination to use "hash" or "path service" based routing (the JMS UOO edoc outlines the trade-offs).
(2) Another alternative is to use a single MDB with max-beans-free-pool that processes all three types (as the other poster suggested). I think this assumes all MDBs run on the same JVM.
(3) Another alternative is to use multiple queues, with a single MDB on each Q. Where some sort of hash algorithm is used to determine which Q is for the key. This approach is a "hand-coded" variant of the approach in (1) with "hash" based routing enabled...
(4) If all MDBs actually do run in the same JVM, a third alternative is to use code the application to use a common lock to protect each key, eg, something like:
// assume MyLock is simply a class with a "reference counter"
// assume some global "staticHM" hash map that is all MDBs can access
onMessage() {
MyLock lock = null;
key= msg.getKey();
synchronized(staticHM) {
lock = staticHM.get();
if (lock = null) {
lock = new lock();
staticHM.put(key, new lock());
lock.incRefCount();
try {
synchronized(lock) {
// only one onMessage will be able to lock a particular key at a time
do your work;
} finally {
synchronized(staticHT) {
if (lock.defRefCount() == 0) staticHM.remove(lock);
if (lock = null) staticHM.put(key);
If multiple threads get a message with the same key, then only one thread at a time will work on the key.
Hope this helps,
Tom -
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 -
JBoss message driven bean calling a session bean
Hi guys, can you please help me? I want my mdb to call my session bean....can you provide me some examples of ejb-jar.xml and jboss.xml with regards to this configuration....thanks...im creating my deployment descriptors manually
Here is a little example, I hope it will help you.
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">
<ejb-jar >
<enterprise-beans>
<!-- Session Beans -->
<session >
<display-name>TestSessionEJB</display-name>
<ejb-name>TestSession</ejb-name>
<home>mdbtest.interfaces.TestSessionHome</home>
<remote>mdbtest.interfaces.TestSession</remote>
<local-home>mdbtest.interfaces.TestSessionLocalHome</local-home>
<local>mdbtest.interfaces.TestSessionLocal</local>
<ejb-class>mdbtest.session.TestSessionEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
... </session>
<!-- Message Driven Beans -->
<message-driven >
<description><![CDATA[]]></description>
<display-name>TestMessageEJB</display-name>
<ejb-name>TestMessage</ejb-name>
<ejb-class>mdbtest.message.TestMessageEJB</ejb-class>
<transaction-type>Container</transaction-type>
<message-selector></message-selector>
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
<subscription-durability>NonDurable</subscription-durability>
</message-driven-destination>
<ejb-local-ref >
<ejb-ref-name>ejb/TestEjb</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>mdbtest.interfaces.TestSessionLocalHome</local-home>
<local>mdbtest.interfaces.TestSessionLocal</local>
<ejb-link>TestSession</ejb-link>
</ejb-local-ref>
</message-driven>
</enterprise-beans>
</ejb-jar>
jboss.xml:
=============================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_0.dtd">
<jboss>
<enterprise-beans>
<session>
<ejb-name>TestSession</ejb-name>
<jndi-name>ejb/MdbTest/TestSession</jndi-name>
<local-jndi-name>TestSessionLocal</local-jndi-name>
<configuration-name>Standard Stateless SessionBean</configuration-name>
</session>
<message-driven>
<ejb-name>TestMessage</ejb-name>
<destination-jndi-name>queue/MyTestQueue</destination-jndi-name>
<configuration-name>Standard Message Driven Bean</configuration-name>
</message-driven>
</enterprise-beans>
<resource-managers>
</resource-managers>
</jboss> -
Message driven bean and JDBC Pool
I am working with weblogic 7.0
I have created a message driven bean the receives messages and store them in the
database.
for performance issue I have put the (SQL)Connection and a preparedStatement in
the ejbCreate() method ...and I close them in the ejbRemove() method...but I notice
that the ejbRemove dose not called ... even when I restart the weblogic7.0
I notice also that when I deploy the the Message driven bean ...it consume a number
of connections equals the number of instances created by weblogic.
if I redeploy the message driven bean ...the weblogic consume anthor connections
without free up the previous connections.
thank you for any help
Hi,
EjbRemove will never be called for a message driven bean as it follows the lifecycle
of a StatlessSession.
http://e-docs.bea.com/wls/docs61/ejb/EJB_environment.html#1039510
The container will call EJBRemove only when it gets a RemoteRuntimeException and
has to recycle the bean.
-Vimala Ranganathan
"eyad" <[email protected]> wrote:
>
>I am working with weblogic 7.0
>
>I have created a message driven bean the receives messages and store
>them in the
>database.
>for performance issue I have put the (SQL)Connection and a preparedStatement
>in
>the ejbCreate() method ...and I close them in the ejbRemove() method...but
>I notice
>that the ejbRemove dose not called ... even when I restart the weblogic7.0
>
>I notice also that when I deploy the the Message driven bean ...it consume
>a number
>of connections equals the number of instances created by weblogic.
>if I redeploy the message driven bean ...the weblogic consume anthor
>connections
>without free up the previous connections.
>thank you for any help
>
-
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 -
Call session bean in message driven bean
Is it a best practice calling a session bean every time arrive a message in a message driven bean?
Regards
Message was edited by:
gionnyDeepWhy not?
You can call Session Bean from a Message Driven Bean as long as your J2EE Server is able to handle the messages. -
Messenger service using message driven beans
I need to implement a implement a messenger service. (using Messaging server, Message Queue, Message Clients and Message Driven Beans)
using netbeans 5.5
it should develop using EJB 3.0 architeture.
Can pls tell...how should i start this.(Basic steps of doing this)
Where should we write the Messaging server.(in a EJB 3.0 application...Is it?)
Any tutorial regrading this....!EJBs and Message Driven Part.
what should i develop first. Messaging server OR Message Queue
How can i develop the Messaging Server. Do i need to use Message driven beans there?
Message was edited by:
jugp -
B2B using JMS and Processing Messages with Message Driven Beans
We want to be able to use B2B to send messages to a JMS queue and then process messages from B2B using a Message Driven Bean. Is this supported.
We are using B2B 10.2.0.2 with Patchset 4.Hello,
In 10.1.2.0.2 B2B , as part of the internal Delivery channel B2B can only send and receive messages from JMS queues.
Rgds,Ramesh -
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 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
Maybe you are looking for
-
Why can't I download my pictures from my iphone 6 onto my PC
So with my iPhone 4S, if I plugged my phone into my PC (that does or doesn't have iTunes), I'd always get the auto-pop-up box to access the files on my iPhone. This way I could get my photos off my phone without syncing with my MAC. My iPhone 6+ I
-
HT4759 How to connect it with my PC wirelessly
Can you help me connecting my iPhone and transfer my photo document asan when I save in iPhone IS It Possible......
-
Using Disk Utility to restore/copy disk - who is correct?
I had two long talks with two separate Apple Care people online today who both insisted what they were saying was right and the other person was wrong. Hmm.... My question is this. I have a MBP and the internal HD is currently empty. I've been runnin
-
Module Pool Programming - MODULE USER_COMMAND_0100. !!
Hi All I want to know which statement we give in the MODULE USER_COMMAND_0100. so as to provide the functionality of cancel and back to the icon. eg. MODULE USER_COMMAND_0100 INPUT. CASE OK_CODE. WHEN 'EXIT'. LEAVE PROGRAM. ENDMODULE. s
-
What happens if your icloud contacts are accidently deleted? How can I retrieve that data?