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.
ah ok got it. The main difference MIGHT be that in the case of the Proxy Service, the creation of the alert JMS message MIGHT be done in the same transaction as the main flow - which is failing, so the transaction might be rolled back and so the JMS message.
I will try to reproduce the issue and see if - playing with transaction settings - I manage to make it work.
In the meantime, try instead of a JMS message to use an alert logging ... logging is not a transactional resource, so if my theory is correct you should see the alert message in the logs
I have tested the scenario, with a Any XML Proxy Service.
the JMS with the PS is generated only when, testing through the test console, I uncheck the "direct call" option....don't ask me why...
I haven't tried using the weblogic.jms.ConnectionFactory rather than the weblogic.jms.XAConnectionFactory, nor have I played with the transaction options...
you can get the OSB project here http://javatoolsforweblogic.googlecode.com/svn/trunk/OSBArtifacts/sbconfigAlertTest.jar
just create a jms queue with jndi name jms.testme
Can you please try with something else configured as SLA Rule? Just check if the count of message in the pipeline is 1 and see if it works. If it works, then let me know. I was facing a similar issue which I got resolved today.
You can select
Count <pipeline-name>.Message Count = 1.
Edited by: Palak Mathur on May 15, 2012 7:33 PM
Actually the issue was that I was hoping that when an Error Count reaches a certain number, it should put the message in a queue. However, that condition was not getting fulfilled. My understanding of occurrence of error and how it was happening was clashing. Later I changed and checked the same way I mentioned above. It started working.