JMS Sending asynchronously to a Queue

Edited by: Braistxu on Dec 3, 2008 10:09 AM

the asynch part of jms is the listener's behavior. once the message is sent to the queue, the sender isn't required to wait for it to finish. that's the important part, and that is certainly happening with your code.
in any case, it's insignificant compared to the processing time of the listener.
%

Similar Messages

  • JMS Sender Adapter Sharing Message Queue

    Hi all.
    I´ve some scenarios (request/replay) with JMS Adapter and MQ Series. All of them working againts the same queues.
    In the sender side, each sender channel for each scenario must read from the same queue with a message selectors. The problem is that I have just one User to access the queue but the sender channel opens the connection in exclusive mode. So I can´t activate all sender channels at the same time (shared mode) without error.
    Is it possible having more than one sender channel againts the same queue, with the same user?
    Thanks a lot,
    Gari.

    Sorry, it's solved. The queue was not well defined in MQ Series so I couldn't connect more than one channel to it.
    Thanks.
    Gari.

  • JMS Sender Adapter EOIO with different messages in Queue to RFC

    Dear Colleague,
    In one of my scenarios i am using JMS Sender Adapter and Websphere MQ series.
    In my MQ Series Queue i get different Messages with Different Structures.
    for e.g in my MQ Series Queue Q1 i have M1, M2, M3 coming in Order.
    Now i need to doa  Mapping of M1 to a Standard BAPI  B1 call through RFC at the reciever side.
    Now i need to doa  Mapping of M2 to a Standard BAPI B2 call through RFC at the reciever side.
    Now i need to doa  Mapping of M3 to a Standard BAPI B3 call through RFC at the reciever side.
    We are aware that on Receiver side we can have multiple Recievr Determinations.so i can send it to 3 different BAPIs.
    Question:
    But how do i split the Messges which are coming out of MQ series Q from JMS to 3 different Mapping Structures as we knwo that we do not 'Multiple Sender Interface Determinations' from Determined based on the Message which is coming in.
    Hope i have been clear in making myself understand about the problem given above.
    I have alos given below the same in a bit Graphical Form.
    MQ Series --> M3, M2, M1(Messages) --> JMS Adapte(EOIO) --> M1(Message) -> RFC -> B1(Bapi)
                                                             --> JMS Adapte(EOIO) --> M2(Message) -> RFC -> B2(Bapi)
                                                             --> JMS Adapte(EOIO) --> M3(Message) -> RFC -> B3(Bapi)
    Is it possible to achieve the above result. Answers fo the solution are most welcome. These can be also from the new Netweaver Release Versions. If we have the solution to these in New version we will implment the New Netweaver Releases.
    Thanks & Warm Regards
    Venugopal

    Dear Kai,
    if i have 3 MQ series Queues then how are we going to maintain the flow of the Messages in the same order in which has come into MQ series queues.
    this mesans to say that all the Message come in Parallel out from JMS or MQ side and will be mapped onto Reciever side.
    But in my case i wil need to have M1 first M2 second and M3 third.
    This means to say that M1 recived and acknowledged then M2 should come and acknowledged and then M3 should be acknowledged.
    How this will be possible with your solution of making 3 MQ series Queues.
    Please do let me know.
    Thanks
    Venugopal

  • 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);

  • 2 JMS Sender Communication Channels polling 1 MQ Queue

    Hi Experts,
    I have a situation where 2 JMS sender communication channels are polling 2 different message type data (via content conversion in JMS) from 1 MQ queue.  However adapters are having problem polling the right message from the queue.
    Is this something that is not possible?
    I know that we can possibly use 2 MQ queues - one for JMS 1 with message type 1 and the other for JMS 2 with message type 2
    OR
    1 JMS with 1 common message type with 1 MQ queue.
    But I want to confirm whether my current situation is suppose to work or not.
    Thanks,
    Jay

    >
    Jung Sun Ko wrote:
    > Hi Experts,
    >
    > I have a situation where 2 JMS sender communication channels are polling 2 different message type data (via content conversion in JMS) from 1 MQ queue.  However adapters are having problem polling the right message from the queue.
    > Is this something that is not possible?
    Maintain different queues for different message types.
    The adapters else will just pick the message that comes to the queue first based on the polling time irrespective of the message type. It is not intelligent enough
    >
    > I know that we can possibly use 2 MQ queues - one for JMS 1 with message type 1 and the other for JMS 2 with message type 2
    > OR
    > 1 JMS with 1 common message type with 1 MQ queue.
    >
    > But I want to confirm whether my current situation is suppose to work or not.
    >
    > Thanks,
    >
    > Jay
    Hope the above replies answers your question

  • JMS sender and receiver

    hi
    I am in PI 731 single stack.
    my scenario is JMS to RFC.
    JMS sender will send request to RFC request message.
    RFC response need to be sent to JMS receiver.
    I have link for dual stack -
    http://wiki.scn.sap.com/wiki/display/XI/JMS+Webservice+JMS
    Is it possible now in single stack too ?

    Hi,
    yes, JMS supports asynchronous communication only. However, a request/response model similar to synchronous communication can be implemented using a reply queue mechanism and JMS Correlation ID/JMS Message ID.
    check the below link.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/904db720-042f-3010-b6ba-e62a4192bd3c?overridelayout=true
    http://help.sap.com/saphelp_nw73ehp1/helpdata/en/a4/abaf04916b45438f436357810a27c8/content.htm?frameset=/en/03/f9286f7b284928b1c41025d4ba1cf4/frameset.htm
    http://scn.sap.com/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-step-by-step
    http://wiki.sdn.sap.com/wiki/display/XI/JMS
    http://help.sap.com/saphelp_nw04/helpdata/en/45/20cc5dc2180733e10000000a155369/content.htm
    http://www.stechno.net/sap-notes.html?view=sapnote&id=856346
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/f4/2d6189f0e27a4894ad517961762db7/content.htm
    Regards
    srinivas

  • JMS Send Transaction Failing, due to resources could not be assigned

    I am trying to get a transaction of a JMS send to work where the origination of the send occurs in domain A and the message queue is hosted in domain B. I have been able to get this to work; however, this issue has shown up in recent tests. I haven't changed anything other than the version of the Oracle database client that is being used. I don't see any relationship between that and the persistent store.
    Both domains are hosted on the same computer and both domains are simple development domains. Trust is established between the domains using 'global trust'.
    I'm running Weblogic Server 10.3.4..
    I'm not sure how to get around this issue. I can't find any documentation...
    My suspicion is that there needs to be some special configuration for the transaction, since I'm using the default persistence store. The warnings seem to indicate the problem. The AdminServer is hosted on domain A and the AuditAdminServer on domain B...
    Any assistance will be greatly appreciated!
    Thanks in advance...
    Here is the stacktrace:
    <Apr 11, 2013 11:17:05 AM MDT> <Warning> <JTA> <BEA-110405> <Resource WLStore_audit_domain__WLS_AuditAdminServer was not assigned to any of these servers: AdminServer AuditAdminServer >
    <Apr 11, 2013 11:17:25 AM MDT> <Warning> <JTA> <BEA-110405> <Resource WLStore_audit_domain__WLS_AuditAdminServer was not assigned to any of these servers: AdminServer AuditAdminServer >
    <Apr 11, 2013 11:19:47 AM MDT> <Error> <EJB> <BEA-010026> <Exception occurred during commit of transaction Name=[EJB gov.va.med.datasharing.core.ServiceBusImpl.processInbound(java.lang.String,java.lang.Object)],Xid=BEA1-003FA101855115C0DB45(13340960),Status=Rolling Back. [Reason=javax.transaction.SystemException: Aborting prepare because the following resources could not be assigned: WLStore_audit_domain__WLS_AuditAdminServer],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=183,seconds left=22,XAServerResourceInfo[DefaultXADataSource_vhie_domain]=(ServerResourceInfo[DefaultXADataSource_vhie_domain]=(state=rolledback,assigned=AdminServer),xar=DefaultXADataSource,re-Registered = false),XAServerResourceInfo[WLStore_audit_domain__WLS_AuditAdminServer]=(ServerResourceInfo[WLStore_audit_domain__WLS_AuditAdminServer]=(state=new,assigned=none),xar=null,re-Registered = false),XAServerResourceInfo[WLStore_vhie_domain_VhieFileStore]=(ServerResourceInfo[WLStore_vhie_domain_VhieFileStore]=(state=rolledback,assigned=AdminServer),xar=WLStore_vhie_domain_VhieFileStore1316539,re-Registered = false),SCInfo[vhie_domain+AdminServer]=(state=rolledback),SCInfo[audit_domain+AuditAdminServer]=(state=rolling-back),properties=({weblogic.transaction.name=[EJB gov.va.med.datasharing.core.ServiceBusImpl.processInbound(java.lang.String,java.lang.Object)]}),local properties=({weblogic.jdbc.jta.DefaultXADataSource=[ No XAConnection is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=AdminServer+192.168.1.120:7001+vhie_domain+t3+, XAResources={WLStore_vhie_domain_VhieFileStore, SDSDataSource_vhie_domain, DefaultXADataSource_vhie_domain, eis/jms/WLSConnectionFactoryJNDIXA, WSATGatewayRM_AdminServer_vhie_domain},NonXAResources={})],CoordinatorURL=AdminServer+192.168.1.120:7001+vhie_domain+t3+): weblogic.transaction.RollbackException: Aborting prepare because the following resources could not be assigned: WLStore_audit_domain__WLS_AuditAdminServer
         at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1881)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:345)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:239)
         at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:625)
         at weblogic.ejb.container.internal.StatelessRemoteObject.postInvoke1(StatelessRemoteObject.java:49)
         at weblogic.ejb.container.internal.BaseRemoteObject.__WL_postInvokeTxRetry(BaseRemoteObject.java:444)
         at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:53)
         at gov.va.med.datasharing.core.ServiceBus_r6xnti_ServiceBusImpl.processInbound(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
         at $Proxy89.processInbound(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
         at $Proxy91.processInbound(Unknown Source)
         at gov.va.med.datasharing.web.ServiceBusDelegate.processInbound(ServiceBusDelegate.java:43)
         at gov.va.med.datasharing.web.adc.PatientServiceImpl.changeADCStatus(PatientServiceImpl.java:58)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:69)
         at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:97)
         at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:81)
         at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:102)
         at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:98)
         at org.springframework.binding.expression.spel.SpringELExpression.getValue(SpringELExpression.java:84)
         at org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:75)
         at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
         at org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
         at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
         at org.springframework.webflow.engine.support.ActionTransitionCriteria.test(ActionTransitionCriteria.java:82)
         at org.springframework.webflow.engine.support.TransitionCriteriaChain.test(TransitionCriteriaChain.java:71)
         at org.springframework.webflow.engine.Transition.canExecute(Transition.java:195)
         at org.springframework.webflow.engine.Transition.execute(Transition.java:211)
         at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:393)
         at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
         at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:119)
         at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:555)
         at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:388)
         at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
         at org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:232)
         at org.springframework.webflow.engine.ViewState.resume(ViewState.java:196)
         at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
         at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:258)
         at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
         at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
         at org.springframework.webflow.mvc.servlet.FlowController.handleRequest(FlowController.java:174)
         at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
         at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:180)
         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused by: javax.transaction.SystemException: Aborting prepare because the following resources could not be assigned: WLStore_audit_domain__WLS_AuditAdminServer
         at weblogic.transaction.internal.TransactionImpl.abort(TransactionImpl.java:1153)
         at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:2200)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:279)
         ... 77 more
    .>

    It turns out that those packages are, indeed, in extra.
    I didn't think to look there, since I assumed that everything needed by base would be in [core].
    I assumed wrong.

  • JMS-send operation not working in a SessionBean [OC4J10.1.3.1.0-standalone]

    Salut,
    i am envisaged with a nasty problem calling a message-send operation from
    a method (transaction-type="required") inside a session bean (transaction-type="container").
    This problem occured in OC4J 10.1.3.1 and may fail also in 10.1.3.0. The same
    code run under OC4J 10.1.2.x without any problems.
    The adressed JMS type is a OEMS JMS and fails to work regardless if the JMS ressource
    is using a file-persistence or is running in-memory. Anyway the factory is a
    jms/XAQueueConnectionFactory, so the created queue must support XA transactions.
    Another test with an advanced-queue JMS provider succeeded.
    As a consequence of this, i believe that the OEMS provider shall cause the problem.
    The original code is quite unspectaculary:
    * The non-surprising thing is, that the QueueConnectionFactory
    * is a XAQueueConnectionFactory.
    QueueConnectionFactory qcf = (QueueConnectionFactory) (jndiContext.lookup(MY_QFAC));
    Queue q = (Queue) (new InitialContext().lookup(MY_QUE));
    c = qcf.createQueueConnection() ;
    QueueSession s = c.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    [... create a message ]
    QueueSender qs = s.createSender(q)
    qs.send(m);
    qs.close()
    s.close();
    c.close()
    The funny thing is, that the queue-session behaves as it is working outside
    of a transaction context. Inside the JMX-Console you will notice the
    arrival of a message and ... a cancellation of it. This would not surprise
    me, if this code sequence would have been called outside of
    a Session bean, cause the absence of a queue-session.commit does not
    fix the send message in the jms ressource.
    As a matter of fact the code is executed inside a Session bean and
    the connection.createQueueSession will notice this and forget both
    given parameters, and let the covering transaction take over of the
    JMS ressource. But this does not happen (completly).
    The acknowledge-mode has been modified (SESSION_TRANSACTED)
    but the code still does not work!
    After i recognized that the enlist-ment did not work, i
    decided to enfore the use of XA transaction by using the
    XA classes and methods of JMS.
    I startet to cast the jndi-references and:
    XAQueueConnectionFactory qcf = (XAQueueConnectionFactory) (jndiContext.lookup(MY_QFAC));
    Queue q = (Queue) (new InitialContext().lookup(MY_QUE));
    XAQueueConnection c = qcf.createXAQueueConnection() ;
    XAQueueSession s = c.createXAQueueSession();
    [... create a message ]
    QueueSender qs = s.createSender(q)
    qs.send(m);
    qs.close()
    s.close();
    c.close()
    The funny thing is ... the code worked without any problem until
    the send operation, where i received an JMSException, containing
    the text:
    Oc4jJMS.Session.hpcl057.4e9c06e4:1112674930d:-7fff.41,true,SESSION_TRANSACTED]: An attempt was made to perform work in a XA-backed session without being enlisted. Either the session must be enlisted (using the JMS Connector or JMS Adapter) to participate in the global transaction, or a non-XA connection and a non-XA session should be used to not participate in the global transaction.
    How bizarre, i thought the enlistment has been taken place by invoking
    the c.createXAQueueSession or c.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    How bizarre how bizarre
    any clues ????

    OC4J JMS was changed to not auto-enlist in XA transactions.
    In releases prior to 10.1.3 XA usage was not actually supported. (It did not meet all of the XA requirements when used with OC4J.)
    Auto-enlisting by the JMS provider was also a spec violation, which was causing trouble for people who needed to do out-of-transaction work and had no way to do it.
    In 10.1.3 XA usage is fully supported, but only when you use the JMS Connector. You can find the JMS Connector ("Oracle's Generic JMS Resource Adapter") demos here:
    http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/index.html#JMS
    The JMS Connector is documented in the OC4J Services Guide, OEMS/JMS chapter.
    -Jeff

  • Need help about setting up a JMS sender channel

    I just started to play with PI for a few weeks and I'm trying to setup a simple JMS sender channel to read stuff from a WebSphere MQ.
    I've someone installed JMS adaptor for me, but we never know it is correctly installed or not. First question is "Is there any way we can verify JMS adapter is correctly installed or not?"
    In the Design: integration builder, I've a very defined a very simple data type(src_dt) which is a string and a message type(src_mt) which uses resp_dt. Finally I created a message interface (test_mia_out) that contains src_mt. At this point of time, I don't need message mapping so I didn't configurate this section.
    Then I went to Configuration: Integration builder and created a new communcation channel with the following setting:
    Parameter section:
    Adapter Type: JMS
    Transport Protocol: WebSphereMQ (Non-JMS)  <- if i don't use this option, i can't enter MQ connection detail in the Source section.
    Message Protocol: JMS 1.x
    Adapter Engine: Integration Server
    Source section:
    QueueConnectionFactory Java Class: com.ibm.mq.jms.MQQueueConnectionFactory
    Queue Java Class: com.ibm.mq.jms.MQQueue
    ...MQ connection detail...(IP, Port, Queue Manager, Channel and Queue Name )
    Transport Protocol: TCP/IP  <- this is consists to server side setting
    JMS-Compliant: JMS-Compliant
    Since I only want a very simple working sample, again I didn't change the content in receiver determination, interface determaintion and sender agreement.
    Now when I active this change and I saw the following error in the channel monitor:
    Short Log - Channel has internal error
    Admin Info - Exception: Channel with Status Unknown or Not Registered
    I did stop and start the service, refresh CPA cache and even restart the entire PI server, I always see this message and cannot find any more detail description about what is causing this problem.
    My PI Server version is 7.0 and MQ version is 5.3
    There's very limited resource about how to setup to read MQ message in PI and I'm stuck now. Therefore, I need a help from some experienced people to tell me if I have did something wrong or missed some steps?
    And if possible, could people mind to post a step by step go through how you setup it up?
    Edited by: Robert Fu on Jan 10, 2008 6:51 AM

    Before you use the JMS, you need to deploy some drivers related to specific MQseries, Kindly ensure that proper driver are deployed....
    If you use MQSeries 53x.xxx, you must enter the following JAR files in aii_af_jmsproviderlib.sda.
    com.ibm.mq.jar, com.ibm.mqbind.jar, com.ibm.mqjms.jar, connector.jar (use the JAR file from the J2EE client directory)
    check this link it will give you more inofmration
    http://help.sap.com/saphelp_nw04/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
    check this to get the condifuration the JMS
    How to use conversion modules in JMS - https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
    Ref How To Use the Content Conversion Module in JMS Adapter - https://websmp106.sap-ag.de/~form/sapnet?_SHORTKEY=01100035870000582377&

  • JMS Sender Communication  Channel problem

    Hi XI gurus!!
    I have a JMS Sender Communication Channel that cannot get information from JMS TIBCO queue.
    In defaultTrace.XX.trc I see the following information and errors:
    #1.#00144F249F1500C70000087D00002D8300044A22A193A198#1207412506993#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildConnection()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000087E00002D8300044A22A193A201#1207412506993#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildSessions()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1500C70000087F00002D8300044A22A193A552#1207412506993#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Error##Plain###2008-04-05 17:21:46 [161906789 SAPEngine_Application_Thread[impl:3]_52] [TIBCO EMS]: createQueueSession qsess=198151 qconn=45502 tran=true ackmode=1#
    #1.#00144F249F1500C70000088000002D8300044A22A193A670#1207412506994#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildSessions()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Info##Java###Sucessfully created session {0} for profile {1}#2#com.tibco.tibjms.TibjmsQueueSession@3a5f233#
    {GenericConnectionProfileImpl
    {Description=ConnectionProfile of channel: JMS_Sender_loginCheckReq_001on node: 21291150 having object id: 7e7ee107bc2031d2bc79fa2fce15bbed,
    JmsMessageSelector=,
    ConnectionFactoryConstructor=null,
    ConnectionFactoryFactoryInvocation=null,
    ConnectionFactoryInvocations=[],
    DestinationConstructor=
    {ConstructorInvocation
    {className=null,
    invokeParams=[]
    DestinationInvocations=[],
    MessageInvocations=[],
    DestinationName=null,
    User=,
    Password=,
    isJmsSessionTransacted=true,
    InitialContextEnvironment={java.naming.provider.url=190.10.0.133:9222, java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory},
    LookupConnectionFactory=QueueConnectionFactory,
    LookupDestination=GALP.PRD.TIGERC.LOGIN.REQ,
    SerializedConnectionFactoryPath=null,
    SerializedDestinationPath=null,
    Flags=0000000000000000000000000000000000000000000000000000100000000010
    #1.#00144F249F1500C70000088100002D8300044A22A193A7EE#1207412506994#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildSessions()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000088200002D8300044A22A193A85F#1207412506994#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createDestination()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1500C70000088300002D8300044A22A193B153#1207412506997#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Error##Plain###2008-04-05 17:21:46 [161906789 SAPEngine_Application_Thread[impl:3]_52] [TIBCO EMS]: createQueueConnection qconn=45503 qconfac=QueueConnectionFactory[url=tcp://190.10.0.133:9222;clientID=null;Properties={}] user=null#
    #1.#00144F249F1500C70000088400002D8300044A22A193E3CF#1207412507009#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.JndiConnectorImpl.createDestination()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000088500002D8300044A22A193E571#1207412507010#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.executeDestinationInvocations#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1500C70000088600002D8300044A22A193E64B#1207412507010#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.executeDestinationInvocations#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Exiting method#
    #1.#00144F249F1500C70000088700002D8300044A22A193E714#1207412507010#com.sap.aii.adapter.jms.core.connector.ConnectorImpl#sap.com/com.sap.xi.mdt#com.sap.aii.adapter.jms.core.connector.ConnectorImpl.buildMessageProducers()#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#SAPEngine_Application_Thread[impl:3]_52##0#0#Path##Plain###Entering method#
    #1.#00144F249F1508770000000000002D8300044A22A83A6308#1207412618584#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#Thread[TIBCO EMS TCPLink Reader (45502),5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Error##Plain###2008-04-05 17:23:38 [2092826462 TIBCO EMS TCPLink Reader (45502)] [TIBCO EMS]: received msg from daemon conn=45502 seqid=40664365 msgid=ID:EMS-SERVER.91446ECB042B480:12545#
    #1.#00144F249F1508770000000100002D8300044A22A83A650C#1207412618585#System.err#sap.com/com.sap.xi.mdt#System.err#EFFIGUEIREDO#7191##sappix02_X02_21291150#XIAPPLUSER#81664000032811ddaadc00144f249f15#Thread[TIBCO EMS TCPLink Reader (45502),5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Error##Plain###2008-04-05 17:23:38 [2092826462 TIBCO EMS TCPLink Reader (45502)] [TIBCO EMS]: post msg to session sess=198151 cons=261547 seqid=40664365 msgid=ID:EMS-SERVER.91446ECB042B480:12545#
    In the last two lines we can see that SAP XI do a connection to TIBCO and is getting an unknown error, even in debug (note 856346) I cannot get any information.
    Actually we are running SAP XI 3.0 SP21, but this was working fine in SAP XI 3.0 SP17. We have more than 100 Communication Channels working fine and only is having this strange behavior.
    BTW if we put manually information in TIBCO QUEUE it works fine, but automatically doesn't pick the message.
    Thanks

    HI,
    As per the trace details given please consider few of the below options....
    What do u see in adapter monitoring tool for JMS adapter?
    http://hostname:5XX00/mdt/amtServlet
    Did you follow the document on correlation of JMS messages?
    In communication channel You have to set
    Correlation ID -> XI conversationID
    XI message ID->GUID
    XI Conversation ID -> JMS correlation ID.
    Now in the custom J2EE application you should set
    jmscorrelationid of message before sending in to queue to jms correlation id of message before receiving from the queue.
    This thread deals with the issue..
    JMS Queue monitoring
    Check  if the JMS Sender adapter EOIO is with serialized messages 
    Thanks
    Swarup

  • JMS (Sender Communication Channel) and MQ in Mainframe (Legacy) System

    Hi All,
    Can we use JMS Sender Communication Channel in XI that runs on Windows 2003 server to DIRECTLY poll messages from MQ in Mainframe (Legacy) system??
    I understand that we can install MQ on XI server and have mainframe push the messages to XI MQ so that JMS can poll but wanted to see if there is a way to do this without having MQ on XI server.
    If you know of any documentation regarding this, can you please post it?
    Thanks,
    Jay

    Jung,
    Are you looking for this help:
    /people/william.li/blog/2006/11/13/how-to-use-saps-webas-j2ees-jms-queue-in-exchange-infrastructure
    Also check this sap help:
    http://help.sap.com/saphelp_nw04/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
    ---Satish

  • Problem in JMS Sender Adapter

    Hi All,
      I am trying to Pick two different XML types of Messages from a Single Queue.
    For Example :- Despatch Advice and Replishment Proposal.
    Queue Name is : - JMS_XI_Sender
    SAP XI is not allowing me to create two different sender agreements for the same communication channel.
    Service :- BS_JMS
    Interface : - Despatch_Advice_OB
    CC :- JMS_SENDER
    and
    Service :- BS_JMS
    Interface : - Replishment_Proposal_OB
    CC :- JMS_SENDER
    Can any one tell how can SAP XI will differentiate these two messages and sends to two different receivers.

    Hi Rama,
    I am using XML Despatch Advice and Replishment Proposal types .
    Basically I do have one sender which will post Two types of XML messages in to one single MQ Queue.
    SAP XI/PI has to pick that message and then needs to check what is the Value in the "Message Type" Tag .
    I do also have two different Interfaces and Mappings and Two different Receivers.
    Depending on the value in Message Type SAP XI/PI has to check for the Particular Interface and Mapping, finally needs post the message to Particular Receiver
    You need to have defined two different sender agreements with two different Communication channels.
    In the JMS adapter Sender configuration you can mention the Queue name to pick the message . After picking the message the JMS sender adapter need to map it to the correct message type - it is defined by message interface defined in the sender agreement .
    Please let us know if you need any further calrification.
    Regards,
    kishore

  • JMS sender adapter is not picking up message from MQ

    Hi Experts,
    I have configured the JMS sender adapter for getting message from Websphere MQ. In RWB the adapter and the communicaiton channel all looking good. The trace file tells me the connection to the queue has been established.
    But the problem is this JMS sender adapter is not picking up message from the Queue defined on the MQ site.
    Any Idea what could be wrong?
    Thanks!
    Jason
    Jason

    Hi,
    1) Can you activate the JMS adapter again ( edit save and activate it )
    2) Check whether the right Queue is addressed.
    Regards
    Agasthuri Doss

  • Content conversion at JMS sender communication channel

    Hi friends,
                    I have to convert fixed length flat structure to xml message.Therefor i have to do content conversion at the JMS sender comm channel.Can someone please explainthe procedure?
    data in the queue would be like as follows.
    9999000000124646q12233appej500rc11147822zord

    Hi Manikandan,
    The structure conversion can handle files containing rows with different structures. In
    each row there is a key field to identify the structure. The rows with identical key fields of
    course have identical structures.
    Let us assume that we have a sample file with four rows. Each row has a two-byte key
    field; the first row has a second field with ten bytes; the structure of the second and third
    rows is the same and comprises two additional fields with three bytes each; the last row
    has a second field with five bytes:
    AA1234567890
    BBABCABC
    BBXYZXYZ
    CC12345
    The configuration for the conversion could look like this:
    Module Configuration
    Module Key Parameter Name Parameter Value
    Plain2XML Transform.Class com.sap.aii.messaging.adapter.Conversion
    Plain2XML Transform.ContentType text/xml;charset=utf-8
    Plain2XML xml.conversionType StructPlain2XML
    Plain2XML xml.processFieldNames fromConfiguration
    Plain2XML xml.documentName MyDocument
    Plain2XML xml.documentNamespace http://xi.com/test
    Plain2XML xml.recordsetName MyRecordset
    Plain2XML xml.recordsetStructure NameA,1,NameB,*,NameC,1
    Plain2XML xml.keyFieldName MyKey
    Plain2XML xml.keyFieldType CaseSensitiveString
    Plain2XML xml.NameA.fieldNames MyKey,field-nameA
    Plain2XML xml.NameA.fieldFixedLengths 2,10
    Plain2XML xml.NameA.keyFieldValue AA
    Plain2XML xml.NameB.fieldNames MyKey,field-nameB1,field-nameB2
    Plain2XML xml.NameB.fieldFixedLengths 2,3,3
    Plain2XML xml.NameB.keyFieldValue BB
    Plain2XML xml.NameC.fieldNames MyKey,field-nameC
    Plain2XML xml.NameC.fieldFixedLengths 2,5
    Plain2XML xml.NameC.keyFieldValue CC
    In xml.recordsetStructure, you add a name for each different structure followed by the
    number of occurrences or an asterisk for unbounded occurrences. For each structure
    name, you configure the structure separately in a separate namespace such as
    xml.NameA.fieldNames and so on.
    If your source file is a CSV file, replace each xml.XXX.fieldFixedLengths with
    xml.XXX.fieldSeparator.
    the result of this conversion looks like this:
    <ns:MyDocument xmlns:ns="http://xi.com/test">
    <MyRecordset>
    <NameA>
    <MyKey>AA</MyKey>
    <field-nameA>1234567890</field-nameA>
    </NameA>
    <NameB>
    <MyKey>BB</MyKey>
    <field-nameB1>ABC</field-nameB1>
    <field-nameB2>ABC</field-nameB2>
    </NameB>
    <NameB>
    <MyKey>BB</MyKey>
    <field-nameB1>XYZ</field-nameB1>
    <field-nameB2>XYZ</field-nameB2>
    </NameB>
    <NameC>
    <MyKey>CC</MyKey>
    <field-nameC>12345</field-nameC>
    </NameC>
    </MyRecordset>
    </ns:MyDocument>
    Regards,
    Vinod.

  • EOIO JMS Sender Channel in Error

    Hi All,
    We have a error on JMS sender channels in Pre-Production environment.
    Let me explain you the problem.
    On Dev and QA there is no cluster environment. On Pre-production we have 3 clusters. We tested this Sender JMS channel on Dev and QA without giving a Cluster ID and it worked.
    Now on Pre prod, we had not mentioned the cluster ID and when messages were picked from the Queue, the channel went into a error mode stating the " Channel is locked due to EOIO".
    Then when we added the cluster ID to the channel, in RWB the channel goes into inactive mode. The status is " The EOIO channel has been made inactive on Node 206485150"
    The node mentioned in channel is 251902150. This means that the other node has been made inactive. That sounds logical as it is not supposed to process the message.
    But the node which is mentioned in the channel has also gone into error mode.
    " Error creating JMS connection. failed to create MQManager for ' Hostname:Channel name'". An MQException occured: Completion code 2, Reason 2009
    MQJE016: MQ queue managerclosed channel immediatly during connect. Closure reason= 2009, and erro code as MQJMS2005
    After this all other sender JMS channels have gone into the same error mode on this node.
    We have stopped the JMS service and started it. We also restarted the XI server but no change was encountered.
    Please let us know whether JMS sender with EOIO works with cluster ID as I'm not able to find any document which says that JMS with EOIO works succesfully.
    Please also let us know how to overcome the error on this node.
    Thank you.
    Regards,
    Sarvesh Desai

    Check if there is any unprocessed message stuck in the queue:
    /people/stefan.grube/blog/2006/04/27/how-to-deal-with-stuck-eoio-messages-in-the-xi-30-adapter-framework

Maybe you are looking for

  • How to get CC on my new computer

    Hello so my computer crashed last week and i need to get my CC on this new computer, I have a subscription through my school

  • Install Lightroom and Photoshop on 2 Mac's

    Have purchased a copy of lightroom and photoshop and they are installed in my Mac. Understand that the license permits installing these on my new laptop also. Is this correct? If so, how do I get a copy for my laptop?

  • Basic question related to EKKO and EKPO

    Hi experts, I have invoice document header and line item data in an internal table(From RBKP and RSEG). From RSEG I have PO number(EBELN) and PO line item(EBELP). I want to find out the corresponding WBS element, costcenter and GL account of the PO n

  • Where is my iTunes Setup file?

    After clicking Save on the Download prompt, it just disappeared.  I can't find any downloaded file.  Multiple repeats on two different computers have the same result.  Have it been downloaded?  Where can I find it to click on to install iTunes?

  • How do I remove ICloud as my email server

    How can I remove ICloud as my mail server?