Configuring message redelivery with jmcjca (sun-jms-adapter) in Glassfish

I use Glassfish v2 server and its OpenMQ as JMS Provider.
My MDB is configured to use sun-jms-adapter for accessing JMS Provider.
ra.xml of adapter wasn't change so all configuration is done through the sun-ejb-jar.xml of my MDB.
Type of destination my MDB listens to is javax.jms.Topic.
At the same time, I have defined the following redelivery strategy in the sun-ejb-jar.xml
<activation-config-property>
<activation-config-property-name>RedeliveryHandling</activation-config-property-name>
<activation-config-property-value>2:1000; 3:move(queue:*psdmqqueue*)</activation-config-property-value>
</activation-config-property>
psdmqqueue is an administred server Destination of type javax.jms.Queue. So a target destination of MDB is topic and redelivery should be performed to queue
The problem is that application deplyment failes with this configuration with the following exception:
#|2008-11-22T18:38:48.152+0300|WARNING|sun-appserver9.1|com.stc.jmsjca.core.Activation|_ThreadID=169;_ThreadName=JMSJCA connect;_RequestID=ed86af75-1577-4548-ac57-60ca127a28a2;|JMSJCA-E016: [sync-Durable TopicSubscriber(provisioning_subscription)(lookup://targetTopic) @ [mq://localhost:7676/jms]]: message delivery initiation failed (attempt #85); will retry in 10 seconds. The error was: java.lang.ClassCastException: com.sun.messaging.jmq.jmsclient.XATopicSessionImpl
java.lang.ClassCastException: com.sun.messaging.jmq.jmsclient.XATopicSessionImpl
at com.stc.jmsjca.core.RAJMSObjectFactory.createDestination(RAJMSObjectFactory.java:423)
at com.stc.jmsjca.core.Delivery.createDLQDest(Delivery.java:626)
at com.stc.jmsjca.core.SyncDelivery.start(SyncDelivery.java:204)
at com.stc.jmsjca.core.Activation.asyncStart(Activation.java:535)
at com.stc.jmsjca.core.Activation.access$000(Activation.java:80)
at com.stc.jmsjca.core.Activation$1.run(Activation.java:343)
at java.lang.Thread.run(Thread.java:595)
Could you please help me to figure out what is wrong with my configuration?
Part of sun-ejb-jar.xml related to ra activation spec:
<mdb-resource-adapter>
<resource-adapter-mid>sun-jms-adapter</resource-adapter-mid>
<activation-config>
<activation-config-property>
<activation-config-property-name>ConnectionURL</activation-config-property-name>
<activation-config-property-value>lookup://targetConnFactory</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>Destination</activation-config-property-name>
<activation-config-property-value>lookup://targetTopic</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>DestinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Topic</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>RedeliveryHandling</activation-config-property-name>
<activation-config-property-value>2:1000; 3:move(queue:psdmqqueue)</activation-config-property-value>
</activation-config-property>
<!--subscription properties-->
</activation-config>
</mdb-resource-adapter>
</ejb>
</enterprise-beans>
</sun-ejb-jar>

Hi Alexej,
I looked at the problem and found out what the issue is. We recently added some functionality that will test if the dead letter destination is in fact a valid destination -- we thought it's better to find that out upfront, rather than if an error occurs. This is especially important with dead letter destinations being looked up in JNDI: mistakes are easily be made there.
In any case, this new functionality introduced a problem where messages are sent from a queue, and the dead letter destination is a topic, or vice versa, where messages are received from a topic, and the dead letter destination is a queue.
In case you're wondering why: we still need to support JMS 1.0.2 servers. For these servers, the queues and topics are strictly segregated. We do have automated tests that test functionality across domains, but as it turns out, these tests also test some other functionality at the same time that fool the dead-letter-destination-validation into thinking it is the same messaging domain.
In any case, I've have created a fix for this, and I'm testing it right now.
I'll send you an updated RAR by email in case you don't want to wait until the updated bits are available for download. What you also could do, as a workaround, is doing the same trick that fooled the automated test: you can specify the redelivery handling in the MDB code, e.g.
public void onMessage(Message message) {
message.setStringProperty("JMS_Sun_JMSJCA_RedeliveryHandling", "2:1000; 3:move(queue:*psdmqqueue*)");
// do stuff
HTH, Frank Kieviet

Similar Messages

  • Error with the Receiver JMS Adapter (Connection On-Demand feature)

    Hi,
    In high volume we are experiencing errors with the Receiver JMS Adapter and the connection On-demand feature:
    Adapter Framework caught exception: while trying to invoke the method com.sap.aii.adapter.jms.api.connector.DisconnectorListener.notifyEvent(java.lang.String) of an object loaded from local variable 'listener'
    Delivering the message to the application using connection JMS_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: while trying to invoke the method com.sap.aii.adapter.jms.api.connector.DisconnectorListener.notifyEvent(java.lang.String) of an object loaded from local variable 'listener'.
    The message status was set to WAIT.
    Looks like the message is successfuly reprocess after the wait period but the ALEAUD/Akcnowledgment are not successful in the sender ECC system. (SAP -> PI - > JMS)
    Any idea?
    PI 7.1 EHP1
    Thanks,
    Martin
    /people/sunil.ojha5/blog/2010/08/31/review-of-sap-pi-jms-adapter-on-demand-connection-feature
    Edited by: Martin Lavoie Rousseau on Jun 3, 2011 3:21 PM

    Please ensure to have specified an User and password to connect to JMS server (don't leave the fields empty).

  • Message redelivery with non-transactional message bean JMS standard or weblogic standard?

    It is my understanding (or maybe my assumption) that a message is
              re-queued only if the transaction attribute of a container-managed
              message bean is set to "Required" and the message is PERSISTENT. So if
              it's set to "NotSupported", and thus, message receival is not within a
              transaction, the message would be un-queued and thus never be
              redelivered, should a failure occur within the bean. I discovered that
              even if the message bean is set as "NotSupported", should a failure
              occur within the bean, the message is re-queued to be received again
              at a later time.
              I'm very confused as to whether this mechanism is a JMS standard, or a
              feature of Weblogic. Well, maybe I'm just confused about message
              delivery/re-delivery. I understand that the JMS standard requires
              guaranteed delivery of a message to a receiver. Does this mean a
              message is only considered delivered if an acknowledgement is
              received, regardless of the transaction level? In other words, is the
              JMS standard that a message is considered delivered only if
              acknowledgement is indicated through the container, regardless of the
              transaction level of the message bean itself?
              

    You're right on the second part. That is, a JMS message is not considered to
              be "delivered" until it is acknowledged. There are a number of ways to make
              this happen when programming to the raw JMS API -- a look at the Javadoc for
              JMS or a good JMS book should clarify how to do this.
              With a message-driven bean, the EJB container acknowledges the message after
              you've successfully returned from the "onMessage" method. If you throw a
              RuntimeException from the "onMessage" method, or if it's an MDB with a
              transaction mode of "Required" and you call "setRollbackOnly" on the
              "MessageDrivenContext" object -- then your message will be redelivered.
              Regardless of how a message is acknowledged, if it's not acknowledged then
              it will be redelivered. This has nothing to do with whether the message is
              persistent. The difference is that if a message is persistent, then the JMS
              server is required to keep a copy on stable storage until the message is
              acknowledged so that if the JMS server itself crashes, the message will not
              be lost. For a non-persistent message, on the other hand, if the JMS server
              crashes, then the message may be lost.
              greg
              "Justin" <[email protected]> wrote in message
              news:[email protected]...
              > It is my understanding (or maybe my assumption) that a message is
              > re-queued only if the transaction attribute of a container-managed
              > message bean is set to "Required" and the message is PERSISTENT. So if
              > it's set to "NotSupported", and thus, message receival is not within a
              > transaction, the message would be un-queued and thus never be
              > redelivered, should a failure occur within the bean. I discovered that
              > even if the message bean is set as "NotSupported", should a failure
              > occur within the bean, the message is re-queued to be received again
              > at a later time.
              >
              > I'm very confused as to whether this mechanism is a JMS standard, or a
              > feature of Weblogic. Well, maybe I'm just confused about message
              > delivery/re-delivery. I understand that the JMS standard requires
              > guaranteed delivery of a message to a receiver. Does this mean a
              > message is only considered delivered if an acknowledgement is
              > received, regardless of the transaction level? In other words, is the
              > JMS standard that a message is considered delivered only if
              > acknowledgement is indicated through the container, regardless of the
              > transaction level of the message bean itself?
              

  • Configuration for sync/async bridge in Jms adapter

    Can someone give me a hint what I might be doing wrong?
    The scenario is: synchronous proxy to jms.
    Integration repository:
    Created synchronous outbound interface and synchronous inbound interface, message mapping, interface mapping.
    Integration directory:
    Created jms receiver communication channel and jms sender communication channel and configured them according "How to correlate jms messages".
    Created receiver determination, interface determination and receiver agreement.
    No sender agreement necessary for proxy sender.
    So far so good, but...
    Both the receiver and sender jms adapter have its own queue (the receiving system will get the request in one queue and put the response in another).
    <b>How does the waiting jms receiver adapter know where to expect the answer?</b>
    When I test this scenario the (outbound) message get the status "Log version" (abap moni) and "To be delivered" (java moni).
    PS:
    The testing is performed by using the tool rfhutil. With this tool you can read and write directly from/to the MQ queues where the jms adapters are pointing to.
    After receipt of the request in the queue of the reveicer jms communication channel, I manually put a message in the queue of the sender jms communication channel with the XI message ID filled in the correlation ID.

    More information, In the jms adapter the following error appears:
    XI inbound processing failed for message at time 2007-06-11|11:12:48.908+0100. JMS and XI identifiers for the message are ID:414d512052545849444556312020202045f55b6c20d73102 and 4e5bff20-1804-11dc-c2b4-00096b6ed15c respectively. The JMS adapter will rollback the database and JMS session transactions. If the session is transacted, the message is not lost and will be retried later. The exception stack trace is java.lang.Exception: Minimum address data not configured. Field InterfaceNamespace is empty.
         at com.sap.aii.af.service.jms.WorkerJMSReceiver.onMessage(WorkerJMSReceiver.java:1516)
         at com.ibm.mq.jms.MQMessageConsumer.receiveAsyncQ(MQMessageConsumer.java:2538)
         at com.ibm.mq.jms.MQMessageConsumer.receiveAsync(MQMessageConsumer.java:4260)

  • Problem with calling AQ JMS Adapter with Asynchronous BPEL Process

    I have a AQ JMS Adapter and i'm invoking the adapter in my BPEL process.
    I'm passing an xml as payload to AQ JMS adapter. When i post the xml in the BPEL Control, i'm getting the follwoing message:
    "Cannot find the specified instance". I have tried 3-4 times but getting same message all the time.
    However, i'm able to publish xml to JMS Topic with synchronous BPEL process.
    I want to use asynchronous BPLE process.
    Please let me know if there is a way to overcome this issue.
    Thanks in advance.
    Thanx in Advance.

    I am experiencing the exact same issue while configuring for Tibco EMS!!!
    I have also checked the oc4j-xa.xml file etc and I am also unable to find any guidance on the steps required from XML config files through to adapter wizard entries!

  • Problem with Send using JMS Adapter with Websphere MQ

    Hi,
    We have two scenarios using JMS Adapter with MQ:
    1. File->PI->MQ
    This works fine and drop the file in MQ correctly.
    2. MQ->PI->File
    This gives an error reading from the queue: (see highlighted in the log below). It correctly connects to the queue name. But it fails with the message "Could not begin a AF transaction".
    Our PI version is 7.0 SP 13
    Websphere MQ Version 6.0.
    Any idea what could be wrong?
      Cluster Node  Administration Information  Availability Times
    Cluster Node Details for Channel CC_JMS_MQ_Sender
    Short Log 
    In the Last 4 Hours Server 0 15_92786
    _Sucessfully connected to destination 'queue:///MMPP.PLM.FGH41? CCSID=37&targetClient=1'_
       Line 1 / 1
    Processing Details for Cluster Node Server 0 15_92786
    Type 
    Time Stamp 
    Message ID 
    Explanation 
    9/2/08 2:27:28 PM 2e6206f0-7925-11dd-bc02-0003bae50b4d Error while processing message '2e6206f0-7925-11dd-bc02-0003bae50b4d';  _detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Could not begin a AF transaction: TxManagerException: Unable to open transaction: com.sap.engine.services.ts.exceptions.BaseSystemException at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filterSend(TxManagerFilter.java:103) ..._  
    9/2/08 2:27:28 PM 2e6206f0-7925-11dd-bc02-0003bae50b4d XI message ID corresponding to JMS message with ID 'ID:414d512071736431202020202020202047d9462024028b02' will be created as a new GUID with value '2e6206f0-7925-11dd-bc02-0003bae50b4d'
    Amith Dharmasiri

    Checked the drivers installed in :
    /usr/sap/<SID>/DVEBMGS<SYSNO>
    /j2ee/cluster/server0/bin/ext/com.sap
    .aii.af.jmsproviderlib
    They are available and properly added to aii_af_jmsproviderlib.sda.
    The drivers are:
    CL3Export.jar
    CL3Nonexport.jar
    com.ibm.mq.jar
    com.ibm.mqjms.jar
    connector.jar
    dhbcore.jar
    rmm.jar
    These were installed per OSS note 747601.
    Any other suggestions, why retrieving from MQ doesn't work?

  • Setting JMS Message header and properties in JMS Adapter ESB Component

    Hi,
    I am new to using some of these adapters in Oracle ESB and need some help.
    I am trying to define a JMS Publisher using JMS Adapter component in JDeveloper. I would like to publish messages with message property set to a topic. I dont find a way to do that.
    I see that for consuming JMS messages, the JMS Adapter allows to specify message selector but I could not find a way for producing message with a user defined message property. I would like to use that property in the message selector to filter messages and consume.
    I am using Oracle SOA Suite 10.1.3.3.x
    Can someone help please?
    Thanks.

    Thanks for the response.
    I think I found the solution although I havent tried it out yet.
    ESB sample 110.JMStoJMSHeaders outlines the approach.
    It is my understanding that JMS Message selector can work on JMS header or JMS properties (user defined) but not on JMS body. (All the three constitue a JMS message). Hence the need to set a JMS property prior to publishing the message to a topic/queue.
    Thanks.

  • How to send message to a queue using JMS adapter

    Hi,
    I need to send messages to the default queue(demoQueue) available in the server using a JMS adapter in a BPEL process.
    I tried doing the same by using an invoke activity that invokes the JMS adapter service to send the message to the queue. I deployed this process in the server and gave an input to send it to the queue. The prcoess executed without any errors in the BPEL console.
    I am also using Hermes v1.0 to monitor the queue but it says that it dint receive any messages in the queue to read.
    I am sorry that i have restrictions from the client that i can't post the code here. Please let me know if anyone has got any solution or if you know any other way of doing the same.
    Thank you
    Message was edited by: prince
    the_prince

    You can use the following procedure :
    DBMS_AQ.ENQUEUE (
    queue_name IN VARCHAR2,
    enqueue_options IN enqueue_options_t,
    message_properties IN message_properties_t,
    payload IN "<ADT_1>",
    msgid OUT RAW);

  • Multi-Message-split with ABAP mapping and adapter specific attributes

    Hi all,
    With <b>ABAP-Mapping I split 1 message to n messages</b>.
    So many files are generated in <b>file-Adapter</b>.
    Everything fine.
    But now I want the file names different using adapter specific attributes.
    It is not possible to use variable substitution and write the file name in payload because of receiver restrictions.
    I tried this with following similar coding in ABAP-Mapping:
    data: lt_records TYPE MPP_DYNAMIC_TAB.
          Loop.
          l_file_name = "payload-Inbound"-information
          ls_record-namespace = 'http://sap.com/xi/XI/System/File'.
          ls_record-name = 'FileName'.
          ls_record-value = l_file_name.  "l_file_name comes from inbound-payload
          append ls_record to lt_records.
         Endloop.
      CALL METHOD dynamic_configuration->set_all_records
        EXPORTING
          records = lt_records.
    If I start the interface I see in the monitoring the dynamic configuration with many entries for file-name in the the SOAP-Header mapping of the request message (following extract):
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Mapping der Request-Message
      -->
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPAADDRESS.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPABROKERROLE.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPACOMPANYSEGMENT.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPACUSTOMERROLE.XML</SAP:Record>
    The result is that <b>all files have the same file name</b> (last entry in dynamic configuration).
    Is it possible to write the adapter specific configuration in ABAP-mapping <u>for every single result message</u>??
    Thank you for your help,
    Florian

    Hi Florian,
    I've a different idea...I dont think its a "right solution" but just another work around..it involves a BPM...
    In your ABAP mapping..set the dynamic config with as many variables as number of different messages...i.e. use the variables like 'FileName1', 'FileName2'...'FileName6' instead of 'FileName'. But use the same namespace 'http://sap.com/xi/XI/System/File'
    Call the above mapping in a BPM and capture the individual messages and set the attribute 'FileName' from the values of 'FileName1' to 'FileName6' accordingly using Message Mapping and then send the message using the 'Send' step.
    before you try this, try using the variable names 'FileName1' ...'FileName6' in the receiver adapters...enable the ASMS. <b>I know we need to select which variables from the dynamic config to be used by the adapter by specifically selecting 'FileName', 'Directory' etc...but just give it a try and see if it works..</b>
    Or..instead of using a BPM..you can combine Henrique's idea...use Adapter module to set the value for 'FileName' from variables 'FileName1'...'FileName6' accordingly.
    hope I'm clear..lemme know if you have any questions..
    cheers
    praveen

  • PasswordSync with a Sun JMS Server: javax.jms.QueueConnectionFactory

    Hi,
    I have installed Sun IDM 8.1 and Sun DSEE7 and uses Active Directory as source for identities.
    I then added a resource for the JMS Listener, but when I tried to do Test Connection I got this message:
    Test connection failed for resource:
    java.lang.ClassCastException: com.sun.messaging.ConnectionFactory cannot be cast to javax.jms.QueueConnectionFactory
    Can anybody help me with this.
    rgds
    Crimson
    Edited by: Crimson on May 3, 2010 4:46 AM

    Hi Sean,
    it's better to ask this question at Sun Java System Messaging Server forum:
    http://swforum.sun.com/jive/forum.jspa?forumID=15

  • Content Conversion Module with the J2EE JMS Adapter

    HI,
    I am following this PDF
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
    I have done according to No 3 (page 5) and No 3.1 (page 6),
    but in Adapter Monitor I am getting the following error
    Error: Module exception java.lang.ClassCastException found
    what is this error and where I have to check
    Help pls
    Thanks
    dushanth
    Message was edited by:
            dushanth ry
    Message was edited by:
            dushanth ry

    hi
    Try with this
    Check the library files(aii_af_mp.jar, aii_af_ms_api.jar and aii_af_trace.jar ) are inside the EAR. If this is the case, delete them before deploying
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/02706f11-0d01-0010-e5ae-ac25e74c4c81
    ClassCastException using Moduleprocessor
    Module developemnt: casting to Message
    Thanks

  • How to Send  message to MQ without using JMS Receiver Adapter

    Hi Frnds,
    Actually i am working one File to JMS scenario,I have to send message to MQ,What are the different ways we can send  message to MQ without using JMS Adapter.
    Regards,
    Raj

    Hi Ramesh,
    Thanks for your replay,could you please eloborate how to integrate that one with XI,and how to use in XI?
    regards,
    raj

  • CEP with inbound JMS Adapter

    Problem: The inbound adapter is not triggered at all.
    I have an EPN with an inbound JMS adapter listening to a JMS Queue hosted in my 11g Jdev SOA Suite. The queue is populated from a SOA composite. I can see the messages in the queue and my CEP application is deployed succesfully, but my JMS Adapter doesn't get any.
    Here's the relevant section from EPN xml file:
    {color:#3366ff}&lt;bean id="OrderConverter" class="agb.foc.order.OrderMessageConverter"/&gt;
    &lt;wlevs:adapter id="OrderIn" provider="jms-inbound"&gt;
    &lt;wlevs:instance-property name="converterBean" ref="OrderConverter"/&gt;
    &lt;/wlevs:adapter&gt;
    {color}
    Here's my jms-adapter xml file:
    {color:#3366ff}&lt;jms-adapter&gt;
    &lt;name&gt;OrderIn&lt;/name&gt;
    &lt;jndi-provider-url&gt;t3://localhost:7001&lt;/jndi-provider-url&gt;
    &lt;connection-jndi-name&gt;weblogic/jms/ConnectionFactory&lt;/connection-jndi-name&gt;
    &lt;destination-jndi-name&gt;agb/jms/TestQueue&lt;/destination-jndi-name&gt;
    &lt;user&gt;weblogic&lt;/user&gt;
    &lt;password&gt;weblogic&lt;/password&gt;
    &lt;concurrent-consumers&gt;1&lt;/concurrent-consumers&gt;
    &lt;session-transacted&gt;false&lt;/session-transacted&gt;
    &lt;/jms-adapter&gt;{color}
    And the queue details from the weblogic admin console:
    {color:#3366ff}Name: AgbTestQueue
    Type: Queue
    JNDI Name: agb/jms/TestQueue{color}
    Note: I'm using CEP 10gR3 with Eclipse IDE and 11g Jdeveloper SOA suite internal release which comes after TP4.
    Thanks in advance
    Alosh
    Edited by: aloshbennett on Feb 9, 2009 10:44 PM
    formatting

    UPDATE:
    If I send the messages via a standalone java client, CEP is accepting them.
    The difference I see in both the messages is
    {color:#c0c0c0}SOA messages arrive in the queue with JMSXDeliveryCount property set to 1, while standalone client messages arrive in the queue with JMSXDeliveryCount set to 0.
    {color}
    {color:#c0c0c0}
    Why does the messages from SOA composite arrive with JMSXDeliveryCount set to 1? Why does that prevent CEP from receiving them?{color}
    EDIT Again: The messages look identical from the admin console. The JMSXDeliveryCount goes up because the delivery to CEP fails and it could be a red herring.
    If I export the messages from SOA Composite to a file and import them back, CEP picks them up.
    Help!
    Edited by: aloshbennett on Feb 10, 2009 8:09 AM

  • Sender JMS Adapter - NOT Working

    Hello Everybody - We are on SP13, also installed JMS Driver files on the system. We are running, Central Adapter Engine.
    We configured the Sender JMS Adapter for WBI MQ->XI->SAP scenario. We need to JMS Adapter to be configured to connect to WBI from XI. Everything looks great in configuration but in the Adpater Monitoring, JMS Adapter is with Error Status and Message says "Sender channel. Details: (No detail information set.)".
    Does anybody has any idea about this error ?
    I checked SAP Help link as well on this. Based on this link http://help.sap.com/saphelp_nw04/helpdata/en/ca/e7673c86d19b35e10000000a11402f/frameset.htm. Do we need to configure this JMS Adapter somewhere on teh server as well ? If yes, then where ? Pls respond if you have any clue about it.
    Thanks in anticipation...

    Hello Stefan - Thanks for response.
    Here are the Parameters.......
    Adapter Type: JMS
    Sender Type Clicked
    Transport protocol:WebSphereMQ (non-JMS)
    Message protocol:JMS 1.x
    Adapter Engine:Integration Server
    Queue ConnectionFactory Java Class:com.ibm.mq.jms.MQQueueConnectionFactory
    Queue Java Class:com.ibm.mq.jms.MQQueue
    IP Address or Server Name:10.9.48.154
    Server Port:1414
    Queue Manager Name:WBIDEV
    Channel Name:WBI.XI.SVRCONN
    JMS Queue:XI_REQUEST
    Transport/Network Protocol:TCP/IP
    JMS-Compliant:JMS-Compliant
    Transactional JMS Session:Check box Set
    JMS Queue User:XIUSER
    JMS Queue Password:********
    Set XI message ID(MessageID) to:GUID(recommended value)
    Set XI cenversation ID(conversationID) to:No value
    Mapping of Message:Message Payload=JMS Payload
    Quality of Service:Exactly Once
    Time Period for duplicate check for EO(IO)(secs):86400
    Wait After Message Error(msecs):1000
    Wait before Reconnect(msecs):1000
    Status:Active
    The Error Message I see in the Adapter Monitor is "Sender Channel. Details: (No detail information set.)
    Pls advice If I am missing anything ?
    Thanks....
    Amrish.

  • JMS adapter does not recover from error

    Hello everyone,
    We are noticing some strange behavior with the JMS adapter, and would like your help. We have messages coming into XI from WebSphere MQ. We have configured a Sender Comm channel (MQ_SENDER) with the appropriate JMS adapter, with a specified queue name (TEST.Q) . We have installed the appropriate MQ-JMS libraries for v6.0.
    Here's the problem scenario... initially the application sending the messages to the specified queue was putting an incorrectly formatted MQRFH2 structure in the message. Predictably, this caused our comm channel to fail, and it shows up on the adapter monitor in the failed state with the message "MQJMS1050: The MQRFH2 header has an incorrect format Code: MQJMS1050". This in itself is not a problem, we realized that the application was sending a malformed message. The problem occurs when we fixed the sending application to completely strip out the MQRFH2 header altogether. When the new message is sent, the comm channel seems "stuck" on the previous error, and does not even pick up the new message from the queue. The adapter monitor continues to show the same error for the comm channel. Now when we modified the comm channel to read from a DIFFERENT queue (TEST2.Q) , the comm channel got out of the error state and is able to successfully process new messages coming into that queue. However, when we revert the comm channel back to the original queue (TEST.Q) it reverts back to the original MQJMS1050 error, and does not pick up new messages on the queue.
    Any assistance would be greatly appreciated...

    Hi,
    1) Try to refresh the metadata
    2) Check the Queue status
    3) Once again check the Queue name. try to make the Sender JMS adapter inactive .save  it..again make it active  and  save it and  activate the object.
    4) Refresh the Cache :
    a)Start transaction SXI_CACHE.
    b)From the context menu XI Runtime Cache select Start Complete Cache Refresh.
    If you still face issue try this .
    Many actions require to access System Landscape Directory content from the Integration Builder. To optimize performance, this content is loaded into a cache so that the System Landscape Directory does not have to be accessed directly each time that System Landscape Directory content is required.
    However, this cache is not automatically updated if changes are made to the content of the System Landscape Directory. For this reason that we delete the System Landscape Directory cache if changes have been made to content in the System Landscape Directory. The cache is then filled each time that the System Landscape Directory is accessed. If we log on to the Integration Builder after we have made a change in the SLD, we do not need to delete the SLD cache.
    To clear the SLD cache, from the Integration Builder main menu, choose Environment ® Delete Cache for SLD Data.
    Once we have deleted the cache for SLD data, accessing objects in the SLD may take longer than usual initially.
    Regards
    Agasthuri Doss

Maybe you are looking for