Transaction Management in JMS adapter

Hi,
I am creating a BPEL process for inserting data in a JMS queue (for producing message on queue) with transaction management, and came across the property "isTransacted", can anyone please help me with the functionality of this property, and how to handle transactions with JMS Queue.
Thanks.

First of all the JMS specification does not define the behavior for multiple clients accessing a queue. Having said that, most vendors do offer this. Since it is not defined in the specification mileage can vary from provider to provider. However, most vendors do the obvious/intuitive thing.
When a client receives a message from a queue it is not available to anyone else until the final disposition of that message can be determined. Acknowledge and commit permanently remove the message from the queue. Recover and rollback put the message back in the queue. The death of the client results in a recover or rollback. When a message goes back to the queue, it is made available to all clients who are waiting (possibly even the same client (except in the case of the dead client)).
With respect to your questions, the intuitive behaviors are:
1) message goes back and someone else has a chance to get it
2) If you have a transacted session then the acknowledge is simply ignored, and since you didn't call commit, the message is still considered outstanding (and no one else can get it). If the session is not transacted then the acknowledge causes the message to be permanently removed from the destination (and no one else can get it).
3) if the session is transacted then the commit permanently removes the message from the destination (and no one else can get it). if the session is not transacted then the commit must throw an exception and since you didn't call acknowledge, the message is still considered outstanding (and no one else can get it).
Client2 could only receive the same message if client1 rolledback or recovered the message (which should occur if client1 dies).
_sjz.

Similar Messages

  • Transaction Management in JMS

    If more than one client is trying receive messages from a queue how does JMS manage to send message only to one client.
    Lets take a case where there are two clients(Client1 and Client2 having queueReceivers R1 and R2 of sessions session1 and session2 respectively). These clients try to access a single queue and receive messages from it in Client-acknowledge-mode and their sessions being transacted. If Client1 receives message - M1 then what would happen to the message in the queue(will it be deleted/locked/??) in the following senarios:
    1) Client1 does not acknowledge the message and does not commit the session. (client1 process dies)
    2) Client1 acknowledges the message and does not commit the session.
    3) Client1 does not acknowledge the message and commits the session.
    During the above cases if Client2 tries to receive a message does it get the same message-M1?

    First of all the JMS specification does not define the behavior for multiple clients accessing a queue. Having said that, most vendors do offer this. Since it is not defined in the specification mileage can vary from provider to provider. However, most vendors do the obvious/intuitive thing.
    When a client receives a message from a queue it is not available to anyone else until the final disposition of that message can be determined. Acknowledge and commit permanently remove the message from the queue. Recover and rollback put the message back in the queue. The death of the client results in a recover or rollback. When a message goes back to the queue, it is made available to all clients who are waiting (possibly even the same client (except in the case of the dead client)).
    With respect to your questions, the intuitive behaviors are:
    1) message goes back and someone else has a chance to get it
    2) If you have a transacted session then the acknowledge is simply ignored, and since you didn't call commit, the message is still considered outstanding (and no one else can get it). If the session is not transacted then the acknowledge causes the message to be permanently removed from the destination (and no one else can get it).
    3) if the session is transacted then the commit permanently removes the message from the destination (and no one else can get it). if the session is not transacted then the commit must throw an exception and since you didn't call acknowledge, the message is still considered outstanding (and no one else can get it).
    Client2 could only receive the same message if client1 rolledback or recovered the message (which should occur if client1 dies).
    _sjz.

  • 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}<bean id="OrderConverter" class="agb.foc.order.OrderMessageConverter"/>
    <wlevs:adapter id="OrderIn" provider="jms-inbound">
    <wlevs:instance-property name="converterBean" ref="OrderConverter"/>
    </wlevs:adapter>
    {color}
    Here's my jms-adapter xml file:
    {color:#3366ff}<jms-adapter>
    <name>OrderIn</name>
    <jndi-provider-url>t3://localhost:7001</jndi-provider-url>
    <connection-jndi-name>weblogic/jms/ConnectionFactory</connection-jndi-name>
    <destination-jndi-name>agb/jms/TestQueue</destination-jndi-name>
    <user>weblogic</user>
    <password>weblogic</password>
    <concurrent-consumers>1</concurrent-consumers>
    <session-transacted>false</session-transacted>
    </jms-adapter>{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

  • JMS adapter transaction. Rollback message to queue.

    Hi all !
    A have question about jms adapter transaction. My composite application has 3 steps : JMS adapter (listener), mediator, WS adapter. JMS adapter listen queue push message to mediator, mediator invoke web service. If ws not available (server down), mediator try recovery 5 times. After 5 times, reject message from queue. I wont rollback message to queue. I saw examples with JMS + BPEL, but it not help me. Anybody can help me.

    Hi,
    You don’t need to catch a mediator fault – you can let it rollback to the JMS Queue and let the Queue do the retries.
    To get the retries working, log in to the weblogic console and navigate to JMS Modules -> Your Module -> Your Queue -> Configuration -> Delivery Failure
    Here you will find options for Redelivery Limit. Set this to the number of retries you need.
    Then navigate to the connection factory you want and set the redelivery delay.
    This should get your desired behaviour, but once the message has failed it will be discarded. If you prefer to put it on an error queue you can create an error queue, and in the original queue’s, goto Delivery Failure, change the expireation policy and set the Error Destination to be your error queue.
    Hope that helps!
    Robert

  • JMS adapter fails to open IBM WebSphere MQ Manager V6 Remote Queue

    Hello,
    We are trying to connect to a Remote Queue with the SAP PI 7.0 SP9 JMS adapter to IBM WebSphere MQ V6 on Linux SLES9 x86_64.
    We did deployed the JMS-adapter with the V6 native libaries on SAP PI.
    In the Communication Channel we use the Adapter Type = JMS, Sender, Transport Protocol = WebSphereMQ(non-JMS).
    The MQ Queue Manager is on the same server as SAP PI so we use localhost, Server Port, Queue Manager Name, Channel Name and JMS Queue Name
    The <sid>adm user is a member of the mqm group.
    When I check the RWB I see this fault message:
    Error during channel initialization; exception trace: javax.jms.JMSException: <b>MQJMS2008: failed to open MQ Queue</b> at ...
    and also
    com.ibm.mq.MQException: <b>MQJE001: Completion Code 2, Reason 2045</b>
    When we lookup the reason 2045 we get this explaination on MQ:
    MQRC_OPTION_NOT_VALID_FOR_TYPE
    We also have a type = Receiver Communication Channel on the same MQ Queue Manager that one is working fine.
    Please advise!
    Best regards,
    Mike Laanen

    Mike,
    check whether the Queues are created and activated if it done. then check whether you have authorization for those queues.
    Regards
    Sreeram.G.Reddy

  • Transactional Session JMS Adapter

    Hi,
    i'm using a JMS sender and receiver adapter. Everything works but i can't understand if it'could be better to use a Transactional Session in Jms setting. I've found a lot of documentation about jms adapter configuration, but not so much information about Transactional Session field.
    Could somebody explain me something more??
    When can i use transactional session?
    Thanks a lot.
    Bye, bye..

    Hi,
    The Transactional Session in JMS is used to persist the messages or may get roll back if in case of failure.
    The JMS adapter (Java Message Service) enables you to connect messaging systems to the Integration Engine or the PCK. The messages will be processed in Queue i.e WebSphere MQ series, SonicMQ and others...
    Suppose in case of failure of the connectivity the messages maintained in queue may lost. That would be serious problem if the queue is maintained with the messages having important data from production landscape.
    If you enable a transactional JMS session, set the indicator. The processing of a message will be safe, a transactional session ends either with a COMMIT, or in the case of an error, with a ROLLBACK. So there will not be any chance of loss of the messages in queue.
    If the session is not transactional, there can be duplicates or lost messages.
    I hope now it will pretty clear to you the purpose of Transactional session.
    Thanks
    Swarup

  • Weblogic.transaction.internal.TimedOutException  while JMS adapter De queuing

    Hi ,
    I am getting the weblogic.transaction.internal.TimedOutException in SOA logs, when i track the instance using ecid. I am unable to find the flow in EM.
    EM shows that instance as complete and I can able to see only the JMS adapter in flow trace.
    Increasing the timeout is not a good option, I hope. It’s already set to 10800.
    Error msg:
    Failed to handle dispatch message ... exception ORABPEL-05002
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessage"; the reported exception is: Transaction Rolledback.: weblogic.transaction.internal.TimedOutException: Transaction timed out after 10798
    I am not sure y the De queuing take such a long time?? Any other thought guys??
    Regards,
    Ram.

    Could you check the size of the JMS message that is getting polled.
    When the transaction is getting rolled back, is the JMS message getting discarded or present in JMS Queue

  • 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.

  • Sender JMS Adapter

    Hi,
    I am using a sender JMS adapter. Transport Protocol i have given as "Access JMS Provider with JNDI".
    In the field "JNDI Server Address" i have to give the server:port.
    Here i am not sure which port to give.
    Is it the P4 port i.e. 5XX04 or the J2EE port on which the WAS listens i.e. 5XX00.
    Please advise.
    Regards
    Sidharth

    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.

  • Inbound JMS adapter with MapMessage

    I'm sharing the following problem and solution with using the OEP inbound message adapter because it may be
    a common situation occurring to other users.
    Recently was using the inbound JMS adapter with its default (OEP internal) converter from JMS MapMessage
    messages to OEP events. The inbound adapter was receiving MapMessage messages but it was not assigning
    values to the corresponding attributes in the specified input event instance.
    The problem was that I was not properly creating the MapMessage messages in the JMS producer client.
    I was using method setStringProperty() instead of method setString(), which is what is needed to set name/value
    pairs of type String, and similarly with other primitive Java data types. Here's a code snippet for building and sending
    a MapMessage on the client side:
          try {
          mapm = qsess.createMapMessage();
          mapm.setString("valueType1", "value1");
          mapm.setString("valueType2", "value2");
          mapm.setInt("valueType3", 5);
          producer.send(mapm);
         } catch (JMSException jmse) {
         jmse.printStackTrace(System.err);
         System.exit(0);
    Regards,
    Mauricio

    OSB JMS config:
    <queue name="RequestQ">
    <sub-deployment-name>wlsbJMSServer</sub-deployment-name>
    <jndi-name>RequestQ</jndi-name>
    </queue>
    <queue name="ResponseQ">
    <sub-deployment-name>wlsbJMSServer</sub-deployment-name>
    <jndi-name>ResponseQ</jndi-name>
    </queue>
    Business service in OSB from where message is sent to the "ResponseQ" which is consumed by CEP.
    Jms Inbound CEP Config:
    <jms-adapter>
    <name>jmsAdapterInbound</name>
    <jndi-provider-url>t3://10.227.145.164:7005</jndi-provider-url>
    <connection-jndi-name>weblogic.jms.XAConnectionFactory</connection-jndi-name>          
    <destination-jndi-name>ResponseQ</destination-jndi-name>
    <user>weblogic</user>
    <password>weblogic123</password>
    <work-manager>JettyWorkManager</work-manager>
    <concurrent-consumers>1</concurrent-consumers>
    <session-transacted>false</session-transacted>
    </jms-adapter>

  • Mediator Resequencer,JMS Adapter: queue consumers increase from PS2 to PS4

    Hi,
    We have an environment using SOA Suite and Mediator Resequencer, it is using a FIFO approach. It has been running fine in SOA Suite version 11.1.1.3.
    We are using a JMS Adapter, consuming the messages from the UDD queues as we have a SOA cluster of two managed servers.
    Well we are now doing some test for upgrading to PS4 (11.1.15) and we have noticed some differences after the upgrade in terms of # consumers on the UDD queues.
    In 11.1.1.3 eache member of the UDD was showing just 1 consumer. Looks like this is the right configuration when using and mediator resequencer FIFO approach, as they say you need to have a single-threaded approach to avoid unpredictible result.
    After upgrade that, we have noticed that in 11.1.1.5 each UDD member shows 2 consumers, we have not changed anything, we just follow the upgrade guide to do that. To be honest we are not sure wheter it is a problem or not.
    Can anybody advise about that? If it is an issue, How and where can configure it to get back to 1 consumer connected to UDD member?
    Thanks a lot!

    The Bridge is configured to use the MQ CF and destination directly without the foreign JMS wrapper. Does this make any difference to the bridge's transactional behaviour with MQ?
    Even with the foreign jms wrapper, the local jndi name of the MQ CF is still mapped to com.ibm.mq.jms.MQXAQueueConnectionFactory class. So I think there is no wrapper classes are used from foreign JMS perspective. But if a bridge is configured to lookup local jndi, does it add any wrapper classes which handles the XA interactions with MQ in a different way ?
    I am trying to see if introducing a foreign server resolves the problem. Not sure if its worth to take this path.
    Thanks in advance.
    Regards,
    Atheek

  • JMS Adapter: Disabling debug log

    Hi All,
    we are having trouble with the JMS Adapter. Adapter is showing message in the opmn/default oc4j intance log growing until 15gb or more..
    Is there a way to disable the JMS transaction log ?
    Log is showing the following lines:
    <2010-02-25 13:12:48,244> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_start(Xid( Global Id 17.1b.f0.d9.ff.ff.ff.ff.e1.48.6d.06.27.01.00.00.04.74.08.00.00.00.00.00, Format Id 1330790740, Branch Id b3.b7.b7.73.00.00.00.00.00.00.00.00.00.00.00.00),0) invoked:oracle.tip.adapter.jms.JmsXAResource@121c9d1
    <2010-02-25 13:12:48,267> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_end(Xid( Global Id 17.1b.f0.d9.ff.ff.ff.ff.e1.48.6d.06.27.01.00.00.d5.72.08.00.00.00.00.00, Format Id 1330790740, Branch Id b3.b7.b7.73.00.00.00.00.00.00.00.00.00.00.00.00),67108864) invoked:oracle.tip.adapter.jms.JmsXAResource@be22d2
    <2010-02-25 13:12:48,268> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_commit(Xid( Global Id 17.1b.f0.d9.ff.ff.ff.ff.e1.48.6d.06.27.01.00.00.d5.72.08.00.00.00.00.00, Format Id 1330790740, Branch Id b3.b7.b7.73.00.00.00.00.00.00.00.00.00.00.00.00),true) invoked:oracle.tip.adapter.jms.JmsXAResource@be22d2
    <2010-02-25 13:12:48,269> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_isSameRM(oracle.tip.adapter.jms.JmsXAResource@be22d2) invoked:oracle.tip.adapter.jms.JmsXAResource@be22d2
    <2010-02-25 13:12:48,269> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_setTransactionTimeout(10800) invoked:oracle.tip.adapter.jms.JmsXAResource@16d2727
    <2010-02-25 13:12:48,269> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_start(Xid( Global Id 17.1b.f0.d9.ff.ff.ff.ff.e1.48.6d.06.27.01.00.00.0b.74.08.00.00.00.00.00, Format Id 1330790740, Branch Id b3.b7.b7.73.00.00.00.00.00.00.00.00.00.00.00.00),0) invoked:oracle.tip.adapter.jms.JmsXAResource@16d2727
    <2010-02-25 13:12:48,271> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_end(Xid( Global Id 17.1b.f0.d9.ff.ff.ff.ff.e1.48.6d.06.27.01.00.00.d7.72.08.00.00.00.00.00, Format Id 1330790740, Branch Id b3.b7.b7.73.00.00.00.00.00.00.00.00.00.00.00.00),67108864) invoked:oracle.tip.adapter.jms.JmsXAResource@f03668
    <2010-02-25 13:12:48,272> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_commit(Xid( Global Id 17.1b.f0.d9.ff.ff.ff.ff.e1.48.6d.06.27.01.00.00.d7.72.08.00.00.00.00.00, Format Id 1330790740, Branch Id b3.b7.b7.73.00.00.00.00.00.00.00.00.00.00.00.00),true) invoked:oracle.tip.adapter.jms.JmsXAResource@f03668
    <2010-02-25 13:12:48,273> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_isSameRM(oracle.tip.adapter.jms.JmsXAResource@f03668) invoked:oracle.tip.adapter.jms.JmsXAResource@f03668
    <2010-02-25 13:12:48,273> <DEBUG> <default.collaxa.cube.ws> <JMSAdapter::Outbound> **** JmsXAResource_setTransactionTimeout(10800) invoked:oracle.tip.adapter.jms.JmsXAResource@c99711
    Thanks in advance.
    Regards,
    Marcelo.

    In fact I think this is a BPEL question. The log level for default.collaxa.cube.ws is controlled from the BPEL console (at least before 11g, I bet it remains more or less the same).
    In 10g you would log in to the BPEL console, select "Manage BPEL Domain", select "Logging" and then find the logger named "default.collaxa.cube.ws" in the list. Change the dropdown to a higher log level, for example Warn. Apply the changes and you are done. You may need to restart the instance if it doesn't seem to help.
    I can't point to the exact screens in 11g as I don't have it here, but the general procedure should be the same. Good luck!

  • OCEP JMS Adapter implement InboundMessageConverter issue

    Hello,
    I'm new to OCEP. I have a JMS adapter receiving Weblogic JMS message. JMS Message is a TextMessage, so the default MapMessage can't convert it. I need to write my own converter which implement InboundMessageConvert. Eclipse compiles just fine, but when deploying into a runtime OCEP environment, I get an error saying that my custom converter class does not implement InboundMessageConverter which I did. Did anyone encounter this issue and how to get around it?
    I also tried the sample code provided in Developer Guide and it doesn't work. My code bellow is a sample to by pass the deployment issue..
    package com.converter;
    import com.bea.wlevs.adapters.jms.api.InboundMessageConverter;
    import com.bea.wlevs.adapters.jms.api.MessageConverterException;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import java.util.List;
    public class MyMessageConverter
    implements InboundMessageConverter
    public MyMessageConverter(){
    super();
    public List convert(Message message) throws MessageConverterException, JMSException
    return null;
    --- error message when deploy to runtime environment ---
    <Mar 22, 2010 10:30:57 AM PDT> <Error> <Deployment> <BEA-2045010> <The application context "FilteringEvent" could not be started: org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.IllegalArgumentException: converter-bean com.converter.MyMessageConverter does not implement InboundMessageConverter
    org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.IllegalArgumentException: converter-bean com.converter.MyMessageConverter does not implement InboundMessageConverter
    at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:136)
    at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
    at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
    at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
    at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
    at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
    at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
    at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    Hi,
    I have included the following two lines into the Manifest file, but this action has not fixed the problem:
    com.bea.wlevs.adapters.jms;version="11.1.1.4_0",
    com.bea.wlevs.adapters.jms.api;version="11.1.1.4_0"
    My EPN file is as shown:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:osgi="http://www.springframework.org/schema/osgi"
    xmlns:wlevs="http://www.bea.com/ns/wlevs/spring"
    xmlns:jdbc="http://www.oracle.com/ns/ocep/jdbc"
    xmlns:spatial="http://www.oracle.com/ns/ocep/spatial"
    xmlns:application="http://www.bea.com/ns/wlevs/config/application"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/osgi
    http://www.springframework.org/schema/osgi/spring-osgi.xsd
    http://www.bea.com/ns/wlevs/spring
    http://www.bea.com/ns/wlevs/spring/spring-wlevs-v11_1_1_3.xsd
    http://www.oracle.com/ns/ocep/jdbc
    http://www.oracle.com/ns/ocep/jdbc/ocep-jdbc.xsd
    http://www.oracle.com/ns/ocep/spatial
    http://www.oracle.com/ns/ocep/spatial/ocep-spatial.xsd
    http://www.bea.com/ns/wlevs/config/application
    http://www.bea.com/ns/wlevs/config/application/wlevs_application_config.xsd">
         <bean id="myConverter" class="com.bea.wlevs.adapter.example.jmsclient.JMSClient"/>
         <wlevs:adapter id="jmsInbound" provider="jms-inbound">
              <wlevs:instance-property name="converterBean" ref="myConverter"/>
         </wlevs:adapter>
         <application:jms-adapter>
    <application:name>jmsInbound</application:name>
    <application:jndi-provider-url>t3://localhost:9002</application:jndi-provider-url>
    <application:destination-jndi-name>Queue1</application:destination-jndi-name>
    <application:user>wlevs</application:user>
    <application:password>123456</application:password>
    <application:work-manager>JettyWorkManager</application:work-manager>
    <application:concurrent-consumers>1</application:concurrent-consumers>
    <application:session-transacted>false</application:session-transacted>
    </application:jms-adapter>
    <wlevs:event-type-repository>
    The error showned by Eclipse is:
    Multiple annotations found at this line:
         - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'application:jms-adapter'.
         - schema_reference.4: Failed to read schema document 'http://www.bea.com/ns/wlevs/config/application/
         wlevs_application_config.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the
         document is not <xsd:schema>.
    Thanks!
    Edited by: 899693 on 15-dic-2011 2:48

  • CEP Transaction Manager

    I have a couple of questions about the transaction manager defined in my CEP server config.xml.
    1. Can I use this transaction manager outside of JDBC? I would like to read messages from a JMS queue and write them to a database table in a transaction to ensure that they are not lost. Could I use the transaction manager to do this and if so, how do I get a reference to it?
    2. Can I use the commit and rollback methods on a pooled connection object I get from the CEP server or should I be relying on the transaction manager to so that? If I should be relying on the transaction manager, when does the commit happen?
    Thanks

    (1) The specific case you mention of reading a message from JMS and writing it to the DB in a single transaction isn't currently supported in CEP. This scenario would require XA support in the JMS client used to read the message, and the current JMS client implementation in CEP doesn't have the required XA support. You may be able to get something close to the behavior you want by configuring a transacted session on the inbound JMS adapter. When a transacted session is configured and the code downstream from the inbound adapter throws an exception that propagates back to the JMS adapter, the read of the message will be rolled back and the message will be redelivered. This isn't a distributed transaction, but if you combine this with appropriate error handling on your database update it may meet your requirements. This workaround doesn't require the use of the configured transaction manager.
    (2) The transaction manager shouldn't be needed for local JDBC transactions. It would only be needed if you had a requirement for distributed transactions. For local transactions you can use the methods on the connection object directly.

  • Sending Msg From HTTP client to XI through JMS Adapter using WebSphereMQ

    Hello
    I am trying to send some msg from Http client
    I configured JMS adapter as receiver
    Transport Protocol :WEBsphereMQ JMS provider
    Message  protocol :JMS1.x
    I have given the Ip  address  of my machine where I installed WEB Sphere MQ
    Server Port :1416
    Transport Protocol :WebSphere MQ
    JMS compliant: JMS-compliant
    In SXMB_MONI
    Http client sends message without any error.
    But while tracing I got message
    <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
    Can anybody tell me the solution..
    Thnaks

    Hi,
      I have not directly faced this but i may suggest ,
    1. What do you see in sxmb_moni, do you have a queue problem?
    2. see this File-to-File Scenario Stopped Working  the reply from Shravan and the last message.
    <i>The XBTO que was the problem. I deleted all LUWs in it and now new transactions are working again</i>
    3. You may also use this /people/sap.user72/blog/2005/11/29/xi-how-to-re-process-failed-xi-messages-automatically
    Regards,
    Anirban.

Maybe you are looking for

  • Syntax Error while writing VBScript in OFT 9.1

    Hi All, I am new to OFT 9.1 (not using OpenScript). I have a simple VBScript code which I have copied inside Test Scriptlet After Page. After pasting code, I click "Done" button and then save the script. While doing this the script pane shows me synt

  • Attaching files to Mail

    In the last 2 days I have not been able to attach files to outgoing mail.  I click on the paperclip icon, but no new screen pops up.  Any solutions?

  • Trying to run java program

    I am trying to run a program called j perf, a graphical front end for iperf a network measurement tool. when i type java jperf i get this error message Exception in thread "main" java.lang.NoClassDefFoundError looking for assistance thanks

  • Importing photos from iPad to PC after new setup of computer.

    I hat To setup my PC and want To import my pictures from iPad back To the PC. But iTunes tells me, that my iPad is still connected to another mediathek library. Do U have any idea how I can get back my photos from iPad tommy computer? Thanks in advan

  • Send all line itms in a PO to Idoc (ORDERS05)

    Hello All, I have a requirement where, if any 1 or all line items of a Purchase Order is changed / deleted, all line items should be generated in Idoc. In partner profile (WE20), if we use process code ME10 for create and ME11 for change, only the ch