JMS Adapter - Consuming empty opaque element

Hi All,
In a BPEL(lets say BPEL A) using JMS Adapter I am posting an message/payload into JMS Topic as Opaque element using produce_message.
Now in another router(Bpel B) I am listening to this topic using consume_message and trying to retrive the message.
Problem : In the consuming side ie., BPEL B's receive I receive the message as Empty opaque element.
ie.,
<receiveEBMFromIntegrationTopic_InputVar>
<part name="opaque">
<opaqueElement/>
</part>
</receiveEBMFromIntegrationTopic_InputVar>
Although in BPEL A the message that I have invoked produce_message on JMSAdapter is this :
<PublishEBMToTopic_Produce_Message_InputVar>
<part name="opaque">
<opaqueElement>
<ns2:HeaderMsg>
<ns2:MessageID>PIMS-2012-06-22T13:12:13+05:30</ns2:MessageID>
<ns2:MessageDate>2012-06-22T13:12:13+05:30</ns2:MessageDate>
<ns2:MessageVersion>V2</ns2:MessageVersion>
<ns2:MessagePriority>4</ns2:MessagePriority>
<ns2:MessageDomain>GPRD</ns2:MessageDomain>
<ns2:MessageRetryCount>0</ns2:MessageRetryCount>
<ns2:CorrelationID>PIMS-2012-06-22T13:12:13+05:30</ns2:CorrelationID>
<ns2:SourceSystemName>PIMS</ns2:SourceSystemName>
<ns2:SystemEnvironmentCode>Dev</ns2:SystemEnvironmentCode>
<ns2:BOName>Clinical Study</ns2:BOName>
<ns2:BOOperation>Sync</ns2:BOOperation>
<ns2:DownGradeVersionFlag>N</ns2:DownGradeVersionFlag>
</ns2:HeaderMsg>
<ns2:BodyMsg>
<ns2:ClinicalStudyEBO>
<ns2:StudyNumber>M13-3201</ns2:StudyNumber>
<ns2:ProtocolTitle>XYZ</ns2:ProtocolTitle>
<ns2:ABORecordInfo>
<ns2:LastSourcedFrom>PIMS</ns2:LastSourcedFrom>
<ns2:LastSourcedModifiedDate>2012-06-11T00:00:00.000+05:30</ns2:LastSourcedModifiedDate>
</ns2:ABORecordInfo>
</ns2:ClinicalStudyEBO>
</ns2:BodyMsg>
</opaqueElement>
</part>
</PublishEBMToTopic_Produce_Message_InputVar>
Can someone help me in knowing why I am getting an empty element in receivving side . Thanks for helping!
Regards,
Sridhar.

Hi Sridhar,
First thing To do is certify that the published message is ok in the JMS topic.
You can check that in the Weblogic Admin Console, you will need a durable subscriber to be able to check messages in a topic, or change temporarily to a queue that is easier to check the messages that are in.
Cheers,
Vlad

Similar Messages

  • Setting ClientID in JMS Adapter- Consume

    Hi All,
    does anyone have idea how to set clientId in JMS Adapter (Consume Operation). I am able to see only option to set durablesusriber name.
    I can see clientId option available in connection factory setting, but i am still unable to use that. If i have 10 clients , i can't go on creating 10 different connection factory. Also how to link it with 10 adapters?
    I am using JMS topic. SOA 11G
    thanks
    Bikash

    atheek1 wrote:
    You can set client ID either in the JMS connection factory or in FactoryProperties in JMS Adaptors outbound connection pool as <FactoryProperties>ClientID=uniquename</FactoryProperties>
    Weblogic jms expects the combo of durable subscription + client ID to be unique across the durable subscriptions, not just client ID. so if you can given unique durable subscription names in the jca file you should still be able to use the same JMS CF / jms adaptor connection pool across multiple instances.
    Below  is details
    Susriber Name       Client ID_
    DurTpicSus4_1 DurTpicSus4
    DurTpicSus4_2 DurTpicSus4
    DurTpicSus4_3 DurTpicSus4
    then in factory properties i gave ClientID = DurTpicSus4.
    Then deployed all 3 composit application with different susriber name, only one worked. Which ever i deployed first worked everytime. For rest error came, below is error
    ========================================
    JMSMessageConsumer_init: Retrying connection; attempt #2 BINDING.JCA-12133 ERRJMS_JMS_EXCEP. ERRJMS_JMS_EXCEP. Unable to create JMSConnection due to JMSException. Please examine the log file to determine the problem. at oracle.tip.adapter.jms.JMS.JMSConnection.init(JMSConnection.java:263) at oracle.tip.adapter.jms.JMS.JMSConnection.<init>(JMSConnection.java:117) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createConnection(JmsManagedConnectionFactory.java:371) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createDefaultConnection(JmsManagedConnectionFactory.java:364) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createConnection(JmsManagedConnectionFactory.java:327) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createManagedConnection(JmsManagedConnectionFactory.java:95) at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:803) at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91) at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1193) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315) at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:620) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309) at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:365) at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:320) at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:129) at oracle.tip.adapter.jms.JmsConnectionFactory.getConnection(JmsConnectionFactory.java:93) at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.createConsumer(JMSMessageConsumer.java:318) at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.init(JMSMessageConsumer.java:913) at oracle.tip.adapter.jms.inbound.JmsConsumer.init(JmsConsumer.java:862) at oracle.tip.adapter.jms.JmsEndpoint.run(JmsEndpoint.java:163) at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:105) at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183) at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30) Caused By: weblogic.jms.common.InvalidClientIDException: Client id, DurTpicSus4, is in use. The reason for rejection is "The JNDI name weblogic.jms.connection.clientid.DurTpicSus4 was found, and was bound to an object of type weblogic.jms.frontend.FEClientIDSingularAggregatable : FEClientIDSingularAggregatable(SingularAggregatable(<4161256989713352509.1>:150):DurTpicSus4)" at weblogic.jms.frontend.FEConnection.setConnectionClientId(FEConnection.java:1247) at weblogic.jms.frontend.FEConnection.<init>(FEConnection.java:197) at weblogic.jms.frontend.FEConnectionFactory$1.run(FEConnectionFactory.java:381) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147) at weblogic.jms.frontend.FEConnectionFactory.connectionCreateInternal(FEConnectionFactory.java:377) at weblogic.jms.frontend.FEConnectionFactoryImpl.connectionCreateInternal(FEConnectionFactoryImpl.java:79) at weblogic.jms.frontend.FEConnectionFactoryImpl.connectionCreateRequest(FEConnectionFactoryImpl.java:62) at weblogic.jms.client.JMSConnectionFactory.setupJMSConnection(JMSConnectionFactory.java:224) at weblogic.jms.client.JMSConnectionFactory.createConnectionInternal(JMSConnectionFactory.java:285) at weblogic.jms.client.JMSConnectionFactory.createTopicConnection(JMSConnectionFactory.java:186) at oracle.tip.adapter.jms.JMS.JMSConnection.init(JMSConnection.java:159) at oracle.tip.adapter.jms.JMS.JMSConnection.<init>(JMSConnection.java:118) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createConnection(JmsManagedConnectionFactory.java:371) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createDefaultConnection(JmsManagedConnectionFactory.java:364) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createConnection(JmsManagedConnectionFactory.java:327) at oracle.tip.adapter.jms.JmsManagedConnectionFactory.createManagedConnection(JmsManagedConnectionFactory.java:95) at weblogic.connector.security.layer.AdapterLayer.createManagedConnection(AdapterLayer.java:803) at weblogic.connector.outbound.ConnectionFactory.createResource(ConnectionFactory.java:91) at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1193) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResourceInternal(ResourcePoolImpl.java:395) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:332) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:315) at weblogic.connector.outbound.ConnectionPool.reserveResource(ConnectionPool.java:620) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:309) at weblogic.connector.outbound.ConnectionManagerImpl.getConnectionInfo(ConnectionManagerImpl.java:365) at weblogic.connector.outbound.ConnectionManagerImpl.getConnection(ConnectionManagerImpl.java:320) at weblogic.connector.outbound.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:129) at oracle.tip.adapter.jms.JmsConnectionFactory.getConnection(JmsConnectionFactory.java:93) at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.createConsumer(JMSMessageConsumer.java:318) at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.init(JMSMessageConsumer.java:914) at oracle.tip.adapter.jms.inbound.JmsConsumer.init(JmsConsumer.java:864) at oracle.tip.adapter.jms.JmsEndpoint.run(JmsEndpoint.java:163) at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:106) at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183) at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
    ====================================

  • Distributed topic - JMS adapter consuming duplicate messages

    We have distributed topic thats consumed by a composite (JMSadpter in mediator).
    We see for every one message sent the composite consumes the message twice. (With forwarding policy set to partitioned)
    Is this an expected behavior? and how do we make the consumer (JMS adapter) consume only once per message
    Thanks
    Vijay

    From the documentation (provided here: http://download.oracle.com/docs/cd/E21764_01/integration.1111/e10231/adptr_jms.htm)
    The JMS API specifies three types of acknowledgments that can be sent by the JMS publisher:
    - DUPS_OK_ACKNOWLEDGE, for consumers that are not concerned about duplicate messages
    - AUTO_ACKNOWLEDGE, in which the session automatically acknowledges the receipt of a message
    - CLIENT_ACKNOWLEDGE, in which the client acknowledges the message by calling the message's acknowledge method
    Could you check in the weblogic-ra.xml what acknowledge mode has been configured:
    <property>
        <name>AcknowledgeMode</name>
        <value>AUTO_ACKNOWLEDGE</value>
    </property>
    ...Note that when DUPS_OK_ACKNOWLEDGE is used it can happen that a message is consumed more than once.
    Are you also sure that the message is not produced twice?
    Seminar on Cloud Computing - http://middlewaremagic.com/weblogic/?p=7387

  • Jms Adapter Consume and produce

    Hai guys,
    i don't know anything in soa. i have got a usecase which is to
    1) Read a .csv file
    2) Send it to a bpel (in bpel do nothing to payload). Again i have to send the payload to jms adapter( which i dnt knw how )
    3) From the same jms adapter passing the payload to mediator
    4) Pass the input to another jms( jms2 ). from jms2 pass the payload to another bpel
    5) from bpel to db adapter
    am using
    Oracle jDevloper 11.1.13
    Weblogic server is a 10.3.6
    my problem is how to create the same jms in two ways like consuming and producing
    Thanks in advance
    Edited by: Beckyard on Sep 26, 2012 9:49 PM

    Hi,
    Why do you need 2 JMS queues? Can't you consider following pattern?
    Read .csv --> BPEL --> JMS Q
    JMS Q --> Mediator --> BPEL (only if some payload processing required) --> Db Adapter
    Assuming the above pattern, you'll have to develop 2 processes (in your pattern 3 processes).
    - One that will enqueue the data in JMS in which the JMS Adapter will be placed in the External references and will be invoked with Produce operation.
    - Another process in which Mediator will consume the message using Consume operation from JMS and pass it to BPEL for inserting into database. In this case, JMS Adapter will be placed in Exposed Service swim-lane.
    Let us know how you proceed.
    Regards,
    Neeraj Sehgal

  • How to set JMS user property in JMS Adapter.

    I am using Jdeveloper and SOA 11g. I want to filter some JMS messages from a topic based on a JMS user property. It is consumed using (JMS Adapter) consumer --> Mediator---> DBAdapter.
    My Question is how to define a JMS user property using Jdeveloper 11g.
    Thanks
    Edited by: user5108636 on 24/06/2010 16:10

    In Mediator mplan Assign Values use a property expression in the "to" side like:
    jca.jms.JMSProperty.XXX
    where XXX is the name of the property you would like to have created and populated. In source it will look like:
    <Mediator name="A03QueueWFeedMediator" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/sca/1.0/mediator"
    wsdlTargetNamespace="http://www.oracle.com/integration/b2b/A03QueueWFeedFromB2B/">
    <operation name="receive" deliveryPolicy="AllOrNothing" priority="4"
    validateSchema="false">
    <switch>
    <case executionType="direct" name="A03QueueWFeedToJMS.Produce_Message">
    <action>
    <transform>
    <part name="$out.body"
    function="xslt(xsl/ADT_AXX_To_ADT_AXX.xsl, $in.body)"/>
    </transform>
    <assign>
    <copy target="$out.body/imp1:ADT_AXX/imp1:MSH/@Type"
    value="$in.property.b2b.documentDefinitionName"
    xmlns:imp1="NS_64FCBED013AA409D933F624674E67BF220070423183755"/>
    <copy target="$out.body/imp1:ADT_AXX/imp1:MSH/@ID"
    value="$in.property.b2b.fromTradingPartnerId"
    xmlns:imp1="NS_64FCBED013AA409D933F624674E67BF220070423183755"/>
    <copy target="$out.body/imp1:ADT_AXX/imp1:MSH/@Name"
    value="$in.property.b2b.toTradingPartnerId"
    xmlns:imp1="NS_64FCBED013AA409D933F624674E67BF220070423183755"/>
    <copy target="$out.property.b2b.conversationId"
    value="$in.property.b2b.conversationId"/>
    <copy target="$out.property.b2b.documentDefinitionName"
    value="$in.property.b2b.documentDefinitionName"/>
    <copy target="$out.property.b2b.documentProtocolName"
    value="$in.property.b2b.documentProtocolName"/>
    <copy target="$out.property.b2b.documentProtocolVersion"
    value="$in.property.b2b.documentProtocolVersion"/>
    <copy target="$out.property.b2b.documentTypeName"
    value="$in.property.b2b.documentTypeName"/>
    <copy target="$out.property.b2b.fromTradingPartnerId"
    value="$in.property.b2b.fromTradingPartnerId"/>
    <copy target="$out.property.b2b.fromTradingPartnerIdType"
    value="$in.property.b2b.fromTradingPartnerIdType"/>
    <copy target="$out.property.b2b.toTradingPartnerId"
    value="$in.property.b2b.toTradingPartnerId"/>
    <copy target="$out.property.b2b.toTradingPartnerIdType"
    value="$in.property.b2b.toTradingPartnerIdType"/>
    *<copy target="$out.property.jca.jms.JMSProperty.conversationId"*
    value="$in.property.b2b.conversationId"/> <copy target="$out.property.jca.jms.JMSProperty.documentDefinitionName"
    value="$in.property.b2b.documentDefinitionName"/>
    <copy target="$out.property.jca.jms.JMSProperty.documentProtocolName"
    value="$in.property.b2b.documentProtocolName"/>
    <copy target="$out.property.jca.jms.JMSProperty.documentProtocolVersion"
    value="$in.property.b2b.documentProtocolVersion"/>
    <copy target="$out.property.jca.jms.JMSProperty.documentTypeName"
    value="$in.property.b2b.documentTypeName"/>
    <copy target="$out.property.jca.jms.JMSProperty.fromTradingPartnerId"
    value="$in.property.b2b.fromTradingPartnerId"/>
    <copy target="$out.property.jca.jms.JMSProperty.fromTradingPartnerIdType"
    value="$in.property.b2b.fromTradingPartnerIdType"/>
    <copy target="$out.property.jca.jms.JMSProperty.toTradingPartnerId"
    value="$in.property.b2b.toTradingPartnerId"/>
    <copy target="$out.property.jca.jms.JMSProperty.toTradingPartnerIdType"
    value="$in.property.b2b.toTradingPartnerIdType"/>
    </assign>
    <invoke reference="A03QueueWFeedToJMS" operation="Produce_Message"/>
    </action>
    </case>
    </switch>
    </operation>
    </Mediator>
    The runtime will see something like:
    [2010-09-09T11:48:06.353+10:00] [AdminServer] [TRACE] [] [oracle.soa.adapter] [tid: weblogic.work.j2ee.J2EEWorkManager$WorkWithListener@60ddbc76] [userId: weblogic] [ecid: 0000Ifo9olH2zGWjLxmJOA1CY0sg0001jY,0] [SRC_CLASS: oracle.integration.platform.blocks.adapter.fw.log.LogManagerImpl] [APP: soa-infra] [dcid: 02d1ff4621073810:26418f01:12af379c141:-7fd3-0000000000000219] [SRC_METHOD: log] Jms Adapter A03QueueWFeed:A03QueueWFeedToJMS [ Produce_Message_ptt::Produce_Message(body) ] XMLHelper_convertJmsMessageHeadersAndPropertiesToXML: <JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">[[
    <JMSInboundHeaders>
    <JMSCorrelationID></JMSCorrelationID>
    <JMSDeliveryMode>2</JMSDeliveryMode>
    <JMSExpiration>0</JMSExpiration>
    <JMSMessageID>ID:&lt;911867.1283996886119.0></JMSMessageID>
    <JMSPriority>4</JMSPriority>
    <JMSRedelivered>false</JMSRedelivered>
    <JMSType></JMSType>
    <JMSTimestamp>1283996886119</JMSTimestamp>
    </JMSInboundHeaders>
    <JMSInboundProperties>
    <Property name="documentProtocolVersion" value="2.3"/>
    <Property name="toTradingPartnerIdType" value="Name"/>
    *<Property name="conversationId" value="C0A83C0712AF42D840E0000074BA3CCC"/>* <Property name="documentTypeName" value="ADT"/>
    <Property name="tracking_conversationId" value="C0A83C0712AF42D866F0000074BA3CD9"/>
    <Property name="tracking_ecid" value="C0A83C0712AF42D866F0000074BA3CDA"/>
    <Property name="tracking_compositeInstanceId" value="60019"/>
    <Property name="documentProtocolName" value="HL7"/>
    <Property name="documentDefinitionName" value="QH_ADT_Generic"/>
    <Property name="tracking_parentComponentInstanceId" value="mediator:45E076D0BBB411DFAF05817F5F0DD1A1"/>
    <Property name="fromTradingPartnerIdType" value="Name"/>
    <Property name="fromTradingPartnerId" value="HOMER"/>
    <Property name="toTradingPartnerId" value="Self"/>
    <Property name="JMSXDeliveryCount" type="integer" value="1"/>
    </JMSInboundProperties>
    </JMSInboundHeadersAndProperties>
    Edited by: Michael.Czapski on 8/09/2010 18:58

  • 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

  • Throttling using JMS Adapter poller threads

    Hi,
    We are trying to realize the throttling using JMS Adapter poller threads mechanism
    I came across this http://docs.oracle.com/cd/E14571_01/core.1111/e10108/adapters.htm (15.5 Oracle SOA JMS Adapter Tuning )
    adapter.jms.receive.threads
    Here is my configuration. I tried both the options listed below but none works for me.
    option 1 - here property is of type string
    <service name="JMSDelayMsgRead" ui:wsdlLocation="JMSDelayMsgRead.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/JMSDelayMessage/JMSDelayMessage/JMSDelayMsgRead#wsdl.interface(Consume_Message_ptt)"/>
    <binding.jca config="JMSDelayMsgRead_jms.jca">
    <property name="adapter.jms.receive.threads" type="xs:string" many="false">4</property>
    </binding.jca>
    </service>
    option 2 - Here property is of type integer
    <service name="JMSDelayMsgRead" ui:wsdlLocation="JMSDelayMsgRead.wsdl">
    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/jms/JMSDelayMessage/JMSDelayMessage/JMSDelayMsgRead#wsdl.interface(Consume_Message_ptt)"/>
    <binding.jca config="JMSDelayMsgRead_jms.jca">
    <property name="adapter.jms.receive.threads" type="xs:integer" many="true" override="may">4</property>
    </binding.jca>
    </service>
    I tried minimumDelayBetweenMessages parameter for throttling (which is based on time delay) and it works as expected but poller threads mechansim is more suitable for my situation.
    Here is my environment details
    I'm on SOA 11.1.1.4
    JMS Adapter consuming from a Topic (IBM MQ)
    Durable Subscription
    Can any one help me get throttling using poller threads working?
    Please let me know if you need further details about my configuration / logs etc.
    I posted this in two other forums but didn't get any responses on them so posting it here. I apologize for the repetition of this post in multiple forums.
    Thanks & Regards
    shashi

    Hi Raks,
    Check this note for JNDI configuration..
    802754
    "If a 3rd party JMS provider should be used then usually the "Name of JNDI initial context factory" must be adjusted. I.e. com.sap.engine.services.jndi.InitialContextFactoryImpl must be replaced by some.other.vendor.jms.jndi.InitialContextFactory In addition it is necessary to deploy the jar that contains the some.other.vendor.jms.jndi.InitialContextFactory with the aii_af_jmsproviderlib.sda SDA file. In addition, you must extend the server/provider.xml deployment descriptor in the relevant way. Refer to Chapter 11 of the XI 3.0 Configuration Guide for more information"
    You need to find out class "Name of JNDI initial context factory" for tibco  as mentoned in the note and deploy the corresponding JAR file.
    Also check this link for JNDI configuration parameters in the JMs adapter..
    http://help.sap.com/saphelp_nw04/helpdata/en/c1/739c4186c2a409e10000000a155106/content.htm
    Regards
    Anand

  • How can a JMS adapter be configured in BPEL to consume messages from multiple queues ?

    How can a JMS adapter be configured in BPEL to consume messages from multiple queues ?

    If you want to use JMS with AQ as datastore then there is some configuration you need to do to enable this. This is outside SOA Suite per sa, e.g. no adapter required.
    If you want to connect to the AQ direct then use the AQ adapter.
    this blog may be of some help understand the configuration
    http://biemond.blogspot.com/2008/01/oracle-jms-with-esb-and-bpel.html
    cheers
    James

  • Error - JMS Adapter in BPEL ..

    We are trying to send the message to remote weblogic JMS Queue using JMS Adapter in BPEL, during that time we are getting the below error in our BPEL console, can anyone help us to solve this error?
    Invoke_1 (faulted)
    [2007/10/22 09:29:58] Faulted while invoking operation "Produce_Message" on provider "JMS_Demo".less
    -<messages>
    -<input>
    -<Invoke_1_Produce_Message_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="opaque">
    <opaqueElement xmlns="http://xmlns.oracle.com/pcbpel/adapter/opaque/">
    Hello WIPRO
    </opaqueElement>
    </part>
    </Invoke_1_Produce_Message_InputVariable>
    </input>
    -<fault>
    -<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    -<part name="code">
    <code>
    null
    </code>
    </part>
    -<part name="summary">
    <summary>
    file:/C:/product/10.1.3.1/OracleAS_2/bpel/domains/default/tmp/.bpel_BPELProcess1_1.5_cb5d57e810459b549d857161eefb49f0.tmp/JMS_Demo.wsdl [ Produce_Message_ptt::Produce_Message(opaque) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: ERRJMS_EMPTY_PAYLOAD.
    Payload Record Element is unexpectedly empty [Caused by: Error in encoded stream, got 2].
    ; nested exception is:
         ORABPEL-12167
    ERRJMS_EMPTY_PAYLOAD.
    Payload Record Element is unexpectedly empty [Caused by: Error in encoded stream, got 2].
    Please examine the log file to determine the problem.
    </summary>
    </part>
    -<part name="detail">
    <detail>
    null
    </detail>
    </part>
    </remoteFault>
    </fault>
    </messages>
    [2007/10/22 09:29:58] "{http://schemas.oracle.com/bpel/extension}remoteFault" has been thrown. More...
    -<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    -<part name="code">
    <code>
    null
    </code>
    </part>
    -<part name="summary">
    <summary>
    file:/C:/product/10.1.3.1/OracleAS_2/bpel/domains/default/tmp/.bpel_BPELProcess1_1.5_cb5d57e810459b549d857161eefb49f0.tmp/JMS_Demo.wsdl [ Produce_Message_ptt::Produce_Message(opaque) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: ERRJMS_EMPTY_PAYLOAD.
    Payload Record Element is unexpectedly empty [Caused by: Error in encoded stream, got 2].
    ; nested exception is:
         ORABPEL-12167
    ERRJMS_EMPTY_PAYLOAD.
    Payload Record Element is unexpectedly empty [Caused by: Error in encoded stream, got 2].
    Please examine the log file to determine the problem.
    </summary>
    </part>
    -<part name="detail">
    <detail>
    null
    </detail>
    </part>
    </remoteFault>

    I got he same error but it's kind weird.
    when I rebuild and deployed the jar,the error changes.
    I have tested the remote jms queue and topic with java client. they are working fine.
    <remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="code"><code>null</code>
    </part><part name="summary"><summary>file:/home/bpel/product/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_Queue2Topic_v2007_12_10__37928_c62fd67a4741626244d92a80798b5d2c.tmp/OutTopicService.wsdl [ Produce_Message_ptt::Produce_Message(ExpenseRecord) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: Adapter Framework unable to create outbound JCA connection.
    file:/home/bpel/product/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_Queue2Topic_v2007_12_10__37928_c62fd67a4741626244d92a80798b5d2c.tmp/OutTopicService.wsdl [ Produce_Message_ptt::Produce_Message(ExpenseRecord) ] - : The Adapter Framework was unable to establish an outbound JCA connection due to the following issue: ORABPEL-12141
    ERRJMS_CONN_FAC_NOT_FOUND.
    Unable to instantiate connection factory. JMS adapter was unable to look up the connection factor VIMConnectionFactory neither through JNDI nor instantiate it as a Java class [Caused by: Unable to resolve 'VIMConnectionFactory'. Resolved '']
    Please examine the log file to determine the problem.
    [Caused by: Unable to resolve 'VIMConnectionFactory'. Resolved '']
    ; nested exception is:
         ORABPEL-12511
    Adapter Framework unable to create outbound JCA connection.
    file:/home/bpel/product/10.1.3.1/OraBPEL_1/bpel/domains/default/tmp/.bpel_Queue2Topic_v2007_12_10__37928_c62fd67a4741626244d92a80798b5d2c.tmp/OutTopicService.wsdl [ Produce_Message_ptt::Produce_Message(ExpenseRecord) ] - : The Adapter Framework was unable to establish an outbound JCA connection due to the following issue: ORABPEL-12141
    ERRJMS_CONN_FAC_NOT_FOUND.
    Unable to instantiate connection factory. JMS adapter was unable to look up the connection factor VIMConnectionFactory neither through JNDI nor instantiate it as a Java class [Caused by: Unable to resolve 'VIMConnectionFactory'. Resolved '']
    Please examine the log file to determine the problem.
    [Caused by: Unable to resolve 'VIMConnectionFactory'. Resolved '']
    Please examine the log file for any reasons. Enable DEBUG logging in the BPEL Console.
    </summary>
    </part><part name="detail"><detail>null</detail>
    </part></remoteFault>
    Message was edited by:
    user593125
    Message was edited by:
    user593125

  • Push different type of messages to JMS Queue using JMS Adapter

    Platform: Oracle SOA 11g. JMS Adapter.
    I got to push different types of messages as string to same queue. JMS Adapter requires schema to push a message to a queue. Since messages are of different types, how can I push them into queue. I tried to use singleString schema. Result is that actual message gets wrapped into <singleString> root element which is not the required result.
    Any hints or links shall be appreciated.

    Thanks fo ryour reply and help. I appreciate that.
    Wrapping of original message in <singleString>  element is done by JMS Adapter as the very last activity/setting. I am not composing/transforming message into final shape with singleString through transformation.
    Once message is with JMS adapted on one end, it is in Queue on the other end. No control.
    Since consuming end is not in my control and requires the actual message in Text format, I need to have the message target queue in Text format.
    If I select the Opaque schema, following error message is thrown.
    <bpelFault><faultType>0</faultType><mismatchedAssignmentFailure xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"><part name="summary"><summary>Mismatch Assign. cannot set a nonmessage value to a message-based variable. An attempt to assign a nonmessage value to a message-based variable failed. Verify the BPEL source for invalid assign activities.< /summary></part></mismatchedAssignmentFailure></bpelFault>

  • Invoking Jms Adapter from BPEL with enque stoped

    Hi guys, I have an issue.
    In my BPEL flowI have an invoke activity which has a jms adapter as a partner link.
    The thing is that if you stop the enque in the DB, your flow in BPEL continues like nothing happened. It just passes the payload to the jms adapter. From it's point of view is asynchronous , but I want to make sure that the payload is in the queue before I continue the flow.
    Any ideas?

    Hi Oracler,
    I don't understand what you mean by XML schema inline? Where do you define that in a JMS adapter ? Can you be more specfic when you say Try including both the elements(TEXT_LOB , TEXT_VC ) in the schema? I don't have those elements in my schema at all. I have tried the opaque option I still get the same Translator NULL error.
    Please anyone help....

  • JMS adapter: Adapter specific message attributes

    Hi,
    I have a synchronous SOAP to JMS (MQ series) scenario where I’m using sync/async bridge (without BPM).
    I need to correlate the message being put on JMS queue (JMS receiver adapter) and the response (JMS sender adapter).
    The “standard” receiver JMS adapter only allows the JMS correlation ID to be set to one of three different values (excluding NULL). 2 of these (reference and conversation ID) will be empty in my scenario, leaving me with only the XI message ID. This ID however exceeds the length of ie. the JMS correlation ID and thus isn’t suitable for correlating anything using the field JMS Correlation ID.
    NB: it is of no use to try and set the conversation ID at mapping time (using container object) since the changed value only is available during mapping execution.
    Surely one way of setting the conversation ID would be to use an adapter module in SOAP sender, but this is not an option. Also the sender system will not provide one either.
    Now the problem isn’t setting the JMS correlation ID dynamically at runtime (this is achieved without trouble using the dynamic configuration API with the key ‘DCJMSCorreleationID’). The problem is to actually have XI correlate the request with the response.
    Since the JMS collelation ID is smaller than the XI message ID and the conversation and reference ID isn’t available, what I figure is that I need to find a MQ message property to use and then use the ‘Set MSProperty to’ part instead – this property surely needs to be large enough to contain the XI message ID.
    So what I did was I looked in http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.amqwak.doc/js50938.htm
    where a list of fields in the message descriptor is available figuring I can just use one of these. Looking through the list I notice the field MDRQ (‘Name of reply queue’, 48-byte character string) should be able to hold the XI message ID. So I add ‘MDQR’ in the ‘Specify additional JMS message properties’ and set the ‘Java Type’ to String and also enter this field in the Correlation Setting of the receiver JMS adapter.
    Runtime:
    When looking in MDT I see:
    New JMS message will be correlated with the XI message. Correlation rule: XI_MESSAGEID, correlated property: JMS property MDRM, correlation value: 36158680-5a0c-11dc-8c14-000f203cd3c8
    I looks like a success! No data is however set in the field when looking at messages being put on MQ.
    If I increase the trace level of the JMS adapter I can see (in defaultTrace) the following:
    Cannot read the switch setting for property name DCJMSStringProperty0, switch name dynConfigDCJMSStringProperty0. It is switched off.
    What does this error mean?
    I have of course clicked ‘Use adapter Specific Message-Attributes’ and also the ‘Specify additional…’. In other words everything look ok in configuration.
    Since I’ve also put a check mark in ‘Fail if adapter specific message attributes is missing’ I can see that I successfully put a value (using dynamic conf. at mapping time) in the field... but still something isn’t right – the value of the property never reached MQ.
    Now I’ve tried with a couple of fields in the message descriptor from the previous URL. XI complains all the time.
    Anybody got some ideas?
    Best Regards,
    Daniel

    Hi Vijay,
    Thanks for your replay,as per your input i creted dynamic configuration method,
    i taget structure  luks like this
       <Data>
           <Mesage>
                 <gl_update>
                      <header>
                            <ean1>
                            <ean2>
                      </header>
                  <gl_update>
           <Message>
    i written UDF and mapped to header element gl_update,
    but i am getting  below error message in MONI
    SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_ ffjms_</SAP:P1>
      <SAP:P2>com.sap.aii.mappingtool.tf7.IllegalInstanceExcepti</SAP:P2>
      <SAP:P3>on: Cannot create target element /ns0:MT_jms_ _a</SAP:P3>
      <SAP:P4>sync_out/Data/Message/ GLUpdate. Values missi~</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>Runtime exception occurred during application mapping com/sap/xi/tf/_MM_ ffjms_; com.sap.aii.mappingtool.tf7.IllegalInstanceException: Cannot create target element /ns0:MT_jms_ asyncout/Data/Message/ GLUpdate. Values missi~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    i want to know i mapped to UDF to GL_Update is is correct, to which element i have to map.
    i think there is no prob with UDF,its executing ,giving warning messages
    help me on this,
    Regaards
    Raj

  • JDeveloper - ESB / BPEL - JMS Adapter - prefix queue name with db schema

    When I use the JMS Adapter in ESB to create a new message queue producer or consume using database (AQ) I'm experiencing a problem when selecting the queue.
    I can browse the queue in the database but when I have selected the queue JDeveloper prefix it with the schema name owning the queue.
    Example:
    java:comp/resource/DocumentQueueResourceProvider/Queues/QUEUES.DOCUMENT_IMPORT_QUEUE
    Schema owner is QUEUES and the name of the queue is DOCUMENT_IMPORT_QUEUE.
    The problem is when I try to use it its unable to look up the queue and I have to manually remove the prefix from .wsdl file before deploying it - as with setting mcf.IsTransacted='false'.
    When the resource provider finds the queue and exposes it in the JNDI three it does it without the prefix.
    Question: How do I either:
    a) make the schema prefix be removed by JDeveloper
    b) make the resource provider prefix the queue name with the schema name.
    Anybody?
    Best regards
    Christian Damsgaard

    Try this:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema targetNamespace="http://www.yourcompany.com/msg"
    xmlns:tns="http://www.yourcompany.com/msg"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    nxsd:encoding="ASCII" nxsd:stream="chars" nxsd:version="NXSD"
    elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xsd:element name="rootnode" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eof}"/>
    </xsd:schema>
    This will result in a single node xml.
    Edited by: user472896 on Sep 22, 2010 10:29 AM

  • JMS Adapter - Correlation ID

    Hi,
    I am looking to use the JMS Adapter to put a message on a Queue (ActiveMQ), which is consumed and serviced as a request with a correlating JMS Message being produced as a response.
    An  Async Message is created by the client and forwarded to the JMS adapter via an AMF Channel which creates the actual JMS TextMessage and puts it on the queue, in response my clent receives the Acknowledgement (MessageAckEvent) which contains a correlationID in the format:
    9D90B26-2006-52C7-FE31-70926243CDBE
    Which is attained form the request messageID - A'OK
    The poblem is the JMS TextMessage created does not contain the correlationID !  The JMS Adapter code does this:
    public Object invoke(Message message)
    // named Flex message props become JMS headers
    Map msgProps = message.getHeaders();
    msgProps.put(JMSConfigConstants.TIME_TO_LIVE, new Long(message.getTimeToLive()));
    The correlationID like time to live is not in the AsyncMessage headers - Im thinking this could be an issue, does anyone agree ?
    I think the correlationID should be populated in the same way as time to live.
    There is also another issue in terms of the flex client creating the original Async Message. This has a property of correlationID which is able to be set, though in terms of the JMS Adapter this is ignored. If I set this property manually and send to the JMS Adapter the correlation ID in the Ack does not contain what I set, and again holds the messageID.  To be fair I think this is not the intended use of the correlationID property, and is for correlation within internal topics, but from the JMS Adapter point of view looks a bit weird.
    Can anyone confirm if they think my ramblings are something that could be raised as an issue or whether I have just missed the point completely as Im not very good at reading documentation :-)
    Cheers,
    Jonathan.

    I looked into the wsdl and xsd file which correspond to my JMS Adapter.
    There is one line:
    <jca:header message="hdr:InboundHeader_msg" part="inboundHeader"/>
    Is there a way to add this information to
    <message name="JMSCorrelationProcessRequest_msg">
    <part name="JMSCorrelationProcessRequest" element="imp1:JMSCorrelationProcessRequest"/>
    </message>
    If this is possible i can access the header variables in BPEL...

  • Text Message - JMS Adapter

    Hello,
    How can I send a XML as a text message into a JMS Adapter?
    I tried to send using an opaque schema but the consumer is receiving it null.
    Thanks!

    Hi,
    Refer these links
    http://static.springframework.org/spring/docs/2.5.x/reference/jms.html
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/50061bd9-e56e-2910-3495-c5faa652b710
    http://help.sap.com/bp_bpmv130/Documentation/Planning/XIUnicodeGuide030411.pdf
    http://help.sap.com/saphelp_nw04s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a05b2347-01e7-2910-ceac-c45577e574e0
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/482aae19-0301-0010-3485-8efd618818d0
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/604e2b64-e689-2910-64b3-ffd650f83756
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00982670-748c-2a10-3985-cdd42fb43e50
    and also blogs
    Triggering XI Alerts from a User Defined Function
    How to send any data (even binary) through XI, without using the Integration Repository
    Regards,
    Surya

Maybe you are looking for

  • How to open new window when i press submit button/submit button.

    Hi, When i press a button, I need to capture an item value in current from and I need to pass that value to another form. The child form should open in the new form. For that Iam using the java script, But when i use the java script my page is not ab

  • Other screens.

    Greetings. I am a teacher of English as a Foreign Language. I bought an iPod Touch (32GB) and put all the audio material I'm using in my current classes onto it. Wonderful! I also put some EFL video material onto it. Again, wonderful. (Many thanks to

  • MIME Content Type in HTTP Headers - They don't exist for TIFF images

    Hello, I think this may be a bug... In an effort to stop client browsers from attempting to render TIF images served up from UCM 11g, I would like to change the MIME Typte to: application/octet-stream Supremely, a browser would see this in the HTTP h

  • Modify object fo material document

    Hi all,        I'm looking for a modify object for a material document in order to start a workflow based on BUS2017. Someone knows which is the standard modify object? Thank you.                         Gino Bonfiglioli

  • Does the late '09 24" iMac minidisplay port allow for video input as well as output?

    Greetings, I own a 24" 2.66 GHz Intel Core 2 Duo iMac with the Nvidia 9400 card.  It's nearing the end of it's gaming life but I still want to use it for everything else after I get my new tower.  Everything I can find in reguards to using an iMac as