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.
Similar Messages
-
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,PrasanthHi 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. -
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 -
Hi,
is it possible to monitor the content of a JMS queue? I created the queue using the Visual Administrator.
kind regards,
Peter HaHi,
have a look at Re: JMS Queue monitoring thread. -
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
-AbiThis 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] -
Creation of JMS queue in jboss server programmatically
Hi Folks,
How do we create a JMS queue in JBOSS server programmatically or dynamically?
If anybody has a link or code that would be really helpful.
Best RegardsHi,
You can create a Queue programmatically. Once you've created a QueueSession, there is a method - QueueSession.createQueue( String name ). Just notice the JavaDoc:
"This facility is provided for the rare cases where clients need to dynamically manipulate queue identity. It allows the creation of a queue identity with a provider-specific name. Clients that depend on this ability are not portable.
Note that this method is not for creating the physical queue. The physical creation of queues is an administrative task and is not to be initiated by the JMS API. The one exception is the creation of temporary queues, which is accomplished with the createTemporaryQueue method."
I hope this helps?
Regards,
J. -
HI,
As part of the application I am developing, I need to write a message on a JMS
Queue of
another application (called Acq).
Is their anyway of knowing programmatically whether the other application's (Acq)
JMS Server is up or down.
Thanks for the help
---Radhe
Hi Radhe,
Search for "server health monitoring" in the docs.
Or simply register a standard JMS connection onException
and also a weblogic extension JMS session onException listener
to listen for failures once the client succeeds
in connecting. (poll/connection/onException repeat)
Or use a store-and-forward design, where a local
queue that is always there has an application MDB
or a Messaging Brdige that forwards to the remote destination.
This allows the produce to continue even if the remote side is down.
Tom
Radhe wrote:
> HI,
>
> As part of the application I am developing, I need to write a message on a JMS
> Queue of
> another application (called Acq).
>
> Is their anyway of knowing programmatically whether the other application's (Acq)
> JMS Server is up or down.
>
> Thanks for the help
> ---Radhe
-
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 -
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
Shoukathhi 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
sunilHi 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 -
How to remove messages from JMS Queue?how to configure queue in spring?
Hi
I have Confiured a JMS configaration in spring applicationConfiguaration.xml file
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
<property name="useAsyncSend" value="true"/>
</bean>
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="foo"/>
</bean>
<bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
<property name="config" value="classpath:activemq.xml" />
<property name="start" value="true" />
<!-- <property name="messageListener" ref="auditInterface"/> -->
</bean>
<bean id="auditInterface"
class="org.springframework.jms.remoting.JmsInvokerProxyFactoryBean">
<property name="serviceInterface" value="com.infiniti.gpn.auditing.AuditInterface"/>
<property name="connectionFactory" ref="connectionFactory"/>
<property name="queue" ref="queue"/>
</bean>
<bean id="listenerContainer" class="org.springframework.jms.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destination" ref="queue"/>
<property name="messageListener" ref="auditMessageListener"/>
</bean>
Sender is sedning messages continusly messages that messages r storing in queue , these r acupying more memory in RAM , due to that jboss is restarting for each request, is there any way to clean up messages in Queue ? if it is there then how will configure that queue in apllicationConfiguaration.xml file?
Thanks in advance
NaraHi,
Even i have a similar kind of requirement where in, i want to clear the JMS Queue Message programmatically, on certain condition.
i am using Spring JMS. The JMS Queue has a listener. In the listener we want to clear the Queue contents based upon the condition.
If anybody has any idea about this, please reply back.
Thanks in Advance.
Manjunath. -
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 PMGot 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?
>>
>
-
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
SunilHi,
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
Maybe you are looking for
-
IPhoto-creating albums and sub-albums
is it possible to create an album with sub albums? For example, i travel to Italy and would like an album of italy but would like to organize specific tours into sub-albums.
-
Syncing contacts to OUTLOOK changes the display format
When I sync to OUTLOOK, the names show up as LAST, FIRST...even though I have set it to be FIRST, LAST in OUTLOOK....and does anyone know of conduit or syncing software that will change the fields in OUTLOOK to be the same as in iPhone (or vice versa
-
Problem using layers from another FLA file
Hello I have an email form in my Flash MX 2004 site here: http://stevehigham59.7host.com/myFlash/myFlash.html The form, which consists of three layers and some Action Script, works fine. Then I have a site I am trying to customise, so I have recreate
-
[Solved] Fails to load systemd-modules.service
Kernel: 3.12.9-2-ARCH $ systemctl status systemd-modules.service systemd-modules.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead) Any ideas? Thanks! Last edited by hellolj (2014-02-21 11:17:50)
-
Rename is grayed out in Lightroom 2
In lightroom 1 I can select photos and rename them, I lightroom 2 the command is grayed out. How do I get it to work? Thanks, A;