Distributed Destinations and Error Queues

          I have a distributed queue - distqueue which is configured with two queue members
          - srvr1q
          and srvr2q. srvr1q is a physical queue destination that is running on JMSServer1
          on one instance in a cluster. srvr2q is a physical queue destination that is running
          on JMSServer2 on another instance in the cluster. I have two errorqueues - srvr1errq
          and srvr2errq - deployed on JMSServer1 and JMSServer2 respectively. I have configured
          the srvr1q to the following:
          Redelivery Delay Override: 10000
          Redelivery Limit: 3
          Error Destination: srvr1errq
          Also the srvr2q is configured to the following:
          Redelivery Delay Override: 10000
          Redelivery Limit: 3
          Error Destination: srvr2errq
          There is an MDB listening to each one of these local queues. The MDB is programmed
          to throw a null pointer exception (to simulate business logic processing failures)
          My expectations are : the message goes to one of the local queues. Null Pointer
          exception is thrown. After 10 seconds the message is resent to the same queue
          with a similar fate. After the third attempt, the message is moved to the error
          queue of the corresponding local queue.
          What I see is the following:
          When I send a message I do see a Null Pointer Exception, but it occurs only once
          and I dont see the message going to the error queue. Since my Load Balancing policy
          is Round-Robin on the distqueue, the local queues receive the message every other
          time with the same result - Null Pointer Exception thrown only once.
          I also have JMSStores configured so the messages are persistent.
          Can someone explain to me what I am doing wrong?
          Thanks.
          

          "Prakash Muthukrishnan" <[email protected]> wrote:
          >
          >Hi Tom
          > Thanks again for the reply. I do use a tx MDB. I have set the transaction-type
          >to Container in the message-driven stanza in ejb-jar.xml. And also the
          >trans-attribute
          >for that EJB in the container-transaction stanza, I have used Required.
          >Do I need
          >to setup anything else ?
          I don't think so.
          > The transaction descriptor element in the weblogic-enterprise-bean
          >stanza in weblogic-ejb-jar.xml for that MDB is empty.
          Not sure what you mean?
          > Am I missing anything
          >else?
          Container & Required is all that is needed
          If you like, post your ejb descriptor xml file, and I'll take a quick
          look to double-check.
          >-Prakash
          >
          >Tom Barnes <[email protected]> wrote:
          >>Hi Prakash,
          >>
          >>A runtime exception should force a rollback for tx MDBs, and
          >>a recover for non-tx MDBs. If you are seeing different
          >>behavior there may be a bug in WL.
          >>
          >>Since MDBs do not log an exception when the app throws
          >>a Runtime exception, I often recommend wrapping the
          >>application code in a try catch anyhow
          >> try {
          >> } catch (Throwable t) {
          >> log
          >> force rollback
          >> }
          >>I think there are plans to provide a configurable that
          >>optionally does something similar in the next release (no guarantees).
          >>(The problem is that some apps throw a runtime on purpose, and
          >>could quickly flood the log if such runtimes were logged per message.)
          >>
          >>Tom
          >>
          >>Prakash Muthukrishnan wrote:
          >>> Tom
          >>> Thanks for the suggestion. Using the setRollbackOnly method did the
          >>trick. This
          >>> brings up
          >>> a related question: What if a run time exception was thrown during
          >>the processing
          >>> in an MDB?
          >>> Is it not retried and ultimately shoved into the error queue?
          >>> Thanks again.
          >>> -Prakash
          >>>
          >>>
          >>> Tom Barnes <[email protected]> wrote:
          >>>
          >>>>Hi Prakash,
          >>>>
          >>>>At first glance, it doesn't seem like your doing anything wrong.
          >>>>Could you post your release and SP level, as well as your config.xml?
          >>>>
          >>>>How many messages did you send through?
          >>>>
          >>>>Note that for transactional MDBs it is best to call "setRollbackOnly"
          >>>>on the EJB context rather than throwing an NPE. This is because
          >>>>throwing a runtime exception forces the MDB to destroy itself and
          >>>>get re-initialized (pretty high overhead). For non-transactional
          >>>>MDBs, throwing a runtime exception is your only option.
          >>>>
          >>>>Tom, BEA
          >>>>
          >>>>Prakash Muthukrishnan wrote:
          >>>>
          >>>>
          >>>>>I have a distributed queue - distqueue which is configured with two
          >>>>
          >>>>queue members
          >>>>
          >>>>>- srvr1q
          >>>>>and srvr2q. srvr1q is a physical queue destination that is running
          >>>>
          >>>>on JMSServer1
          >>>>
          >>>>>on one instance in a cluster. srvr2q is a physical queue destination
          >>>>
          >>>>that is running
          >>>>
          >>>>>on JMSServer2 on another instance in the cluster. I have two errorqueues
          >>>>
          >>>>- srvr1errq
          >>>>
          >>>>>and srvr2errq - deployed on JMSServer1 and JMSServer2 respectively.
          >>>>
          >>>>I have configured
          >>>>
          >>>>>the srvr1q to the following:
          >>>>>
          >>>>>Redelivery Delay Override: 10000
          >>>>>Redelivery Limit: 3
          >>>>>Error Destination: srvr1errq
          >>>>>
          >>>>>Also the srvr2q is configured to the following:
          >>>>>Redelivery Delay Override: 10000
          >>>>>Redelivery Limit: 3
          >>>>>Error Destination: srvr2errq
          >>>>>
          >>>>>There is an MDB listening to each one of these local queues. The
          >MDB
          >>>>
          >>>>is programmed
          >>>>
          >>>>>to throw a null pointer exception (to simulate business logic processing
          >>>>
          >>>>failures)
          >>>>
          >>>>>My expectations are : the message goes to one of the local queues.
          >>>>
          >>>>Null Pointer
          >>>>
          >>>>>exception is thrown. After 10 seconds the message is resent to the
          >>>>
          >>>>same queue
          >>>>
          >>>>>with a similar fate. After the third attempt, the message is moved
          >>>>
          >>>>to the error
          >>>>
          >>>>>queue of the corresponding local queue.
          >>>>>
          >>>>>What I see is the following:
          >>>>>When I send a message I do see a Null Pointer Exception, but it occurs
          >>>>
          >>>>only once
          >>>>
          >>>>>and I dont see the message going to the error queue. Since my Load
          >>>>
          >>>>Balancing policy
          >>>>
          >>>>>is Round-Robin on the distqueue, the local queues receive the message
          >>>>
          >>>>every other
          >>>>
          >>>>>time with the same result - Null Pointer Exception thrown only once.
          >>>>>
          >>>>>I also have JMSStores configured so the messages are persistent.
          >>>>>
          >>>>>Can someone explain to me what I am doing wrong?
          >>>>>Thanks.
          >>>>
          >>>
          >>
          >
          

Similar Messages

  • Distributed Destination and multiple clusters

    We have two clusters; each consisting of two managed servers. Can I create a single distributed JMS destination for BOTH clusters? If yes, how? If no, what is the best alternative so that I do not have to change the application for JMSqueue name?
              Thank you for your help.
              Vipul

    Distributed destinations do not span between clusters.
              You can configure two distributed destinations, each with the same JNDI name. The JNDI names will not conflict as they will be in two different clusters. Clients that refer to the JNDI name will end up communicating with the distributed destination that's in the same cluster as their JNDI context...
              Tom

  • Distributed Destination and Recieving Messages !

    Hi !
              I'm new to JMS.
              I'm configuring a Weblogic Cuslter of 3 nodes with a JMS Server deployed on each node (Can't target a JMS Server to a CLUSTER). We have 4 destinations (Queue) deployed on each JMS Server.
              I'm creating a Distributed Desination with members being the Queues from the three JMS Servers to take advantage of Load Balancing and High Availability nature of DD.
              No my question is, when a message is placed on the Queue (message received from MQ Server through Weblogic Bridge), which one of the three Queue is the message going to go? My guess is it's going to be sent to the Queue based on Round-Robin algorithm.
              Can you please explain me how sending/recieving messages with JMS are going to work in a Weblogic Cluster environment?. We will be using MDBs to receive messages. So, I'm assuming I'm going to need to use the JNDI for the DD in my descriptor. Also for sending, I'm assuming I should use the JNDI for the DD.
              Thanks very much for your help.

    If you'll send JMS message to your queue from your server app deployed to
              your cluster then the balancing algorithm will use server-afinity policy (if
              it is not turned off) and message will be delivered to the queue on the same
              server where you emit it.
              Denis.
              <Karun Subramanian> wrote in message news:[email protected]..
              > Hi !
              > I'm new to JMS.
              >
              > I'm configuring a Weblogic Cuslter of 3 nodes with a JMS Server deployed
              > on each node (Can't target a JMS Server to a CLUSTER). We have 4
              > destinations (Queue) deployed on each JMS Server.
              >
              > I'm creating a Distributed Desination with members being the Queues from
              > the three JMS Servers to take advantage of Load Balancing and High
              > Availability nature of DD.
              >
              >
              > No my question is, when a message is placed on the Queue (message received
              > from MQ Server through Weblogic Bridge), which one of the three Queue is
              > the message going to go? My guess is it's going to be sent to the Queue
              > based on Round-Robin algorithm.
              >
              > Can you please explain me how sending/recieving messages with JMS are
              > going to work in a Weblogic Cluster environment?. We will be using MDBs
              > to receive messages. So, I'm assuming I'm going to need to use the JNDI
              > for the DD in my descriptor. Also for sending, I'm assuming I should use
              > the JNDI for the DD.
              >
              > Thanks very much for your help.

  • OSB publish action and error queue

    Hello there,
    where in case of poisened messages, the "publish" action, routes the messages.
    I have one proxy which, along its pipeline, publish a message to another proxy and then carry on. Well, I guess this is done some how with internal OSB queues, where in case of error these messages are moved? Is there anyway to specify a specific destination?
    Thanks in advance

    If there is an error in your proxy service and you want push the messages to the queue you have to handle it manually through error handler. In case of publish if you want to handle the messages you have use routing options and change the quality of service and then in the error handler publish the message to the required queue.
    Edited by: 988445 on Mar 18, 2013 6:20 PM

  • Distributed destination issue on Web Logic server 8.1

    Hi,
    I'm using distributed JMS destination (Cluster) of Web Logic server 8.1.
    I'm using Oracle B2B to talk to the cluster. Oracle B2B is only creating a consumer on one of the managed servers in this cluster. This is resulting in loss of messages when messages are placed by the WLI on the other managed server.
    Further the consumers are created randomly by Oracle B2B.
    My question here is whether Web Logic Server 8.1 supports multiple consumers for its clusters?
    Please Help!
    Thanks in advance.
    Warm Regards,
    Suhas.

    Are your consumers co-located with each managed server or remote?
    Let me preface this by this is the way I believe it works...
    The reason I ask is that distributed destinations route to one managed server at connect time. So for producers, when 1 message is placed on a distributed destination, it is really routed to only 1 managed server queue. From a remote consumer standpoint, when connecting to a distributed destination to read messages, you are only routed to one of the managed server queues to read from, not the logical superset of all queues in the distributed destination. So you would need to connect to each distributed destination member queue directly to ensure each had consumers. Whereas if your consumers are co-located on the cluster, then they can each connect to the local member queue for that distributed destination and ensure that each member of the distributed destination has consumers.
    I'd recommend you note the follow docs:
    QueueReceivers
    http://edocs.bea.com/wls/docs103/jms/dds.html
    When creating a queue receiver, if the supplied queue is a distributed queue, then a single physical queue member is chosen for the receiver at creation time. The created QueueReceiver is pinned to that queue member until the queue receiver loses its access to the queue member. At that point, the consumer will receive a JMSException, as follows:
    If the queue receiver is synchronous, then the exception is returned to the user directly.
    If the queue receiver is asynchronous, then the exception is delivered inside of a ConsumerClosedException that is delivered to the ExceptionListener defined for the consumer session, if any.
    Upon receiving such an exception, an application can close its queue receiver and recreate it. If any other queue members are available within the distributed queue, then the creation will succeed and the new queue receiver will be pinned to one of those queue members. If no other queue member is available, then the application won’t be able to recreate the queue receiver and will have to try again later.
    Note:      For information on the load-balancing heuristics for distributed queues with zero consumers, see “Configuring Distributed Destination Resources”.
    http://edocs.bea.com/wls/docs103/jms_admin/advance_config.html#jms_distributed_destination_config
    The producer makes such a decision each time it sends a message. However, there is no compromise of ordering guarantees between a consumer and producer, because consumers are load balanced once, and are then pinned to a single destination member.

  • Distributed destination javax.naming.NameNotFoundException

    Hi, I have a JMS client (java application) that is trying to publish a message to a JMS queue. This queue is a distributed destination that resides on a cluster with 2 servers.
              When I try to lookup the queue name with
              Queue queue_final = (Queue) ctx.lookup(queueName);
              I get the following exception,
              'LAPPLoanStatusJMSExcep' Resolved [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'LAPPLoanStatusJMSExcep' Resolved ]; remaining name
              I can see this queue name under Distributed destinations and under the 2 servers.

    Did you manage to resolve this issue. I appear to be running into the same problem. It only occurs when i am trying to get hold of the queue. I have no problems when i am looking up the connection factory.
              regards
              kodjo

  • Move to error queue after certain redelivery limit

    Hi,
              I am newbie to Weblogic. I am currently using Weblogic8.1.4.
              I have written an MDB say mdbx which listens on a specific queue say QA, once it receives a message it will send this message to another queue QB. I have configured the queue QA such that it will try to redeliver the message 3 times to QB, if it fails in its first attempt. I have also configured an error queue to which the message should finally be placed when all the 3 attempts fails.
              My problem is, i find the redelivery limit and error queue i have configured for queue QA doesn't take effect. Please help me to resolve this.
              More Info:
              I am trying to send message from mdbx on the onMessage() method.
              Thanks and Regards
              A.SathishKumar

    Please refer : http://www.javaoracleblog.com/java/How_to_set_minimumDelayBetweenMessages_for_delay_between_messages_for_JCA_adapters.jsf

  • Error occurred while forwarding a message for distributed destination

    Is there a change in the way that Uniform Distributed Destinations are handled in the cluster after weblogic9.2?
    I am using oracle weblogic 10.3.0.1 in production mode. I have two managed servers, each managed server has a JMS Server.
    I create a Uniform distributed Topic on the System module, and publish a message to it.
    I can see the message in the topic on the first JMSServer but the following error happens and the message never makes it to the second JMSServer
    <Sep 24, 2009 2:00:45 PM GMT+00:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
    <Sep 24, 2009 2:00:45 PM GMT+00:00> <Notice> <Cluster> <BEA-000162> <Starting "async" replication service with remote cluster address "null">
    <Sep 24, 2009 2:00:45 PM GMT+00:00> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on IP:PORT for protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
    <Sep 24, 2009 2:00:45 PM GMT+00:00> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "ManSvr1" for domain "Domain" running in Production Mode>
    <Sep 24, 2009 2:00:46 PM GMT+00:00> <Notice> <Cluster> <BEA-000102> <Joining cluster Clus on mip:mport>
    <Sep 24, 2009 2:00:47 PM GMT+00:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
    <Sep 24, 2009 2:00:47 PM GMT+00:00> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
    <Sep 24, 2009 2:09:52 PM GMT+00:00> <Warning> <JMS> <BEA-040498> <An error occurred while forwarding a message for distributed destination member JMSSystemResource!JMSServer2@example: weblogic.messaging.dispatcher.DispatcherException: java.rmi.RemoteException: Could not establish a connection with 8935413426058515615S:fqhn:[-1,-1,sslport,sslport,-1,-1,-1]:Domain:ManSvr2, java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):fqhn:nonsslport:null:-1'; No available router to destination; nested exception is:
         java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):fqhn:nonsslport:null:-1'; No available router to destination; nested exception is:
         java.rmi.ConnectException: Could not establish a connection with 8935413426058515615S:fqhn:[-1,-1,sslport,sslport,-1,-1,-1]:Domain:ManSvr2, java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):fqhn:nonsslport:null:-1'; No available router to destination; nested exception is:

    I specified the cluster address, but still get the following errors after a message is published to the topic. Are there other configuration items that can be checked?
    <Sep 29, 2009 9:51:49 AM GMT+00:00> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
    <Sep 29, 2009 9:52:01 AM GMT+00:00> <Notice> <Server> <BEA-002613> <Channel "DefaultAdministration" is now listening on 10.241.134.92:7018
    for protocols admin, CLUSTER-BROADCAST-SECURE, ldaps, https.>
    <Sep 29, 2009 9:53:26 AM GMT+00:00> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 10.241.134.92:7019 for
    protocols iiops, t3s, CLUSTER-BROADCAST-SECURE, ldaps, https.>
    <Sep 29, 2009 9:53:26 AM GMT+00:00> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "ClusManSv
    r2" for domain "domain" running in Production Mode>
    <Sep 29, 2009 9:53:26 AM GMT+00:00> <Notice> <Cluster> <BEA-000102> <Joining cluster Clus on 224.0.0.10:7390>
    <Sep 29, 2009 9:53:27 AM GMT+00:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
    <Sep 29, 2009 9:53:27 AM GMT+00:00> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
    <Sep 29, 2009 9:56:14 AM GMT+00:00> <Warning> <JMS> <BEA-040498> <An error occurred while forwarding a message for distributed destinati
    on member SOAFJMSSystemResource!SOAFJMSServer1@EventingAdminTopic: weblogic.messaging.dispatcher.DispatcherException: java.rmi.RemoteExc
    eption: Could not establish a connection with 5660061832836428941S:managedServer.net:[-1,-1,7017,7017,-1,-1,-1]:testnn
    2092.net:domain:ClusManSvr1, java.rmi.ConnectException: No known valid port for: 'Def
    ault[t3]:t3(t3):managedServer.net:7018:null:-1'; No available router to destination; nested exception is:
    java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; No ava
    ilable router to destination; nested exception is:
    java.rmi.ConnectException: Could not establish a connection with 5660061832836428941S:managedServer.net:[-1,-1,1
    1217,7017,-1,-1,-1]:managedServer.net:domain:ClusManSvr1, java.rmi.ConnectException: No
    known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; No available router to destination; nested
    exception is:
    java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; No ava
    ilable router to destination
    weblogic.messaging.dispatcher.DispatcherException: java.rmi.RemoteException: Could not establish a connection with 5660061832836428941S:
    managedServer.net:[-1,-1,7017,7017,-1,-1,-1]:managedServer.net:domain:
    ClusManSvr1, java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; N
    o available router to destination; nested exception is:
    java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; No ava
    ilable router to destination; nested exception is:
    java.rmi.ConnectException: Could not establish a connection with 5660061832836428941S:managedServer.net:[-1,-1,1
    1217,7017,-1,-1,-1]:managedServer.net:domain:ClusManSvr1, java.rmi.ConnectException: No
    known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; No available router to destination; nested
    exception is:
    java.rmi.ConnectException: No known valid port for: 'Default[t3]:t3(t3):managedServer.net:7018:null:-1'; No ava
    ilable router to destination
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchAsync(DispatcherWrapperState.java:158)
    at weblogic.jms.dispatcher.DispatcherAdapter.dispatchAsync(DispatcherAdapter.java:84)
    at weblogic.jms.backend.BEForwardingConsumer$1.run(BEForwardingConsumer.java:503)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.jms.backend.BEForwardingConsumer.processMessages(BEForwardingConsumer.java:499)
    Truncated. see log file for complete stacktrace
    java.rmi.RemoteException: Could not establish a connection with 5660061832836428941S:managedServer.net:[-1,-1,7017,701
    7,-1,-1,-1]:managedServer.net:domain:ClusManSvr1, java.rmi.ConnectException: No known v

  • Handling Error queue and Resolving issues - Best practices

    This is related to Oracle 11g R2 streams replication.
    I have a table A in Source and Table B in destination. During the replication by Oracle streams, if there is an error at apply process, the LCR record will go to error queue table.
    Please share the best practices on the following:
    1. Maintaining error table operation,
    2. monitor the errors in such a way that other LCRs are not affected,
    3. Reapply the resolved LCRs from error queue back to Table B, and
    4. Retain the synchronization without degrading the performance of streams
    Please share some real time insight into the error queue handling mechanism.
    Appreciate your help in advance.

    This is related to Oracle 11g R2 streams replication.
    I have a table A in Source and Table B in destination. During the replication by Oracle streams, if there is an error at apply process, the LCR record will go to error queue table.
    Please share the best practices on the following:
    1. Maintaining error table operation,
    2. monitor the errors in such a way that other LCRs are not affected,
    3. Reapply the resolved LCRs from error queue back to Table B, and
    4. Retain the synchronization without degrading the performance of streams
    Please share some real time insight into the error queue handling mechanism.
    Appreciate your help in advance.

  • Messages stuck in QRFC inbound and outbound queues by system error

    Hi Experts,
    We faced a big problem in our PI server which stopped all the traffic in the iDoc to File interface. Both the QRFC queues (inbound - SMQ1 as outbound - SMQ2) where stuck by a system error.
    In IDX5 of PI we saw two inbound iDocs on exact the same date/time of creation. Both iDocs are displayed in SXMB_MONI with the status "Canceled - Since Already Processed". The output files of both iDocs are generetad on the outbound side.
    The output files are genereted with a date/time stamp in filename exactly as: "pi_20101106-221812-437.dat" and "pi_20101106-221812-438.dat". So it seems that both processes where running on exact the same time.
    When looking into the system error we see the following details:
    com.sap.engine.interfaces.messaging.api.exception.DuplicateMessageException: Message Id 00505697-181b-1ddf-babd-68f1ac208528(INBOUND) already exists in duplicate check table: com.sap.sql.DuplicateKeyException: [200]: Duplicate key
    This caused that the QRFC queues where both stuck in inbound as outbound with a SYSERROR, so PI stopped and the queues should be reactivated manually.
    Does anybody have some idea of the real cause of this error. We really want to prevent such situation in the future.
    Thanks in advance!
    Best regards,
    Joost

    Hi Joost,
    Are you using an adpater module to avoid the same file name processed by the receiver channel ???
    If this is the case change the filename and retest flow otherwise remove the module (ex: localejbs/AF_Modules/MessageTransformBean - Local Enterprise Bean) from the channel check it whether the file getting processed or not...
    OR...you have an incorrect module configuration in the receiver channel.
    Do not remove the standard SAP module and make sure that you add additional modules before it.
    cheers,
    Ram.

  • JMS destination and queue in jndi.properties

    I am using activemq to create a very simple jms application.
    But there is a point I have not understand.The administered connection factory object that I use is org.activemq.jndi.ActiveMQInitialContextFactory which is the ActiveMq specific object. Do I have to do the same with the destination object?I read that Destination is also an administered object so I have to use an object of the ActiveMq? Specifically in the jndi properties where I define the queue property the value must be:
    1.an activeMq object
    2.a java class that implements the javax.jsm.Queue interface
    3.a physical name of another server?
    and in the code where I look up the destination object
    Destination destination = (Destination) jndiContext.lookup(queueProp);What exactly will be the queueProp? I would appreciate an example
    Thanking you in advance.

    I've read the documentation but I am afraid I miss some points.
    First of all I use the following code from an example in the net where the <b> activemq.jar is >/b> used and the jndi.properties is not used at all and the following code is working:package jms;
    import org.activemq.ActiveMQConnectionFactory;
    import javax.jms.Connection;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.ExceptionListener;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    * Hello world!
    public class App {
        public static void main(String[] args) throws Exception {
            thread(new HelloWorldBroker(args), true);
            Thread.sleep(1000);
            thread(new HelloWorldProducer(), false);
            thread(new HelloWorldProducer(), false);
            thread(new HelloWorldConsumer(), false);
            Thread.sleep(1000);
            thread(new HelloWorldConsumer(), false);
                   Thread.sleep(1000);
            thread(new HelloWorldConsumer(), false);
            thread(new HelloWorldProducer(), false);
                    Thread.sleep(1000);
                 thread(new HelloWorldProducer(), false);
            thread(new HelloWorldConsumer(), false);
        public static void thread(Runnable runnable, boolean daemon) {
            Thread brokerThread = new Thread(runnable);
            brokerThread.setDaemon(daemon);
            brokerThread.start();
        public static class HelloWorldBroker implements Runnable {
            private final String[] args;
            public HelloWorldBroker(String[] args) {
                this.args = args;
            public void run() {
                org.activemq.broker.impl.Main.main(args);
        public static class HelloWorldProducer implements Runnable {
            public void run() {
                try {
                    // Create a ConnectionFactory
                    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                    // Create a Connection
                    Connection connection = connectionFactory.createConnection();
                    connection.start();
                    // Create a Session
                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                    // Create the destination (Topic or Queue)
                    Destination destination = session.createQueue("TEST.FOO");
                    // Create a MessageProducer from the Session to the Topic or Queue
                    MessageProducer producer = session.createProducer(destination);
                    producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                    // Create a messages
                    String text = "Hello world! From: " + Thread.currentThread().getName() + " : " + this.hashCode();
                    TextMessage message = session.createTextMessage(text);
                    // Tell the producer to send the message
                    System.out.println("Sent message: "+ message.hashCode() + " : " + Thread.currentThread().getName());
                    producer.send(message);
                    // Clean up
                    session.close();
                    connection.close();
                catch (Exception e) {
                    System.out.println("Caught: " + e);
                    e.printStackTrace();
        public static class HelloWorldConsumer implements Runnable, ExceptionListener {
            public void run() {
                try {
                    // Create a ConnectionFactory
                    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                    // Create a Connection
                    Connection connection = connectionFactory.createConnection();
                    connection.start();
                    connection.setExceptionListener(this);
                    // Create a Session
                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                    // Create the destination (Topic or Queue)
                    Destination destination = session.createQueue("TEST.FOO");
                    // Create a MessageConsumer from the Session to the Topic or Queue
                    MessageConsumer consumer = session.createConsumer(destination);
                    // Wait for a message
                    Message message = consumer.receive(1000);
                    if (message instanceof TextMessage) {
                        TextMessage textMessage = (TextMessage) message;
                        String text = textMessage.getText();
                        System.out.println("Received: " + text);
                    } else {
                        System.out.println("Received: " + message);
                    consumer.close();
                    session.close();
                    connection.close();
                } catch (Exception e) {
                    System.out.println("Caught: " + e);
                    e.printStackTrace();
            public synchronized void onException(JMSException ex) {
                System.out.println("JMS Exception occured.  Shutting down client.");
    }But I want to make it work with jndi.properties.
    So I am trying to use a code where connectionFactory and Destination are loaded from the jndi properties.After experimenting with code
    the following is working
         try {
                   connectionFactory = (ConnectionFactory) jndiContext.lookup("connectionFactory");               
                  Destination destination = (Destination) jndiContext.lookup("QUEUE/MYQUEUE");        
              Connection connection = connectionFactory.createConnection();
              Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);if only I go to the activeqm/bin folder and open the broker.If I did that in the previous code(with no jndi prop)
    there was an exception that was saying that the port was already used.So I do not understand why in the one case opening broker is necessary for the connection and on the other hand it causes a problem.
    Moreover in the case that I invoke broker from bin folder. In this case I would like to ask a question.The activemq.xml is necessary? If yes it is there where we define the queue?
    If not where else apart from the jndi.properties do we define queue?
    Please if is possible provide me with an example of the necessary places that we define a queue.
    Thank you

  • [svn:cairngorm3:] 16634: Extended API to history and wizards to expose next and previous indices and destinations , improve error localization in Waypoint processors

    Revision: 16634
    Revision: 16634
    Author:   [email protected]
    Date:     2010-06-23 08:57:57 -0700 (Wed, 23 Jun 2010)
    Log Message:
    Extended API to history and wizards to expose next and previous indices and destinations, improve error localization in Waypoint processors
    Modified Paths:
        cairngorm3/trunk/libraries/Navigation/src/com/adobe/cairngorm/navigation/history/Abstract History.as
        cairngorm3/trunk/libraries/Navigation/test/com/adobe/cairngorm/navigation/history/Waypoin tHistoryTest.as
        cairngorm3/trunk/libraries/NavigationParsleyTest/src/sample1/core/presentation/Navigation Bar.mxml

  • [svn:cairngorm3:] 16635: Extended API to history and wizards to expose next and previous indices and destinations , improve error localization in Waypoint processors

    Revision: 16635
    Revision: 16635
    Author:   [email protected]
    Date:     2010-06-23 09:56:15 -0700 (Wed, 23 Jun 2010)
    Log Message:
    Extended API to history and wizards to expose next and previous indices and destinations, improve error localization in Waypoint processors
    Modified Paths:
        cairngorm3/trunk/libraries/Navigation/src/com/adobe/cairngorm/navigation/history/Abstract WaypointHistory.as
        cairngorm3/trunk/libraries/Navigation/test/com/adobe/cairngorm/navigation/history/Waypoin tHistoryTest.as

  • [svn:cairngorm3:] 16632: Extended API to history and wizards to expose next and previous indices and destinations , improve error localization in Waypoint processors

    Revision: 16632
    Revision: 16632
    Author:   [email protected]
    Date:     2010-06-23 07:27:14 -0700 (Wed, 23 Jun 2010)
    Log Message:
    Extended API to history and wizards to expose next and previous indices and destinations, improve error localization in Waypoint processors
    Modified Paths:
        cairngorm3/trunk/libraries/Navigation/src/com/adobe/cairngorm/navigation/history/Abstract History.as
        cairngorm3/trunk/libraries/Navigation/src/com/adobe/cairngorm/navigation/history/Abstract WaypointHistory.as
        cairngorm3/trunk/libraries/Navigation/src/com/adobe/cairngorm/navigation/waypoint/decorat or/ContainerDestinationRegistration.as
        cairngorm3/trunk/libraries/Navigation/src/com/adobe/cairngorm/navigation/wizard/AbstractW izard.as
        cairngorm3/trunk/libraries/NavigationParsleyTest/src/sample1/core/application/ContentDest ination.as
        cairngorm3/trunk/libraries/NavigationParsleyTest/src/sample1/core/presentation/ContentVie wStack.mxml
        cairngorm3/trunk/libraries/NavigationParsleyTest/src/sample1/core/presentation/Navigation Bar.mxml
        cairngorm3/trunk/libraries/NavigationParsleyTest/src/sample1/messages/presentation/Messag esView.mxml
        cairngorm3/trunk/libraries/NavigationSpringASTest/src/sample1/messages/presentation/Messa gesView.mxml
        cairngorm3/trunk/libraries/NavigationSwizTest/src/sample1/messages/presentation/MessagesV iew.mxml
    Removed Paths:
        cairngorm3/trunk/libraries/NavigationParsleyTest/src/sample1/messages/presentation/MyStat eWizard.mxml
        cairngorm3/trunk/libraries/NavigationSpringASTest/src/sample1/messages/presentation/MySta teWizard.mxml
        cairngorm3/trunk/libraries/NavigationSwizTest/src/sample1/messages/presentation/MyStateWi zard.mxml

  • Archivelink Error Queues (CARA_E, CFBC_E and CFBA_E) in CCMS

    Hi,
    Does anyone know how I can display the Archivlink error queues in the CCMS alert monitor ?
    CARA_E, CFBC_E and CFBA_E
    Thanks !
    Rob

    Hi Rob,
    Unfortunately its not possible. The only option is to use OAM1.
    But maybe it can be interesting for you to define them for the CS, on RZ20:
    - SAP CCMS Monitors for Optional Components
      - Knowledge Provider
        - ContentServer
    Br,
    Javier

Maybe you are looking for

  • Laserjet 1300 driver for Win7 problem

    Plugged my Laserjet 1300 into my new computer (System 7) via USB- and Windows couldn't find the right driver for it. I canceled Windows trying to install driver automatically, and put original CD driver disk (Serial #Q1334-60107 ver 2.0) into drive-

  • Creating snapshops with API using Forms 5.0

    We're trying to create snapshots on an Olite database using the API. We've problems below are not yet solved: 1. It's impossible to create complex snapshots. A complex snapshot uses a union or a join. 2. It's impossible to create a snapshot for a vie

  • Gateway can't access some SSL sites

    Hello, because our intranet has some websites which aren't under our control, they have no proper Certificates installed. Therefore, I have already set "gateway.trust_all_server_certs" in all gateway-instances, and "com.iplanet.am.jssproxy.trustAllSe

  • Double messages appear in iChat

    Hello All, This the the problem with iChat on my girlfriend's G4: the messages (both sent and received) in regular text chats, show up as doubles, ie they are printed twice. This is of course quite cumbersome. Any suggestions? She's running 10.3.9, i

  • Master Detail report   report error: ORA-20001: Error fetching column

    Hi All, I am a newbie in apex and try to create a master detail form, where the detail is displayed as a report. After inserting a new row in the master form i like to create the detail. It displays then ORA-01403: no data found I also insert in the