JMS Queue monitoring

Hi everyone,
is there any way to monitor a jms queue with its contained messages ? i'm talking about a tool like the jmx console in jboss - the JMS Adapter and JMS Notification in the Visual Admin only provide some properties.
Any suggestions ?

Hi,
In short what you want (sending email in case message has stayed too long time in the queue), is NOT possible directly. That's not a standard feature by the JMS spec.   
What is possible is the is so-called dead messages, once the acknowledgment fails the predefined number of times then the messages will be redirected to a special queue. From there the messages can be exported by telnet.
Check SAP note 777930 for more info. Btw, it might be a good idea to get familiar with that note, otherwise if the external server let's say always throws an exception while processing the message, it will be moved to this special queue and unless someone issues the appropriate telnet commands, nobody will understand about this.
However if you disable this  feature, that will mean that the message will be delivered endlessly, causing CPU load. Not nice if you have doubts in your external listeners.                                                                               
Now about the queue monitoring :
You could create manually a periodic task (EJB timers in J2EE 1.4 which is covered in the prerelease of the next server version, or if you are using Netweaver 04s or 04s than perhaps java.util.Timer) that will periodically open a JMS browser, check the  messages in the queue, if they have stayed too long time (>100 seconds for example ?) or if the queue is too big (>100 messages) you can send manually the email alert that something has went wrong. By usage of the JAVA API that should be simple
Another thing you can do is that inside your external listeners and the onMessage method, you could check manually the number of times the message is redelivered, if it is above some threshold (i.e . if it is 3, that means the SAP server has delivered the message 3 times , since the listener have rejected it 2 times already),then you can send the email via the standard java API. The delivery count can be retrieved by using the standard optional property JMSXDeliveryCount from the message.                                                      
HTH
Peter

Similar Messages

  • JMS Queue monitor

    Hi Experts,
    We have a requirement in PO 7.31 system to monitor the message traffic for sender and receiver jms queues defined in communication channel configurations. These jms queues are managed externally by EAI team.
    Please let us know how to do this , if it is possible in PO 7.31 single stack system.
    Best Regards,Prasanth

    Hi Prasanth -
    We have a requirement in PO 7.31 system to monitor the message traffic for sender and receiver jms queue
    >>> You can monitor the message processing in PI i.e. if the messages are being successfully processed to JMS queue or not.  You can configure the alerts to receive email in case the messages gets failed in PI.
    Michal's PI tips: Component-Based Message Alerting
    However i don't think we can monitor if they are being processed/failed by your JMS application.

  • JMS Queue Monitoring - Depth, Dest IDs - Programmatic

    Hi,
    I want to write a small Java program that will list all the JMS queues, their IDs and the depth.
    How do I do this?
    Any links, blogs, tutorials, suggestions are welcome.
    Note: I dont want to use the HermesJMS tool.
    Cheers,
    Earlence

    have anyone achieved this through oem12c ..? pls advice.

  • Monitoring content JMS queue

    Hi,
    is it possible to monitor the content of a JMS queue? I created the queue using the Visual Administrator.
    kind regards,
    Peter Ha

    Hi,
    have a look at Re: JMS Queue monitoring thread.

  • How to monitor jms queues

    Hi,
    I want to monitor JMS queues in a way that if the pending messages increases some limit, i should get alert may be through mail or some message.
    As in the application message load is so much and due to some delay in response from some resources(external application) the messages in the queue start increasing and the "Pending Messages" for the queue start increasing as shown in weblogic server.
    Thanks in advance
    -Abi

    This is a monitoring function. And, monitoring functions are not specified in the JMS specification. For Sun MQ 4.x (don't remember which one), the monitoring functions are accessible through JMX. For other products, see your admin guide.
    [m-10196900]

  • MDBs in 9.1 continue to consume JMS queues even after being deleted

    <b>We have an MDB application that reads a batch message off of a JMS queue, archives it in a database, parses the batch message into individual messages and writes them onto other JMS queues to be consumed by another application. Everything was running fine in Weblogic 8.1.5. However, due to problems with XA drivers and the MSDTC(predictable SQL server crashes), we decided to upgrade to Weblogic 9.1 to take advantage of the LLR option.</b>
              <b>First, we had an issue where our MDBs were causing the following exception:</b>
              <i>####<May 26, 2006 7:42:12 PM EDT> <Error> <JMX> <ist-clft2> <wltest1> <ExecuteThread: '1' for queue: 'default'> <<WLS Kernel>> <> <> <1148686932991> <BEA-149500> <An exception occurred while registering the MBean null.
              java.lang.IllegalArgumentException: Registered more than one instance with the same objectName : com.bea:ServerRuntime=wltest1,MessageDrivenEJBRuntime=RhapsodyMDB_DMBModule!JMSServer4@DMB_BEAN_QUEUE,Name=RhapsodyMDB_DMBModule!JMSServer4@DMB_BEAN_QUEUE,ApplicationRuntime=DataBrokerEAR1_2,Type=EJBPoolRuntime,EJBComponentRuntime=DataBrokerEJB new:[email protected] existing weblogic.ejb.container.monitoring.EJBPoolRuntimeMBeanImpl@7db003
                   at weblogic.management.jmx.ObjectNameManagerBase.registerObject(ObjectNameManagerBase.java:146)
                   at weblogic.management.mbeanservers.internal.WLSObjectNameManager.lookupObjectName(WLSObjectNameManager.java:133)
                   at weblogic.management.jmx.modelmbean.WLSModelMBeanFactory.registerWLSModelMBean(WLSModelMBeanFactory.java:86)
                   at weblogic.management.mbeanservers.internal.RuntimeMBeanAgent$1.registered(RuntimeMBeanAgent.java:104)
                   at weblogic.management.provider.internal.RegistrationManagerImpl.invokeRegistrationHandlers(RegistrationManagerImpl.java:205)
                   at weblogic.management.provider.internal.RegistrationManagerImpl.register(RegistrationManagerImpl.java:85)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:320)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:257)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:222)
                   at weblogic.ejb.container.monitoring.EJBPoolRuntimeMBeanImpl.<init>(EJBPoolRuntimeMBeanImpl.java:32)
                   at weblogic.ejb.container.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:49)
                   at weblogic.ejb.container.manager.MessageDrivenManager.initialize(MessageDrivenManager.java:503)
                   at weblogic.ejb.container.manager.MessageDrivenManager.setup(MessageDrivenManager.java:120)
                   at weblogic.ejb.container.manager.MessageDrivenManager.setup(MessageDrivenManager.java:146)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createMDManager(MessageDrivenBeanInfoImpl.java:1481)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createDDMDManagers(MessageDrivenBeanInfoImpl.java:1378)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.onDDMembershipChange(MessageDrivenBeanInfoImpl.java:1285)
                   at weblogic.jms.common.CDS$DD2Listener.listChange(CDS.java:454)
                   at weblogic.jms.common.CDSServer$DDHandlerChangeListener.statusChangeNotification(CDSServer.java:167)
                   at weblogic.jms.dd.DDHandler.callListener(DDHandler.java:318)
                   at weblogic.jms.dd.DDHandler.callListeners(DDHandler.java:344)
                   at weblogic.jms.dd.DDHandler.run(DDHandler.java:282)
                   at weblogic.jms.common.SerialScheduler.run(SerialScheduler.java:37)
                   at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
              >
              ####<May 26, 2006 7:42:13 PM EDT> <Info> <EJB> <ist-clft2> <wltest1> <ExecuteThread: '1' for queue: 'default'> <<WLS Kernel>> <> <> <1148686933069> <BEA-010060> <The Message-Driven EJB: RhapsodyMDB has connected/reconnected to the JMS destination: weblogic.jms.DMB_BEAN_QUEUE.></i>
              <b>
              Generally this happend after there were cluster communication issues. Multi-cast messages were lost and our MDB reconnects to the JMS queues as indicated by the below log:</b>
              <i>####<May 30, 2006 5:19:06 PM EDT> <Info> <EJB> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '54' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1149023946040> <BEA-010060> <The Message-Driven EJB: DataBrokerMDB has connected/reconnected to the JMS destination: weblogic.jms.PHINMS_DMB_QUEUE.>
              ####<May 30, 2006 5:19:10 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023950228> <BEA-000112> <Removing RAPBEA3S jvmid:720875810499147484S:cmts-rap-bea3:[7005,-1,-1,-1,-1,-1,-1]:DMBstg:RAPBEA3S from cluster view due to timeout.>
              ####<May 30, 2006 5:19:11 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023951009> <BEA-000115> <Lost 2 multicast message(s).>
              ####<May 30, 2006 5:19:11 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023951040> <BEA-000111> <Adding RAPBEA3S with ID 720875810499147484S:cmts-rap-bea3:[7005,-1,-1,-1,-1,-1,-1]:DMBstg:RAPBEA3S to cluster: DMBstg_cluster view.></i>
              <b>
              This would cause the queues to eventually have hundreds of consumers and cause the server to fail.
              Basically, it seems as though the MDBs that are supposed to stop continue and attempt to process, while new threads connect to the JMS queues.
              I tried undeploying our application and deleted it from the configuration. However there were consumers still on the respective queues and when I sent messages, I got an error indicating a "Class Not Found exception" due to the fact that the EJB was undeployed and deleted from the configuration, however the MDB component was not and continued to listen for messages. In 8.1.5, as soon as the application was undeployed, there were zero consumers on the JMS queues.
              I have read the posts about a soon to be released fix that would have the MDBs connect only to the queues locally and not go out the the cluster. Would this fix my issue?
              Is there something in the deployment descriptor to configure that will cause it to disconnect and now spawn so many consumers to the JMS queues?
              Why is it that the number of MDB consumers on the JMS queues stayed static in 8.1.5, but they are erratic in 9.1 even after I set our 9.1 server to use the 8.1.5 execute queue policy. Help would be much appreciated.</b>

    I recommend contacting customer support. There's a known problem with MDBs listening to distributed destinations that are local to the same cluster as the MDB, you're problem may be related (the clue is that the stack trace contains jms.dd.DDHandler.callListeners()). The problem is that the MDB connects to all physical queues in a distributed destination rather than just the local queue.
              Tom

  • JMS Queue connection

    Hi Experts ,
    I have a sticky problem while posting the data from JMS to File System ,
    in CC monitoring i got success message that   adapter is successfully connected to JMS queue but no data is available while checking 'sxmb_moni'
    Note :in this requirement we are doing content conversion in JMS Sender  adapter
    we r not able to get the data into XI even we connected to JMS with all the proper connections of the JMS queue
    the mesage we got in the CC:Sucessfully connected to destination 'jms/queue/SendEscFeedweblogic_DXG'
    help me how to get the data into XI  for Suitable reward
    Thanks
    Shoukath

    hi shoukath,
    Can you check in message monitoring, to check out audit logs and we come to what is the error exactly.
    or even you can check the logs at
    http://<Hostname>:<portnumber>/MessagingSystem/monitor/monitor.jsp
    regards
    Ramesh P

  • Defining/Creating a JMS Queue in XI

    Scenario: Third party system would post messages in XI Jms queue, the messages would ultimately be sent to SAP.
    Need to create this JMS queue in XI which receives Jms messages from third party.
    Steps done:
    1) Defined Sender Communication Channel 'CC_JMS'
    JNDILookup name:jmsfactory/default/QueueConnectionFactory
    JMSQueue:jmsqueues/default/JMS_queue
    initialcontextfactory:com.sap.engine.services.jndi.InitialContextFactoryImpl
    JNDIServerAddress:<<serverIP>>:50004
    2)Defined sender ID for the outbound interface in SXMSIF
    3) Added job(I've given the name, is it right?) in SXMb_Adm and Defined message filter for that job. activated.
    4)configured message filter for the above sender ID. Queue name XBT1
    5)when checked in adapter monitor for JMS_queue.Shows the following error message
      CC_JMS : Sender channel. Details: Object not found in lookup of JMS_Queue.
    Questions:
    1)Is that the right approach i am following
    2)How do i assign CC_JMS  to JMS_queue
    3)How do i know if JMS_queue is up and running
    thnx
    sunil

    Hi Sunil,
    Please take a look at these..
    http://help.sap.com/saphelp_erp2005/helpdata/en/bc/996b908db7485fabbacb9930714d7e/frameset.htm -- Queue sender and reciever
    http://help.sap.com/saphelp_erp2005/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/90/57849e5e3e45d784afc4e3bfa8136f/frameset.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/c1/739c4186c2a409e10000000a155106/frameset.htm
    Hope they help!
    cheers,
    Prashanth
    P.S Please mark helpful answers

  • Message posted from BPEL not found in oc4j JMS queue

    Hi,
    I am facing a weird problem when I try to post a message in oc4j JMS from a BPEL process.
    There is no exception(Not even in the logs) and the BPEL process gets completed. But the message is missing(Could not find it while monitoring the queue).
    I am using SOA suite 10.1.3.5 and the oc4j JMS queue which comes with the installation.
    Can someone help me please.
    Saptarishi
    Edited by: saptarishi on May 25, 2010 3:51 PM

    Got a solution.

  • MDB in a Cluster using Local JMS Queue (not distributed)

              Can I create a MDB that receives messages from a Local JMS Queue (created on each
              node) rather than a distributed queue?
              When I try to deploy such an MDB I get the following exception:
              weblogic.management.DeploymentException: Exception:weblogic.management.ApplicationException:
              activate failed for TestLocalMDBCluster Module: TestLocalMDBCluster Error: Exception
              activating module: EJBModule(TestLocalMDBCluster,status=PREPARED) Unable to deploy
              EJB: AsyncProcessor from TestLocalMDBCluster.jar: [EJB:011046]Unable to create
              EJBRuntimeMBean. javax.management.InstanceAlreadyExistsException: mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,Location=Node2,Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,ServerRuntime=Node2,Type=MessageDrivenEJBRuntime
              at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
              at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
              at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
              at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
              at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
              at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
              at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:122)
              at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:85)
              at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.<init>(EJBRuntimeMBeanImpl.java:33)
              at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:30)
              at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
              at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
              at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
              at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
              at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327) at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
              at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
              at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
              at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
              at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
              at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
              at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
              at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
              at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              Is there any way to do this?
              

    I assume you are using queues.
              I truly wonder what you are doing different. Since the
              error is occuring outside of JMS and in the EJB - before JMS is called -
              I suggest posting to the ejb newsgroup.
              Note that yours is a standard use case which distributed destinations
              are actually specifically designed for (if you
              are using customer connection factories, just
              make sure ServerAffinity is enabled on the connection factory to
              ensure that clients always connect to the local physical destination,
              configure the MDB to refer to the JNDI name of the distributed
              destination, and then target the MDB to the cluster - an MDB pool
              will then automatically be dedicated to each physical destination).
              Tom
              Mark Colwell wrote:
              > Nope. It happens every time we try the scenario no matter what the application
              > is or which cluster. It always happens if we try to deploy even just a single
              > MDB (no other beans in the jar) to a cluster where the queue specified in the
              > deployment descripter is a local queue created on each node in the cluster. When
              > the jar is deployed we get the error.
              >
              > We have a strange situation were we really need the queue to be local and not
              > distributed but existing on every node. We can create all the local queues no
              > problem but trying to then deploy the application goes boom.
              >
              > Thanks for the response!
              >
              > Cheers,
              > Mark
              >
              > Tom Barnes <[email protected].bea.com>
              > wrote:
              >
              >>Mark Colwell wrote:
              >>
              >>
              >>>Can I create a MDB that receives messages from a Local JMS Queue (created
              >>
              >>on each
              >>
              >>>node) rather than a distributed queue?
              >>
              >>Yes. In fact this is the most common use case.
              >>
              >>
              >>>When I try to deploy such an MDB I get the following exception:
              >>
              >>I don't recall seeing this exception before. It looks like a naming
              >>conflict - it appears that somehow something is already running with
              >>the same name. Are you somehow deploying the same app twice?
              >>
              >>javax.management.InstanceAlreadyExistsException:
              >>mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,
              >>EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,
              >>Location=Node2,
              >>Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,
              >>ServerRuntime=Node2,
              >>Type=MessageDrivenEJBRuntime
              >>
              >>FYI: As of one or two weeks ago, the MDB section of the
              >>EJB docs has been heavily updated. I highly recommend
              >>reading it.
              >>
              >>
              >>>weblogic.management.DeploymentException: Exception:weblogic.management.ApplicationException:
              >>>activate failed for TestLocalMDBCluster Module: TestLocalMDBCluster
              >>
              >>Error: Exception
              >>
              >>>activating module: EJBModule(TestLocalMDBCluster,status=PREPARED) Unable
              >>
              >>to deploy
              >>
              >>>EJB: AsyncProcessor from TestLocalMDBCluster.jar: [EJB:011046]Unable
              >>
              >>to create
              >>
              >>>EJBRuntimeMBean. javax.management.InstanceAlreadyExistsException: mydomain:ApplicationRuntime=Node2_TestLocalMDBCluster,EJBComponentRuntime=Node2_TestLocalMDBCluster_TestLocalMDBCluster,Location=Node2,Name=Node2_TestLocalMDBCluster_TestLocalMDBCluster_AsyncProcessor_jms/myserver,ServerRuntime=Node2,Type=MessageDrivenEJBRuntime
              >>>at com.sun.management.jmx.RepositorySupport.addMBean(RepositorySupport.java:134)
              >>>at com.sun.management.jmx.MBeanServerImpl.internal_addObject(MBeanServerImpl.java:2371)
              >>>at com.sun.management.jmx.MBeanServerImpl.registerMBean(MBeanServerImpl.java:876)
              >>>at weblogic.management.internal.RemoteMBeanServerImpl.private_registerMBean(RemoteMBeanServerImpl.java:582)
              >>>at weblogic.management.internal.RemoteMBeanServerImpl.registerMBean(RemoteMBeanServerImpl.java:524)
              >>>at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:166)
              >>>at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:122)
              >>>at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:85)
              >>>at weblogic.ejb20.monitoring.EJBRuntimeMBeanImpl.<init>(EJBRuntimeMBeanImpl.java:33)
              >>>at weblogic.ejb20.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:30)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.initPool(MessageDrivenBeanPoolInfoImpl.java:182)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.activate(MessageDrivenBeanPoolInfoImpl.java:245)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.activatePoolInfo(MessageDrivenBeanInfoImpl.java:474)
              >>>at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:440)
              >>>at weblogic.ejb20.deployer.EJBDeployer.activate(EJBDeployer.java:1327)
              >>
              >>at weblogic.ejb20.deployer.EJBModule.activate(EJBModule.java:610)
              >>
              >>>at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3127)
              >>>at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2081)
              >>>at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2062)
              >>>at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
              >>>at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
              >>>at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
              >>>at weblogic.management.deploy.slave.SlaveDeployer.commitUpdate(SlaveDeployer.java:608)
              >>>at weblogic.drs.internal.SlaveCallbackHandler$2.execute(SlaveCallbackHandler.java:35)
              >>>at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at
              >>
              >>weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
              >>
              >>>Is there any way to do this?
              >>
              >
              

  • JMS Queue Not bound

    Configured JMS communication to connect to external JMS Queue.
    When i see the status in Adapter monitor, it shows an error "Receiver channel details:<queuename> not bound".
    Would like to know , where is the problem this error is related to?
    Thnx
    Sunil

    Hi,
    First of all check all your configuration steps in the directory. i.e Receiver Determination/Interface Determination/Receiver Agreement etc
    Are you getting any error in the SXMB_MONI ?
    ALso check the RWB->Message Monitoring ->Message Display tool and check the status
    If there is no error in the above, if the error is only in the Adapter monitor, then check the Adapter configuration .
    Regards,
    moorthy

  • Queue monitoring, best practice

    Hi,
              I have had a go at reading the Programming guides supplied on the website, however I still am unsure as to the best approach...
              Situation:
              Server1, Weblogic Server 8.1 with a JMS Queue.
              Server2, Tomcat 6.0.
              Server3, IIS with a Web Server.
              Server2 has a simple daemon process that is intended to monitor a JMS Queue from Server1 and forward (consume) any messages it recieves to Server3.
              The daemon is basically constructed as follows:
                        INIT:
               Initialise JNDI context
               Lookup TopicConnectionFactory
               Create TopicConnection
               Set connection client ID
               Create TopicSession
               Lookup Topic
               Create TopicSubscriber (DurableSubscriber)
               Start connection
              MAIN:
               Loop:
                recieve TextMessage from TopicSubscriber
                Forward consumed message to webservice
                goto Loop: // This is an endless loop
                                  As you can see, I initalise all connection details once at the start and then I hope to use it forever.
              Should I be closing the session (or connection) after each consumed message?
              Will this be able to consume messages that are already in the Queue or will it only consume message that are published while it is connected?
              This all seems to work for a while, but I occasionally get the following exception (which is the reason why I'm asking the above questions):
              weblogic.jms.common.InvalidClientIDException: Client id, my_cid, is in use
                   at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
                   at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:137)
                   at weblogic.jms.dispatcher.DispatcherImpl_813_WLStub.dispatchSyncFuture(Unknown Source)
                   at weblogic.jms.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:345)
                   at weblogic.jms.client.JMSConnection.setClientID(JMSConnection.java:513)
              which (i think) courses the following exception:
              weblogic.jms.common.JMSException: Connection clientID is null
                   at weblogic.jms.client.JMSSession.createConsumer(JMSSession.java:1635)
                   at weblogic.jms.client.JMSSession.createDurableSubscriber(JMSSession.java:1461)
                   at weblogic.jms.client.JMSSession.createDurableSubscriber(JMSSession.java:1434)
              Thanks in advance for any and all responses to my questions.

    -- Should I be closing the session (or connection) after each consumed message?
              No. Connection/session creation has a relatively high overhead.
              -- Will this be able to consume messages that are already in the Queue or will it only consume message that are published while it is connected?
              I assume your refering to topics (pub/sub), not queues. If you want to receive messages were sent while the subscriber was disconnected, then you need to use "durable subscriptions" - a basic standard concept in JMS. Furthermore, if you want the messages to survive even in the event of a server crash, the publisher must specify "PERSISENT" as the delivery mode.
              -- This all seems to work for a while, but I occasionally get the following exception (which is the reason why I'm asking the above questions):
              As part of standard JMS for "durable subscribers", clients must specify a unique client-id when creating a connection. They must also specify a subscriber-id when creating the subscriber. The "connection-id, subscriber-id" tuple uniquely identifies a durable topic subscription. If a connection using the specified connection-id already exists when creating a new connection, the new connection create will fail (must fail) with a duplicate client-id exception.
              I don't know what is causing the null-pointer-exception.
              Hope this helped,
              Tom

  • Make jms queue forward messages to a proxy service

    Greetings!
    Here's my task. I have a pretty complex proxy service that routes the message to different web services. This proxy has a conditional branch. Now, what I needed to do was implement a JMS queue and fuse it with my proxy. I have successfully created a proxy and a business service that send messages to the JMS queue. However, the queue doesn't forward the messages to my routing proxy. My guess is that when the queue tries to send the message to my proxy, it encounters a conditional branch and doesn't know which branch to use. I have tried to put a log action in the default branch to determine if the message ends up there, but it doesn't.
    If anyone knows a way to forward messages from a JMS queue to a proxy with a conditional branch, please advise a solution.
    Thanks in advance,
    Andrew

    Hello Andrew,
    To communicate with JMS (either to poll JMS for dequing messages or to connect to JMS to enqueue a message), you have to use JMS transport in Oracle Service Bus.
    I am still not sure if this would have worked had I left the conditional branch in my Message Flow.It will work. You may try configuring it.
    Could you please be more specific as to where I can enable message tracking for my proxy service?You may enable message tracing in "Operational Settings" of a particular proxy/business service. Please refer sections "Configuring Operational Settings for Proxy Services" and "Configuring Operational Settings for Business Services" on below link to know more -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/consolehelp/monitoring.html#wp1028056
    Should it be enabled for a specific proxy service or for all of them?You may enable it for all or for a particular service. It depends on requirement.
    Regards,
    Anuj

  • Creating XML string to be pushed into a JMS queue

    Hello All
    I am trying to pass the following XML string into a sender obj, however, I am not sure how it is supposed to be done, with the right escape sequencing.
    message.setText("<rawData><Name="Mike"></Name><Value="200"></rawData>");
    Please guide me.
    Thanks,
    AJ

    Login User should have the Admin privilege, Otherwise it is not possible to post data manually into the JMS Queue.
    Log into weblogic Console > click on JMS Module > <select the JMSModule where the Queue resides : e.g SOAJMSModule> >Select the Queue > Monitoring > Check the Box > click on "Show Message" > New > Post the data in "Body" section.
    Or, you can create another BS in OSB, pointing to that JMS Queue(using Input.xsd) . then execute the BS using your Input.xml

  • Oracle Service Bus - Alert Destination on JMS Queue

    Hi Guys, I have been trying to create Alert destination with email destinations and have been successful. The problem that I am facing now is when I am trying to create an Alert Destination to a JMS Queue. I am using the correct format that you generally use for a JMS URI. -- jms://<host>:port/<factoryJNDIName>/<QueueJNDIName>
    This, is the scenario. I have an Alert Rule specified in one of my proxy services, which basically sends out the fault to the Alert Destination as configured above. This alert will be triggered
    when the error count in the Proxy Service exceeds 3. But I do not seem to be getting the messages into my queue which I am monitoring from weblogic console.
    However, I do get all the messages that I trigger from a separate biz service that I had made just to test the authenticity of my JMS Configuration.
    Any one experienced this before? Specifically related to SLA Alerts/Alert Destinations configuration on JMS Queues?

    Thank you for your response. Well, Let me see if I can explain in a clearer way.
    As you already know, Alert Destination (used for SLA Alerting for example) in OSB have two destinations that you can configure. One - an email recipient(s), who will get the email when the alert (configured in your proxy service and bounded to this alert destination is triggered) . Two - a jms queue, where the same "alert" can be pushed to.
    My question is - I have configured the JMS Destination on the Alert Destination configuration page as such - jms://localhost:7001/testConnFact/testQueue
    (testConnFact and testQueue being the JNDI names of the connection factory and queue respectively configured in weblogic server)
    When the alert (configured in the proxy service) is triggered, (like maybe, due to the error count being more than 3), I should be getting the message pushed into the queue, because, that's the destination I have set in this ALERT DESTINATION.
    I am NOT getting it however.
    On a diff note, when I am creating a business service in OSB on a JMS protocol giving the URI of the queue created in weblogic, I AM getting the messages into the Queue. This, I had done, to test whether my configuration for the queue is correct or not.
    So it seems that Queue configuration on weblogic is correct, however, the alert destination is simply not pushing the messages to the queue.
    Hope this was clear.

Maybe you are looking for