Destroying a message producer

We have a Sun MQ JMS provider which provides us destinations. The process is something like this:
1. There is a queue, where a message is posted.
2. I have a java consumer, which listens on this queue. (via JNDI lookup).
3. I do some processes and based on the status (success or failure) i put a response message in a different queue(Q2).
4. This Q2 is obtained from the JMS message header (getJMSReplyTo()).
5. sender = session.createSender(Q2);
sender.send(msg, javax.jms.DeliveryMode.PERSISTENT, message.getJMSPriority(), getLifetime());6. message is the textMessage obtained from Q1.
7. In a finally block, i am calling sender.close(); The session is still open and will be used for the next message received from Q1.
All is well and good, except for the fact that number of producers on Q2 is getting accumulated for every send() call. The sender.close() is executed(i debugged in eclipse and no JMS exception for the close() call).
The problem here is in the JMS provider, we have a limitation of 100 producers on Q2. Since every send() call leaves a producer on Q2, after 100 replies, i am getting an error on the SunMQ side "producer cannot be added to the queue. Limit of 100 producers will be exceeded".
This results in a JMS Exception during the session.createSender(Q2) line.
I don't know what i am missing here, and i am pretty new to JMS (as you might have imagined by now).
Do we have to explicitly close the session also along with the sender.close() or do we have to do anything other than closing the sender ?
I'd be happy to hear some suggestions and opinions.

Hmm, so the culprit here is the sender#close() method
The standard JMS API, doesn't say anything about the close() operation. It must be implementation specific, in your case SunMQ,
You should be getting into the API and look for the details on what the close() method actually does, whether it really destroys the message producer or not
As Far As developing a JMS Client, I do this way
• Get a ConnectionFactory and Destination
• Create a Connection and Session
• Create a MessageConsumer
• Create a MessageProducer
• Create message/s
• Send message/s
• Receive message/s synchronously or asynchronously
• Exit Session and Connection
Wonder why you would like to have a new Producer each time, but that depends on you and your requirement :)
Cheers,
Edited by: anamupota on Jan 22, 2009 7:53 AM

Similar Messages

  • Xsl:message producing extra tags in output from stylesheets

    If a tag is produced but not ended and xsl:call-template or xsl:apply-templates calls a template that has a xsl:message tag the (not ended) tag is produced again (but not ended) and the output will have 2 start tags but only one end tag.
    It works correctly if an end tag, xsl:comment or text is produced before the xsl:message. It makes no difference if there is any other element, not producing output, between the start tag and the xsl:message. It also works if a start tag is produced before the xsl:message in the same template.
    I have tested this with xmlparserv2 version 9.2.0.4.0, 9.2.0.5.0 and .xdk_version_10.1.0.0.0A_beta and they are all producing the same error.
    Here is a simple stylesheet producing the error:
    <?xml version='1.0' encoding='UTF-8'?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="messageTest">
    <xsl:text>test</xsl:text>
    <in>
    <xsl:call-template name="message"/>
    </in>
    </xsl:template>
    <xsl:template name="message">
    <xsl:message>in here</xsl:message>
    <html>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    And here is simple xml transformed by the stylesheet:
    <?xml version="1.0" encoding="UTF-8"?>
    <messageTest><test>TEST</test>
    </messageTest>
    And here is the transformed output using oraxsl:
    bash# /usr/java/jdk1.3.1_07/bin/java -classpath xmlparserv2.jar oracle.xml.parser.v2.oraxsl test.xml pages.xsl
    <?xml version = '1.0'?>
    file:/home/pontus/vodafone/pages.xsl:
    Message: in here
    file:/home/pontus/vodafone/pages.xsl:
    Message: in here
    test<in><in><in><html/></in>
    If think this is a bug, but if it isn't please help me find the error in the stylesheet.
    /Pontus

    html-output
    <html>
    <body>
    <img src="1.jpg"/>
    <img src="2.jpg"/>
    </body>
    </html>
    Please help me!

  • WD abap - destroy success message

    Hello,
    I have a screen where I do the following:
    CALL METHOD l_message_manager->report_success
          EXPORTING
            message_text = 'Changes were successfully saved!'.
    when I navigate to another screen messsage area is still there but without the message.
    How can I destroy message area without calling reset_view method?
    Thank you.

    Hi Georgy,
    >It seems to be very inconvenient since if the user
    >navigates to a different screen the message area is
    >still there.
    Yeah, it's only due to the message history. There is the idea to make it possible to switch it off. In that case the message area would become invisible automatically again in case no message was raised.
    >What you are saying is that one message area gets
    >displayed there is no way to get rid of it unless
    >refresh the screen?
    Only for success and warnings. Error messages are not kept in the history as they rather reflect the current state of an application. There is a way to get rid of the message - switching to old style message display (can be specified at the application). Of crourse, this soluation has drawbacks. The old style message displays lacks several features, like displaying message documentation, scrolling of messages, etc.
    Personally, I would still use the new message area and accept for the moment that it won't get hidden once an success or warning message is raised. We are working on providing an improved user feedback that tells a user that the history contains items (reducing confusion) and making it possible to switch off the history (reenabling auto-hiding). That means that the problem will auto-solve itself at some time.
    Best regards,
    Thomas

  • Message producer waiting queue response

    how do a producer (cient servlet) get response from the queue. I want to know whether messages delivered properly and send the response from the queue to the calling application.

    Can you provide some more details? You might want to check out the JMS
    examples if you're looking for basic JMS request/response code.
    -- Rob
    sujith wrote:
    how do a producer (cient servlet) get response from the queue. I want to know whether messages delivered properly and send the response from the queue to the calling application.

  • If jms can destroy unsent message when new message comes?

    I'm new to JMS and have a question about the pub/sub model. Hope experts can give some instructions.
    My application has multi-publisher and multi-subscriber of a topic. Since the subscriber sometimes is slow, one message may not have been processed before another message is published. I wonder if the JMS will queue the new message up and send out later when possible. If that is the case, there may be more than one messages piled in JMS. Because the subscriber in my application only interests in the most recent message, is there a way to config JMS to destroy the unsent messages when any new message arrives?
    Thanks!
    Joey

    this would be an extension. definitely not part of the specification.
    _sjz.

  • Sending pictures to email via messages produces an error message

    I fairly certain that I've done this before, but I'm trying to forward pictures from messages to my email. Everytime I try I get an error message saying that the recipient has chosen not to receive messages from a 900-0 number on sprint. Has anyone else had this error or is it not possible to send pictures to an email address this way. Again, I'm pretty sure I've done this in the past.
    Any help is appreciated.

    http://www.kirupa.com/developer/actionscript/flash_php_email.htm
    hth,
    blemmo

  • New swipe photo feature in Messages produces blurry photos

    On my phone 6, it seems like every time I've tried to send a photo through the new Messages swipe feature, they come out very blurry. It could be because I'm doing this with one hand and the swipe is causing the phone to jerk, but thought I'd see if anyone else was experiencing this too.
    What makes this a neat feature is that I don't have to use two hands to hold still, just curious if I'm doing it wrong.

    Welcome to the Apple discussions.
    supposedly a new list for photos is to appear under my apple tv in devices. all of the previous ones are there (music, tv shows, podcasts, etc) but no photos
    Devices only show in this list when they sync with itunes, streaming devices don't show in this list. But you are essentially correct we seem to be missing the option in itunes to turn on photo streaming, we are all looking, I'd wondered if it only appears during the process of registering the tv with itunes.

  • Weblogic Message Bridge Producing Duplicate JMS Messages

    We have a message bridge that we use to integrate with TIBCO. The message bridge is deployed on a WL cluster. We see duplicate JMS messages produced by the bridge when it is deployed on the cluster. We don't see this behavior when only one ManagedServer in the cluster is active,.
    TIBCO version: 4.4.3 V5
    WLS: 10.3.3 with patch for bug BUG8732539 (BQC6)
    java -version
    java version "1.6.0_17"
    Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
    Oracle JRockit(R) (build R28.0.0-679-130297-1.6.0_17-20100312-2121-linux-x86_64, compiled mode)
    We are also seeing a lot of exceptions related to
    <May 27, 2011 4:11:57 PM PDT> <Warning> <Connector> <BEA-190032> << eis/jms/WLSConnectionFactoryJNDIXA > ResourceAllocationException thrown by resource adapter on call to ManagedConnectionFactory.createManagedConnection(): "javax.resource.ResourceException: Failed to start the connection ">
    However the bridge is active. We are monitoring the message-out count on TIBCO and we observed that we see duplicates whenever there a message is re-delivered. We opened a case with Oracle support and they suggested patch 10258751 which didn't help. The next suggestion was a patch for "Bug 11852771 - [WLS10.3.2]MISSING AND DUPLICATE IN JMS QUEUE MESSAGE MONITORING" but I don't think it will help since our JMS consumers are getting duplicate messages and this is not just a UI issue.
    Here is the message behavior when we send a single message:
    Timelines
    11:34:17 --> Message sent to TIBCO EMS queue
    11:34:17 --> WL MS3 throws an javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMFAIL : Resource manager is unavailable exception
    11:34:17 --> WL MS1 says it got the message and committed the transaction
    11:34:17 --> Message is visible in the JMS queue in the admin console
    11:34:17 --> TIBCO EMS has still not received an ACK from WL for the message
    11:34:31 --> TIBCO EMS resends the same JMS message to WL
    11:34:31 --> WL MS2 says it got the message and committed the transaction
    11:34:31 --> WL MS1 throws an javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMFAIL : Resource manager is unavailable exception
    11:34:31 --> Message is visible in the JMS queue in the admin console (At this point there are two messages in the JMS queue)
    11:34:31 --> TIBCO EMS has still not received an ACK from WL for the message
    11:34:54 --> TIBCO EMS resends the same JMS message to WL
    11:34:31 --> WL MS4 says it got the message and committed the transaction
    11:34:31 --> WL MS2 throws an javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMFAIL : Resource manager is unavailable exception
    11:34:31 --> Message is visible in the JMS queue in the admin console (At this point there are three messages in the JMS queue)
    11:34:31 --> TIBCO EMS receives an ACK from WL for the message
    MS04
    ####<May 27, 2011 11:34:54 AM PDT> <Debug> <MessagingBridgeRuntime> <> <MS04> <[ACTIVE] ExecuteThread: '109' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-6A59E8FE76C4FC4CA149> <> <1306521294611> <BEA-000000> <Bridge: MessageBridge1 (processMessages()) received message:
    JMS Message Class: TextMessage
    JMSMessageID: ID:MS01.4B044DDFEE1F1:25354AD
    JMSCorrelationID: null
    JMSDeliveryMode: PERSISTENT
    JMSDestination: Queue[SourceQueue1]
    JMSExpiration: 0
    JMSPriority: 4
    JMSRedelivered: true
    JMSReplyTo: null
    JMSTimestamp: 1306521256905 (Fri May 27 11:34:16 PDT 2011)
    JMSType: null
    Transaction Id: BEA1-6A59E8FE76C4FC4CA149
    <?xml version="1.0" encoding="UTF-8"?>
    <commands ...
    >
    ####<May 27, 2011 11:34:54 AM PDT> <Debug> <MessagingBridgeRuntime> <MS04> <MS04> <[ACTIVE] ExecuteThread: '109' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-6A59E8FE76C4FC4CA149> <> <1306521294611> <BEA-000000> <Bridge: MessageBridge1 (processMessages()) successfully sent message:
    JMS Message Class: TextMessage
    Old JMS MessageID: ID:MS01.4B044DDFEE1F1:25354AD
    New JMS MessageID: ID:<193654.1306521294611.0>
    <?xml version="1.0" encoding="UTF-8"?>
    <commands ...
    >
    MS03
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntime> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521257342> <BEA-000000> <Bridge MessageBridge1 Successfully got connection to the target destination>
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntime> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521257343> <BEA-000000> <Bridge MessageBridge1: both source and target adapters support XA = true>
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntime> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521257343> <BEA-000000> <Bridge MessageBridge1 supportsMDBTX = false supportsXA = true async = true>
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntime> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521257343> <BEA-000000> <Bridge MessageBridge1 WorkMode = Exactly-once>
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntimeVerbose> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521257343> <BEA-000000> <Bridge MessageBridge1 Entering processMessages() ------ >
    ####<May 27, 2011 11:34:17 AM PDT> <Error> <MessagingBridge> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-3AA29116A4CA622834EA> <> <1306521257343> <BEA-200015> <An error occurred in bridge "MessageBridge1" during the transfer of messages (java.lang.Exception: javax.resource.ResourceException: Failed to setup the Resource Adapter Connection for enlistment in the transaction, Pool = 'eis/jms/WLSConnectionFactoryJNDIXA', javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMFAIL : Resource manager is unavailable
    javax.transaction.xa.XAException: Internal error: XAResource 'eis/jms/WLSConnectionFactoryJNDIXA' is unavailable
    at weblogic.transaction.internal.XAResourceDescriptor.checkResource(XAResourceDescriptor.java:948)
    at weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResourceDescriptor.java:634)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1227)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1161)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:507)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:434)
    at weblogic.connector.transaction.outbound.XATxConnectionHandler.enListResource(XATxConnectionHandler.java:117)
    at weblogic.connector.outbound.ConnectionWrapper.invoke(ConnectionWrapper.java:218)
    at $Proxy62.receive(Unknown Source)
    at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1431)
    at weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge.java:1006)
    at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1083)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    at weblogic.connector.transaction.outbound.XATxConnectionHandler.enListResource(XATxConnectionHandler.java:200)
    at weblogic.connector.outbound.ConnectionWrapper.invoke(ConnectionWrapper.java:218)
    at $Proxy62.receive(Unknown Source)
    at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1431)
    at $Proxy62.receive(Unknown Source)
    at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1431)
    at weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge.java:1006)
    at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1083)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMFAIL : Resource manager is unavailable
    javax.transaction.xa.XAException: Internal error: XAResource 'eis/jms/WLSConnectionFactoryJNDIXA' is unavailable
    at weblogic.transaction.internal.XAResourceDescriptor.checkResource(XAResourceDescriptor.java:948)
    at weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResourceDescriptor.java:634)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1227)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1161)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:507)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:434)
    at weblogic.connector.transaction.outbound.XATxConnectionHandler.enListResource(XATxConnectionHandler.java:117)
    at weblogic.connector.outbound.ConnectionWrapper.invoke(ConnectionWrapper.java:218)
    at $Proxy62.receive(Unknown Source)
    at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1431)
    at weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge.java:1006)
    at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1083)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1185)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:507)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:434)
    at weblogic.connector.transaction.outbound.XATxConnectionHandler.enListResource(XATxConnectionHandler.java:117)
    ... 8 more
    ).>
    ####<May 27, 2011 11:34:17 AM PDT> <Warning> <MessagingBridge> <MS03> <MS03> <[ACTIVE] ExecuteThread: '30' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521257344> <BEA-200026> <Bridge "MessageBridge1" encountered some problems in one of its adapters or underlying systems. It stopped transferring messages and will try to reconnect to the adapters shortly. (The exception caught was java.lang.Exception: MessagingBridgeException: Messaging bridge operation failed
    .)>
    MS02
    ####<May 27, 2011 11:34:31 AM PDT> <Debug> <MessagingBridgeRuntime> <MS02> <MS02> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-679AF074F381152F047C> <> <1306521271386> <BEA-000000> <Bridge: MessageBridge1 (processMessages()) received message:
    JMS Message Class: TextMessage
    JMSMessageID: ID:MS01.4B044DDFEE1F1:25354AD
    JMSCorrelationID: null
    JMSDeliveryMode: PERSISTENT
    JMSDestination: Queue[SourceQueue1]
    JMSExpiration: 0
    JMSPriority: 4
    JMSRedelivered: true
    JMSReplyTo: null
    JMSTimestamp: 1306521256905 (Fri May 27 11:34:16 PDT 2011)
    JMSType: null
    Transaction Id: BEA1-679AF074F381152F047C
    <?xml version="1.0" encoding="UTF-8"?>
    <commands ...
    >
    ####<May 27, 2011 11:34:31 AM PDT> <Debug> <MessagingBridgeRuntime> <MS02> <MS02> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-679AF074F381152F047C> <> <1306521271392> <BEA-000000> <Bridge: MessageBridge1 (processMessages()) successfully sent message:
    JMS Message Class: TextMessage
    Old JMS MessageID: ID:MS01.4B044DDFEE1F1:25354AD
    New JMS MessageID: ID:<196075.1306521271386.0>
    <?xml version="1.0" encoding="UTF-8"?>
    <commands ...
    >
    ####<May 27, 2011 11:34:54 AM PDT> <Error> <MessagingBridge> <MS02> <MS02> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521294610> <BEA-200015> <An error occurred in bridge "MessageBridge1" during the transfer of messages (java.lang.Exception: weblogic.transaction.RollbackException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMERR : A resource manager error has occured in the transaction branch
    javax.transaction.xa.XAException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:495)
    at weblogic.connector.transaction.outbound.XAWrapper.setTransactionTimeout(XAWrapper.java:457)
    at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.setTransactionTimeout(RecoveryOnlyXAWrapper.java:34)
    at weblogic.transaction.internal.XAResourceDescriptor.setXAResourceTransactionTimeoutIfAppropriate(XAResourceDescriptor.java:1422)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1223)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1161)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:181)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1565)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:551)
    at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
    at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
    at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:485)
    ... 14 more
    at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1871)
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:330)
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:225)
    at weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManagerImpl.java:293)
    at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1534)
    at weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge.java:1006)
    at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1083)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMERR : A resource manager error has occured in the transaction branch
    javax.transaction.xa.XAException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:495)
    at weblogic.connector.transaction.outbound.XAWrapper.setTransactionTimeout(XAWrapper.java:457)
    at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.setTransactionTimeout(RecoveryOnlyXAWrapper.java:34)
    at weblogic.transaction.internal.XAResourceDescriptor.setXAResourceTransactionTimeoutIfAppropriate(XAResourceDescriptor.java:1422)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1223)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1161)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:181)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1565)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:551)
    at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
    at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
    at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:485)
    ... 14 more
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1185)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:181)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1565)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:551)
    at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
    at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
    at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
    ... 2 more
    ).>
    ####<May 27, 2011 11:34:54 AM PDT> <Warning> <MessagingBridge> <MS02> <MS02> <[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521294610> <BEA-200026> <Bridge "MessageBridge1" encountered some problems in one of its adapters or underlying systems. It stopped transferring messages and will try to reconnect to the adapters shortly. (The exception caught was java.lang.Exception: MessagingBridgeException: Messaging bridge operation failed
    MS01
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntime> <MS01> <MS01> <[ACTIVE] ExecuteThread: '36' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-72BC818FE2BB8C2655C6> <> <1306521257536> <BEA-000000> <Bridge: MessageBridge1 (processMessages()) received message:
    JMS Message Class: TextMessage
    JMSMessageID: ID:MS01.4B044DDFEE1F1:25354AD
    JMSCorrelationID: null
    JMSDeliveryMode: PERSISTENT
    JMSDestination: Queue[SourceQueue1]
    JMSExpiration: 0
    JMSPriority: 4
    JMSRedelivered: false
    JMSReplyTo: null
    JMSTimestamp: 1306521256905 (Fri May 27 11:34:16 PDT 2011)
    JMSType: null
    Transaction Id: BEA1-72BC818FE2BB8C2655C6
    <?xml version="1.0" encoding="UTF-8"?>
    <commands ...
    >
    ####<May 27, 2011 11:34:17 AM PDT> <Debug> <MessagingBridgeRuntime> <MS01> <MS01> <[ACTIVE] ExecuteThread: '36' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <BEA1-72BC818FE2BB8C2655C6> <> <1306521257542> <BEA-000000> <Bridge: MessageBridge1 (processMessages()) successfully sent message:
    JMS Message Class: TextMessage
    Old JMS MessageID: ID:MS01.4B044DDFEE1F1:25354AD
    New JMS MessageID: ID:<195581.1306521257536.0>
    <?xml version="1.0" encoding="UTF-8"?>
    <commands ...
    >
    ####<May 27, 2011 11:34:31 AM PDT> <Error> <MessagingBridge> <MS01> <MS01> <[ACTIVE] ExecuteThread: '36' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521271384> <BEA-200015> <An error occurred in bridge "MessageBridge1" during the transfer of messages (java.lang.Exception: weblogic.transaction.RollbackException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMERR : A resource manager error has occured in the transaction branch
    javax.transaction.xa.XAException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:495)
    at weblogic.connector.transaction.outbound.XAWrapper.setTransactionTimeout(XAWrapper.java:457)
    at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.setTransactionTimeout(RecoveryOnlyXAWrapper.java:34)
    at weblogic.transaction.internal.XAResourceDescriptor.setXAResourceTransactionTimeoutIfAppropriate(XAResourceDescriptor.java:1422)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1223)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1161)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:181)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1565)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:551)
    at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
    at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
    at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:485)
    ... 14 more
    at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1871)
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:330)
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:224)
    at weblogic.transaction.internal.TransactionManagerImpl.commit(TransactionManagerImpl.java:293)
    at weblogic.jms.bridge.internal.MessagingBridge.processMessages(MessagingBridge.java:1534)
    at weblogic.jms.bridge.internal.MessagingBridge.beginForwarding(MessagingBridge.java:1006)
    at weblogic.jms.bridge.internal.MessagingBridge.run(MessagingBridge.java:1083)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: javax.transaction.SystemException: start() failed on resource 'eis/jms/WLSConnectionFactoryJNDIXA': XAER_RMERR : A resource manager error has occured in the transaction branch
    javax.transaction.xa.XAException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:495)
    at weblogic.connector.transaction.outbound.XAWrapper.setTransactionTimeout(XAWrapper.java:457)
    at weblogic.connector.transaction.outbound.RecoveryOnlyXAWrapper.setTransactionTimeout(RecoveryOnlyXAWrapper.java:34)
    at weblogic.transaction.internal.XAResourceDescriptor.setXAResourceTransactionTimeoutIfAppropriate(XAResourceDescriptor.java:1422)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1223)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1161)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:181)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1565)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:551)
    at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
    at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
    at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NullPointerException
    at weblogic.connector.security.layer.AdapterLayer.setTransactionTimeout(AdapterLayer.java:485)
    ... 14 more
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1185)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:282)
    at weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:181)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1565)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:551)
    at weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)
    at weblogic.messaging.dispatcher.DispatcherServerRef.access$000(DispatcherServerRef.java:34)
    at weblogic.messaging.dispatcher.DispatcherServerRef$2.run(DispatcherServerRef.java:111)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    ... 1 more
    ).>
    ####<May 27, 2011 11:34:31 AM PDT> <Warning> <MessagingBridge> <MS01> <MS01> <[ACTIVE] ExecuteThread: '36' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1306521271384> <BEA-200026> <Bridge "MessageBridge1" encountered some problems in one of its adapters or underlying systems. It stopped transferring messages and will try to reconnect to the adapters shortly. (The exception caught was java.lang.Exception: MessagingBridgeException: Messaging bridge operation failed
    .)>

    @Tom, thanks for your hints and sorry for my delayed response. Here are my answers to your queries…
    -- Does messaging work, without any exceptions, when only one bridge is active?
    It works fine when only one node of the cluster is active. -- I'm not familiar with Tibco monitoring, but I suspect that the "message-out count on TIBCO" stat doesn't always imply that there's a duplicate message. It could mean that an initial message delivery attempt failed, it's transaction rolled back, and the message was redelivered. Redelivery after a failure is normal - the original delivered message, if one actually made it onto a WebLogic queue, should be discarded by WebLogic when its failed transaction eventually rolls back (before its ever handed to a consumer application).
    You are absolutely right. The mismatch in count was due to redelivery attempts. We could see that as soon as we turned on trace in TIBCO-- The posted stack traces look like they may be JVM stdout/stderr scrapes, which are often automatically truncated, for example, see the "... 8 more" listed at the bottom of one of the stack traces below. There might be more information in the full stack trace for the "Resource manager is unavailable" exception. Full traces are logged in each WebLogic Server's log files.
    I tried redirecting the output and even set "stdout Stack Trace Depth:" to -1 but I am not albe to see the complete trace.-- The setTransactionTimeout NullPointerException error message looks like it is collateral damage from the original reported "Resource manager is unavailable" exception that's thrown earlier during the enlistResource() step. If you are truly getting duplicates, then I think this is a clue that the bridge is somehow (stupidly) trying to proceed with forwarding the message despite the fact that there's no current transaction on the thread...

    I have a case open with Oracle support and we have extensive debugging turned on. Here is what the engineer came back with. There is an issue with XA transactions in JCA adapter when it talks to third party providers like TIBCO. Since the resource names are not unique across the cluster, a XA transaction is started on multiple nodes in the cluster for the same message. All transactions abort but the message is persisted and TIBCO redelivers the message since the connection is severed when the transaction aborts. We were able to reproduce this scenario at will with our setup and Oracle was able to reproduce the issue too. 
-- Can you check the state of the message on the WebLogic Q? The fact that a message is shown on the WL console doesn't necessarily mean that the state of the message is visible (it could be waiting for the transaction to commit - something that apparently never happens). On the console: Services -> Messaging -> JMS Modules -> [module name] -> [destination name].

    Our consumer was getting duplicate messages. This confirms that the console was not giving us incorrect information. The console showed that 2/3/4 messages were in "current" state when we expected only one message.
-- Make sure that the bridge's Tibco destination is a Tibco queue not a Tibco topic (it's happened).

    Yeah we made sure it was a Queue.
-- Can you post your bridge and destination stanzas from your config.xml? 

    Will try to do this shortly but have to strip out lot of information.
-- I vaguely recall that there was a problem with untyped connection factories in Tibco at one point (not sure). You might want to try changing the Tibco configuration to spin-up "XA Queue Connection Factory" instead of just an "XA Connection Factory" (plus modify the bridge configuration accordingly).

    We tried this but it didn't eliminate this issue. One thing we did notice however was that the number of rollbacks were greatly reduced.

    Here is the workaround that Oracle is suggesting: Create pinned destinations and assign it to a distributed queue. This will keep the transactions local and hence eliminate the duplicate transactions and rollback. We tried it and it eliminated the dups issue. However I discovered another bug during my testing. Our cluster messaging mode is "Unicast" and message forwarding from zero consumer queues to queues with consumers fails. We have four/five nodes in the cluster and two consumer threads. I observed that the zero consumer queues always forward to one queue in the cluster that has consumers. The forwarding stalls when I bring down the node that has consumers. Again, we were able to reproduce this issue at will and Oracle has acknowledged that it is a bug. They've reported that Unicast fails without any warning whereas Multicast fails with a warning in the log. We have observed this message forwarding stalling even with UDQs.
    I have another case open for an issue where our message bridges that transfer messages from TIBCO to WLS stalls after sometime. The status is shown as active but it is not doing anything. The server instance shows stuck threads trying to roll back a message. TIBCO logs indicate that it is receiving a request to rollback a transaction but it is not finding the transaction to rollback. The only way to recover from this condition is to restart the cluster. I am fairly confident that he root case for this issue is again the XA transaction issue. I changed our UDQ to pinned destination in one environment and we are no longer seeing dups or bridge stalling there. Hopefully Oracle can resolve the message forwarding issue.Thanks again….

  • LCDS error when using Producer/Consumer messaging to exchange objects between clients. Please help!!

    Hello,
    I decided to test this with the  publish/subscribe messaging. Something I thought would work is not. Here  is the simple example;
                     var btn:Button = new Button();
                     btn.label = "My Button ";
                     msg = new AsyncMessage();
                    msg.body = btn;
                     producer.send(msg);              
    Simple right? Well, this generates a fault;
    1/21/2011  10:37:55.462 [ERROR] mx.messaging.Producer  'D7094E2F-2CA1-39C0-1EC6-A9DE3171E836' producer fault for  'A11AE369-8349-8970-0C10-A9DE5113DA2E'.
    The LCDS log gets into more detail, AMF Deserialization ERROR....
    Please notice the use of Amf0 and Amf3 methods... I thought Amf0 was a thing of the past...
    Any ideas? Please help....
    [LCDS]01/21/2011 10:37:55.039 [ERROR] [Endpoint.RTMP] Deserialization failed for incoming data: Unknown AMF type '15'.
    flex.messaging.io.UnknownTypeException: Unknown AMF type '15'.
         at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:217)
         at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
         at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:437)
         at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152)
         at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
         at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:437)
         at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152)
         at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
         at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:437)
         at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152)
         at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
         at flex.messaging.messages.AbstractMessage.readExternalBody(AbstractMessage.java:654)
         at flex.messaging.messages.AbstractMessage.readExternal(AbstractMessage.java:324)
         at flex.messaging.messages.AsyncMessage.readExternal(AsyncMessage.java:98)
         at flex.messaging.io.amf.Amf3Input.readExternalizable(Amf3Input.java:491)
         at flex.messaging.io.amf.Amf3Input.readScriptObject(Amf3Input.java:420)
         at flex.messaging.io.amf.Amf3Input.readObjectValue(Amf3Input.java:152)
         at flex.messaging.io.amf.Amf3Input.readObject(Amf3Input.java:130)
         at flex.messaging.io.amf.Amf0Input.readObjectValue(Amf0Input.java:123)
         at flex.messaging.io.amf.Amf0Input.readObject(Amf0Input.java:94)
         at flex.messaging.io.amf.AmfMessageDeserializer.readObject(AmfMessageDeserializer.java:227)
         at flex.messaging.io.tcchunk.TCCommand.readMessage(TCCommand.java:191)
         at flex.messaging.endpoints.RTMPConnection.serviceTCMessage(RTMPConnection.java:1024)
         at flex.messaging.endpoints.RTMPConnection.doRead(RTMPConnection.java:610)
         at flex.messaging.endpoints.RTMPProtocolHandler.doRead(RTMPProtocolHandler.java:125)
         at flex.messaging.socketserver.Connection$ConnectionReader.run(Connection.java:864)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
         at java.lang.Thread.run(Thread.java:662)
    Thanks,
    Oscar

    See my response in the other thread.

  • Messages from topic to multiple consumers are not ordered the same way

    Hi,
    We have a distributed topic. The message producer is a multi-threaded/connection producer (OSB in our case).
    On the other side of the DT there are single connection consumers.
    Our problem is that the consumers sometimes recieve the messages in different order:
    Consumer A recieves message N and then N+1 (correct behaviour).
    Consumer B recieves message N+1 and then N (correct behaviour).
    This does not happen all the time. Most of the time the order is correct (99.9..%).
    We also noticed that the message timestamp for message N and N+1 is the same.
    This creates a problem for our system since both consumers must get the messages in the same order.
    We cannot use UOO.
    Any idea if this is a correct behavior for DT?
    Any idea how to make the messages get to all consumers in the same order without using UOO?
    Thanks,

    Hi,
    Hmm. You may have run into some new Bug given since "message timestamp for message N and N+1 is the same". First, let's dot our I's and cross our Ts to make sure that the system is setup in a way that will give you good ordering in the first place:
    - Always use the same producer instance for each sequential send, and ensure that the producer's connection factory has "load balance" set to false. Note that OSB may be using a pool of producers implicitly for your sending app underneath-the-covers, which could lead to out-of-order, as different producers can load balance to different servers in your cluster. (I'm not sure how to check for this - if you provide a code snippet, I may be able to tell if this is happening.)
    - Ensure that you only ever have a single thread processing the subscription - if you're using MDBs to receive from the subscription, then you need to ensure the MDB is setup to only startup a single thread (use a thread pool of size and/or set max-beans-in-free-pool to one)
    - To account for out-of-order after app message processing failures (redelivery) with async consumers or MDBs, you need to (A) never configure redelivery delays, and (B) ensure the connection factory Maximum Messages setting is tuned down to 1 (it's default is 10).
    I don't know how to do the above with OSB, which tends to layer it's own configuration on top of WL JMS configuration.
    Assuming that you've assured all of the above, then you may have run into some sort of bug and I recommend filing a request with Oracle Support. In the mean-time, you might want to explore alternatives:
    - Are you certain that you can't use UOO? It would be interesting to know why. This is a widely used feature (even by OSB itself), and it may be that you can enable it without any code change, plus, even if a code change is required, such changes tend to be isolated and small. In your use case, it looks like you may be able to configure a default UOO on the distributed topic itself (http://docs.oracle.com/cd/E11035_01/wls100/wlsmbeanref/core/index.html) - no code change needed - so that every destination member of your distributed destination will simply ensure that each new message is given the same UOO (a UOO that's particular to that member). OSB may provide some equivalent knob. Alternatively, you can code up your app so that each of your producers sets a useful UOO on each message.
    - I assume you're using a replicated distributed topic (RDT). If there actually is a bug, then it would likely have something to do with the RDT's internal forwarders. If your consumers are MDBs or the SOA RA Adapter, then a simple alternative may be to use a Partitioned Distributed Topic (PDT) instead -- PDTs have no forwarders, and the MDB and the SOA RA Adapter can work with them transparently. If your consumers are neither of these, then working with a PDT will likely require that you use extensions (an advanced path that you may not want to take the time to follow).
    Tom

  • xsl:message terminate="yes"/

    Guys,
    Testing out some functionality I think Im going to need.
    <xsl:message terminate="yes"/>
    Shouldnt this terminate the parser, as per the spec - it doesnt
    seem to...
    Also,
    <xsl:message> Testing </xsl:message>
    Produces:
    Message: Testing
    On the error stream, could we get them back in a more structured
    way, perhaps as a callback, with some context information, so we
    could use them?
    Many thanks,
    Andrew.
    null

    Can you describe better what
    context you are thinking of
    that would be useful?
    I can think of several interpretations
    of what context could mean here.
    Thanks.
    Steve Muench
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    null

  • How to send a JMS message to a remote Queue?

    Hi,
    I know how to create a JMS message and send it to an MDB that listens to a topic in the same container in which the JMS is created.
    In other words, if I have the following MDB:
    @MessageDriven(mappedName = "jms/MyQueue", ...)
    public class MyMDB implements MessageListener {
    Elsewhere in my JEE app I can create a Queue like this:
    @Resource(mappedName = "jms/MyQueue")
    Queue queue;
    and use it to send a message to the MDB.
    But How can I send a message to an MDB that's deployed in another app server on another machine in the network? Both of the app servers are Glassfish.
    Thanks in advance.
    Edited by: EJP on 9/08/2011 21:49: fixed your meaningless title

    Hi,
    The first thing I would like to suggest is, we never/can't send message directly to MDB. We always send/receive message(s) to/from the destination. In case of MDB, the application server register the MDB as message listener against particular destination, and invoked the onMessage() method when message arrives on particular destination.
    If I am not wrong, what you want to achieve is asynchronous communication between two applications deployed in two different machine. In your case, you want your one application works as message producer and other act as an message consumer, and both are deployed in different machine.
    In this situations, you only need to configure the JMS administration object, connection factories and destinations, on one Application server and configure other application server to use those configuration using JMS resource adapter. you can well achieve this by configuring the JMS Resource Adapter. you need to check the Glassfish documentation.
    If you don't want to break the JMS specification, always communicate with Messaging Provider through Resource Adapter.
    I hope this helps.

  • Message Delivery in a Clustered Environment

    Hello,
    I was wondering if someone could give me a quick explanation/lesson on the following scenario.
    I have a two broker cluster (say, SERVERA and SERVERB where SERVERA is the master). Each server has a consumer connected to it, CONA and CONB respectively. I'm throwing evenly distributed producers at the system such that message consumption cannot keep up with production.
    CONB is slow due to issues external to the JMS system. After 15 minutes, when I stop the producers, SERVERB has ~3,500 messages in the queue whereas SERVERA has ~450. CONA stops receiving messages when there is still 2750 messages in the queue on SERVERB (SERVERA has 0 left). CONB, which is slow, is left to deal with the remaining messages. Restarting the CONA seems to work and messages being flowing from SERVERB to CONA via SERVERA.
    I've tried a consumerFlowLimit of 1000 and 100 but the same thing is happening. I also don't have localDeliveryPreferred set. My goal is to have both CONA and CONB working until all messages in the cluster have been processed. Is there a config setting I can tweak to fix this?
    Thanks in advance,
    Aaron

    Thanks for your response.
    I'll answer your questions as best as I can remember but I can't invest any time in recreating the situation. Since this post, we have set localDeliveryPreferred because the amount of inter-broker communication seemed too much. The server with the slow consumer received 6110 messages according to metrics and the fast server received 4950 messages. Each were sent 4080 messages.
    What is the MQ broker version and the MQ client
    version
    (if different from broker) ?They should have both been running 3.5 SP1. However, it is possible that the client was 3.5.
    Steps (when/order in starting brokers, producer,
    consumers)
    to reproduce the problem ?Start cluster brokers.
    Start consumers.
    Start producers.
    After the one consumer stopped receiving messages, I restarted it and messages began flowing again.
    Can you provide code examples of the consumers and
    producer that reproduces the problem ? This will
    also answer the questions like,
    Is the destination Queue or Topic ? Queue.
    Are the messages produced persistent messages ?Persistent.
    Are the consumers using transacted session or what
    is acknowledge mode ?DUPS_OK_ACKNOWLEDGE
    Aaron

  • JMS Message Bridge with MQ, only BytesMessage available ?

    I have successfully set up bridging between MQ and JMS, and have an MDB that receives messages via the bridge when a message producer puts messages on the MQ-queue. Ideally, I would like to receive MapMessages and not BytesMessages which seems to be the case. Is this at all possible ? It is not clear to me if this is determined by how messages are delivered to the MQ-queue or if it is a bridge configuration issue. The message producer uses the MQ Java API and not JMS to produce and publish messages.

    The bridge uses the standard JMS API to dequeue the messages from MQ and provides no vendor specific tuning, so as long as IBM MQ supplies a map message in the first place things should work. In other words, if there's any special configuration required to get MQ to deliver map messages, you'll need to tune MQ, not WebLogic.
              Tom
              Bridges aren't often required for receiving from non-WebLogic JMS. See
              http://e-docs.bea.com/wls/docs81/faq/interop.html

  • Hub transport raw HTML code displays when iOS client used to send message

    Has anyone else encountered (and hopefully fixed) this problem? I use HTML coding to format the signatures for my staff at the hub transport rule level. Here's an example:
    <br><p style='font-size:12pt; font-family:"Arial","sans-serif"'><b>%%CustomAttribute1%%</b><br>
    %%Title%%<br>
    Tel:&nbsp;&nbsp;&nbsp;%%PhoneNumber%%<br>
    Fax:&nbsp;&nbsp;%%FaxNumber%%<br>
    %%Email%%<br><br>
    <img border=0 width="240" height="62" src="http://wiglefamily.net/CABVI/CABVILogo.jpg" alt="CABVI Logo"><br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="www.cincyblind.org">www.cincyblind.org</a></p>
    <p style='font-size:8pt;font-family:"Arial","sans-serif"'>Disclaimer:  The information contained in this electronic mail message may be confidential and protected information intended only for the use of the individual or entity
    named above.  As the recipient of this information you may be prohibited by State and Federal law from disclosing this information to any other party without specific written authorization from the individual to whom it pertains. If you have received
    this communication in error, please notify us immediately and destroy the message and its attachments. </p>
    It looks great when I sent from Outlook or even Android mail clients. However, when sent from iOS mail clients I get the following in the signature:
    <html>
    <body>
    Michael Wigle IT Manager Tel: 513-487-4243 Fax: 513-221-2995
    [email protected] [CABVI Logo] www.cincyblind.org Disclaimer: The information contained in this electronic mail message may be confidential and protected information intended only for the  use of the
    individual or entity named above. As the recipient of this information you may be prohibited by State and Federal law from disclosing this information to any other party without specific written authorization from the individual to whom it pertains.
     If you have received this communication in error, please notify us immediately and destroy the message and its attachments.
    </body>
    </html>
    As you can see, the raw HTML code shows but the AD variables populate correctly. Any ideas on a solution for this problem?

    See this for the pipeline tracing:
    http://technet.microsoft.com/en-us/library/bb125198(v=exchg.80).aspx
    There's a link in that article that takes you to:
    http://technet.microsoft.com/en-us/library/bb125018(v=exchg.80).aspx
    FYI, I think you're still a bit confused. Once again you said *from* when you meant *to*! :-)
    --- Rich Matheisen MCSE&I, Exchange MVP

Maybe you are looking for