BPEL and JMS/AQ Request

Hello everybody,
It would be great if I could get some information on the following from BPEL Developers/ Experts.
In our Project we are planning to have
1. BPEL Server in Server 1
2. JMS/ AQ in Server 2
I want the BPEL Process to interact with the JMS/AQ component to send or receive XML messages.By writing a webservice I can accomplish this. But I would like to know how can I make BPEL Process in Server1 to interact with the JMS Queue in Server 2 "directly".
Also please send me any links which are related to this , if any.
Thanks in advance
Susilkumar.V

You can use JMS Adapter for this.

Similar Messages

  • How  to Set JMS property and Read JMS property in BPEL using JMS adapter

    Does any one know how to set or read more than one JMS property in BPEL using JMS adapter. My queue server is Oracle JMS server.
    Any help and sample is well appreciated

    Hi Van
    I have noted that only the attribute "type" is missing. It seems that when you create a "string" property, the attribute "type" is droped from the XML. If you use another type (as "integer" or "double") it stays there.
    If you try to read your properties, except for the "type" attribute, you should be successful, as I am. If you need, please tell me your email, I can send you my code.
    Source Code:
    in ASSIGN activity (process which SENDS the JMS message):
    <assign name="TESTES">
    <copy>
         <from expression="'string'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@type"/>
    </copy>
    <copy>
         <from expression="'name'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@name"/>
    </copy>
    <copy>
         <from expression="'value1'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@value"/>
    </copy>
    <bpelx:append>
         <bpelx:from>
         <Property name="" type="" value=""
              xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/"/>
         </bpelx:from>
         <bpelx:to variable="HeaderJms" part="outboundHeader"
              query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties"/>
    </bpelx:append>
    <copy>
         <from expression="'string'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@type"/>
    </copy>
    <copy>
         <from expression="'name2'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@name"/>
    </copy>
    <copy>
         <from expression="'value2'"/>
         <to variable="HeaderJms" part="outboundHeader"
         query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@value"/>
    </copy>
    </assign>
    in ASSIGN activity (process which READS the JMS message)
    <assign name="Assign_1">
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@name"/>
    <to variable="temp"/>
    </copy>
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@value"/>
    <to variable="temp"/>
    </copy>
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@name"/>
    <to variable="temp"/>
    </copy>
    <copy>
    <from variable="Variable_1" part="inboundHeader"
    query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@value"/>
    <to variable="temp"/>
    </copy>
    </assign>
    Note that I do not try to read the "type" attribute, otherwise it will fail.
    Here is the JMS Header Message received:
    <inboundHeader>
    <JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">
    <JMSInboundHeaders>
    <JMSCorrelationID>
    bpel://localhost/pi_lms-c001e/BpelPiAtualizacaoC001E~1.0/3200025-BpInv0-BpSeq1.6-2
    </JMSCorrelationID>
    <JMSDeliveryMode>2</JMSDeliveryMode>
    <JMSExpiration>0</JMSExpiration>
    <JMSMessageID>ID:467DFA1FA1ED459EBF37F51F596C3F12</JMSMessageID>
    <JMSPriority>4</JMSPriority>
    <JMSRedelivered>false</JMSRedelivered>
    <JMSType>com.mercurio.lms.integration.c001eip.c001EIntegrationPoint</JMSType>
    <JMSTimestamp>1201552046253</JMSTimestamp>
    </JMSInboundHeaders>
    - <JMSInboundProperties>
    <Property name="JMSXDeliveryCount" type="integer" value="1"/>
    <Property name="JMSXRecvTimestamp" type="long" value="1201552046698"/>
    <Property name="JMSXUserID" value="lms_dev_int_v1_user"/>
    <Property name="JMS_OracleDeliveryMode" value="2"/>
    <Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
    <Property name="JMS_OracleDelay" type="long" value="0"/>
    <Property name="JMSXState" type="integer" value="0"/>
    <Property name="IAS_VERSION" value="10.1.3"/>
    <Property name="JMS_OracleDeliveryMode" value="2"/>
    <Property name="name" value="value1"/> ("type" attribute was droped!!!)
    <Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
    <Property name="name2" value="value2"/> ("type" attribute was droped!!!)
    </JMSInboundProperties>
    </JMSInboundHeadersAndProperties>
    </inboundHeader>
    Regards
    Marcelo

  • Configuration for JMS Adapter Sensor action and JMS Queue sensor action..!!

    Hi,
    Id like my BPEL process to send an XML message to JMS on Websphere,I was able to do this through a JMS adapter.But I would more like to add sensors into my process which would really do the same thing - send an XML message to JMS Q.
    Now I understand that there are two ways to do this,JMS Queue and JMS Adapter - thorugh bpel sensor action.
    I am able to use JMS Queue and it works fine , but adds its own xml tags to the message,Is there any way I could send only my xml payload as a message to the queue??
    Also could any1 tell me what is the configuration for JMS Adapter sensor action?
    Any suggestions how do I go about it??

    Hey Anirudh,
    Thanx for the response :-)
    All these hold good when I have an AQ adaptor right,But the thing is I want to send a message to a 'JMS' queue with out actually using an adapter configuration wizard and everythng..So I resolved to JMS queue Sensor action..Heres the xml snippet from the sensorAction.xml files which is generated..
    <actions targetNamespace="http://xmlns.oracle.com/Test_JMS_Logging" xmlns="http://xmlns.oracle.com/bpel/sensor" xmlns:tns="http://xmlns.oracle.com/Test_JMS_Logging" xmlns:pc="http://xmlns.oracle.com/bpel/sensor">
    <action name="JMS_LogEntry" publishName="" publishType="JMSQueue" enabled="true" filter="" publishTarget="jms/L_Queue">
    <property name="JMSConnectionFactory">jms/L_QueueCF</property>
    <sensorName>ActivitySensor_JMS</sensorName>
    </action>
    </actions>
    This works grt and adds messages to the queue..But adds its own header info according to the sensor.xsd loacted at the Oracle_home\bpel\system\xmllib\ folder.
    Right now the XML message added to the Queue is:-
    <actionData xmlns="http://xmlns.oracle.com/bpel/sensor">
    <header>
    <sensor sensorName="ActivitySensor_JMS" classname="oracle.tip.pc.services.reports.dca.agents.BpelActivitySensorAgent" kind="activity" target="AddLEntr
    y" xmlns:pc="http://xmlns.oracle.com/bpel/sensor" xmlns:ns2="http://www.ulrhome.com/2008/10/L_Entry" xmlns:tns="http://xmlns.oracle.com/Test_JMS">
    <activityConfig evalTime="completion">
    <variable outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema" target="$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName"/>
    </activityConfig>
    </sensor>
    <instanceId>950016</instanceId>
    <processName>Test_JMS</processName>
    <processRevision>v2009_04_15__40833</processRevision>
    <domain>default</domain>
    <timestamp>2009-04-15T11:21:23.596-04:00</timestamp>
    <midTierInstance>app01.ulrhome.com:9700</midTierInstance>
    </header>
    <payload>
    <activityData>
    <activityType>scope</activityType>
    <evalPoint>completion</evalPoint>
    <durationInSeconds>0.011</durationInSeconds>
    <duration>PT0.011S</duration>
    </activityData>
    <variableData>
    <dataType>12</dataType>
    <data>
    <ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
    </data>
    <queryName/>
    <target>$WriteL_Produce_Message_InputVariable/L_Entry/ns2:L_Entry/ns2:LCName</target>
    <updaterName>AddL_Entry</updaterName>
    <updaterType>scope</updaterType>
    </variableData>
    </payload>
    </actionData>
    My requirement is that I need to add a sensor to the BPEL process which posts 'Only my payload message to the JMS queue'..
    What I would want the message in the Queue to be is : -
    <data>
    <ns0:LCName xmlns:ns0="LC_Test1http://www.ulrhome.com/2008/10/L_Entry">LC_Test1</ns0:LCName>
    </data>
    Also while creating a Sensor action I get another option as JMS Adaptor,I am not sure of what value to type in this wizard..Heres what I keyed in..M sure this is not right..Cos it dosnt work :-)
    <action name="SensorAction_JMS" publishName="" publishType="JMSAdapter" enabled="true" filter="" publishTarget="jms/LoggingQueue">
    <property name="JMSConnectionName">Log</property>
    </action>
    </actions>
    Could any 1 tel me what values are the right values..And does JMS Adapter mean that I have to create a JMS Apator in the project and give that connection name as a Value..
    I am not finding sufficiant Documentation for 'JMS Adapter' so M clueless and right now any help will be appriciated :-)
    Regards,
    Akshatha.

  • Proxy to JMS and JMS to Proxy - Szenario

    Hi @all,
    i've implemented an async scenario:
    Proxy to JMS (away, request)
    JMS to Proxy (way back, response)
    Backend is ECC 6.0 and Middleware is PI 7.1.
    Business Case: Run a request with a number, get an answer back with an entry. The number is an individual criteria which is not included in the answer. So I decided to write the number in JMSCorrelationID, therefore I've written an UDF in Message Mapping.
    I've checked the JMS Correlation ID in additional properties and also added this into the list of additional properties:
    key.0 -> read xxxx DCJMSCorreleationID
    value.0 -> DCJMSCorrelationID.
    First question: is there something what I should account for in JMS receiver channel?
    At the way back I've implemented another UDF for writing the JMSCorrelationID back to payload in message mapping.
    But I'm not sure that works. The coding looks like:
    try
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey KEY_JMSCorrID = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/JMS","DCJMSCorrelationID");
    String a = conf.get(KEY_JMSCorrID);
    catch(Exception e){}
    return a; //a is an input field for the payload back to SAP backend.
    Second question: is there something what I should accound for JMS sender channel? Do I need to add the DCJMSCorreleationID to the list of additional properties (JMS Correlation is checked)?
    Thanks in Advance,
    Stefan

    Hi,
    thank you for your answer.
    The Proxy to JMS scenario works well and overwrites the JMSCorrelationID given by a number from message payload.
    Could you please take a look at the given udf-coding that belongs to JMS to Proxy Scenario?
    Is it possible to get the JMSCorrelation at this way?
    I also put in JMS-Sender-Channel the JMSCorrelationID into the additional JMS-Message properties and checked "correlation-id from jms message" in adapter specific message attributes.
    In Module-Tab of JMS-Sender-Channel i put the module-configuration in a way like this:
    -> key.0 insert http://sap.com/xi/XI/System/JMS DCJMSCorreleationID
    -> value.0 DCJMSCorreleationID
    Do you think that works?
    I could not verify this configuration until I get an entry in outbound queue so I can't make tests to that.
    In Message Mapping - Test a Null Pointer Exception Occurs, according to the UDF, because I'm reading the DCJMSCorreleationID which is not present at mapping ad hoc test - I think that is ok.
    Thank you in Advance,
    Stefan

  • BPEL Process Manager caches requests

    Hi,
    i recently downloaded Oracle BPEL Process Manager 10.1.2 bundled with JDeveloper.
    I created a BPEL process which invokes an external web service. The result of the web service invocation is transformed with an stylesheet using the transform activity and resend to another web service. After i deployed the process, everything works fine.
    But now i face a cache problem: everytime i change the stylesheet in the transform activity and redeploy the whole bpel process to the running BPEL PM Server, the change in the stylesheet is not reflected in the 2nd version of the BPEL process. The requests send after the transform activity are the same as in the 1st deployment of the process. Restarting the BPEL PM Server helps recognizing the change in the stylesheet and a appropriate request is send now.
    I can see the new stylesheet after redeployment in the .jar file located in the deploy folder. I also see it in the temp directory of my domain.
    It seems that the BPEL PM Server is caching somehow the stylesheet used in the 1st deployment and does not recognize changes in the stylesheet afterwards. Can i disable this caching? Or do i have to restart the server each time i change the stylesheet for the transform activity?
    Thanks in advance
    Pete

    Maybe there is some caching property which can be disabled?
    I didn´t find any hints on the forum and currently i always create a new stylesheet (with a new name), copy the whole content from the old stylesheet and assign the new stylesheet to the transform activity before redeployment, which is a very poor solution but still faster than relaunching the server...

  • Can we call and execute a request set using db adapter or oracle apps adapt

    Hi,
    Can we call and execute a request set(which executes a set of packages in a sequence) using db adapter or oracle apps adapter similar to calling a stored procedure and concurrent program?
    thanks,
    RV

    1) In BPEL call the DBAdapter in a sequence, make sure you set the partnerlink 'property' to transaction=participate.
    2) Or create a package that calls the other packages in a sequence
    Marc
    http://orasoa.blogspot.com

  • Polling messages based on priority in BPEL using JMS adapter

    Hi All,
    Is it possible to poll the messages based on the priority in BPEL using JMS adapter?
    I could set the priority for the messages but while polling it is picking the messages in FIFO(First in First out) order. But I want the messages to be picked on priority.Any help is appreciated.

    Do you only want to pick up messeges with a certain priority? So anything larger than say priority 2?
    You can try this: Oracle JCA Adapter for JMS - 11g Release 1 (11.1.1.5.0)
    Message SelectorThis field is also optional. It filters messages based on header and property information. The message selector rule is a Boolean expression. If the expression is true, then the message is consumed. If the expression is false, then the message is rejected.For example, you can enter logic, such as:
    JMSPriority > 3. Based on this, messages with a priority greater than 3 are consumed; all other messages are rejected.
    JMSType = 'car' AND color = 'blue' AND weight > 2500
    Country in ('UK', 'US', 'France')

  • BPEL-BAM JMS Sensor

    Hi,
    I am using Oracle BPEL and BAM Versions 10.1.2.1.
    I created sensors according to the below mentioned link
    http://download-west.oracle.com/docs/cd/B14099_19/integrate.1012/b15813/phase11.htm
    I am able to see the created sensors and its values in the BPEL Process Manager for Order Approval Process. I could not find any document explaining how these sensor values can be used in Oracle BAM to display reports. Could you please provide me the necessary documents for the same?
    Thank you.
    Regards,
    Praveen. G
    Software Engineer.
    iSOFT R & D Pvt. Ltd.
    [email protected]

    Hi Praveen,
    Any data including JMS Sensor data that is piped into the BAM Active Data Cache can be used in BAM reports.
    See the following:
    http://www.oracle.com/technology/products/integration/bam/10.1.3/TechNotes/TechNote_BAM_BPELJMSSensors.pdf
    http://www.oracle.com/technology/products/integration/bam/10.1.3/Tutorials/Tutorial_10_BAM_ProcessMonitoringReport.pdf
    Regards, Stephen

  • XAI outbound messages and JMS

    I was hoping someone had some better (or more complete) documentation on how to go about setting up XAI for outbound messages using JMS.
    I find XAI documentation rather sparse on this subject so I was hoping for some expert tips ;-)
    Our setup is CC&B 2.2.0 with Weblogic 10 as application server. I am new to CC&B so I am not sure if I can just turn messaging on for everything or if it is business object/service specific.
    To be more concrete - I would like to place Field Activity messages onto queue once Field Activity has been created/modified/canceled.
    thanks in advance

    1) Who and when are these outbound messages are required to be sent out..Kindly explain with an example.
    Whenever the Outbound Message is created with Pending Status the framework will start to process
    for Example:-
    I've have a change handler for Account entiry. so whenever the Account entity modified or created the change handler will be invoked. In the
    change handler i've a code that will create a Outbound Message and i m storing the xml content in the XML Source of the Outbound Message.
    So now the outbound message is created with the XML content and status is pending. Once the message created the framework will process for sending
    to External system
    2) Is my Outbound message a XML request enclosed in SOAP envelope.
    Use the Message XSL file under External System page if you want enclose the xml content with SOAP envelope
    3) We configure an external system , with an outbound message type, XAI sender etc.So does that mean that the services of external syatem is interfaced through with CC&B through maybe the database, and the services of external system are defined in XAI inbound services. So that the MPL server reads the request, invokes the service name defined in the outbound request.
    No... the process is very simple...
    +1. you have created Outbound message type+
    +2. created XAI Sender+
    +3. and External System(in the this page u've included all the abv configuration).+
    +4. if create a outbound message the Framework will process and invoke(sending request to external system) the external system with the xml content+
    wht u've stored in side xml source column.
    Edited by: pgurumoorthy on Apr 22, 2009 3:11 AM

  • BPEL and DbAdapter

    Hello,
    I am using BPEL and DbAdapter to insert a row into a table. Say, TABLE A with (ID NUMBER, NAME VARCHAR2(20).
    I would like to use "Perform an Operation on a Table" and use native sequencing for ID.
    Is there a way to return the ID value within a single invoke to DbAdapter?
    Thanks,
    Edmund

    You can request a copy of a complete tutorial that showcases the DB adapter executing a SQL Server stored procedure in a BPEL process.
    [Link to internal Oracle Web Site removed. Contact product management if you'd like a copy of the tutorial.]
    Ask for "Adapter Tutorial 31 Integration with MS SQL Server Stored Procedure using DB Adapter" which is a ZIP of a complete tutorial.
    The ZIP contains a command-line script (.bat file) that can be used to generate the BPEL artifacts. It's fairly straightforward. Read the PDF first.

  • BPEL and RESTful WS

    Does BPEL and Oracle AS support requesting a RESTful WS in a BPEL Process? If it is supported, which Service component (from jDev's Components Palette) can I use to request a RESTful WS?
    Also, what is the "best" practice used in a BPEL Process to compare row of data returned from a WS to row of data in a database table? I was thinking about using an embedded Java that compares data returned from the WS and DBAdapter requests. Is this necessary?
    Thanks in advance!

    Hi,
    I haven't worked much on RESTful WS, but they are usually like HTTP GET/POST method, and in that case you can leverage http binding (702.Bindings\HTTPBinding). You can marshal the return xml string in XML object.
    Other way can be developing generic proxy service for calling RESTFul service is not very bad idea and exposing it is normal soap service.
    HTH
    Chintan

  • BEPL and JMS

    Hi all, I havent really been using BPEL long neither am i very aware of how to use the various oracle products efficiently.
    I do, however, need to use a BPEL process to send a JMS message. Preferably to OpenJMS. I have had a look at the samples and they all seem to work fine. However, when i try to modify the samples to use my destination queue they just bomb out with the error:
    [2006/01/20 14:39:13] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. less
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="code">
    <code>GenericError</code>
    </part>
    <part name="summary">
    <summary>null</summary>
    </part>
    </bindingFault>
    I know, really helpful! What i think is happening is that they is no actual physical storage for the queue and there fore it cannot be written to. Also, would i be correct in thinking that 'oc4j-ra.xml' file in the folder 'integration\orabpel\system\appserver\oc4j\j2ee\home\application-deployments\default\JmsAdapter' is the only file that needs editing in order to use a different jndi? I added this section to attemp to create a new jndi for OpenJMS
         <connector-factory location="eis/openjms/Queue" connector-name="Jms Adapter">
              <config-property name="connectionFactoryLocation" value="QueueConnectionFactory"/>
              <config-property name="factoryProperties" value="java.naming.factory.initial=org.exolab.jms.jndi.InitialContextFactory;java.naming.provider.url=rmi://localhost:1099"/>
              <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
              <config-property name="isTopic" value="false"/>
              <config-property name="isTransacted" value="true"/>
              <config-property name="username" value="admin"/>
              <config-property name="password" value="openjms"/>
         </connector-factory>
    Does that look correct and will (should) that expose the OpenJMS interface to any BPEL process wishing to take advantage of it? What if i wanted to use the JMSService and not the inbuilt JMS Adapter to talk to OpenJMS. What file(s) would i have to edit then in order expose the OpenJMS jndi?
    I know that this is probably really simple for some (most) of you. But i've been trying to sort it out for days now to now avail. With the sheer number of configuration files im at a loss to know what bit of what file is for what component.
    Thanks muchly to all kind replies in advance
    Cheers
    Ian Harrigan

    Here is my confusion (I'm using J2EESDK1.3).
    On a local server I did the following
    j2eeadmin -addJmsFactory jms/RemoteTCF topic -props url=corbaname:iiop:mars#mars
    In the app client running on the local server I had the code
    ic = new InitialContext();
    // JNDI lookup. The resource factory ref points to the
    // Remote Connection Factory I registered
    tcf = (TopicConnectionFactory)ic.lookup("java:comp/env/jms/TopicConnectionFactory");
    // The env ref points to jms/Topic of the local server
    pTopic = (Topic)ic.lookup("java:comp/env/jms/PTopic");
    So I'm assuming that I'm using a connection factory that connect to mars and a Topic on the local box.
    On remote server mars, I deployed a MDB which use
    jms/TopicConnectionFactory and jms/Topic. But I'm thinking this jms/Topic and the one I used on the local box are not the same one. Right? Then how could the app client and the MDB share messages?
    Some of my explanation I don't if it makes sense or not.
    ConnectionFactory is a way to tell what kind of connection it could generate (Queue, Topic, Durable etc) and Where the connection would go to (local or remote).'
    As for as destination, I'm not sure. How could two server share one Topic?

  • Using socket and JMS protocol in the same logic for OSB

    Hi frnds,
    In my organization...the only communication protocol used is "socket" protocol. However, I want to use JMS protocol to process incoming messages. Can somebody help me figuring out how to go about it.
    Using some nice OSB blogs, I am able to create the JMS connection factory and JMS queues in weblogic. And that works fine when I select the communication protocol as JMS while creating the BS and PS.
    What should be my message flow when the communication protocol used is "socket" for both BS and PS.
    salil

    Hi,
    Make the BS as JMS and the PS as socket, in the PS's flow do a route for the BS... Then if an external call is made to the PS via socket, it will send a messages to a JMS queue...
    Hope this helps...
    Cheers,
    Vlad

  • Problem with EJB and JMS - Failed to obtain/create connection

    hello ejb and jms programmers,
    My problem is my topic MDB keep on retrieving the same message when there is a database connection failure. Maybe somebody could help me how to prevent to retrieve the same data?
    Given:
    - I purposedly turn off the pointbase database because im testing my error handling.
    - Im using SJSAS 8 as my application server.
    - My message Driven Bean of topic type.
    - Im using CMP for my entity bean
    Here is the scenario of whats happening - step by step:
    1. A separate application publishes a message to JMS queue server
    2. My MDB retrieves this message and do some processing then inserts a record (transaction history) in my database
    3. But my db is turned off or down
    4. My MDB sends a successful processing reply to the JMS queue server
    5. Then i noticed that my server.log keeps on growing so when i opened it, the record was not inserted and printed the stacktrace below "RAR5117 : Failed to obtain/create connection. Reason : javax.transaction.SystemException" (complete stacktrace below)
    6. I understand the cause of the stacktrace is because the DB is turned off. But what i dont understand is that my MDB keeps on reading the same message. Since my MDB is of topic type, isnt a topic MDB supposedly reads a message only once???
    So my questions are:
    1. how do i handle insert database error?
    2. how can i stop my MDB from processing the same message?
    3. any better suggestions?
    Thank you in advance :)
    leigh
    *** more complete stack trace ***
    [#|2005-01-09T15:35:57.097+0800|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.system.core.transaction|_ThreadID=17;|JTS5041: The resource manager is doing work outside a global transaction
    javax.transaction.xa.XAException
         at com.pointbase.xa.xaException.getXAException(Unknown Source)
         at com.pointbase.xa.xaConnectionResource.start(Unknown Source)
         at com.sun.gjc.spi.XAResourceImpl.start(XAResourceImpl.java:162)
    [#|2005-01-09T15:35:57.167+0800|SEVERE|sun-appserver-pe8.0.0_01|javax.enterprise.resource.resourceadapter|_ThreadID=17;|RAR5027:Unexpected exception in resource pooling
    javax.transaction.SystemException
         at com.sun.jts.jta.TransactionImpl.enlistResource(TransactionImpl.java:185)
         at com.sun.enterprise.distributedtx.J2EETransaction.enlistResource(J2EETransaction.java:360)
         at com.sun.enterprise.distributedtx.J2EETransactionManagerImpl.enlistResource(J2EETransactionManagerImpl.java:303)
         at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.enlistResource(J2EETransactionManagerOpt.java:115)
    [#|2005-01-09T15:35:57.177+0800|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.resource.resourceadapter|_ThreadID=17;|RAR5117 : Failed to obtain/create connection. Reason : javax.transaction.SystemException|#]
    [#|2005-01-09T15:35:57.227+0800|WARNING|sun-appserver-pe8.0.0_01|javax.enterprise.resource.resourceadapter|_ThreadID=17;|RAR5114 : Error allocating connection : [Error in allocating a connection. Cause: javax.transaction.SystemException]|#]
    [#|2005-01-09T15:35:57.237+0800|SEVERE|sun-appserver-pe8.0.0_01|javax.enterprise.system.container.ejb|_ThreadID=17;|EJB5071: Some remote or transactional roll back exception occurred
    com.sun.jdo.api.persistence.support.JDODataStoreException: JDO77006: SQL exception: state = null, error code = 0.
    NestedException: java.sql.SQLException: Error in allocating a connection. Cause: javax.transaction.SystemException
    FailedObjectArray: [[email protected]5ac]
         at com.sun.jdo.spi.persistence.support.sqlstore.impl.TransactionImpl.getConnectionInternal(TransactionImpl.java:1444)
         at com.sun.jdo.spi.persistence.support.sqlstore.impl.TransactionImpl.getConnection(TransactionImpl.java:1339)

    Hi annie,
    Wherever you are handling database transactions,
    you'd not be able to create a Connection if database
    is closed (I think you mentioned turning off the
    database) then at this condition, you should
    certainly throw a System level exception and stop all
    processing with some meaningful flow to indicate a
    failure (like display message on UI). Even
    network problems are handled by exceptions... so I
    don't see a reason why you didn't wrap it in the
    first place.
    Anyway, try handling specific exceptions rather than
    the general Exception... this will give you a better
    idea of what to do in case of an exception.Yes i know this. I am practicing this in my non-j2ee server applications. But the j2ee app im making, i just pass the db url in the descriptor and the app server automatically creates the connection for my app. So where would i put exception handling?
    2. how can i stop my MDB from processing the same
    message?Guaranteed delivery is not supposed to stop
    processing. It will continue to process the message
    after certain intervals till the message is
    delivered. You shouldn't deliver it at all, if you
    are able to detect that the database is off
    The problem here is that my MDB automatically retrieves the message from the JMS queue server. Im not the one retrieving the messages manually.
    My assumed behavior of topic MDB is once the a certain MDB retrieves a message it will not retrieve the same message anymore.
    thank you in advance.
    leigh

  • Passing value from ADF to BPEL, and to PL/SQL  procedure

    1. I have created BPEL which take 2 inputs and concatenate them.
    2. have created a PL/SQL procedure for invoking this BPEL( working fine).
    Now i need to create a simple ADF page which contain 2 text box, 2 for input and 1 for result(concatenate), this will take 2 inputs and send them into BPEL, this will invoke the BPEL process and perform the necessary concatenate function...
    in addition to this, i am passing code into PL/SQL procedure ...
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body xmlns:ns1="http://xmlns.oracle.com/OrderImportDemo">
    <ns1:InputRequest>
    <ns1:FirstName>abcdef</ns1:FirstName>
    <ns1:LastName>aaaaaa</ns1:LastName>
    </ns1:InputRequest>
    </soap:Body>
    </soap:Envelope>';
    this code will take vaule from BPEL and run properly.
    can you please help me,

    thanks for help, but the problem is diff.
    i don't have any schema, what i want i need to create a adf page that will contain 3 tent field, 2 for input and 1 for output. when i will enter 2 input field and click on ok button, this will invoke BPEL, BPEL will take these 2 inputs and do the concat on this and send back to adf with result.

Maybe you are looking for

  • Restrictions Really needs improvement for Business use

    Hi We have written an app and are replacing our industry standard barcode scanning devices with over 100 iPod Touches worldwide using a third party barcode sled accessory. This is much cheaper (Around $800 vs $1500) and offers a much richer and less

  • How to create an user privileges in java

    Hello, I need help! I'm now creating a system based in Java which I need to create a user privilege for security purposes. I need to create 3 kinds of users, 1st is the administrator and the 2nd is a viewer access which can only view the software but

  • Flash Builder 4.6 crashes on startup

    Hi, I've been using fb 4.6 premium for a while and everything works fine. Then 2 days ago it started crashing every time I tried to start it up, and it always crashes when the message "loading workbench" appears at the splash screen. The .log recorde

  • Watching the accumulative credit of a vendor

    I'm searching for a report that produce the accumulative credit of a vendor/ I mean something like fbl1n but the sum column has to be like that: if fl1n give the 3 line: vendor         sum 50051          100 50051          150 50051          -30 than

  • Portal content not available

    we are implementing Performance Management using ECC 6.0 EnhP4 and Portal 7 EnhP1. We are using the standard ESS MSS business package. We need to show the Appraisal Documents iView in the Portal. as per SAP best practice, we created a delta copy of s